From dc90c13bec469fcbc69fc12db487c07ed94f649d Mon Sep 17 00:00:00 2001 From: Konstantin Podsvirov Date: Tue, 1 Sep 2015 16:18:57 +0300 Subject: [PATCH 001/103] Move static value grpc::string_ref::npos definition to cc file --- include/grpc++/support/string_ref.h | 2 +- src/cpp/util/string_ref.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/grpc++/support/string_ref.h b/include/grpc++/support/string_ref.h index 2bc1fecefeb..32995b834f6 100644 --- a/include/grpc++/support/string_ref.h +++ b/include/grpc++/support/string_ref.h @@ -53,7 +53,7 @@ class string_ref { typedef std::reverse_iterator const_reverse_iterator; // constants - const static size_t npos = size_t(-1); + const static size_t npos; // construct/copy. string_ref() : data_(nullptr), length_(0) {} diff --git a/src/cpp/util/string_ref.cc b/src/cpp/util/string_ref.cc index 9adc0920135..d12701f2c94 100644 --- a/src/cpp/util/string_ref.cc +++ b/src/cpp/util/string_ref.cc @@ -39,7 +39,7 @@ namespace grpc { -const size_t string_ref::npos; +const size_t string_ref::npos = size_t(-1); string_ref& string_ref::operator=(const string_ref& rhs) { data_ = rhs.data_; From 3c769d67a348e4caadd5c57b9694bb4b62c20873 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 19 Oct 2015 16:35:34 -0700 Subject: [PATCH 002/103] Added some file-level comments to Node source files --- src/node/src/client.js | 11 +++++++++++ src/node/src/common.js | 2 ++ src/node/src/metadata.js | 9 +++++++++ src/node/src/server.js | 15 +++++++++++++-- 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/node/src/client.js b/src/node/src/client.js index 596ea5ebb0b..3cdd5507524 100644 --- a/src/node/src/client.js +++ b/src/node/src/client.js @@ -33,6 +33,17 @@ /** * Client module + * + * This module contains the factory method for creating Client classes, and the + * method calling code for all types of methods. + * + * For example, to create a client and call a method on it: + * + * var proto_obj = grpc.load(proto_file_path); + * var Client = proto_obj.package.subpackage.ServiceName; + * var client = new Client(server_address, client_credentials); + * var call = client.unaryMethod(arguments, callback); + * * @module */ diff --git a/src/node/src/common.js b/src/node/src/common.js index ebaaa13db0f..e4fe5a8e035 100644 --- a/src/node/src/common.js +++ b/src/node/src/common.js @@ -32,6 +32,8 @@ */ /** + * This module contains functions that are common to client and server + * code. None of them should be used directly by gRPC users. * @module */ diff --git a/src/node/src/metadata.js b/src/node/src/metadata.js index 5c24e46c9b2..375c7e985cf 100644 --- a/src/node/src/metadata.js +++ b/src/node/src/metadata.js @@ -33,6 +33,15 @@ /** * Metadata module + * + * This module defines the Metadata class, which represents header and trailer + * metadata for gRPC calls. Here is an example of how to use it: + * + * var metadata = new metadata_module.Metadata(); + * metadata.set('key1', 'value1'); + * metadata.add('key1', 'value2'); + * metadata.get('key1') // returns ['value1', 'value2'] + * * @module */ diff --git a/src/node/src/server.js b/src/node/src/server.js index a974d593c95..9f9e1898a92 100644 --- a/src/node/src/server.js +++ b/src/node/src/server.js @@ -33,6 +33,17 @@ /** * Server module + * + * This module contains all the server code for Node gRPC: both the Server + * class itself and the method handler code for all types of methods. + * + * For example, to create a Server, add a service, and start it: + * + * var server = new server_module.Server(); + * server.addProtoService(protobuf_service_descriptor, service_implementation); + * server.bind('address:port', server_credential); + * server.start(); + * * @module */ @@ -750,8 +761,8 @@ Server.prototype.addProtoService = function(service, implementation) { * Binds the server to the given port, with SSL enabled if creds is given * @param {string} port The port that the server should bind on, in the format * "address:port" - * @param {boolean=} creds Server credential object to be used for SSL. Pass - * nothing for an insecure port + * @param {ServerCredentials=} creds Server credential object to be used for + * SSL. Pass an insecure credentials object for an insecure port. */ Server.prototype.bind = function(port, creds) { if (this.started) { From 4c70baa1a16c15ec37200e096b8e7a60fbc254ee Mon Sep 17 00:00:00 2001 From: vjpai Date: Wed, 21 Oct 2015 07:50:18 -0700 Subject: [PATCH 003/103] Fix sign conversion issues here --- .../network_benchmarks/low_level_ping_pong.c | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/test/core/network_benchmarks/low_level_ping_pong.c b/test/core/network_benchmarks/low_level_ping_pong.c index 0ce4bd4b250..26699d0b602 100644 --- a/test/core/network_benchmarks/low_level_ping_pong.c +++ b/test/core/network_benchmarks/low_level_ping_pong.c @@ -82,7 +82,7 @@ typedef struct thread_args { /* Basic call to read() */ static int read_bytes(int fd, char *buf, size_t read_size, int spin) { size_t bytes_read = 0; - int err; + ssize_t err; do { err = read(fd, buf + bytes_read, read_size - bytes_read); if (err < 0) { @@ -96,7 +96,7 @@ static int read_bytes(int fd, char *buf, size_t read_size, int spin) { return -1; } } else { - bytes_read += err; + bytes_read += (size_t)err; } } while (bytes_read < read_size); return 0; @@ -115,6 +115,7 @@ static int poll_read_bytes(int fd, char *buf, size_t read_size, int spin) { struct pollfd pfd; size_t bytes_read = 0; int err; + ssize_t err2; pfd.fd = fd; pfd.events = POLLIN; @@ -132,13 +133,13 @@ static int poll_read_bytes(int fd, char *buf, size_t read_size, int spin) { GPR_ASSERT(err == 1); GPR_ASSERT(pfd.revents == POLLIN); do { - err = read(fd, buf + bytes_read, read_size - bytes_read); - } while (err < 0 && errno == EINTR); - if (err < 0 && errno != EAGAIN) { + err2 = read(fd, buf + bytes_read, read_size - bytes_read); + } while (err2 < 0 && errno == EINTR); + if (err2 < 0 && errno != EAGAIN) { gpr_log(GPR_ERROR, "Read failed: %s", strerror(errno)); return -1; } - bytes_read += err; + bytes_read += (size_t) err2; } while (bytes_read < read_size); return 0; } @@ -157,6 +158,7 @@ static int epoll_read_bytes(struct thread_args *args, char *buf, int spin) { struct epoll_event ev; size_t bytes_read = 0; int err; + ssize_t err2; size_t read_size = args->msg_size; do { @@ -172,10 +174,11 @@ static int epoll_read_bytes(struct thread_args *args, char *buf, int spin) { GPR_ASSERT(ev.data.fd == args->fds.read_fd); do { do { - err = read(args->fds.read_fd, buf + bytes_read, read_size - bytes_read); - } while (err < 0 && errno == EINTR); + err2 = read(args->fds.read_fd, buf + bytes_read, + read_size - bytes_read); + } while (err2 < 0 && errno == EINTR); if (errno == EAGAIN) break; - bytes_read += err; + bytes_read += (size_t) err2; /* TODO(klempner): This should really be doing an extra call after we are done to ensure we see an EAGAIN */ } while (bytes_read < read_size); @@ -199,7 +202,7 @@ static int epoll_read_bytes_spin(struct thread_args *args, char *buf) { */ static int blocking_write_bytes(struct thread_args *args, char *buf) { size_t bytes_written = 0; - int err; + ssize_t err; size_t write_size = args->msg_size; do { err = write(args->fds.write_fd, buf + bytes_written, @@ -212,7 +215,7 @@ static int blocking_write_bytes(struct thread_args *args, char *buf) { return -1; } } else { - bytes_written += err; + bytes_written += (size_t)err; } } while (bytes_written < write_size); return 0; @@ -373,7 +376,7 @@ error: return -1; } -static int connect_client(struct sockaddr *addr, int len) { +static int connect_client(struct sockaddr *addr, socklen_t len) { int fd = socket(addr->sa_family, SOCK_STREAM, 0); int err; if (fd < 0) { @@ -586,7 +589,7 @@ static int run_benchmark(char *socket_type, thread_args *client_args, return 0; } -static int run_all_benchmarks(int msg_size) { +static int run_all_benchmarks(size_t msg_size) { int error = 0; size_t i; for (i = 0; i < GPR_ARRAY_SIZE(test_strategies); ++i) { @@ -643,7 +646,7 @@ int main(int argc, char **argv) { if (read_strategy == NULL) { gpr_log(GPR_INFO, "No strategy specified, running all benchmarks"); - return run_all_benchmarks(msg_size); + return run_all_benchmarks((size_t)msg_size); } if (socket_type == NULL) { @@ -668,12 +671,12 @@ int main(int argc, char **argv) { client_args->read_bytes = test_strategy->read_strategy; client_args->write_bytes = blocking_write_bytes; client_args->setup = test_strategy->setup; - client_args->msg_size = msg_size; + client_args->msg_size = (size_t)msg_size; client_args->strategy_name = read_strategy; server_args->read_bytes = test_strategy->read_strategy; server_args->write_bytes = blocking_write_bytes; server_args->setup = test_strategy->setup; - server_args->msg_size = msg_size; + server_args->msg_size = (size_t)msg_size; server_args->strategy_name = read_strategy; error = run_benchmark(socket_type, client_args, server_args); From 52bfb2564f5507b62d2e18a78ebcb391f2613eb9 Mon Sep 17 00:00:00 2001 From: vjpai Date: Wed, 21 Oct 2015 07:50:49 -0700 Subject: [PATCH 004/103] Split qpstest.proto into two parts - one for performance stats and one for control. Eliminate the use of our own SimpleRequest and SimpleResponse and instead share the one from end2end testing --- Makefile | 47 +++++++++++++++------- build.yaml | 4 +- test/cpp/qps/client.h | 2 +- test/cpp/qps/client_async.cc | 2 +- test/cpp/qps/client_sync.cc | 2 +- test/cpp/qps/driver.cc | 2 +- test/cpp/qps/driver.h | 2 +- test/cpp/qps/histogram.h | 2 +- test/cpp/qps/perf_db.proto | 2 +- test/cpp/qps/qps_interarrival_test.cc | 2 +- test/cpp/qps/qps_worker.cc | 12 +++--- test/cpp/qps/report.h | 1 - test/cpp/qps/server.h | 2 +- test/cpp/qps/server_async.cc | 2 +- test/cpp/qps/server_sync.cc | 2 +- tools/run_tests/sources_and_headers.json | 8 +++- vsprojects/vcxproj/qps/qps.vcxproj | 24 +++++++++-- vsprojects/vcxproj/qps/qps.vcxproj.filters | 8 +++- 18 files changed, 85 insertions(+), 41 deletions(-) diff --git a/Makefile b/Makefile index 044f17b492f..86f3fa90c92 100644 --- a/Makefile +++ b/Makefile @@ -3586,15 +3586,30 @@ $(GENDIR)/test/proto/messages.grpc.pb.cc: test/proto/messages.proto $(PROTOBUF_D endif ifeq ($(NO_PROTOC),true) -$(GENDIR)/test/proto/qpstest.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/qpstest.grpc.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/perf_control.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/perf_control.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/qpstest.pb.cc: test/proto/qpstest.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/perf_control.pb.cc: test/proto/perf_control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/qpstest.grpc.pb.cc: test/proto/qpstest.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/perf_control.grpc.pb.cc: test/proto/perf_control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< +endif + +ifeq ($(NO_PROTOC),true) +$(GENDIR)/test/proto/perf_stats.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/perf_stats.grpc.pb.cc: protoc_dep_error +else +$(GENDIR)/test/proto/perf_stats.pb.cc: test/proto/perf_stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating protobuf CC file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< + +$(GENDIR)/test/proto/perf_stats.grpc.pb.cc: test/proto/perf_stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< @@ -5189,7 +5204,9 @@ $(OBJDIR)/$(CONFIG)/test/cpp/interop/server.o: $(GENDIR)/test/proto/empty.pb.cc LIBQPS_SRC = \ - $(GENDIR)/test/proto/qpstest.pb.cc $(GENDIR)/test/proto/qpstest.grpc.pb.cc \ + $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \ + $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc \ + $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc \ $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc \ test/cpp/qps/client_async.cc \ test/cpp/qps/client_sync.cc \ @@ -5244,16 +5261,16 @@ ifneq ($(NO_DEPS),true) -include $(LIBQPS_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/test/proto/qpstest.pb.cc $(GENDIR)/test/proto/qpstest.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/test/proto/qpstest.pb.cc $(GENDIR)/test/proto/qpstest.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/test/proto/qpstest.pb.cc $(GENDIR)/test/proto/qpstest.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/test/proto/qpstest.pb.cc $(GENDIR)/test/proto/qpstest.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/test/proto/qpstest.pb.cc $(GENDIR)/test/proto/qpstest.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/test/proto/qpstest.pb.cc $(GENDIR)/test/proto/qpstest.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/test/proto/qpstest.pb.cc $(GENDIR)/test/proto/qpstest.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/test/proto/qpstest.pb.cc $(GENDIR)/test/proto/qpstest.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/timer.o: $(GENDIR)/test/proto/qpstest.pb.cc $(GENDIR)/test/proto/qpstest.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/test/proto/qpstest.pb.cc $(GENDIR)/test/proto/qpstest.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/timer.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc LIBGRPC_CSHARP_EXT_SRC = \ diff --git a/build.yaml b/build.yaml index 7d2dac5ab64..a0f3eb3d183 100644 --- a/build.yaml +++ b/build.yaml @@ -749,7 +749,9 @@ libs: - test/cpp/qps/timer.h - test/cpp/util/benchmark_config.h src: - - test/proto/qpstest.proto + - test/proto/messages.proto + - test/proto/perf_control.proto + - test/proto/perf_stats.proto - test/cpp/qps/perf_db.proto - test/cpp/qps/client_async.cc - test/cpp/qps/client_sync.cc diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h index cd8b34f65b3..a7b246e5d4d 100644 --- a/test/cpp/qps/client.h +++ b/test/cpp/qps/client.h @@ -40,7 +40,7 @@ #include "test/cpp/qps/histogram.h" #include "test/cpp/qps/interarrival.h" #include "test/cpp/qps/timer.h" -#include "test/proto/qpstest.grpc.pb.h" +#include "test/proto/perf_control.grpc.pb.h" #include "test/cpp/util/create_test_channel.h" namespace grpc { diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc index 9ed42b7db63..98be6395da8 100644 --- a/test/cpp/qps/client_async.cc +++ b/test/cpp/qps/client_async.cc @@ -48,7 +48,7 @@ #include #include -#include "test/proto/qpstest.grpc.pb.h" +#include "test/proto/perf_control.grpc.pb.h" #include "test/cpp/qps/timer.h" #include "test/cpp/qps/client.h" #include "test/cpp/util/create_test_channel.h" diff --git a/test/cpp/qps/client_sync.cc b/test/cpp/qps/client_sync.cc index ed4134c7436..320c2b2d551 100644 --- a/test/cpp/qps/client_sync.cc +++ b/test/cpp/qps/client_sync.cc @@ -54,7 +54,7 @@ #include "test/cpp/util/create_test_channel.h" #include "test/cpp/qps/client.h" -#include "test/proto/qpstest.grpc.pb.h" +#include "test/proto/perf_control.grpc.pb.h" #include "test/cpp/qps/histogram.h" #include "test/cpp/qps/interarrival.h" #include "test/cpp/qps/timer.h" diff --git a/test/cpp/qps/driver.cc b/test/cpp/qps/driver.cc index dd5c4f4f73f..500cc510188 100644 --- a/test/cpp/qps/driver.cc +++ b/test/cpp/qps/driver.cc @@ -196,7 +196,7 @@ std::unique_ptr RunScenario( result_client_config.set_host(workers[i + num_servers]); *args.mutable_setup() = client_config; clients[i].stream = - clients[i].stub->RunTest(runsc::AllocContext(&contexts, deadline)); + clients[i].stub->RunClient(runsc::AllocContext(&contexts, deadline)); GPR_ASSERT(clients[i].stream->Write(args)); ClientStatus init_status; GPR_ASSERT(clients[i].stream->Read(&init_status)); diff --git a/test/cpp/qps/driver.h b/test/cpp/qps/driver.h index 6116aa656a9..89e584043de 100644 --- a/test/cpp/qps/driver.h +++ b/test/cpp/qps/driver.h @@ -37,7 +37,7 @@ #include #include "test/cpp/qps/histogram.h" -#include "test/proto/qpstest.grpc.pb.h" +#include "test/proto/perf_control.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/qps/histogram.h b/test/cpp/qps/histogram.h index 1151cca87c5..7f77aa910ff 100644 --- a/test/cpp/qps/histogram.h +++ b/test/cpp/qps/histogram.h @@ -35,7 +35,7 @@ #define TEST_QPS_HISTOGRAM_H #include -#include "test/proto/qpstest.grpc.pb.h" +#include "test/proto/perf_stats.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/qps/perf_db.proto b/test/cpp/qps/perf_db.proto index 7ae5cfe86e2..0d9aec74cd9 100644 --- a/test/cpp/qps/perf_db.proto +++ b/test/cpp/qps/perf_db.proto @@ -29,7 +29,7 @@ syntax = "proto3"; -import "test/proto/qpstest.proto"; +import "test/proto/perf_control.proto"; package grpc.testing; diff --git a/test/cpp/qps/qps_interarrival_test.cc b/test/cpp/qps/qps_interarrival_test.cc index a7979e61878..ccda28f09ae 100644 --- a/test/cpp/qps/qps_interarrival_test.cc +++ b/test/cpp/qps/qps_interarrival_test.cc @@ -42,7 +42,7 @@ using grpc::testing::RandomDist; using grpc::testing::InterarrivalTimer; -void RunTest(RandomDist &&r, int threads, std::string title) { +static 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_worker.cc b/test/cpp/qps/qps_worker.cc index 4ce77f366de..f60d5565146 100644 --- a/test/cpp/qps/qps_worker.cc +++ b/test/cpp/qps/qps_worker.cc @@ -52,7 +52,7 @@ #include #include "test/core/util/grpc_profiler.h" -#include "test/proto/qpstest.pb.h" +#include "test/proto/perf_control.pb.h" #include "test/cpp/qps/client.h" #include "test/cpp/qps/server.h" #include "test/cpp/util/create_test_channel.h" @@ -94,8 +94,8 @@ class WorkerImpl GRPC_FINAL : public Worker::Service { explicit WorkerImpl(int server_port) : server_port_(server_port), acquired_(false) {} - Status RunTest(ServerContext* ctx, - ServerReaderWriter* stream) + Status RunClient(ServerContext* ctx, + ServerReaderWriter* stream) GRPC_OVERRIDE { InstanceGuard g(this); if (!g.Acquired()) { @@ -103,7 +103,7 @@ class WorkerImpl GRPC_FINAL : public Worker::Service { } grpc_profiler_start("qps_client.prof"); - Status ret = RunTestBody(ctx, stream); + Status ret = RunClientBody(ctx, stream); grpc_profiler_stop(); return ret; } @@ -154,8 +154,8 @@ class WorkerImpl GRPC_FINAL : public Worker::Service { acquired_ = false; } - Status RunTestBody(ServerContext* ctx, - ServerReaderWriter* stream) { + Status RunClientBody(ServerContext* ctx, + ServerReaderWriter* stream) { ClientArgs args; if (!stream->Read(&args)) { return Status(StatusCode::INVALID_ARGUMENT, ""); diff --git a/test/cpp/qps/report.h b/test/cpp/qps/report.h index 00d12369d54..78779231d38 100644 --- a/test/cpp/qps/report.h +++ b/test/cpp/qps/report.h @@ -41,7 +41,6 @@ #include #include "test/cpp/qps/driver.h" -#include "test/proto/qpstest.grpc.pb.h" #include "test/cpp/qps/perf_db_client.h" namespace grpc { diff --git a/test/cpp/qps/server.h b/test/cpp/qps/server.h index e48e873dc33..0135138416d 100644 --- a/test/cpp/qps/server.h +++ b/test/cpp/qps/server.h @@ -35,7 +35,7 @@ #define TEST_QPS_SERVER_H #include "test/cpp/qps/timer.h" -#include "test/proto/qpstest.grpc.pb.h" +#include "test/proto/perf_control.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc index 98fa9c53e25..64c260b8349 100644 --- a/test/cpp/qps/server_async.cc +++ b/test/cpp/qps/server_async.cc @@ -49,7 +49,7 @@ #include #include -#include "test/proto/qpstest.grpc.pb.h" +#include "test/proto/perf_control.grpc.pb.h" #include "test/cpp/qps/server.h" namespace grpc { diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc index b760ef63ec5..b53dbce56eb 100644 --- a/test/cpp/qps/server_sync.cc +++ b/test/cpp/qps/server_sync.cc @@ -43,7 +43,7 @@ #include #include -#include "test/proto/qpstest.grpc.pb.h" +#include "test/proto/perf_control.grpc.pb.h" #include "test/cpp/qps/server.h" #include "test/cpp/qps/timer.h" diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 264e7f70540..181b74eddeb 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -13656,8 +13656,12 @@ "test/cpp/qps/stats.h", "test/cpp/qps/timer.h", "test/cpp/util/benchmark_config.h", - "test/proto/qpstest.grpc.pb.h", - "test/proto/qpstest.pb.h" + "test/proto/messages.grpc.pb.h", + "test/proto/messages.pb.h", + "test/proto/perf_control.grpc.pb.h", + "test/proto/perf_control.pb.h", + "test/proto/perf_stats.grpc.pb.h", + "test/proto/perf_stats.pb.h" ], "language": "c++", "name": "qps", diff --git a/vsprojects/vcxproj/qps/qps.vcxproj b/vsprojects/vcxproj/qps/qps.vcxproj index b361b1b601b..d5aab3725a7 100644 --- a/vsprojects/vcxproj/qps/qps.vcxproj +++ b/vsprojects/vcxproj/qps/qps.vcxproj @@ -147,13 +147,29 @@ - + - + - + - + + + + + + + + + + + + + + + + + diff --git a/vsprojects/vcxproj/qps/qps.vcxproj.filters b/vsprojects/vcxproj/qps/qps.vcxproj.filters index cffb5ff118b..fcf737b6ab7 100644 --- a/vsprojects/vcxproj/qps/qps.vcxproj.filters +++ b/vsprojects/vcxproj/qps/qps.vcxproj.filters @@ -1,7 +1,13 @@ - + + test\proto + + + test\proto + + test\proto From fe8bc196b764e369820e67bbae719a8ddcd46faa Mon Sep 17 00:00:00 2001 From: vjpai Date: Wed, 21 Oct 2015 09:27:19 -0700 Subject: [PATCH 005/103] Oops - forgot to add the protos! --- test/proto/perf_control.proto | 154 ++++++++++++++++++++++++++++++++++ test/proto/perf_stats.proto | 62 ++++++++++++++ 2 files changed, 216 insertions(+) create mode 100644 test/proto/perf_control.proto create mode 100644 test/proto/perf_stats.proto diff --git a/test/proto/perf_control.proto b/test/proto/perf_control.proto new file mode 100644 index 00000000000..8f113e4609c --- /dev/null +++ b/test/proto/perf_control.proto @@ -0,0 +1,154 @@ +// 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. + +// An integration test service that covers all the method signature permutations +// of unary/streaming requests/responses. +syntax = "proto3"; + +import "test/proto/messages.proto"; +import "test/proto/perf_stats.proto"; + +package grpc.testing; + +enum ClientType { + SYNCHRONOUS_CLIENT = 0; + ASYNC_CLIENT = 1; +} + +enum ServerType { + SYNCHRONOUS_SERVER = 0; + ASYNC_SERVER = 1; +} + +enum RpcType { + UNARY = 0; + STREAMING = 1; +} + +enum LoadType { + CLOSED_LOOP = 0; + POISSON = 1; + UNIFORM = 2; + DETERMINISTIC = 3; + PARETO = 4; +} + +message PoissonParams { + double offered_load = 1; +} + +message UniformParams { + double interarrival_lo = 1; + double interarrival_hi = 2; +} + +message DeterministicParams { + double offered_load = 1; +} + +message ParetoParams { + double interarrival_base = 1; + double alpha = 2; +} + +message LoadParams { + oneof load { + PoissonParams poisson = 1; + UniformParams uniform = 2; + DeterministicParams determ = 3; + ParetoParams pareto = 4; + }; +} + +message ClientConfig { + repeated string server_targets = 1; + ClientType client_type = 2; + bool enable_ssl = 3; + int32 outstanding_rpcs_per_channel = 4; + int32 client_channels = 5; + int32 payload_size = 6; + // only for async client: + int32 async_client_threads = 7; + RpcType rpc_type = 8; + string host = 9; + LoadType load_type = 10; + LoadParams load_params = 11; +} + +message ClientStatus { + ClientStats stats = 1; +} + +// Request current stats +message Mark { +} + +message ClientArgs { + oneof argtype { + ClientConfig setup = 1; + Mark mark = 2; + } +} + +message ServerConfig { + ServerType server_type = 1; + int32 threads = 2; + bool enable_ssl = 3; + string host = 4; +} + +message ServerArgs { + oneof argtype { + ServerConfig setup = 1; + Mark mark = 2; + } +} + +message ServerStatus { + ServerStats stats = 1; + int32 port = 2; +} + +service TestService { + // One request followed by one response. + // The server returns the client payload as-is. + rpc UnaryCall(SimpleRequest) returns (SimpleResponse); + + // One request followed by one response. + // The server returns the client payload as-is. + rpc StreamingCall(stream SimpleRequest) returns (stream SimpleResponse); +} + +service Worker { + // Start server with specified workload + rpc RunServer(stream ServerArgs) returns (stream ServerStatus); + + // Start client with specified workload + rpc RunClient(stream ClientArgs) returns (stream ClientStatus); +} diff --git a/test/proto/perf_stats.proto b/test/proto/perf_stats.proto new file mode 100644 index 00000000000..0a98465f3d9 --- /dev/null +++ b/test/proto/perf_stats.proto @@ -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. + +// An integration test service that covers all the method signature permutations +// of unary/streaming requests/responses. +syntax = "proto3"; + +package grpc.testing; + +message ServerStats { + // wall clock time + double time_elapsed = 1; + + // user time used by the server process and threads + double time_user = 2; + + // server time used by the server process and all threads + double time_system = 3; +} + +message HistogramData { + repeated uint32 bucket = 1; + double min_seen = 2; + double max_seen = 3; + double sum = 4; + double sum_of_squares = 5; + double count = 6; +} + +message ClientStats { + HistogramData latencies = 1; + double time_elapsed = 2; + double time_user = 3; + double time_system = 4; +} + From 4870de2367adde1c4089f8af14f9fd5d74520e63 Mon Sep 17 00:00:00 2001 From: Vijay Pai Date: Wed, 21 Oct 2015 09:29:41 -0700 Subject: [PATCH 006/103] Fix more shadow and conversion warnings. --- .../network_benchmarks/low_level_ping_pong.c | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/test/core/network_benchmarks/low_level_ping_pong.c b/test/core/network_benchmarks/low_level_ping_pong.c index 26699d0b602..7a2d894481b 100644 --- a/test/core/network_benchmarks/low_level_ping_pong.c +++ b/test/core/network_benchmarks/low_level_ping_pong.c @@ -300,7 +300,7 @@ static void print_histogram(gpr_histogram *histogram) { static double now(void) { gpr_timespec tv = gpr_now(GPR_CLOCK_REALTIME); - return 1e9 * tv.tv_sec + tv.tv_nsec; + return 1e9 * (double)tv.tv_sec + (double)tv.tv_nsec; } static void client_thread(thread_args *args) { @@ -593,23 +593,23 @@ static int run_all_benchmarks(size_t msg_size) { int error = 0; size_t i; for (i = 0; i < GPR_ARRAY_SIZE(test_strategies); ++i) { - test_strategy *test_strategy = &test_strategies[i]; + test_strategy *strategy = &test_strategies[i]; size_t j; for (j = 0; j < GPR_ARRAY_SIZE(socket_types); ++j) { thread_args *client_args = malloc(sizeof(thread_args)); thread_args *server_args = malloc(sizeof(thread_args)); char *socket_type = socket_types[j]; - client_args->read_bytes = test_strategy->read_strategy; + client_args->read_bytes = strategy->read_strategy; client_args->write_bytes = blocking_write_bytes; - client_args->setup = test_strategy->setup; + client_args->setup = strategy->setup; client_args->msg_size = msg_size; - client_args->strategy_name = test_strategy->name; - server_args->read_bytes = test_strategy->read_strategy; + client_args->strategy_name = strategy->name; + server_args->read_bytes = strategy->read_strategy; server_args->write_bytes = blocking_write_bytes; - server_args->setup = test_strategy->setup; + server_args->setup = strategy->setup; server_args->msg_size = msg_size; - server_args->strategy_name = test_strategy->name; + server_args->strategy_name = strategy->name; error = run_benchmark(socket_type, client_args, server_args); if (error < 0) { return error; @@ -626,7 +626,7 @@ int main(int argc, char **argv) { char *read_strategy = NULL; char *socket_type = NULL; size_t i; - const test_strategy *test_strategy = NULL; + const test_strategy *strategy = NULL; int error = 0; gpr_cmdline *cmdline = @@ -660,22 +660,22 @@ int main(int argc, char **argv) { for (i = 0; i < GPR_ARRAY_SIZE(test_strategies); ++i) { if (strcmp(test_strategies[i].name, read_strategy) == 0) { - test_strategy = &test_strategies[i]; + strategy = &test_strategies[i]; } } - if (test_strategy == NULL) { + if (strategy == NULL) { fprintf(stderr, "Invalid read strategy %s\n", read_strategy); return -1; } - client_args->read_bytes = test_strategy->read_strategy; + client_args->read_bytes = strategy->read_strategy; client_args->write_bytes = blocking_write_bytes; - client_args->setup = test_strategy->setup; + client_args->setup = strategy->setup; client_args->msg_size = (size_t)msg_size; client_args->strategy_name = read_strategy; - server_args->read_bytes = test_strategy->read_strategy; + server_args->read_bytes = strategy->read_strategy; server_args->write_bytes = blocking_write_bytes; - server_args->setup = test_strategy->setup; + server_args->setup = strategy->setup; server_args->msg_size = (size_t)msg_size; server_args->strategy_name = read_strategy; From 707e320ca76126a58709699a0ceb677dae09a912 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Fri, 23 Oct 2015 12:30:35 -0700 Subject: [PATCH 007/103] Update auth sample to beta version of gRPC --- examples/objective-c/auth_sample/MakeRPCViewController.m | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/examples/objective-c/auth_sample/MakeRPCViewController.m b/examples/objective-c/auth_sample/MakeRPCViewController.m index 366bc9deea9..4fd23dc1448 100644 --- a/examples/objective-c/auth_sample/MakeRPCViewController.m +++ b/examples/objective-c/auth_sample/MakeRPCViewController.m @@ -35,7 +35,6 @@ #import #import -#include #import NSString * const kTestScope = @"https://www.googleapis.com/auth/xapi.zoo"; @@ -49,10 +48,10 @@ static NSString * const kTestHostAddress = @"grpc-test.sandbox.google.com"; @implementation NSError (AuthSample) - (NSString *)UIDescription { - if (self.code == GRPC_STATUS_UNAUTHENTICATED) { + if (self.code == GRPCErrorCodeUnauthenticated) { // Authentication error. OAuth2 specifies we'll receive a challenge header. - // |userInfo[kGRPCStatusMetadataKey]| is the dictionary of response metadata. - NSString *challengeHeader = self.userInfo[kGRPCStatusMetadataKey][@"www-authenticate"] ?: @""; + // |userInfo[kGRPCHeadersKey]| is the dictionary of response headers. + NSString *challengeHeader = self.userInfo[kGRPCHeadersKey][@"www-authenticate"] ?: @""; return [@"Invalid credentials. Server challenge:\n" stringByAppendingString:challengeHeader]; } else { // Any other error. @@ -89,7 +88,7 @@ static NSString * const kTestHostAddress = @"grpc-test.sandbox.google.com"; // Set the access token to be used. NSString *accessToken = GIDSignIn.sharedInstance.currentUser.authentication.accessToken; - call.requestMetadata[@"Authorization"] = [@"Bearer " stringByAppendingString:accessToken]; + call.requestHeaders[@"Authorization"] = [@"Bearer " stringByAppendingString:accessToken]; // Start the RPC. [call start]; From 739c07896b119c53b5bcef5d58df56ad3b730ee5 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Fri, 23 Oct 2015 13:25:58 -0700 Subject: [PATCH 008/103] Update version requirements and point to local podspecs --- .../objective-c/auth_sample/AuthTestService.podspec | 10 +++++----- examples/objective-c/auth_sample/Podfile | 3 +++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/examples/objective-c/auth_sample/AuthTestService.podspec b/examples/objective-c/auth_sample/AuthTestService.podspec index 9f2a2cc361b..9521d4971a8 100644 --- a/examples/objective-c/auth_sample/AuthTestService.podspec +++ b/examples/objective-c/auth_sample/AuthTestService.podspec @@ -3,13 +3,13 @@ Pod::Spec.new do |s| s.version = "0.0.1" s.license = "New BSD" - s.ios.deployment_target = "6.0" - s.osx.deployment_target = "10.8" + s.ios.deployment_target = "7.1" + s.osx.deployment_target = "10.9" # Base directory where the .proto files are. src = "../../protos" - # Directory where the generated files will be place. + # Directory where the generated files will be placed. dir = "Pods/" + s.name # Run protoc with the Objective-C and gRPC plugins to generate protocol messages and gRPC clients. @@ -22,14 +22,14 @@ Pod::Spec.new do |s| ms.source_files = "#{dir}/*.pbobjc.{h,m}", "#{dir}/**/*.pbobjc.{h,m}" ms.header_mappings_dir = dir ms.requires_arc = false - ms.dependency "Protobuf", "~> 3.0.0-alpha-3" + ms.dependency "Protobuf", "~> 3.0.0-alpha-4" end s.subspec "Services" do |ss| ss.source_files = "#{dir}/*.pbrpc.{h,m}", "#{dir}/**/*.pbrpc.{h,m}" ss.header_mappings_dir = dir ss.requires_arc = true - ss.dependency "gRPC", "~> 0.6" + ss.dependency "gRPC", "~> 0.11" ss.dependency "#{s.name}/Messages" end end diff --git a/examples/objective-c/auth_sample/Podfile b/examples/objective-c/auth_sample/Podfile index dd4fd558c0e..ea70511dc6c 100644 --- a/examples/objective-c/auth_sample/Podfile +++ b/examples/objective-c/auth_sample/Podfile @@ -1,6 +1,9 @@ source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' +pod 'Protobuf', :path => "../../../third_party/protobuf" +pod 'gRPC', :path => "../../.." + target 'AuthSample' do # Depend on the generated AuthTestService library. pod 'AuthTestService', :path => '.' From 0f5739be43d40b2b657e02383dc9e9caab664de2 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Fri, 23 Oct 2015 17:53:54 -0700 Subject: [PATCH 009/103] Mark WaitForInitialMetadata as override, for Clang --- include/grpc++/support/sync_stream.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/grpc++/support/sync_stream.h b/include/grpc++/support/sync_stream.h index 514363338d8..daf4e367aeb 100644 --- a/include/grpc++/support/sync_stream.h +++ b/include/grpc++/support/sync_stream.h @@ -131,7 +131,7 @@ class ClientReader GRPC_FINAL : public ClientReaderInterface { cq_.Pluck(&ops); } - void WaitForInitialMetadata() { + void WaitForInitialMetadata() GRPC_OVERRIDE { GPR_ASSERT(!context_->initial_metadata_received_); CallOpSet ops; @@ -257,7 +257,7 @@ class ClientReaderWriter GRPC_FINAL : public ClientReaderWriterInterface { cq_.Pluck(&ops); } - void WaitForInitialMetadata() { + void WaitForInitialMetadata() GRPC_OVERRIDE { GPR_ASSERT(!context_->initial_metadata_received_); CallOpSet ops; From ee4a13e02b1bf73509331ba28b0b7af36c382a0c Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Sun, 25 Oct 2015 21:45:22 -0700 Subject: [PATCH 010/103] Point RouteGuide pods to local sources; update requirements --- examples/objective-c/route_guide/Podfile | 2 ++ examples/objective-c/route_guide/RouteGuide.podspec | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/examples/objective-c/route_guide/Podfile b/examples/objective-c/route_guide/Podfile index a97f4146858..efa46bba4fa 100644 --- a/examples/objective-c/route_guide/Podfile +++ b/examples/objective-c/route_guide/Podfile @@ -2,6 +2,8 @@ source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' target 'RouteGuideClient' do + pod 'Protobuf', :path => "../../../third_party/protobuf" + pod 'gRPC', :path => "../../.." # Depend on the generated RouteGuide library. pod 'RouteGuide', :path => '.' end diff --git a/examples/objective-c/route_guide/RouteGuide.podspec b/examples/objective-c/route_guide/RouteGuide.podspec index 7b99a6c6a77..e00f827e3a4 100644 --- a/examples/objective-c/route_guide/RouteGuide.podspec +++ b/examples/objective-c/route_guide/RouteGuide.podspec @@ -3,13 +3,13 @@ Pod::Spec.new do |s| s.version = "0.0.1" s.license = "New BSD" - s.ios.deployment_target = "6.0" - s.osx.deployment_target = "10.8" + s.ios.deployment_target = "7.1" + s.osx.deployment_target = "10.9" # Base directory where the .proto files are. src = "../../protos" - # Directory where the generated files will be place. + # Directory where the generated files will be placed. dir = "Pods/" + s.name # Run protoc with the Objective-C and gRPC plugins to generate protocol messages and gRPC clients. @@ -22,14 +22,14 @@ Pod::Spec.new do |s| ms.source_files = "#{dir}/*.pbobjc.{h,m}", "#{dir}/**/*.pbobjc.{h,m}" ms.header_mappings_dir = dir ms.requires_arc = false - ms.dependency "Protobuf", "~> 3.0.0-alpha-3" + ms.dependency "Protobuf", "~> 3.0.0-alpha-4" end s.subspec "Services" do |ss| ss.source_files = "#{dir}/*.pbrpc.{h,m}", "#{dir}/**/*.pbrpc.{h,m}" ss.header_mappings_dir = dir ss.requires_arc = true - ss.dependency "gRPC", "~> 0.6" + ss.dependency "gRPC", "~> 0.11" ss.dependency "#{s.name}/Messages" end end From a6da17eeebcfa7960d322f7ab58be251204089e1 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Sun, 18 Oct 2015 15:30:30 -0700 Subject: [PATCH 011/103] Test file: GRPCCall.h --- src/objective-c/GRPCClient/GRPCCall.h | 236 +++++++++++++++----------- 1 file changed, 137 insertions(+), 99 deletions(-) diff --git a/src/objective-c/GRPCClient/GRPCCall.h b/src/objective-c/GRPCClient/GRPCCall.h index 35f7e16af70..86f4149c43e 100644 --- a/src/objective-c/GRPCClient/GRPCCall.h +++ b/src/objective-c/GRPCClient/GRPCCall.h @@ -31,117 +31,145 @@ * */ -// The gRPC protocol is an RPC protocol on top of HTTP2. -// -// While the most common type of RPC receives only one request message and returns only one response -// message, the protocol also supports RPCs that return multiple individual messages in a streaming -// fashion, RPCs that accept a stream of request messages, or RPCs with both streaming requests and -// responses. -// -// Conceptually, each gRPC call consists of a bidirectional stream of binary messages, with RPCs of -// the "non-streaming type" sending only one message in the corresponding direction (the protocol -// doesn't make any distinction). -// -// Each RPC uses a different HTTP2 stream, and thus multiple simultaneous RPCs can be multiplexed -// transparently on the same TCP connection. +/** + * The gRPC protocol is an RPC protocol on top of HTTP2. + * + * While the most common type of RPC receives only one request message and returns only one response + * message, the protocol also supports RPCs that return multiple individual messages in a streaming + * fashion, RPCs that accept a stream of request messages, or RPCs with both streaming requests and + * responses. + * + * Conceptually, each gRPC call consists of a bidirectional stream of binary messages, with RPCs of + * the "non-streaming type" sending only one message in the corresponding direction (the protocol + * doesn't make any distinction). + * + * Each RPC uses a different HTTP2 stream, and thus multiple simultaneous RPCs can be multiplexed + * transparently on the same TCP connection. + */ #import #import #pragma mark gRPC errors -// Domain of NSError objects produced by gRPC. +/** Domain of NSError objects produced by gRPC. */ extern NSString *const kGRPCErrorDomain; -// gRPC error codes. -// Note that a few of these are never produced by the gRPC libraries, but are of general utility for -// server applications to produce. +/** + * gRPC error codes. + * Note that a few of these are never produced by the gRPC libraries, but are of general utility for + * server applications to produce. + */ typedef NS_ENUM(NSUInteger, GRPCErrorCode) { // The operation was cancelled (typically by the caller). GRPCErrorCodeCancelled = 1, - // Unknown error. Errors raised by APIs that do not return enough error information may be - // converted to this error. + /** + * Unknown error. Errors raised by APIs that do not return enough error information may be + * converted to this error. + */ GRPCErrorCodeUnknown = 2, - // The 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 - // server (e.g., a malformed file name). + /** + * The 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 + * server (e.g., a malformed file name). + */ GRPCErrorCodeInvalidArgument = 3, - // Deadline expired before operation could complete. For operations that change the state of the - // server, this error may be returned even if the operation has completed successfully. For - // example, a successful response from the server could have been delayed long enough for the - // deadline to expire. + /** + * Deadline expired before operation could complete. For operations that change the state of the + * server, this error may be returned even if the operation has completed successfully. For + * example, a successful response from the server could have been delayed long enough for the + * deadline to expire. + */ GRPCErrorCodeDeadlineExceeded = 4, - // Some requested entity (e.g., file or directory) was not found. + /** Some requested entity (e.g., file or directory) was not found. */ GRPCErrorCodeNotFound = 5, - // Some entity that we attempted to create (e.g., file or directory) already exists. + /** Some entity that we attempted to create (e.g., file or directory) already exists. */ GRPCErrorCodeAlreadyExists = 6, - // The caller does not have permission to execute the specified operation. PERMISSION_DENIED isn't - // used for rejections caused by exhausting some resource (RESOURCE_EXHAUSTED is used instead for - // those errors). PERMISSION_DENIED doesn't indicate a failure to identify the caller - // (UNAUTHENTICATED is used instead for those errors). + /** + * The caller does not have permission to execute the specified operation. PERMISSION_DENIED isn't + * used for rejections caused by exhausting some resource (RESOURCE_EXHAUSTED is used instead for + * those errors). PERMISSION_DENIED doesn't indicate a failure to identify the caller + * (UNAUTHENTICATED is used instead for those errors). + */ GRPCErrorCodePermissionDenied = 7, - // The request does not have valid authentication credentials for the operation (e.g. the caller's - // identity can't be verified). + /** + * The request does not have valid authentication credentials for the operation (e.g. the caller's + * identity can't be verified). + */ GRPCErrorCodeUnauthenticated = 16, - // Some resource has been exhausted, perhaps a per-user quota. + /** Some resource has been exhausted, perhaps a per-user quota. */ GRPCErrorCodeResourceExhausted = 8, - // The RPC was rejected because the server is not in a state required for the procedure's - // execution. For example, a directory to be deleted may be non-empty, etc. - // The client should not retry until the server state has been explicitly fixed (e.g. by - // performing another RPC). The details depend on the service being called, and should be found in - // the NSError's userInfo. + /** + * The RPC was rejected because the server is not in a state required for the procedure's + * execution. For example, a directory to be deleted may be non-empty, etc. + * The client should not retry until the server state has been explicitly fixed (e.g. by + * performing another RPC). The details depend on the service being called, and should be found in + * the NSError's userInfo. + */ GRPCErrorCodeFailedPrecondition = 9, - // The RPC was aborted, typically due to a concurrency issue like sequencer check failures, - // transaction aborts, etc. The client should retry at a higher-level (e.g., restarting a read- - // modify-write sequence). + /** + * The RPC was aborted, typically due to a concurrency issue like sequencer check failures, + * transaction aborts, etc. The client should retry at a higher-level (e.g., restarting a read- + * modify-write sequence). + */ GRPCErrorCodeAborted = 10, - // The RPC was attempted past the valid range. E.g., enumerating past the end of a list. - // Unlike INVALID_ARGUMENT, this error indicates a problem that may be fixed if the system state - // changes. For example, an RPC to get elements of a list will generate INVALID_ARGUMENT if asked - // to return the element at a negative index, but it will generate OUT_OF_RANGE if asked to return - // the element at an index past the current size of the list. + /** + * The RPC was attempted past the valid range. E.g., enumerating past the end of a list. + * Unlike INVALID_ARGUMENT, this error indicates a problem that may be fixed if the system state + * changes. For example, an RPC to get elements of a list will generate INVALID_ARGUMENT if asked + * to return the element at a negative index, but it will generate OUT_OF_RANGE if asked to return + * the element at an index past the current size of the list. + */ GRPCErrorCodeOutOfRange = 11, - // The procedure is not implemented or not supported/enabled in this server. + /** The procedure is not implemented or not supported/enabled in this server. */ GRPCErrorCodeUnimplemented = 12, - // Internal error. Means some invariant expected by the server application or the gRPC library has - // been broken. + /** + * Internal error. Means some invariant expected by the server application or the gRPC library has + * been broken. + */ GRPCErrorCodeInternal = 13, - // The server is currently unavailable. This is most likely a transient condition and may be - // corrected by retrying with a backoff. + /** + * The server is currently unavailable. This is most likely a transient condition and may be + * corrected by retrying with a backoff. + */ GRPCErrorCodeUnavailable = 14, - // Unrecoverable data loss or corruption. + /** Unrecoverable data loss or corruption. */ GRPCErrorCodeDataLoss = 15, }; -// Keys used in |NSError|'s |userInfo| dictionary to store the response headers and trailers sent by -// the server. +/** + * Keys used in |NSError|'s |userInfo| dictionary to store the response headers and trailers sent by + * the server. + */ extern id const kGRPCHeadersKey; extern id const kGRPCTrailersKey; #pragma mark GRPCCall -// The container of the request headers of an RPC conforms to this protocol, which is a subset of -// NSMutableDictionary's interface. It will become a NSMutableDictionary later on. -// The keys of this container are the header names, which per the HTTP standard are case- -// insensitive. They are stored in lowercase (which is how HTTP/2 mandates them on the wire), and -// can only consist of ASCII characters. -// A header value is a NSString object (with only ASCII characters), unless the header name has the -// suffix "-bin", in which case the value has to be a NSData object. +/** + * The container of the request headers of an RPC conforms to this protocol, which is a subset of + * NSMutableDictionary's interface. It will become a NSMutableDictionary later on. + * The keys of this container are the header names, which per the HTTP standard are case- + * insensitive. They are stored in lowercase (which is how HTTP/2 mandates them on the wire), and + * can only consist of ASCII characters. + * A header value is a NSString object (with only ASCII characters), unless the header name has the + * suffix "-bin", in which case the value has to be a NSData object. + */ @protocol GRPCRequestHeaders @property(nonatomic, readonly) NSUInteger count; @@ -154,54 +182,64 @@ extern id const kGRPCTrailersKey; @end -// Represents a single gRPC remote call. +/** Represents a single gRPC remote call. */ @interface GRPCCall : GRXWriter -// These HTTP headers will be passed to the server as part of this call. Each HTTP header is a -// name-value pair with string names and either string or binary values. -// -// The passed dictionary has to use NSString keys, corresponding to the header names. The value -// associated to each can be a NSString object or a NSData object. E.g.: -// -// call.requestHeaders = @{@"authorization": @"Bearer ..."}; -// -// call.requestHeaders[@"my-header-bin"] = someData; -// -// After the call is started, trying to modify this property is an error. -// -// The property is initialized to an empty NSMutableDictionary. +/** + * These HTTP headers will be passed to the server as part of this call. Each HTTP header is a + * name-value pair with string names and either string or binary values. + * + * The passed dictionary has to use NSString keys, corresponding to the header names. The value + * associated to each can be a NSString object or a NSData object. E.g.: + * + * call.requestHeaders = @{@"authorization": @"Bearer ..."}; + * + * call.requestHeaders[@"my-header-bin"] = someData; + * + * After the call is started, trying to modify this property is an error. + * + * The property is initialized to an empty NSMutableDictionary. + */ @property(atomic, readonly) id requestHeaders; -// This dictionary is populated with the HTTP headers received from the server. This happens before -// any response message is received from the server. It has the same structure as the request -// headers dictionary: Keys are NSString header names; names ending with the suffix "-bin" have a -// NSData value; the others have a NSString value. -// -// The value of this property is nil until all response headers are received, and will change before -// any of -writeValue: or -writesFinishedWithError: are sent to the writeable. +/** + * This dictionary is populated with the HTTP headers received from the server. This happens before + * any response message is received from the server. It has the same structure as the request + * headers dictionary: Keys are NSString header names; names ending with the suffix "-bin" have a + * NSData value; the others have a NSString value. + * + * The value of this property is nil until all response headers are received, and will change before + * any of -writeValue: or -writesFinishedWithError: are sent to the writeable. + */ @property(atomic, readonly) NSDictionary *responseHeaders; -// Same as responseHeaders, but populated with the HTTP trailers received from the server before the -// call finishes. -// -// The value of this property is nil until all response trailers are received, and will change -// before -writesFinishedWithError: is sent to the writeable. +/** + * Same as responseHeaders, but populated with the HTTP trailers received from the server before the + * call finishes. + * + * The value of this property is nil until all response trailers are received, and will change + * before -writesFinishedWithError: is sent to the writeable. + */ @property(atomic, readonly) NSDictionary *responseTrailers; -// The request writer has to write NSData objects into the provided Writeable. The server will -// receive each of those separately and in order as distinct messages. -// A gRPC call might not complete until the request writer finishes. On the other hand, the request -// finishing doesn't necessarily make the call to finish, as the server might continue sending -// messages to the response side of the call indefinitely (depending on the semantics of the -// specific remote method called). -// To finish a call right away, invoke cancel. +/** + * The request writer has to write NSData objects into the provided Writeable. The server will + * receive each of those separately and in order as distinct messages. + * A gRPC call might not complete until the request writer finishes. On the other hand, the request + * finishing doesn't necessarily make the call to finish, as the server might continue sending + * messages to the response side of the call indefinitely (depending on the semantics of the + * specific remote method called). + * To finish a call right away, invoke cancel. + */ - (instancetype)initWithHost:(NSString *)host path:(NSString *)path requestsWriter:(GRXWriter *)requestsWriter NS_DESIGNATED_INITIALIZER; -// Finishes the request side of this call, notifies the server that the RPC should be cancelled, and -// finishes the response side of the call with an error of code CANCELED. +/** + * Finishes the request side of this call, notifies the server that the RPC should be cancelled, and + * finishes the response side of the call with an error of code CANCELED. + */ - (void)cancel; -// TODO(jcanizales): Let specify a deadline. As a category of GRXWriter? +/** TODO(jcanizales): Let specify a deadline. As a category of GRXWriter? */ @end From fef5bee020bac0522af2a1ceec20b78098efac7c Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Mon, 19 Oct 2015 12:24:28 -0700 Subject: [PATCH 012/103] Prototype script to change comment format. Still needs implementing format_as_block, and switching input and output to use sys.stdin.readline() and sys.stdout.write(line). --- src/objective-c/change-comments.py | 53 ++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/objective-c/change-comments.py diff --git a/src/objective-c/change-comments.py b/src/objective-c/change-comments.py new file mode 100644 index 00000000000..20351d5bf86 --- /dev/null +++ b/src/objective-c/change-comments.py @@ -0,0 +1,53 @@ +#!/usr/bin/python + +import re +import sys + +print 'Number of arguments:', len(sys.argv), 'arguments.' +print 'Argument List:', str(sys.argv) + +with open(sys.argv[0], "r") as input_file: + lines = input_file.readlines() + +def peek(): + return lines[0] + +def read_line(): + return lines.pop(0) + +def more_input(): + return lines + + +comment_regex = r'^(\s*)//\s(.*)$' + +def is_comment(line): + return re.search(comment_regex, line) + +def isnt_comment(line): + return not is_comment(line) + +def next_line(predicate): + if not more_input(): + return False + return predicate(peek()) + + +output_lines = [] + +def output(line): + output_lines.append(line) + + +while more_input(): + while next_line(isnt_comment): + output(read_line()) + + comment_block = [] + # Get all lines in the same comment block. We could restrict the indentation + # to be the same as the first line of the block, but it's probably ok. + while (next_line(is_comment)): + comment_block.append(read_line()) + + for line in format_as_block(comment_block): + output(line) From 88c32843498aaa60cee60d7676c0d1c352c82c9a Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Mon, 26 Oct 2015 10:18:59 -0700 Subject: [PATCH 013/103] Finished script and example output. --- src/objective-c/GRPCClient/GRPCCall+OAuth2.h | 16 +++-- src/objective-c/change-comments.py | 69 ++++++++++++++++---- 2 files changed, 67 insertions(+), 18 deletions(-) mode change 100644 => 100755 src/objective-c/change-comments.py diff --git a/src/objective-c/GRPCClient/GRPCCall+OAuth2.h b/src/objective-c/GRPCClient/GRPCCall+OAuth2.h index 2e379a71572..6b443877e9b 100644 --- a/src/objective-c/GRPCClient/GRPCCall+OAuth2.h +++ b/src/objective-c/GRPCClient/GRPCCall+OAuth2.h @@ -33,17 +33,19 @@ #import "GRPCCall.h" -// Helpers for setting and reading headers compatible with OAuth2. +/** Helpers for setting and reading headers compatible with OAuth2. */ @interface GRPCCall (OAuth2) -// Setting this property is equivalent to setting "Bearer " as the value of the -// request header with key "authorization" (the authorization header). Setting it to nil removes the -// authorization header from the request. -// The value obtained by getting the property is the OAuth2 bearer token if the authorization header -// of the request has the form "Bearer ", or nil otherwise. +/** + * Setting this property is equivalent to setting "Bearer " as the value of the + * request header with key "authorization" (the authorization header). Setting it to nil removes the + * authorization header from the request. + * The value obtained by getting the property is the OAuth2 bearer token if the authorization header + * of the request has the form "Bearer ", or nil otherwise. + */ @property(atomic, copy) NSString *oauth2AccessToken; -// Returns the value (if any) of the "www-authenticate" response header (the challenge header). +/** Returns the value (if any) of the "www-authenticate" response header (the challenge header). */ @property(atomic, readonly) NSString *oauth2ChallengeHeader; @end diff --git a/src/objective-c/change-comments.py b/src/objective-c/change-comments.py old mode 100644 new mode 100755 index 20351d5bf86..16dc863a02f --- a/src/objective-c/change-comments.py +++ b/src/objective-c/change-comments.py @@ -3,10 +3,21 @@ import re import sys -print 'Number of arguments:', len(sys.argv), 'arguments.' -print 'Argument List:', str(sys.argv) -with open(sys.argv[0], "r") as input_file: +if len(sys.argv) != 2: + print("Please provide a source file name as only argument.") + quit() + +print("Modifying format of {file} comments in place...".format( + file = sys.argv[1], +)) + + +# Input + +lines = [] + +with open(sys.argv[1], "r") as input_file: lines = input_file.readlines() def peek(): @@ -15,10 +26,25 @@ def peek(): def read_line(): return lines.pop(0) -def more_input(): +def more_input_available(): return lines +# Output + +output_lines = [] + +def write(line): + output_lines.append(line) + +def flush_output(): + with open(sys.argv[1], "w") as otuput_file: + for line in output_lines: + otuput_file.write(line) + + +# Pattern matching + comment_regex = r'^(\s*)//\s(.*)$' def is_comment(line): @@ -28,20 +54,39 @@ def isnt_comment(line): return not is_comment(line) def next_line(predicate): - if not more_input(): + if not more_input_available(): return False return predicate(peek()) -output_lines = [] +# Transformation -def output(line): - output_lines.append(line) +def indentation_of(line): + match = re.search(comment_regex, line) + return match.group(1) + +def content(line): + match = re.search(comment_regex, line) + return match.group(2) + +def format_as_block(comment_block): + if len(comment_block) == 0: + return [] + indent = indentation_of(comment_block[0]) -while more_input(): + if len(comment_block) == 1: + return [indent + "/** " + content(comment_block[0]) + " */\n"] + + block = ["/**"] + [" * " + content(line) for line in comment_block] + [" */"] + return [indent + line + "\n" for line in block] + + +# Main algorithm + +while more_input_available(): while next_line(isnt_comment): - output(read_line()) + write(read_line()) comment_block = [] # Get all lines in the same comment block. We could restrict the indentation @@ -50,4 +95,6 @@ while more_input(): comment_block.append(read_line()) for line in format_as_block(comment_block): - output(line) + write(line) + +flush_output() From bbb7774b83a19edff725a7e269d6c75193193c13 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Mon, 26 Oct 2015 10:44:38 -0700 Subject: [PATCH 014/103] Make the script support multiple input files --- src/objective-c/change-comments.py | 122 +++++++++++++------------ src/objective-c/format-all-comments.sh | 3 + 2 files changed, 65 insertions(+), 60 deletions(-) create mode 100644 src/objective-c/format-all-comments.sh diff --git a/src/objective-c/change-comments.py b/src/objective-c/change-comments.py index 16dc863a02f..4ce25705b64 100755 --- a/src/objective-c/change-comments.py +++ b/src/objective-c/change-comments.py @@ -4,97 +4,99 @@ import re import sys -if len(sys.argv) != 2: - print("Please provide a source file name as only argument.") +if len(sys.argv) < 2: + print("Please provide at least one source file name as argument.") quit() -print("Modifying format of {file} comments in place...".format( - file = sys.argv[1], -)) +for file_name in sys.argv[1:]: + print("Modifying format of {file} comments in place...".format( + file = file_name, + )) -# Input -lines = [] + # Input -with open(sys.argv[1], "r") as input_file: - lines = input_file.readlines() + lines = [] -def peek(): - return lines[0] + with open(file_name, "r") as input_file: + lines = input_file.readlines() -def read_line(): - return lines.pop(0) + def peek(): + return lines[0] -def more_input_available(): - return lines + def read_line(): + return lines.pop(0) + def more_input_available(): + return lines -# Output -output_lines = [] + # Output -def write(line): - output_lines.append(line) + output_lines = [] -def flush_output(): - with open(sys.argv[1], "w") as otuput_file: - for line in output_lines: - otuput_file.write(line) + def write(line): + output_lines.append(line) + def flush_output(): + with open(file_name, "w") as otuput_file: + for line in output_lines: + otuput_file.write(line) -# Pattern matching -comment_regex = r'^(\s*)//\s(.*)$' + # Pattern matching -def is_comment(line): - return re.search(comment_regex, line) + comment_regex = r'^(\s*)//\s(.*)$' -def isnt_comment(line): - return not is_comment(line) + def is_comment(line): + return re.search(comment_regex, line) -def next_line(predicate): - if not more_input_available(): - return False - return predicate(peek()) + def isnt_comment(line): + return not is_comment(line) + def next_line(predicate): + if not more_input_available(): + return False + return predicate(peek()) -# Transformation -def indentation_of(line): - match = re.search(comment_regex, line) - return match.group(1) + # Transformation -def content(line): - match = re.search(comment_regex, line) - return match.group(2) + def indentation_of(line): + match = re.search(comment_regex, line) + return match.group(1) -def format_as_block(comment_block): - if len(comment_block) == 0: - return [] + def content(line): + match = re.search(comment_regex, line) + return match.group(2) - indent = indentation_of(comment_block[0]) + def format_as_block(comment_block): + if len(comment_block) == 0: + return [] - if len(comment_block) == 1: - return [indent + "/** " + content(comment_block[0]) + " */\n"] + indent = indentation_of(comment_block[0]) - block = ["/**"] + [" * " + content(line) for line in comment_block] + [" */"] - return [indent + line + "\n" for line in block] + if len(comment_block) == 1: + return [indent + "/** " + content(comment_block[0]) + " */\n"] + block = ["/**"] + [" * " + content(line) for line in comment_block] + [" */"] + return [indent + line.rstrip() + "\n" for line in block] -# Main algorithm -while more_input_available(): - while next_line(isnt_comment): - write(read_line()) + # Main algorithm - comment_block = [] - # Get all lines in the same comment block. We could restrict the indentation - # to be the same as the first line of the block, but it's probably ok. - while (next_line(is_comment)): - comment_block.append(read_line()) + while more_input_available(): + while next_line(isnt_comment): + write(read_line()) - for line in format_as_block(comment_block): - write(line) + comment_block = [] + # Get all lines in the same comment block. We could restrict the indentation + # to be the same as the first line of the block, but it's probably ok. + while (next_line(is_comment)): + comment_block.append(read_line()) -flush_output() + for line in format_as_block(comment_block): + write(line) + + flush_output() diff --git a/src/objective-c/format-all-comments.sh b/src/objective-c/format-all-comments.sh new file mode 100644 index 00000000000..c4ea87d336d --- /dev/null +++ b/src/objective-c/format-all-comments.sh @@ -0,0 +1,3 @@ +#!/usr/bin/bash + +find . -type f -name "*.h" ! -path "*/Pods/*" ! -path "./generated_libraries/*" ! -path "./examples/*" ! -path "./tests/*" | xargs ./change-comments.py From b10776c50971989e78890d6d72d0c443a942f95f Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Mon, 26 Oct 2015 10:44:55 -0700 Subject: [PATCH 015/103] Reformat comments as Cocoadocs --- src/objective-c/GRPCClient/GRPCCall+Tests.h | 28 +++-- src/objective-c/GRPCClient/GRPCCall.h | 2 +- .../GRPCClient/private/GRPCChannel.h | 12 +- .../GRPCClient/private/GRPCCompletionQueue.h | 20 +-- src/objective-c/GRPCClient/private/GRPCHost.h | 6 +- .../GRPCClient/private/GRPCSecureChannel.h | 8 +- .../GRPCClient/private/GRPCWrappedCall.h | 2 +- .../GRPCClient/private/NSError+GRPC.h | 6 +- src/objective-c/ProtoRPC/ProtoMethod.h | 6 +- src/objective-c/RxLibrary/GRXBufferedPipe.h | 36 +++--- .../RxLibrary/GRXConcurrentWriteable.h | 54 ++++---- .../RxLibrary/GRXForwardingWriter.h | 24 ++-- .../RxLibrary/GRXImmediateWriter.h | 70 ++++++----- src/objective-c/RxLibrary/GRXWriteable.h | 22 ++-- .../RxLibrary/GRXWriter+Immediate.h | 44 ++++--- .../RxLibrary/GRXWriter+Transformations.h | 6 +- src/objective-c/RxLibrary/GRXWriter.h | 116 ++++++++++-------- .../RxLibrary/NSEnumerator+GRXUtil.h | 22 ++-- .../RxLibrary/private/GRXNSBlockEnumerator.h | 12 +- .../RxLibrary/private/GRXNSFastEnumerator.h | 14 ++- .../RxLibrary/private/GRXNSScalarEnumerator.h | 8 +- .../transformations/GRXMappingWriter.h | 2 +- 22 files changed, 309 insertions(+), 211 deletions(-) diff --git a/src/objective-c/GRPCClient/GRPCCall+Tests.h b/src/objective-c/GRPCClient/GRPCCall+Tests.h index cca16146063..ccc5723ec70 100644 --- a/src/objective-c/GRPCClient/GRPCCall+Tests.h +++ b/src/objective-c/GRPCClient/GRPCCall+Tests.h @@ -33,22 +33,28 @@ #import "GRPCCall.h" -// Methods to let tune down the security of gRPC connections for specific hosts. These shouldn't be -// used in releases, but are sometimes needed for testing. +/** + * Methods to let tune down the security of gRPC connections for specific hosts. These shouldn't be + * used in releases, but are sometimes needed for testing. + */ @interface GRPCCall (Tests) -// Establish all SSL connections to the provided host using the passed SSL target name and the root -// certificates found in the file at |certsPath|. -// -// Must be called before any gRPC call to that host is made. It's illegal to pass the same host to -// more than one invocation of the methods of this category. +/** + * Establish all SSL connections to the provided host using the passed SSL target name and the root + * certificates found in the file at |certsPath|. + * + * Must be called before any gRPC call to that host is made. It's illegal to pass the same host to + * more than one invocation of the methods of this category. + */ + (void)useTestCertsPath:(NSString *)certsPath testName:(NSString *)testName forHost:(NSString *)host; -// Establish all connections to the provided host using cleartext instead of SSL. -// -// Must be called before any gRPC call to that host is made. It's illegal to pass the same host to -// more than one invocation of the methods of this category. +/** + * Establish all connections to the provided host using cleartext instead of SSL. + * + * Must be called before any gRPC call to that host is made. It's illegal to pass the same host to + * more than one invocation of the methods of this category. + */ + (void)useInsecureConnectionsForHost:(NSString *)host; @end diff --git a/src/objective-c/GRPCClient/GRPCCall.h b/src/objective-c/GRPCClient/GRPCCall.h index 86f4149c43e..91f2942c985 100644 --- a/src/objective-c/GRPCClient/GRPCCall.h +++ b/src/objective-c/GRPCClient/GRPCCall.h @@ -61,7 +61,7 @@ extern NSString *const kGRPCErrorDomain; * server applications to produce. */ typedef NS_ENUM(NSUInteger, GRPCErrorCode) { - // The operation was cancelled (typically by the caller). + /** The operation was cancelled (typically by the caller). */ GRPCErrorCodeCancelled = 1, /** diff --git a/src/objective-c/GRPCClient/private/GRPCChannel.h b/src/objective-c/GRPCClient/private/GRPCChannel.h index 2a7b701576a..e2d19d506ad 100644 --- a/src/objective-c/GRPCClient/private/GRPCChannel.h +++ b/src/objective-c/GRPCClient/private/GRPCChannel.h @@ -35,12 +35,16 @@ struct grpc_channel; -// Each separate instance of this class represents at least one TCP connection to the provided host. -// Create them using one of the subclasses |GRPCSecureChannel| and |GRPCUnsecuredChannel|. +/** + * Each separate instance of this class represents at least one TCP connection to the provided host. + * Create them using one of the subclasses |GRPCSecureChannel| and |GRPCUnsecuredChannel|. + */ @interface GRPCChannel : NSObject @property(nonatomic, readonly) struct grpc_channel *unmanagedChannel; -// This initializer takes ownership of the passed channel, and will destroy it when this object is -// deallocated. It's illegal to pass the same grpc_channel to two different GRPCChannel objects. +/** + * This initializer takes ownership of the passed channel, and will destroy it when this object is + * deallocated. It's illegal to pass the same grpc_channel to two different GRPCChannel objects. + */ - (instancetype)initWithChannel:(struct grpc_channel *)unmanagedChannel NS_DESIGNATED_INITIALIZER; @end diff --git a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.h b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.h index ab8d714d220..fe3b8f39d12 100644 --- a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.h +++ b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.h @@ -36,15 +36,17 @@ typedef void(^GRPCQueueCompletionHandler)(bool success); -// This class lets one more easily use |grpc_completion_queue|. To use it, pass the value of the -// |unmanagedQueue| property of an instance of this class to |grpc_channel_create_call|. Then for -// every |grpc_call_*| method that accepts a tag, you can pass a block of type -// |GRPCQueueCompletionHandler| (remembering to cast it using |__bridge_retained|). The block is -// guaranteed to eventually be called, by a concurrent queue, and then released. Each such block is -// passed a |bool| that tells if the operation was successful. -// -// Release the GRPCCompletionQueue object only after you are not going to pass any more blocks to -// the |grpc_call| that's using it. +/** + * This class lets one more easily use |grpc_completion_queue|. To use it, pass the value of the + * |unmanagedQueue| property of an instance of this class to |grpc_channel_create_call|. Then for + * every |grpc_call_*| method that accepts a tag, you can pass a block of type + * |GRPCQueueCompletionHandler| (remembering to cast it using |__bridge_retained|). The block is + * guaranteed to eventually be called, by a concurrent queue, and then released. Each such block is + * passed a |bool| that tells if the operation was successful. + * + * Release the GRPCCompletionQueue object only after you are not going to pass any more blocks to + * the |grpc_call| that's using it. + */ @interface GRPCCompletionQueue : NSObject @property(nonatomic, readonly) grpc_completion_queue *unmanagedQueue; diff --git a/src/objective-c/GRPCClient/private/GRPCHost.h b/src/objective-c/GRPCClient/private/GRPCHost.h index f0bbd530234..6b4f98746d0 100644 --- a/src/objective-c/GRPCClient/private/GRPCHost.h +++ b/src/objective-c/GRPCClient/private/GRPCHost.h @@ -40,18 +40,18 @@ struct grpc_call; @property(nonatomic, readonly) NSString *address; -// The following properties should only be modified for testing: +/** The following properties should only be modified for testing: */ @property(nonatomic, getter=isSecure) BOOL secure; @property(nonatomic, copy) NSString *pathToCertificates; @property(nonatomic, copy) NSString *hostNameOverride; -// Host objects initialized with the same address are the same. +/** Host objects initialized with the same address are the same. */ + (instancetype)hostWithAddress:(NSString *)address; - (instancetype)initWithAddress:(NSString *)address NS_DESIGNATED_INITIALIZER; -// Create a grpc_call object to the provided path on this host. +/** Create a grpc_call object to the provided path on this host. */ - (struct grpc_call *)unmanagedCallWithPath:(NSString *)path completionQueue:(GRPCCompletionQueue *)queue; diff --git a/src/objective-c/GRPCClient/private/GRPCSecureChannel.h b/src/objective-c/GRPCClient/private/GRPCSecureChannel.h index 74257eb0584..4e0881e5a2a 100644 --- a/src/objective-c/GRPCClient/private/GRPCSecureChannel.h +++ b/src/objective-c/GRPCClient/private/GRPCSecureChannel.h @@ -40,13 +40,15 @@ struct grpc_credentials; @interface GRPCSecureChannel : GRPCChannel - (instancetype)initWithHost:(NSString *)host; -// Only in tests shouldn't pathToCertificates or hostNameOverride be nil. Passing nil for -// pathToCertificates results in using the default root certificates distributed with the library. +/** + * Only in tests shouldn't pathToCertificates or hostNameOverride be nil. Passing nil for + * pathToCertificates results in using the default root certificates distributed with the library. + */ - (instancetype)initWithHost:(NSString *)host pathToCertificates:(NSString *)path hostNameOverride:(NSString *)hostNameOverride; -// The passed arguments aren't required to be valid beyond the invocation of this initializer. +/** The passed arguments aren't required to be valid beyond the invocation of this initializer. */ - (instancetype)initWithHost:(NSString *)host credentials:(struct grpc_credentials *)credentials args:(grpc_channel_args *)args NS_DESIGNATED_INITIALIZER; diff --git a/src/objective-c/GRPCClient/private/GRPCWrappedCall.h b/src/objective-c/GRPCClient/private/GRPCWrappedCall.h index 4ca2766147e..7747aa53ef0 100644 --- a/src/objective-c/GRPCClient/private/GRPCWrappedCall.h +++ b/src/objective-c/GRPCClient/private/GRPCWrappedCall.h @@ -39,7 +39,7 @@ @interface GRPCOperation : NSObject @property(nonatomic, readonly) grpc_op op; -// Guaranteed to be called when the operation has finished. +/** Guaranteed to be called when the operation has finished. */ - (void)finish; @end diff --git a/src/objective-c/GRPCClient/private/NSError+GRPC.h b/src/objective-c/GRPCClient/private/NSError+GRPC.h index f4729dc8a13..e0c1efc1f91 100644 --- a/src/objective-c/GRPCClient/private/NSError+GRPC.h +++ b/src/objective-c/GRPCClient/private/NSError+GRPC.h @@ -35,7 +35,9 @@ #include @interface NSError (GRPC) -// Returns nil if the status code is OK. Otherwise, a NSError whose code is one of |GRPCErrorCode| -// and whose domain is |kGRPCErrorDomain|. +/** + * Returns nil if the status code is OK. Otherwise, a NSError whose code is one of |GRPCErrorCode| + * and whose domain is |kGRPCErrorDomain|. + */ + (instancetype)grpc_errorFromStatusCode:(grpc_status_code)statusCode details:(char *)details; @end diff --git a/src/objective-c/ProtoRPC/ProtoMethod.h b/src/objective-c/ProtoRPC/ProtoMethod.h index 8f554a04832..a0ed2cf98a5 100644 --- a/src/objective-c/ProtoRPC/ProtoMethod.h +++ b/src/objective-c/ProtoRPC/ProtoMethod.h @@ -33,8 +33,10 @@ #import -// A fully-qualified proto service method name. Full qualification is needed because a gRPC endpoint -// can implement multiple services. +/** + * A fully-qualified proto service method name. Full qualification is needed because a gRPC endpoint + * can implement multiple services. + */ @interface ProtoMethod : NSObject @property(nonatomic, readonly) NSString *package; @property(nonatomic, readonly) NSString *service; diff --git a/src/objective-c/RxLibrary/GRXBufferedPipe.h b/src/objective-c/RxLibrary/GRXBufferedPipe.h index ca94ce275f7..03b0359278a 100644 --- a/src/objective-c/RxLibrary/GRXBufferedPipe.h +++ b/src/objective-c/RxLibrary/GRXBufferedPipe.h @@ -36,25 +36,27 @@ #import "GRXWriteable.h" #import "GRXWriter.h" -// A buffered pipe is a Writer that also acts as a Writeable. -// Once it is started, whatever values are written into it (via -writeValue:) will be propagated -// immediately, unless flow control prevents it. -// If it is throttled and keeps receiving values, as well as if it receives values before being -// started, it will buffer them and propagate them in order as soon as its state becomes Started. -// If it receives an error (via -writesFinishedWithError:), it will drop any buffered values and -// propagate the error immediately. -// -// Beware that a pipe of this type can't prevent receiving more values when it is paused (for -// example if used to write data to a congested network connection). Because in such situations the -// pipe will keep buffering all data written to it, your application could run out of memory and -// crash. If you want to react to flow control signals to prevent that, instead of using this class -// you can implement an object that conforms to GRXWriter. -// -// Thread-safety: -// The methods of an object of this class should not be called concurrently from different threads. +/** + * A buffered pipe is a Writer that also acts as a Writeable. + * Once it is started, whatever values are written into it (via -writeValue:) will be propagated + * immediately, unless flow control prevents it. + * If it is throttled and keeps receiving values, as well as if it receives values before being + * started, it will buffer them and propagate them in order as soon as its state becomes Started. + * If it receives an error (via -writesFinishedWithError:), it will drop any buffered values and + * propagate the error immediately. + * + * Beware that a pipe of this type can't prevent receiving more values when it is paused (for + * example if used to write data to a congested network connection). Because in such situations the + * pipe will keep buffering all data written to it, your application could run out of memory and + * crash. If you want to react to flow control signals to prevent that, instead of using this class + * you can implement an object that conforms to GRXWriter. + * + * Thread-safety: + * The methods of an object of this class should not be called concurrently from different threads. + */ @interface GRXBufferedPipe : GRXWriter -// Convenience constructor. +/** Convenience constructor. */ + (instancetype)pipe; @end diff --git a/src/objective-c/RxLibrary/GRXConcurrentWriteable.h b/src/objective-c/RxLibrary/GRXConcurrentWriteable.h index 1080001905e..b2775f98b56 100644 --- a/src/objective-c/RxLibrary/GRXConcurrentWriteable.h +++ b/src/objective-c/RxLibrary/GRXConcurrentWriteable.h @@ -36,36 +36,48 @@ #import "GRXWriter.h" #import "GRXWriteable.h" -// This is a thread-safe wrapper over a GRXWriteable instance. It lets one enqueue calls to a -// GRXWriteable instance for the main thread, guaranteeing that writesFinishedWithError: is the last -// message sent to it (no matter what messages are sent to the wrapper, in what order, nor from -// which thread). It also guarantees that, if cancelWithError: is called from the main thread (e.g. -// by the app cancelling the writes), no further messages are sent to the writeable except -// writesFinishedWithError:. -// -// TODO(jcanizales): Let the user specify another queue for the writeable callbacks. +/** + * This is a thread-safe wrapper over a GRXWriteable instance. It lets one enqueue calls to a + * GRXWriteable instance for the main thread, guaranteeing that writesFinishedWithError: is the last + * message sent to it (no matter what messages are sent to the wrapper, in what order, nor from + * which thread). It also guarantees that, if cancelWithError: is called from the main thread (e.g. + * by the app cancelling the writes), no further messages are sent to the writeable except + * writesFinishedWithError:. + * + * TODO(jcanizales): Let the user specify another queue for the writeable callbacks. + */ @interface GRXConcurrentWriteable : NSObject -// The GRXWriteable passed is the wrapped writeable. -// The GRXWriteable instance is retained until writesFinishedWithError: is sent to it, and released -// after that. +/** + * The GRXWriteable passed is the wrapped writeable. + * The GRXWriteable instance is retained until writesFinishedWithError: is sent to it, and released + * after that. + */ - (instancetype)initWithWriteable:(id)writeable NS_DESIGNATED_INITIALIZER; -// Enqueues writeValue: to be sent to the writeable in the main thread. -// The passed handler is invoked from the main thread after writeValue: returns. +/** + * Enqueues writeValue: to be sent to the writeable in the main thread. + * The passed handler is invoked from the main thread after writeValue: returns. + */ - (void)enqueueValue:(id)value completionHandler:(void (^)())handler; -// Enqueues writesFinishedWithError:nil to be sent to the writeable in the main thread. After that -// message is sent to the writeable, all other methods of this object are effectively noops. +/** + * Enqueues writesFinishedWithError:nil to be sent to the writeable in the main thread. After that + * message is sent to the writeable, all other methods of this object are effectively noops. + */ - (void)enqueueSuccessfulCompletion; -// If the writeable has not yet received a writesFinishedWithError: message, this will enqueue one -// to be sent to it in the main thread, and cancel all other pending messages to the writeable -// enqueued by this object (both past and future). -// The error argument cannot be nil. +/** + * If the writeable has not yet received a writesFinishedWithError: message, this will enqueue one + * to be sent to it in the main thread, and cancel all other pending messages to the writeable + * enqueued by this object (both past and future). + * The error argument cannot be nil. + */ - (void)cancelWithError:(NSError *)error; -// Cancels all pending messages to the writeable enqueued by this object (both past and future). -// Because the writeable won't receive writesFinishedWithError:, this also releases the writeable. +/** + * Cancels all pending messages to the writeable enqueued by this object (both past and future). + * Because the writeable won't receive writesFinishedWithError:, this also releases the writeable. + */ - (void)cancelSilently; @end diff --git a/src/objective-c/RxLibrary/GRXForwardingWriter.h b/src/objective-c/RxLibrary/GRXForwardingWriter.h index f310832284a..8d45b8ed8d3 100644 --- a/src/objective-c/RxLibrary/GRXForwardingWriter.h +++ b/src/objective-c/RxLibrary/GRXForwardingWriter.h @@ -33,17 +33,19 @@ #import "GRXWriter.h" -// A "proxy" class that simply forwards values, completion, and errors from its input writer to its -// writeable. -// It is useful as a superclass for pipes that act as a transformation of their -// input writer, and for classes that represent objects with input and -// output sequences of values, like an RPC. -// -// Thread-safety: -// All messages sent to this object need to be serialized. When it is started, the writer it wraps -// is started in the same thread. Manual state changes are propagated to the wrapped writer in the -// same thread too. Importantly, all messages the wrapped writer sends to its writeable need to be -// serialized with any message sent to this object. +/** + * A "proxy" class that simply forwards values, completion, and errors from its input writer to its + * writeable. + * It is useful as a superclass for pipes that act as a transformation of their + * input writer, and for classes that represent objects with input and + * output sequences of values, like an RPC. + * + * Thread-safety: + * All messages sent to this object need to be serialized. When it is started, the writer it wraps + * is started in the same thread. Manual state changes are propagated to the wrapped writer in the + * same thread too. Importantly, all messages the wrapped writer sends to its writeable need to be + * serialized with any message sent to this object. + */ @interface GRXForwardingWriter : GRXWriter - (instancetype)initWithWriter:(GRXWriter *)writer NS_DESIGNATED_INITIALIZER; @end diff --git a/src/objective-c/RxLibrary/GRXImmediateWriter.h b/src/objective-c/RxLibrary/GRXImmediateWriter.h index 3fcc2594342..e22b056ff56 100644 --- a/src/objective-c/RxLibrary/GRXImmediateWriter.h +++ b/src/objective-c/RxLibrary/GRXImmediateWriter.h @@ -35,46 +35,60 @@ #import "GRXWriter.h" -// Utility to construct GRXWriter instances from values that are immediately available when -// required. -// -// Thread-safety: -// -// An object of this class shouldn't be messaged concurrently by more than one thread. It will start -// messaging the writeable before |startWithWriteable:| returns, in the same thread. That is the -// only place where the writer can be paused or stopped prematurely. -// -// If a paused writer of this class is resumed, it will start messaging the writeable, in the same -// thread, before |setState:| returns. Because the object can't be legally accessed concurrently, -// that's the only place where it can be paused again (or stopped). +/** + * Utility to construct GRXWriter instances from values that are immediately available when + * required. + * + * Thread-safety: + * + * An object of this class shouldn't be messaged concurrently by more than one thread. It will start + * messaging the writeable before |startWithWriteable:| returns, in the same thread. That is the + * only place where the writer can be paused or stopped prematurely. + * + * If a paused writer of this class is resumed, it will start messaging the writeable, in the same + * thread, before |setState:| returns. Because the object can't be legally accessed concurrently, + * that's the only place where it can be paused again (or stopped). + */ @interface GRXImmediateWriter : GRXWriter -// Returns a writer that pulls values from the passed NSEnumerator instance and pushes them to -// its writeable. The NSEnumerator is released when it finishes. +/** + * Returns a writer that pulls values from the passed NSEnumerator instance and pushes them to + * its writeable. The NSEnumerator is released when it finishes. + */ + (GRXWriter *)writerWithEnumerator:(NSEnumerator *)enumerator; -// Returns a writer that pushes to its writeable the successive values returned by the passed -// block. When the block first returns nil, it is released. +/** + * Returns a writer that pushes to its writeable the successive values returned by the passed + * block. When the block first returns nil, it is released. + */ + (GRXWriter *)writerWithValueSupplier:(id (^)())block; -// Returns a writer that iterates over the values of the passed container and pushes them to -// its writeable. The container is released when the iteration is over. -// -// Note that the usual speed gain of NSFastEnumeration over NSEnumerator results from not having to -// call one method per element. Because GRXWriteable instances accept values one by one, that speed -// gain doesn't happen here. +/** + * Returns a writer that iterates over the values of the passed container and pushes them to + * its writeable. The container is released when the iteration is over. + * + * Note that the usual speed gain of NSFastEnumeration over NSEnumerator results from not having to + * call one method per element. Because GRXWriteable instances accept values one by one, that speed + * gain doesn't happen here. + */ + (GRXWriter *)writerWithContainer:(id)container; -// Returns a writer that sends the passed value to its writeable and then finishes (releasing the -// value). +/** + * Returns a writer that sends the passed value to its writeable and then finishes (releasing the + * value). + */ + (GRXWriter *)writerWithValue:(id)value; -// Returns a writer that, as part of its start method, sends the passed error to the writeable -// (then releasing the error). +/** + * Returns a writer that, as part of its start method, sends the passed error to the writeable + * (then releasing the error). + */ + (GRXWriter *)writerWithError:(NSError *)error; -// Returns a writer that, as part of its start method, finishes immediately without sending any -// values to its writeable. +/** + * Returns a writer that, as part of its start method, finishes immediately without sending any + * values to its writeable. + */ + (GRXWriter *)emptyWriter; @end diff --git a/src/objective-c/RxLibrary/GRXWriteable.h b/src/objective-c/RxLibrary/GRXWriteable.h index 45613d6dd09..7fe805c6638 100644 --- a/src/objective-c/RxLibrary/GRXWriteable.h +++ b/src/objective-c/RxLibrary/GRXWriteable.h @@ -33,16 +33,20 @@ #import -// A GRXWriteable is an object to which a sequence of values can be sent. The -// sequence finishes with an optional error. +/** + * A GRXWriteable is an object to which a sequence of values can be sent. The + * sequence finishes with an optional error. + */ @protocol GRXWriteable -// Push the next value of the sequence to the receiving object. +/** Push the next value of the sequence to the receiving object. */ - (void)writeValue:(id)value; -// Signal that the sequence is completed, or that an error ocurred. After this -// message is sent to the instance, neither it nor writeValue: may be -// called again. +/** + * Signal that the sequence is completed, or that an error ocurred. After this + * message is sent to the instance, neither it nor writeValue: may be + * called again. + */ - (void)writesFinishedWithError:(NSError *)errorOrNil; @end @@ -51,8 +55,10 @@ typedef void (^GRXCompletionHandler)(NSError *errorOrNil); typedef void (^GRXSingleHandler)(id value, NSError *errorOrNil); typedef void (^GRXEventHandler)(BOOL done, id value, NSError *error); -// Utility to create objects that conform to the GRXWriteable protocol, from -// blocks that handle each of the two methods of the protocol. +/** + * Utility to create objects that conform to the GRXWriteable protocol, from + * blocks that handle each of the two methods of the protocol. + */ @interface GRXWriteable : NSObject + (instancetype)writeableWithSingleHandler:(GRXSingleHandler)handler; diff --git a/src/objective-c/RxLibrary/GRXWriter+Immediate.h b/src/objective-c/RxLibrary/GRXWriter+Immediate.h index b75c0a5a64c..be880151f4f 100644 --- a/src/objective-c/RxLibrary/GRXWriter+Immediate.h +++ b/src/objective-c/RxLibrary/GRXWriter+Immediate.h @@ -35,32 +35,44 @@ @interface GRXWriter (Immediate) -// Returns a writer that pulls values from the passed NSEnumerator instance and pushes them to -// its writeable. The NSEnumerator is released when it finishes. +/** + * Returns a writer that pulls values from the passed NSEnumerator instance and pushes them to + * its writeable. The NSEnumerator is released when it finishes. + */ + (instancetype)writerWithEnumerator:(NSEnumerator *)enumerator; -// Returns a writer that pushes to its writeable the successive values returned by the passed -// block. When the block first returns nil, it is released. +/** + * Returns a writer that pushes to its writeable the successive values returned by the passed + * block. When the block first returns nil, it is released. + */ + (instancetype)writerWithValueSupplier:(id (^)())block; -// Returns a writer that iterates over the values of the passed container and pushes them to -// its writeable. The container is released when the iteration is over. -// -// Note that the usual speed gain of NSFastEnumeration over NSEnumerator results from not having to -// call one method per element. Because GRXWriteable instances accept values one by one, that speed -// gain doesn't happen here. +/** + * Returns a writer that iterates over the values of the passed container and pushes them to + * its writeable. The container is released when the iteration is over. + * + * Note that the usual speed gain of NSFastEnumeration over NSEnumerator results from not having to + * call one method per element. Because GRXWriteable instances accept values one by one, that speed + * gain doesn't happen here. + */ + (instancetype)writerWithContainer:(id)container; -// Returns a writer that sends the passed value to its writeable and then finishes (releasing the -// value). +/** + * Returns a writer that sends the passed value to its writeable and then finishes (releasing the + * value). + */ + (instancetype)writerWithValue:(id)value; -// Returns a writer that, as part of its start method, sends the passed error to the writeable -// (then releasing the error). +/** + * Returns a writer that, as part of its start method, sends the passed error to the writeable + * (then releasing the error). + */ + (instancetype)writerWithError:(NSError *)error; -// Returns a writer that, as part of its start method, finishes immediately without sending any -// values to its writeable. +/** + * Returns a writer that, as part of its start method, finishes immediately without sending any + * values to its writeable. + */ + (instancetype)emptyWriter; @end diff --git a/src/objective-c/RxLibrary/GRXWriter+Transformations.h b/src/objective-c/RxLibrary/GRXWriter+Transformations.h index 60c4da37d69..17d61e75410 100644 --- a/src/objective-c/RxLibrary/GRXWriter+Transformations.h +++ b/src/objective-c/RxLibrary/GRXWriter+Transformations.h @@ -35,8 +35,10 @@ @interface GRXWriter (Transformations) -// Returns a writer that wraps the receiver, and has all the values the receiver would write -// transformed by the provided mapping function. +/** + * Returns a writer that wraps the receiver, and has all the values the receiver would write + * transformed by the provided mapping function. + */ - (GRXWriter *)map:(id (^)(id value))map; @end diff --git a/src/objective-c/RxLibrary/GRXWriter.h b/src/objective-c/RxLibrary/GRXWriter.h index b1c994aa382..ff81268446a 100644 --- a/src/objective-c/RxLibrary/GRXWriter.h +++ b/src/objective-c/RxLibrary/GRXWriter.h @@ -35,73 +35,87 @@ #import "GRXWriteable.h" -// States of a writer. +/** States of a writer. */ typedef NS_ENUM(NSInteger, GRXWriterState) { - // The writer has not yet been given a writeable to which it can push its values. To have a writer - // transition to the Started state, send it a startWithWriteable: message. - // - // A writer's state cannot be manually set to this value. + /** + * The writer has not yet been given a writeable to which it can push its values. To have a writer + * transition to the Started state, send it a startWithWriteable: message. + * + * A writer's state cannot be manually set to this value. + */ GRXWriterStateNotStarted, - // The writer might push values to the writeable at any moment. + /** The writer might push values to the writeable at any moment. */ GRXWriterStateStarted, - // The writer is temporarily paused, and won't send any more values to the writeable unless its - // state is set back to Started. The writer might still transition to the Finished state at any - // moment, and is allowed to send writesFinishedWithError: to its writeable. + /** + * The writer is temporarily paused, and won't send any more values to the writeable unless its + * state is set back to Started. The writer might still transition to the Finished state at any + * moment, and is allowed to send writesFinishedWithError: to its writeable. + */ GRXWriterStatePaused, - // The writer has released its writeable and won't interact with it anymore. - // - // One seldomly wants to set a writer's state to this value, as its writeable isn't notified with - // a writesFinishedWithError: message. Instead, sending finishWithError: to the writer will make - // it notify the writeable and then transition to this state. + /** + * The writer has released its writeable and won't interact with it anymore. + * + * One seldomly wants to set a writer's state to this value, as its writeable isn't notified with + * a writesFinishedWithError: message. Instead, sending finishWithError: to the writer will make + * it notify the writeable and then transition to this state. + */ GRXWriterStateFinished }; -// An GRXWriter object can produce, on demand, a sequence of values. The sequence may be produced -// asynchronously, and it may consist of any number of elements, including none or an infinite -// number. -// -// GRXWriter is the active dual of NSEnumerator. The difference between them is thus whether the -// object plays an active or passive role during usage: A user of NSEnumerator pulls values off it, -// and passes the values to a writeable. A user of GRXWriter, though, just gives it a writeable, and -// the GRXWriter instance pushes values to the writeable. This makes this protocol suitable to -// represent a sequence of future values, as well as collections with internal iteration. -// -// An instance of GRXWriter can start producing values after a writeable is passed to it. It can -// also be commanded to finish the sequence immediately (with an optional error). Finally, it can be -// asked to pause, and resumed later. All GRXWriter objects support pausing and early termination. -// -// Thread-safety: -// -// State transitions take immediate effect if the object is used from a single thread. Subclasses -// might offer stronger guarantees. -// -// Unless otherwise indicated by a conforming subclass, no messages should be sent concurrently to a -// GRXWriter. I.e., conforming classes aren't required to be thread-safe. +/** + * An GRXWriter object can produce, on demand, a sequence of values. The sequence may be produced + * asynchronously, and it may consist of any number of elements, including none or an infinite + * number. + * + * GRXWriter is the active dual of NSEnumerator. The difference between them is thus whether the + * object plays an active or passive role during usage: A user of NSEnumerator pulls values off it, + * and passes the values to a writeable. A user of GRXWriter, though, just gives it a writeable, and + * the GRXWriter instance pushes values to the writeable. This makes this protocol suitable to + * represent a sequence of future values, as well as collections with internal iteration. + * + * An instance of GRXWriter can start producing values after a writeable is passed to it. It can + * also be commanded to finish the sequence immediately (with an optional error). Finally, it can be + * asked to pause, and resumed later. All GRXWriter objects support pausing and early termination. + * + * Thread-safety: + * + * State transitions take immediate effect if the object is used from a single thread. Subclasses + * might offer stronger guarantees. + * + * Unless otherwise indicated by a conforming subclass, no messages should be sent concurrently to a + * GRXWriter. I.e., conforming classes aren't required to be thread-safe. + */ @interface GRXWriter : NSObject -// This property can be used to query the current state of the writer, which determines how it might -// currently use its writeable. Some state transitions can be triggered by setting this property to -// the corresponding value, and that's useful for advanced use cases like pausing an writer. For -// more details, see the documentation of the enum further down. +/** + * This property can be used to query the current state of the writer, which determines how it might + * currently use its writeable. Some state transitions can be triggered by setting this property to + * the corresponding value, and that's useful for advanced use cases like pausing an writer. For + * more details, see the documentation of the enum further down. + */ @property(nonatomic) GRXWriterState state; -// Transition to the Started state, and start sending messages to the writeable (a reference to it -// is retained). Messages to the writeable may be sent before the method returns, or they may be -// sent later in the future. See GRXWriteable.h for the different messages a writeable can receive. -// -// If this writer draws its values from an external source (e.g. from the filesystem or from a -// server), calling this method will commonly trigger side effects (like network connections). -// -// This method might only be called on writers in the NotStarted state. +/** + * Transition to the Started state, and start sending messages to the writeable (a reference to it + * is retained). Messages to the writeable may be sent before the method returns, or they may be + * sent later in the future. See GRXWriteable.h for the different messages a writeable can receive. + * + * If this writer draws its values from an external source (e.g. from the filesystem or from a + * server), calling this method will commonly trigger side effects (like network connections). + * + * This method might only be called on writers in the NotStarted state. + */ - (void)startWithWriteable:(id)writeable; -// Send writesFinishedWithError:errorOrNil to the writeable. Then release the reference to it and -// transition to the Finished state. -// -// This method might only be called on writers in the Started or Paused state. +/** + * Send writesFinishedWithError:errorOrNil to the writeable. Then release the reference to it and + * transition to the Finished state. + * + * This method might only be called on writers in the Started or Paused state. + */ - (void)finishWithError:(NSError *)errorOrNil; @end diff --git a/src/objective-c/RxLibrary/NSEnumerator+GRXUtil.h b/src/objective-c/RxLibrary/NSEnumerator+GRXUtil.h index 400e834c6ae..0622f7067c0 100644 --- a/src/objective-c/RxLibrary/NSEnumerator+GRXUtil.h +++ b/src/objective-c/RxLibrary/NSEnumerator+GRXUtil.h @@ -35,17 +35,23 @@ @interface NSEnumerator (GRXUtil) -// Returns a NSEnumerator instance that iterates through the elements of the passed container that -// supports fast enumeration. Note that this negates the speed benefits of fast enumeration over -// NSEnumerator. It's only intended for the rare cases when one needs the latter and only has the -// former, e.g. for iteration that needs to be paused and resumed later. +/** + * Returns a NSEnumerator instance that iterates through the elements of the passed container that + * supports fast enumeration. Note that this negates the speed benefits of fast enumeration over + * NSEnumerator. It's only intended for the rare cases when one needs the latter and only has the + * former, e.g. for iteration that needs to be paused and resumed later. + */ + (NSEnumerator *)grx_enumeratorWithContainer:(id)container; -// Returns a NSEnumerator instance that provides a single object before finishing. The value is then -// released. +/** + * Returns a NSEnumerator instance that provides a single object before finishing. The value is then + * released. + */ + (NSEnumerator *)grx_enumeratorWithSingleValue:(id)value; -// Returns a NSEnumerator instance that delegates the invocations of nextObject to the passed block. -// When the block first returns nil, it is released. +/** + * Returns a NSEnumerator instance that delegates the invocations of nextObject to the passed block. + * When the block first returns nil, it is released. + */ + (NSEnumerator *)grx_enumeratorWithValueSupplier:(id (^)())block; @end diff --git a/src/objective-c/RxLibrary/private/GRXNSBlockEnumerator.h b/src/objective-c/RxLibrary/private/GRXNSBlockEnumerator.h index 34cfc4d8a77..fb50c37863a 100644 --- a/src/objective-c/RxLibrary/private/GRXNSBlockEnumerator.h +++ b/src/objective-c/RxLibrary/private/GRXNSBlockEnumerator.h @@ -33,10 +33,14 @@ #import -// Concrete subclass of NSEnumerator that delegates the invocations of nextObject to a block passed -// on initialization. +/** + * Concrete subclass of NSEnumerator that delegates the invocations of nextObject to a block passed + * on initialization. + */ @interface GRXNSBlockEnumerator : NSEnumerator -// The first time the passed block returns nil, the enumeration will end and the block will be -// released. +/** + * The first time the passed block returns nil, the enumeration will end and the block will be + * released. + */ - (instancetype)initWithValueSupplier:(id (^)())block; @end diff --git a/src/objective-c/RxLibrary/private/GRXNSFastEnumerator.h b/src/objective-c/RxLibrary/private/GRXNSFastEnumerator.h index 15650292055..62c27dbc7f3 100644 --- a/src/objective-c/RxLibrary/private/GRXNSFastEnumerator.h +++ b/src/objective-c/RxLibrary/private/GRXNSFastEnumerator.h @@ -33,11 +33,15 @@ #import -// This is a bridge to interact through NSEnumerator's interface with objects that only conform to -// NSFastEnumeration. (There's nothing specifically fast about it - you certainly don't win any -// speed by using this instead of a NSEnumerator provided by your container). +/** + * This is a bridge to interact through NSEnumerator's interface with objects that only conform to + * NSFastEnumeration. (There's nothing specifically fast about it - you certainly don't win any + * speed by using this instead of a NSEnumerator provided by your container). + */ @interface GRXNSFastEnumerator : NSEnumerator -// After the iteration of the container (via the NSFastEnumeration protocol) is over, the container -// is released. If the container is modified during enumeration, an exception is thrown. +/** + * After the iteration of the container (via the NSFastEnumeration protocol) is over, the container + * is released. If the container is modified during enumeration, an exception is thrown. + */ - (instancetype)initWithContainer:(id)container; @end diff --git a/src/objective-c/RxLibrary/private/GRXNSScalarEnumerator.h b/src/objective-c/RxLibrary/private/GRXNSScalarEnumerator.h index 12aa51e2139..24a21a1b22c 100644 --- a/src/objective-c/RxLibrary/private/GRXNSScalarEnumerator.h +++ b/src/objective-c/RxLibrary/private/GRXNSScalarEnumerator.h @@ -33,9 +33,11 @@ #import -// Concrete subclass of NSEnumerator whose instances return a single object before finishing. +/** Concrete subclass of NSEnumerator whose instances return a single object before finishing. */ @interface GRXNSScalarEnumerator : NSEnumerator -// Param value: the single object this instance will produce. After the first invocation of -// nextObject, the value is released. +/** + * Param value: the single object this instance will produce. After the first invocation of + * nextObject, the value is released. + */ - (instancetype)initWithValue:(id)value; @end diff --git a/src/objective-c/RxLibrary/transformations/GRXMappingWriter.h b/src/objective-c/RxLibrary/transformations/GRXMappingWriter.h index 43b87068647..01a15e2a430 100644 --- a/src/objective-c/RxLibrary/transformations/GRXMappingWriter.h +++ b/src/objective-c/RxLibrary/transformations/GRXMappingWriter.h @@ -33,7 +33,7 @@ #import "RxLibrary/GRXForwardingWriter.h" -// A "proxy" writer that transforms all the values of its input writer by using a mapping function. +/** A "proxy" writer that transforms all the values of its input writer by using a mapping function. */ @interface GRXMappingWriter : GRXForwardingWriter - (instancetype)initWithWriter:(GRXWriter *)writer map:(id (^)(id value))map NS_DESIGNATED_INITIALIZER; From 864464197553750d91793c689285787bc05f93d9 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Mon, 26 Oct 2015 10:55:54 -0700 Subject: [PATCH 016/103] =?UTF-8?q?Undo=20Cocoadoc=E2=80=99ing=20TODO=20li?= =?UTF-8?q?ne.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/objective-c/GRPCClient/GRPCCall.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/objective-c/GRPCClient/GRPCCall.h b/src/objective-c/GRPCClient/GRPCCall.h index 91f2942c985..5918f8857a9 100644 --- a/src/objective-c/GRPCClient/GRPCCall.h +++ b/src/objective-c/GRPCClient/GRPCCall.h @@ -241,5 +241,5 @@ extern id const kGRPCTrailersKey; */ - (void)cancel; -/** TODO(jcanizales): Let specify a deadline. As a category of GRXWriter? */ +// TODO(jcanizales): Let specify a deadline. As a category of GRXWriter? @end From 117c8af8d327455e63edae275cfd7d5469fd2d19 Mon Sep 17 00:00:00 2001 From: Sree Kuchibhotla Date: Mon, 26 Oct 2015 10:59:17 -0700 Subject: [PATCH 017/103] Skip running stress_tests on jenkins by run_tests.py (This will fix the issue addressed by commit: e6cd0e70a9c8, the right way) --- build.yaml | 1 + test/cpp/interop/stress_test.cc | 9 +-------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/build.yaml b/build.yaml index 4f6e35b0de1..dadd9429e24 100644 --- a/build.yaml +++ b/build.yaml @@ -2107,6 +2107,7 @@ targets: - posix - name: stress_test build: test + run: false language: c++ headers: - test/cpp/interop/client_helper.h diff --git a/test/cpp/interop/stress_test.cc b/test/cpp/interop/stress_test.cc index a1f67808092..0340c8d9d43 100644 --- a/test/cpp/interop/stress_test.cc +++ b/test/cpp/interop/stress_test.cc @@ -187,14 +187,7 @@ int main(int argc, char** argv) { // Parse test cases and weights if (FLAGS_test_cases.length() == 0) { gpr_log(GPR_INFO, "Not running tests. The 'test_cases' string is empty"); - - // TODO(sreek): stress_tests is currently being run by run_tests.py in - // jenkins. There does not seem to be a straightforward way to skip this. - // So, for now, return 0 (i.e success) to keep jenkins build happy. Moreover - // we don't want to run stress_tests (for now) in jenkins anyway. - // Once we figure out a good way to skip this tests in run_tests.py, I will - // change this to 'return 1' - return 0; + return 1; } vector> tests; From e3d6625fdbd12d7388892cfc2317c5a5a47305cf Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Mon, 26 Oct 2015 11:33:45 -0700 Subject: [PATCH 018/103] use proper shortname for sanity tests --- tools/run_tests/run_tests.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 3859958a952..b1ca4cf4c24 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -411,8 +411,8 @@ class ObjCLanguage(object): class Sanity(object): def test_specs(self, config, travis): - return [config.job_spec('tools/run_tests/run_sanity.sh', None), - config.job_spec('tools/run_tests/check_sources_and_headers.py', None)] + return [config.job_spec(['tools/run_tests/run_sanity.sh'], None), + config.job_spec(['tools/run_tests/check_sources_and_headers.py'], None)] def pre_build_steps(self): return [] From 1bef95dc6782c7b1d6c00dc744cb4a4672a1abd0 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Mon, 26 Oct 2015 13:29:09 -0700 Subject: [PATCH 019/103] Style and misc fixes to the script --- src/objective-c/change-comments.py | 44 ++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/src/objective-c/change-comments.py b/src/objective-c/change-comments.py index 4ce25705b64..c47966b0c4e 100755 --- a/src/objective-c/change-comments.py +++ b/src/objective-c/change-comments.py @@ -1,4 +1,34 @@ -#!/usr/bin/python +#!/usr/bin/env python2.7 +# 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. + +"""Change comments style of source files from // to /** */""" import re import sys @@ -11,14 +41,12 @@ if len(sys.argv) < 2: for file_name in sys.argv[1:]: print("Modifying format of {file} comments in place...".format( - file = file_name, + file=file_name, )) # Input - lines = [] - with open(file_name, "r") as input_file: lines = input_file.readlines() @@ -40,9 +68,9 @@ for file_name in sys.argv[1:]: output_lines.append(line) def flush_output(): - with open(file_name, "w") as otuput_file: + with open(file_name, "w") as output_file: for line in output_lines: - otuput_file.write(line) + output_file.write(line) # Pattern matching @@ -56,9 +84,7 @@ for file_name in sys.argv[1:]: return not is_comment(line) def next_line(predicate): - if not more_input_available(): - return False - return predicate(peek()) + return more_input_available() and predicate(peek()) # Transformation From 5a06278868f7ab5cdd32c9b15328e92dc6e7ccdc Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Mon, 26 Oct 2015 15:06:46 -0700 Subject: [PATCH 020/103] Copyright notice in the .sh file --- src/objective-c/format-all-comments.sh | 30 +++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/objective-c/format-all-comments.sh b/src/objective-c/format-all-comments.sh index c4ea87d336d..e6b6b5a0b49 100644 --- a/src/objective-c/format-all-comments.sh +++ b/src/objective-c/format-all-comments.sh @@ -1,3 +1,31 @@ -#!/usr/bin/bash +#!/bin/bash +# 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. find . -type f -name "*.h" ! -path "*/Pods/*" ! -path "./generated_libraries/*" ! -path "./examples/*" ! -path "./tests/*" | xargs ./change-comments.py From 55e974284dd495af5d044fc8cbacac18962d5ef9 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Mon, 26 Oct 2015 15:14:47 -0700 Subject: [PATCH 021/103] s/quit()/sys.exit() --- src/objective-c/change-comments.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/objective-c/change-comments.py b/src/objective-c/change-comments.py index c47966b0c4e..9aa0e0c9f5a 100755 --- a/src/objective-c/change-comments.py +++ b/src/objective-c/change-comments.py @@ -36,7 +36,7 @@ import sys if len(sys.argv) < 2: print("Please provide at least one source file name as argument.") - quit() + sys.exit() for file_name in sys.argv[1:]: From eed7fd4c1c952d69daa9969c4c5662bb0785631e Mon Sep 17 00:00:00 2001 From: Sree Kuchibhotla Date: Mon, 26 Oct 2015 15:15:37 -0700 Subject: [PATCH 022/103] File changes after re-running generate_projects.sh after my previous commit: 117c8af8d327455e6 --- Makefile | 2 -- tools/run_tests/tests.json | 18 ------------------ 2 files changed, 20 deletions(-) diff --git a/Makefile b/Makefile index c4183914e63..38d0adb796a 100644 --- a/Makefile +++ b/Makefile @@ -3560,8 +3560,6 @@ test_cxx: test_zookeeper buildtests_cxx $(Q) $(BINDIR)/$(CONFIG)/status_test || ( echo test status_test failed ; exit 1 ) $(E) "[RUN] Testing streaming_throughput_test" $(Q) $(BINDIR)/$(CONFIG)/streaming_throughput_test || ( echo test streaming_throughput_test failed ; exit 1 ) - $(E) "[RUN] Testing stress_test" - $(Q) $(BINDIR)/$(CONFIG)/stress_test || ( echo test stress_test failed ; exit 1 ) $(E) "[RUN] Testing sync_streaming_ping_pong_test" $(Q) $(BINDIR)/$(CONFIG)/sync_streaming_ping_pong_test || ( echo test sync_streaming_ping_pong_test failed ; exit 1 ) $(E) "[RUN] Testing sync_unary_ping_pong_test" diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index b03e952c893..2f91844f441 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -1617,24 +1617,6 @@ "posix" ] }, - { - "ci_platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "exclude_configs": [], - "flaky": false, - "language": "c++", - "name": "stress_test", - "platforms": [ - "linux", - "mac", - "posix", - "windows" - ] - }, { "ci_platforms": [ "linux", From 8ae409f574f1594ca14433ddd432babc33dc2632 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 26 Oct 2015 16:39:00 -0700 Subject: [PATCH 023/103] Prevent run_tests.py from running make if the language has no make targets --- tools/run_tests/run_tests.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 3859958a952..e6c6b257227 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -637,13 +637,16 @@ if platform.system() == 'Windows': for target in targets] else: def make_jobspec(cfg, targets, makefile='Makefile'): - return [jobset.JobSpec([os.getenv('MAKE', 'make'), - '-f', makefile, - '-j', '%d' % (multiprocessing.cpu_count() + 1), - 'EXTRA_DEFINES=GRPC_TEST_SLOWDOWN_MACHINE_FACTOR=%f' % - args.slowdown, - 'CONFIG=%s' % cfg] + targets, - timeout_seconds=30*60)] + if targets: + return [jobset.JobSpec([os.getenv('MAKE', 'make'), + '-f', makefile, + '-j', '%d' % (multiprocessing.cpu_count() + 1), + 'EXTRA_DEFINES=GRPC_TEST_SLOWDOWN_MACHINE_FACTOR=%f' % + args.slowdown, + 'CONFIG=%s' % cfg] + targets, + timeout_seconds=30*60)] + else: + return [] make_targets = {} for l in languages: makefile = l.makefile_name() @@ -840,9 +843,9 @@ def _build_and_run( testsuite = ET.SubElement(root, 'testsuite', id='1', package='grpc', name='tests') if xml_report else None number_failures, _ = jobset.run( - all_runs, check_cancelled, newline_on_success=newline_on_success, + all_runs, check_cancelled, newline_on_success=newline_on_success, travis=travis, infinite_runs=infinite_runs, maxjobs=args.jobs, - stop_on_failure=args.stop_on_failure, + stop_on_failure=args.stop_on_failure, cache=cache if not xml_report else None, xml_report=testsuite, add_env={'GRPC_TEST_PORT_SERVER': 'localhost:%d' % port_server_port}) From a5fd9d1455ad4b68d8113904acbbf62ef8776cdc Mon Sep 17 00:00:00 2001 From: Stanley Cheung Date: Tue, 27 Oct 2015 08:59:31 -0700 Subject: [PATCH 024/103] php: fix inconsistent array notation --- src/php/lib/Grpc/BaseStub.php | 16 ++++++++-------- src/php/lib/Grpc/BidiStreamingCall.php | 4 ++-- src/php/lib/Grpc/ClientStreamingCall.php | 6 +++--- src/php/lib/Grpc/ServerStreamingCall.php | 2 +- src/php/lib/Grpc/UnaryCall.php | 4 ++-- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/php/lib/Grpc/BaseStub.php b/src/php/lib/Grpc/BaseStub.php index 56143145980..16153e8e999 100755 --- a/src/php/lib/Grpc/BaseStub.php +++ b/src/php/lib/Grpc/BaseStub.php @@ -152,7 +152,7 @@ class BaseStub { $timeout = $metadata['timeout']; unset($metadata_copy['timeout']); } - return array($metadata_copy, $timeout); + return [$metadata_copy, $timeout]; } /** @@ -162,7 +162,7 @@ class BaseStub { * @throw InvalidArgumentException if key contains invalid characters */ private function _validate_and_normalize_metadata($metadata) { - $metadata_copy = array(); + $metadata_copy = []; foreach ($metadata as $key => $value) { if (!preg_match('/^[A-Za-z\d_-]+$/', $key)) { throw new \InvalidArgumentException( @@ -189,8 +189,8 @@ class BaseStub { public function _simpleRequest($method, $argument, callable $deserialize, - $metadata = array(), - $options = array()) { + $metadata = [], + $options = []) { list($actual_metadata, $timeout) = $this->_extract_timeout_from_metadata($metadata); $call = new UnaryCall($this->channel, $method, $deserialize, $timeout); $jwt_aud_uri = $this->_get_jwt_aud_uri($method); @@ -217,7 +217,7 @@ class BaseStub { */ public function _clientStreamRequest($method, callable $deserialize, - $metadata = array()) { + $metadata = []) { list($actual_metadata, $timeout) = $this->_extract_timeout_from_metadata($metadata); $call = new ClientStreamingCall($this->channel, $method, $deserialize, $timeout); $jwt_aud_uri = $this->_get_jwt_aud_uri($method); @@ -244,8 +244,8 @@ class BaseStub { public function _serverStreamRequest($method, $argument, callable $deserialize, - $metadata = array(), - $options = array()) { + $metadata = [], + $options = []) { list($actual_metadata, $timeout) = $this->_extract_timeout_from_metadata($metadata); $call = new ServerStreamingCall($this->channel, $method, $deserialize, $timeout); $jwt_aud_uri = $this->_get_jwt_aud_uri($method); @@ -269,7 +269,7 @@ class BaseStub { */ public function _bidiRequest($method, callable $deserialize, - $metadata = array()) { + $metadata = []) { list($actual_metadata, $timeout) = $this->_extract_timeout_from_metadata($metadata); $call = new BidiStreamingCall($this->channel, $method, $deserialize, $timeout); $jwt_aud_uri = $this->_get_jwt_aud_uri($method); diff --git a/src/php/lib/Grpc/BidiStreamingCall.php b/src/php/lib/Grpc/BidiStreamingCall.php index c432fd52d8d..60c0fb0f82f 100644 --- a/src/php/lib/Grpc/BidiStreamingCall.php +++ b/src/php/lib/Grpc/BidiStreamingCall.php @@ -42,7 +42,7 @@ class BidiStreamingCall extends AbstractCall { * Start the call * @param array $metadata Metadata to send with the call, if applicable */ - public function start($metadata = array()) { + public function start($metadata = []) { $this->call->startBatch([OP_SEND_INITIAL_METADATA => $metadata]); } @@ -69,7 +69,7 @@ class BidiStreamingCall extends AbstractCall { * @param array $options an array of options, possible keys: * 'flags' => a number */ - public function write($data, $options = array()) { + public function write($data, $options = []) { $message_array = ['message' => $data->serialize()]; if (isset($options['flags'])) { $message_array['flags'] = $options['flags']; diff --git a/src/php/lib/Grpc/ClientStreamingCall.php b/src/php/lib/Grpc/ClientStreamingCall.php index b96c17e751d..55c4aa49d65 100644 --- a/src/php/lib/Grpc/ClientStreamingCall.php +++ b/src/php/lib/Grpc/ClientStreamingCall.php @@ -42,7 +42,7 @@ class ClientStreamingCall extends AbstractCall { * Start the call. * @param array $metadata Metadata to send with the call, if applicable */ - public function start($metadata = array()) { + public function start($metadata = []) { $this->call->startBatch([OP_SEND_INITIAL_METADATA => $metadata]); } @@ -53,7 +53,7 @@ class ClientStreamingCall extends AbstractCall { * @param array $options an array of options, possible keys: * 'flags' => a number */ - public function write($data, $options = array()) { + public function write($data, $options = []) { $message_array = ['message' => $data->serialize()]; if (isset($options['flags'])) { $message_array['flags'] = $options['flags']; @@ -72,6 +72,6 @@ class ClientStreamingCall extends AbstractCall { OP_RECV_MESSAGE => true, OP_RECV_STATUS_ON_CLIENT => true]); $this->metadata = $event->metadata; - return array($this->deserializeResponse($event->message), $event->status); + return [$this->deserializeResponse($event->message), $event->status]; } } \ No newline at end of file diff --git a/src/php/lib/Grpc/ServerStreamingCall.php b/src/php/lib/Grpc/ServerStreamingCall.php index a93c1a5d5e0..f18ad2c22ad 100644 --- a/src/php/lib/Grpc/ServerStreamingCall.php +++ b/src/php/lib/Grpc/ServerStreamingCall.php @@ -45,7 +45,7 @@ class ServerStreamingCall extends AbstractCall { * @param array $options an array of options, possible keys: * 'flags' => a number */ - public function start($data, $metadata = array(), $options = array()) { + public function start($data, $metadata = [], $options = []) { $message_array = ['message' => $data->serialize()]; if (isset($options['flags'])) { $message_array['flags'] = $options['flags']; diff --git a/src/php/lib/Grpc/UnaryCall.php b/src/php/lib/Grpc/UnaryCall.php index 38af6b1d745..821c31013ff 100644 --- a/src/php/lib/Grpc/UnaryCall.php +++ b/src/php/lib/Grpc/UnaryCall.php @@ -45,7 +45,7 @@ class UnaryCall extends AbstractCall { * @param array $options an array of options, possible keys: * 'flags' => a number */ - public function start($data, $metadata = array(), $options = array()) { + public function start($data, $metadata = [], $options = []) { $message_array = ['message' => $data->serialize()]; if (isset($options['flags'])) { $message_array['flags'] = $options['flags']; @@ -66,6 +66,6 @@ class UnaryCall extends AbstractCall { $event = $this->call->startBatch([ OP_RECV_MESSAGE => true, OP_RECV_STATUS_ON_CLIENT => true]); - return array($this->deserializeResponse($event->message), $event->status); + return [$this->deserializeResponse($event->message), $event->status]; } } From 1f5d62b45460aa9d075e6dd91f7c827d4a2fd0dd Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Tue, 27 Oct 2015 10:50:03 -0700 Subject: [PATCH 025/103] ObjC: Start with helloworld, then the web page --- examples/README.md | 2 +- examples/objective-c/auth_sample/README.md | 188 +---------- examples/objective-c/helloworld/README.md | 6 +- examples/objective-c/route_guide/README.md | 358 +-------------------- 4 files changed, 7 insertions(+), 547 deletions(-) diff --git a/examples/README.md b/examples/README.md index cc4b239f8e2..84ec80057e1 100644 --- a/examples/README.md +++ b/examples/README.md @@ -18,7 +18,7 @@ You can find quick start guides for each language, including installation instru * [Android Java](https://github.com/grpc/grpc-java/tree/master/examples/android) * [Python](python/helloworld) * [C#](csharp) -* [Objective-C](objective-c/route_guide) +* [Objective-C](objective-c/helloworld) * [PHP](php) ## What's in this repository? diff --git a/examples/objective-c/auth_sample/README.md b/examples/objective-c/auth_sample/README.md index 5ae64526191..c560b7af65b 100644 --- a/examples/objective-c/auth_sample/README.md +++ b/examples/objective-c/auth_sample/README.md @@ -1,189 +1,3 @@ #OAuth2 on gRPC: Objective-C -This example application demostrates how to use OAuth2 on gRPC to make authenticated API calls on -behalf of a user. By walking through it you'll learn how to use the Objective-C gRPC API to: - -- Initialize and configure a remote call object before the RPC is started. -- Set request metadata elements on a call, which are semantically equivalent to HTTP request -headers. -- Read response metadata from a call, which is equivalent to HTTP response headers and trailers. - -It assumes you know the basics on how to make gRPC API calls using the Objective-C client library, -as shown in the [Hello World](../helloworld) -or [Route Guide](../route_guide) tutorials, -and are familiar with OAuth2 concepts like _access token_. - -- [Example code and setup](#setup) -- [Try it out!](#try) -- [Create an RPC object and start it later](#rpc-object) -- [Set request metadata of a call: Authorization header with an access token](#request-metadata) -- [Get response metadata of a call: Auth challenge header](#response-metadata) - - -## Example code and setup - -The example code for our tutorial is in [examples/objective-c/auth_sample](.). -To download the example, clone this repository by running the following command: -```shell -$ git clone https://github.com/grpc/grpc.git -``` - -Then change your current directory to `examples/objective-c/auth_sample`: -```shell -$ cd examples/objective-c/auth_sample -``` - -Our example is a simple application with two views. The first one lets a user sign in and out using -the OAuth2 flow of Google's [iOS SignIn library](https://developers.google.com/identity/sign-in/ios/). -(Google's library is used in this example because the test gRPC service we are going to call expects -Google account credentials, but neither gRPC nor the Objective-C client library is tied to any -specific OAuth2 provider). The second view makes a gRPC request to the test server, using the -access token obtained by the first view. - -Note: OAuth2 libraries need the application to register and obtain an ID from the identity provider -(in the case of this example app, Google). The app's XCode project is configured using that ID, so -you shouldn't copy this project "as is" for your own app: it would result in your app being -identified in the consent screen as "gRPC-AuthSample", and not having access to real Google -services. Instead, configure your own XCode project following the [instructions here](https://developers.google.com/identity/sign-in/ios/). - -As with the other examples, you also should have [Cocoapods](https://cocoapods.org/#install) -installed, as well as the relevant tools to generate the client library code. You can obtain the -latter by following [these setup instructions](https://github.com/grpc/homebrew-grpc). - - - -## Try it out! - -To try the sample app, first have Cocoapods generate and install the client library for our .proto -files: - -```shell -$ pod install -``` - -(This might have to compile OpenSSL, which takes around 15 minutes if Cocoapods doesn't have it yet -on your computer's cache). - -Finally, open the XCode workspace created by Cocoapods, and run the app. - -The first view, `SelectUserViewController.h/m`, asks you to sign in with your Google account, and to -give the "gRPC-AuthSample" app the following permissions: - -- View your email address. -- View your basic profile info. -- "Test scope for access to the Zoo service". - -This last permission, corresponding to the scope `https://www.googleapis.com/auth/xapi.zoo` doesn't -grant any real capability: it's only used for testing. You can log out at any time. - -The second view, `MakeRPCViewController.h/m`, makes a gRPC request to a test server at -https://grpc-test.sandbox.google.com, sending the access token along with the request. The test -service simply validates the token and writes in its response which user it belongs to, and which -scopes it gives access to. (The client application already knows those two values; it's a way to -verify that everything went as expected). - -The next sections guide you step-by-step through how the gRPC call in `MakeRPCViewController` is -performed. - - -## Create an RPC object and start it later - -The other basic tutorials show how to invoke an RPC by calling an asynchronous method in a generated -client object. This shows how to initialize an object that represents the RPC, and configure it -before starting the network request. - -Assume you have a proto service definition like this: - -```protobuf -option objc_class_prefix = "AUTH"; - -service TestService { - rpc UnaryCall(Request) returns (Response); -} -``` - -A `unaryCallWithRequest:handler:` method, with which you're already familiar, is generated for the -`AUTHTestService` class: - -```objective-c -[client unaryCallWithRequest:request handler:^(AUTHResponse *response, NSError *error) { - ... -}]; -``` - -In addition, an `RPCToUnaryCallWithRequest:handler:` method is generated, which returns a -not-yet-started RPC object: - -```objective-c -#import - -ProtoRPC *call = - [client RPCToUnaryCallWithRequest:request handler:^(AUTHResponse *response, NSError *error) { - ... - }]; -``` - -The RPC represented by this object can be started at any later time like this: - -```objective-c -[call start]; -``` - - -## Set request metadata of a call: Authorization header with an access token - -The `ProtoRPC` class has a `requestMetadata` property (inherited from `GRPCCall`) defined like this: - -```objective-c -- (NSMutableDictionary *)requestMetadata; // nonatomic -- (void)setRequestMetadata:(NSDictionary *)requestMetadata; // nonatomic, copy -``` - -Setting it to a dictionary of metadata keys and values will have them sent on the wire when the call -is started. gRPC metadata are pieces of information about the call sent by the client to the server -(and vice versa). They take the form of key-value pairs and are essentially opaque to gRPC itself. - -```objective-c -call.requestMetadata = @{@"My-Header": @"Value for this header", - @"Another-Header": @"Its value"}; -``` - -For convenience, the property is initialized with an empty `NSMutableDictionary`, so that request -metadata elements can be set like this: - -```objective-c -call.requestMetadata[@"My-Header"] = @"Value for this header"; -``` - -If you have an access token, OAuth2 specifies it is to be sent in this format: - -```objective-c -call.requestMetadata[@"Authorization"] = [@"Bearer " stringByAppendingString:accessToken]; -``` - - -## Get response metadata of a call: Auth challenge header - -The `ProtoRPC` class also inherits a `responseMetadata` property, analogous to the request metadata -we just looked at. It's defined like this: - -```objective-c -@property(atomic, readonly) NSDictionary *responseMetadata; -``` - -To access OAuth2's authentication challenge header you write: - -```objective-c -call.responseMetadata[@"www-authenticate"] -``` - -Note that, as gRPC metadata elements are mapped to HTTP/2 headers (or trailers), the keys of the -response metadata are always ASCII strings in lowercase. - -Many uses cases of response metadata are getting more details about an RPC error. For convenience, -when a `NSError` instance is passed to an RPC handler block, the response metadata dictionary can -also be accessed this way: - -```objective-c -error.userInfo[kGRPCStatusMetadataKey] -``` +This is the supporting code for the tutorial "[OAuth2 on gRPC: Objective-C](http://www.grpc.io/docs/tutorials/auth/oauth2-objective-c.html)." diff --git a/examples/objective-c/helloworld/README.md b/examples/objective-c/helloworld/README.md index 75df1a7a26e..81c5aaa7bcb 100644 --- a/examples/objective-c/helloworld/README.md +++ b/examples/objective-c/helloworld/README.md @@ -12,11 +12,13 @@ Here's how to build and run the Objective-C implementation of the [Hello World]( example used in [Getting started](https://github.com/grpc/grpc/tree/master/examples). The example code for this and our other examples lives in the `examples` directory. Clone -this repository to your local machine by running the following command: +this repository to your local machine by running the following commands: ```sh $ git clone https://github.com/grpc/grpc.git +$ cd grpc +$ git submodule update --init ``` Change your current directory to `examples/objective-c/helloworld` @@ -53,4 +55,4 @@ responds with a `HLWHelloResponse`, which contains a string that is then output ## Tutorial -You can find a more detailed tutorial in [gRPC Basics: Objective-C](../route_guide/README.md). +You can find a more detailed tutorial in [gRPC Basics: Objective-C](http://www.grpc.io/docs/tutorials/basic/objective-c.html). diff --git a/examples/objective-c/route_guide/README.md b/examples/objective-c/route_guide/README.md index 15864c01f4b..6a6f7c0d338 100644 --- a/examples/objective-c/route_guide/README.md +++ b/examples/objective-c/route_guide/README.md @@ -1,360 +1,4 @@ #gRPC Basics: Objective-C -This tutorial provides a basic Objective-C programmer's introduction to working with gRPC. By -walking through this example you'll learn how to: +This is the supporting code for the tutorial "[gRPC Basics: Objective-C](http://www.grpc.io/docs/tutorials/basic/objective-c.html)." -- Define a service in a .proto file. -- Generate client code using the protocol buffer compiler. -- Use the Objective-C gRPC API to write a simple client for your service. - -It assumes a passing familiarity with [protocol buffers](https://developers.google.com/protocol-buffers/docs/overview). -Note that the example in this tutorial uses the proto3 version of the protocol buffers language, -which is currently in alpha release: you can find out more in the [proto3 language guide](https://developers.google.com/protocol-buffers/docs/proto3) -and see the [release notes](https://github.com/google/protobuf/releases) for the new version in the -protocol buffers Github repository. - -This isn't a comprehensive guide to using gRPC in Objective-C: more reference documentation is -coming soon. - -- [Why use gRPC?](#why-grpc) -- [Example code and setup](#setup) -- [Try it out!](#try) -- [Defining the service](#proto) -- [Generating client code](#protoc) -- [Creating the client](#client) - - -## Why use gRPC? - -With gRPC you can define your service once in a .proto file and implement clients and servers in any -of gRPC's supported languages, which in turn can be run in environments ranging from servers inside -Google to your own tablet - all the complexity of communication between different languages and -environments is handled for you by gRPC. You also get all the advantages of working with protocol -buffers, including efficient serialization, a simple IDL, and easy interface updating. - -gRPC and proto3 are specially suited for mobile clients: gRPC is implemented on top of HTTP/2, which -results in network bandwidth savings over using HTTP/1.1. Serialization and parsing of the proto -binary format is more efficient than the equivalent JSON, resulting in CPU and battery savings. And -proto3 uses a runtime that has been optimized over the years at Google to keep code size to a -minimum. The latter is important in Objective-C, because the ability of the compiler to strip unused -code is limited by the dynamic nature of the language. - - - -## Example code and setup - -The example code for our tutorial is in [examples/objective-c/route_guide](.). -To download the example, clone this repository by running the following command: -```shell -$ git clone https://github.com/grpc/grpc.git -``` - -Then change your current directory to `examples/objective-c/route_guide`: -```shell -$ cd examples/objective-c/route_guide -``` - -Our example is a simple route mapping application that lets clients get information about features -on their route, create a summary of their route, and exchange route information such as traffic -updates with the server and other clients. - -You also should have [Cocoapods](https://cocoapods.org/#install) installed, as well as the relevant -tools to generate the client library code (and a server in another language, for testing). You can -obtain the latter by following [these setup instructions](https://github.com/grpc/homebrew-grpc). - - - -## Try it out! - -To try the sample app, we need a gRPC server running locally. Let's compile and run, for example, -the C++ server in this repository: - -```shell -$ pushd ../../cpp/route_guide -$ make -$ ./route_guide_server & -$ popd -``` - -Now have Cocoapods generate and install the client library for our .proto files: - -```shell -$ pod install -``` - -(This might have to compile OpenSSL, which takes around 15 minutes if Cocoapods doesn't have it yet -on your computer's cache). - -Finally, open the XCode workspace created by Cocoapods, and run the app. You can check the calling -code in `ViewControllers.m` and see the results in XCode's log console. - -The next sections guide you step-by-step through how this proto service is defined, how to generate -a client library from it, and how to create an app that uses that library. - - - -## Defining the service - -First let's look at how the service we're using is defined. A gRPC *service* and its method -*request* and *response* types using [protocol buffers](https://developers.google.com/protocol-buffers/docs/overview). -You can see the complete .proto file for our example in [`examples/protos/route_guide.proto`](../../protos/route_guide.proto). - -To define a service, you specify a named `service` in your .proto file: - -```protobuf -service RouteGuide { - ... -} -``` - -Then you define `rpc` methods inside your service definition, specifying their request and response -types. Protocol buffers let you define four kinds of service method, all of which are used in the -`RouteGuide` service: - -- A *simple RPC* where the client sends a request to the server and receives a response later, just -like a normal remote procedure call. -```protobuf - // Obtains the feature at a given position. - rpc GetFeature(Point) returns (Feature) {} -``` - -- A *response-streaming RPC* where the client sends a request to the server and gets back a stream -of response messages. You specify a response-streaming method by placing the `stream` keyword before -the *response* type. -```protobuf - // Obtains the Features available within the given Rectangle. Results are - // streamed rather than returned at once (e.g. in a response message with a - // repeated field), as the rectangle may cover a large area and contain a - // huge number of features. - rpc ListFeatures(Rectangle) returns (stream Feature) {} -``` - -- A *request-streaming RPC* where the client sends a sequence of messages to the server. Once the -client has finished writing the messages, it waits for the server to read them all and return its -response. You specify a request-streaming method by placing the `stream` keyword before the -*request* type. -```protobuf - // Accepts a stream of Points on a route being traversed, returning a - // RouteSummary when traversal is completed. - rpc RecordRoute(stream Point) returns (RouteSummary) {} -``` - -- A *bidirectional streaming RPC* where both sides send a sequence of messages to the other. The two -streams operate independently, so clients and servers can read and write in whatever order they -like: for example, the server could wait to receive all the client messages before writing its -responses, or it could alternately read a message then write a message, or some other combination of -reads and writes. The order of messages in each stream is preserved. You specify this type of method -by placing the `stream` keyword before both the request and the response. -```protobuf - // Accepts a stream of RouteNotes sent while a route is being traversed, - // while receiving other RouteNotes (e.g. from other users). - rpc RouteChat(stream RouteNote) returns (stream RouteNote) {} -``` - -Our .proto file also contains protocol buffer message type definitions for all the request and -response types used in our service methods - for example, here's the `Point` message type: -```protobuf -// Points are represented as latitude-longitude pairs in the E7 representation -// (degrees multiplied by 10**7 and rounded to the nearest integer). -// Latitudes should be in the range +/- 90 degrees and longitude should be in -// the range +/- 180 degrees (inclusive). -message Point { - int32 latitude = 1; - int32 longitude = 2; -} -``` - -You can specify a prefix to be used for your generated classes by adding the `objc_class_prefix` -option at the top of the file. For example: -```protobuf -option objc_class_prefix = "RTG"; -``` - - - -## Generating client code - -Next we need to generate the gRPC client interfaces from our .proto service definition. We do this -using the protocol buffer compiler (`protoc`) with a special gRPC Objective-C plugin. - -For simplicity, we've provided a [Podspec file](RouteGuide.podspec) -that runs `protoc` for you with the appropriate plugin, input, and output, and describes how to -compile the generated files. You just need to run in this directory (`examples/objective-c/route_guide`): - -```shell -$ pod install -``` - -which, before installing the generated library in the XCode project of this sample, runs: - -```shell -$ protoc -I ../../protos --objc_out=Pods/RouteGuide --objcgrpc_out=Pods/RouteGuide ../../protos/route_guide.proto -``` - -Running this command generates the following files under `Pods/RouteGuide/`: -- `RouteGuide.pbobjc.h`, the header which declares your generated message classes. -- `RouteGuide.pbobjc.m`, which contains the implementation of your message classes. -- `RouteGuide.pbrpc.h`, the header which declares your generated service classes. -- `RouteGuide.pbrpc.m`, which contains the implementation of your service classes. - -These contain: -- All the protocol buffer code to populate, serialize, and retrieve our request and response message -types. -- A class called `RTGRouteGuide` that lets clients call the methods defined in the `RouteGuide` -service. - -You can also use the provided Podspec file to generate client code from any other proto service -definition; just replace the name (matching the file name), version, and other metadata. - - - -## Creating the client - -In this section, we'll look at creating an Objective-C client for our `RouteGuide` service. You can -see our complete example client code in [ViewControllers.m](ViewControllers.m). -(Note: In your apps, for maintainability and readability reasons, you shouldn't put all of your view -controllers in a single file; it's done here only to simplify the learning process). - -### Constructing a client object - -To call service methods, we first need to create a client object, an instance of the generated -`RTGRouteGuide` class. The designated initializer of the class expects a `NSString *` with the -server address and port we want to connect to: - -```objective-c -#import - -static NSString * const kHostAddress = @"http://localhost:50051"; - -... - -RTGRouteGuide *client = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; -``` - -Notice that we've specified the HTTP scheme in the host address. This is because the server we will -be using to test our client doesn't use [TLS](http://en.wikipedia.org/wiki/Transport_Layer_Security). -This is fine because it will be running locally on our development machine. The most common case, -though, is connecting with a gRPC server on the internet, running gRPC over TLS. For that case, the -HTTPS scheme can be specified (or no scheme at all, as HTTPS is the default value). The default -value of the port is that of the scheme selected: 443 for HTTPS and 80 for HTTP. - - -### Calling service methods - -Now let's look at how we call our service methods. As you will see, all these methods are -asynchronous, so you can call them from the main thread of your app without worrying about freezing -your UI or the OS killing your app. - -#### Simple RPC - -Calling the simple RPC `GetFeature` is nearly as straightforward as calling any other asynchronous -method on Cocoa. - -```objective-c -RTGPoint *point = [RTGPoint message]; -point.latitude = 40E7; -point.longitude = -74E7; - -[client getFeatureWithRequest:point handler:^(RTGFeature *response, NSError *error) { - if (response) { - // Successful response received - } else { - // RPC error - } -}]; -``` - -As you can see, we create and populate a request protocol buffer object (in our case `RTGPoint`). -Then, we call the method on the client object, passing it the request, and a block to handle the -response (or any RPC error). If the RPC finishes successfully, the handler block is called with a -`nil` error argument, and we can read the response information from the server from the response -argument. If, instead, some RPC error happens, the handler block is called with a `nil` response -argument, and we can read the details of the problem from the error argument. - -```objective-c -NSLog(@"Found feature called %@ at %@.", response.name, response.location); -``` - -#### Streaming RPCs - -Now let's look at our streaming methods. Here's where we call the response-streaming method -`ListFeatures`, which results in our client receiving a stream of geographical `RTGFeature`s: - -```objective-c -[client listFeaturesWithRequest:rectangle - eventHandler:^(BOOL done, RTGFeature *response, NSError *error) { - if (response) { - // Element of the stream of responses received - } else if (error) { - // RPC error; the stream is over. - } - if (done) { - // The stream is over (all the responses were received, or an error occured). Do any cleanup. - } -}]; -``` - -Notice how the signature of the `eventHandler` block now includes a `BOOL done` parameter. The -`eventHandler` block can be called any number of times; only on the last call is the `done` argument -value set to `YES`. If an error occurs, the RPC finishes and the block is called with the arguments -`(YES, nil, error)`. - -The request-streaming method `RecordRoute` expects a stream of `RTGPoint`s from the cient. This -stream is passed to the method as an object of class `GRXWriter`. The simplest way to create one is -to initialize one from a `NSArray` object: - - -```objective-c -#import - -... - -RTGPoint *point1 = [RTGPoint message]; -point.latitude = 40E7; -point.longitude = -74E7; - -RTGPoint *point2 = [RTGPoint message]; -point.latitude = 40E7; -point.longitude = -74E7; - -GRXWriter *locationsWriter = [GRXWriter writerWithContainer:@[point1, point2]]; - -[client recordRouteWithRequestsWriter:locationsWriter - handler:^(RTGRouteSummary *response, NSError *error) { - if (response) { - NSLog(@"Finished trip with %i points", response.pointCount); - NSLog(@"Passed %i features", response.featureCount); - NSLog(@"Travelled %i meters", response.distance); - NSLog(@"It took %i seconds", response.elapsedTime); - } else { - NSLog(@"RPC error: %@", error); - } -}]; - -``` - -The `GRXWriter` class is generic enough to allow for asynchronous streams, streams of future values, -or even infinite streams. - -Finally, let's look at our bidirectional streaming RPC `RouteChat()`. The way to call a -bidirectional streaming RPC is just a combination of how to call request-streaming RPCs and -response-streaming RPCs. - -```objective-c -[client routeChatWithRequestsWriter:notesWriter - eventHandler:^(BOOL done, RTGRouteNote *note, NSError *error) { - if (note) { - NSLog(@"Got message %@ at %@", note.message, note.location); - } else if (error) { - NSLog(@"RPC error: %@", error); - } - if (done) { - NSLog(@"Chat ended."); - } -}]; -``` - -The semantics for the handler block and the `GRXWriter` argument here are exactly the same as for -our request-streaming and response-streaming methods. Although both client and server will always -get the other's messages in the order they were written, the two streams operate completely -independently. From 7b9369906267ede79fbf575b33351f61b8b6e48a Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Tue, 27 Oct 2015 12:53:15 -0700 Subject: [PATCH 026/103] Add nuget version badge --- src/csharp/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/csharp/README.md b/src/csharp/README.md index b215d5aa07a..73046ab2cb8 100644 --- a/src/csharp/README.md +++ b/src/csharp/README.md @@ -1,3 +1,4 @@ +[![Nuget](https://img.shields.io/nuget/v/Grpc.svg)](http://www.nuget.org/packages/Grpc/) gRPC C# ======= @@ -196,4 +197,4 @@ Internally, gRPC C# uses a native library written in C (gRPC C core) and invokes [gRPC install script]:https://raw.githubusercontent.com/grpc/homebrew-grpc/master/scripts/install [grpc.io]: http://www.grpc.io/docs/installation/csharp.html [Debian jessie-backports]:http://backports.debian.org/Instructions/ -[Helloworld example]:../../examples/csharp/helloworld \ No newline at end of file +[Helloworld example]:../../examples/csharp/helloworld From d5b20566f2517eae9373b930e82b45cf2f407d9e Mon Sep 17 00:00:00 2001 From: Stanley Cheung Date: Tue, 27 Oct 2015 13:27:05 -0700 Subject: [PATCH 027/103] php: ran php-cs-fixer to comply with php coding standard --- src/php/bin/run_php_cs_fixer.sh | 40 ++ src/php/lib/Grpc/AbstractCall.php | 116 ++-- src/php/lib/Grpc/BaseStub.php | 469 ++++++++------ src/php/lib/Grpc/BidiStreamingCall.php | 123 ++-- src/php/lib/Grpc/ClientStreamingCall.php | 84 ++- src/php/lib/Grpc/ServerStreamingCall.php | 93 +-- src/php/lib/Grpc/UnaryCall.php | 67 +- .../AbstractGeneratedCodeTest.php | 384 +++++------ .../generated_code/GeneratedCodeTest.php | 19 +- .../GeneratedCodeWithCallbackTest.php | 34 +- src/php/tests/generated_code/math_client.php | 55 +- src/php/tests/interop/interop_client.php | 597 +++++++++--------- src/php/tests/unit_tests/CallTest.php | 98 +-- src/php/tests/unit_tests/EndToEndTest.php | 415 ++++++------ .../tests/unit_tests/SecureEndToEndTest.php | 365 +++++------ src/php/tests/unit_tests/TimevalTest.php | 100 +-- 16 files changed, 1662 insertions(+), 1397 deletions(-) create mode 100755 src/php/bin/run_php_cs_fixer.sh diff --git a/src/php/bin/run_php_cs_fixer.sh b/src/php/bin/run_php_cs_fixer.sh new file mode 100755 index 00000000000..3e11a12bc1f --- /dev/null +++ b/src/php/bin/run_php_cs_fixer.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# 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. + +set -e +command -v php-cs-fixer > /dev/null || { + echo "Cannot find php-cs-fixer. Exiting..." + exit 1 +} +cd $(dirname $0)/.. +php-cs-fixer fix lib/Grpc || true +php-cs-fixer fix tests/generated_code || true +php-cs-fixer fix tests/interop || true +php-cs-fixer fix tests/unit_tests || true diff --git a/src/php/lib/Grpc/AbstractCall.php b/src/php/lib/Grpc/AbstractCall.php index a3c7a9e017a..53849d51fca 100644 --- a/src/php/lib/Grpc/AbstractCall.php +++ b/src/php/lib/Grpc/AbstractCall.php @@ -31,65 +31,79 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + namespace Grpc; -abstract class AbstractCall { +abstract class AbstractCall +{ + protected $call; + protected $deserialize; + protected $metadata; - protected $call; - protected $deserialize; - protected $metadata; + /** + * Create a new Call wrapper object. + * + * @param Channel $channel The channel to communicate on + * @param string $method The method to call on the + * remote server + * @param callback $deserialize A callback function to deserialize + * the response + * @param (optional) long $timeout Timeout in microseconds + */ + public function __construct(Channel $channel, + $method, + $deserialize, + $timeout = false) + { + if ($timeout) { + $now = Timeval::now(); + $delta = new Timeval($timeout); + $deadline = $now->add($delta); + } else { + $deadline = Timeval::infFuture(); + } + $this->call = new Call($channel, $method, $deadline); + $this->deserialize = $deserialize; + $this->metadata = null; + } - /** - * Create a new Call wrapper object. - * @param Channel $channel The channel to communicate on - * @param string $method The method to call on the remote server - * @param callback $deserialize A callback function to deserialize - * the response - * @param (optional) long $timeout Timeout in microseconds - */ - public function __construct(Channel $channel, $method, $deserialize, $timeout = false) { - if ($timeout) { - $now = Timeval::now(); - $delta = new Timeval($timeout); - $deadline = $now->add($delta); - } else { - $deadline = Timeval::infFuture(); + /** + * @return The metadata sent by the server. + */ + public function getMetadata() + { + return $this->metadata; } - $this->call = new Call($channel, $method, $deadline); - $this->deserialize = $deserialize; - $this->metadata = null; - } - /** - * @return The metadata sent by the server. - */ - public function getMetadata() { - return $this->metadata; - } + /** + * @return string The URI of the endpoint. + */ + public function getPeer() + { + return $this->call->getPeer(); + } - /** - * @return string The URI of the endpoint. - */ - public function getPeer() { - return $this->call->getPeer(); - } + /** + * Cancels the call. + */ + public function cancel() + { + $this->call->cancel(); + } - /** - * Cancels the call - */ - public function cancel() { - $this->call->cancel(); - } + /** + * Deserialize a response value to an object. + * + * @param string $value The binary value to deserialize + * + * @return The deserialized value + */ + protected function deserializeResponse($value) + { + if ($value === null) { + return; + } - /** - * Deserialize a response value to an object. - * @param string $value The binary value to deserialize - * @return The deserialized value - */ - protected function deserializeResponse($value) { - if ($value === null) { - return null; + return call_user_func($this->deserialize, $value); } - return call_user_func($this->deserialize, $value); - } } diff --git a/src/php/lib/Grpc/BaseStub.php b/src/php/lib/Grpc/BaseStub.php index 16153e8e999..c26be607ffc 100755 --- a/src/php/lib/Grpc/BaseStub.php +++ b/src/php/lib/Grpc/BaseStub.php @@ -31,255 +31,308 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + namespace Grpc; /** * Base class for generated client stubs. Stub methods are expected to call * _simpleRequest or _streamRequest and return the result. */ -class BaseStub { +class BaseStub +{ + private $hostname; + private $channel; - private $hostname; - private $channel; + // a callback function + private $update_metadata; - // a callback function - private $update_metadata; + /** + * @param $hostname string + * @param $opts array + * - 'update_metadata': (optional) a callback function which takes in a + * metadata array, and returns an updated metadata array + */ + public function __construct($hostname, $opts) + { + $this->hostname = $hostname; + $this->update_metadata = null; + if (isset($opts['update_metadata'])) { + if (is_callable($opts['update_metadata'])) { + $this->update_metadata = $opts['update_metadata']; + } + unset($opts['update_metadata']); + } + $package_config = json_decode( + file_get_contents(dirname(__FILE__).'/../../composer.json'), true); + $opts['grpc.primary_user_agent'] = + 'grpc-php/'.$package_config['version']; + $this->channel = new Channel($hostname, $opts); + } - /** - * @param $hostname string - * @param $opts array - * - 'update_metadata': (optional) a callback function which takes in a - * metadata array, and returns an updated metadata array - */ - public function __construct($hostname, $opts) { - $this->hostname = $hostname; - $this->update_metadata = null; - if (isset($opts['update_metadata'])) { - if (is_callable($opts['update_metadata'])) { - $this->update_metadata = $opts['update_metadata']; - } - unset($opts['update_metadata']); + /** + * @return string The URI of the endpoint. + */ + public function getTarget() + { + return $this->channel->getTarget(); } - $package_config = json_decode( - file_get_contents(dirname(__FILE__) . '/../../composer.json'), true); - $opts['grpc.primary_user_agent'] = - 'grpc-php/' . $package_config['version']; - $this->channel = new Channel($hostname, $opts); - } - /** - * @return string The URI of the endpoint. - */ - public function getTarget() { - return $this->channel->getTarget(); - } + /** + * @param $try_to_connect bool + * + * @return int The grpc connectivity state + */ + public function getConnectivityState($try_to_connect = false) + { + return $this->channel->getConnectivityState($try_to_connect); + } - /** - * @param $try_to_connect bool - * @return int The grpc connectivity state - */ - public function getConnectivityState($try_to_connect = false) { - return $this->channel->getConnectivityState($try_to_connect); - } + /** + * @param $timeout in microseconds + * + * @return bool true if channel is ready + * @throw Exception if channel is in FATAL_ERROR state + */ + public function waitForReady($timeout) + { + $new_state = $this->getConnectivityState(true); + if ($this->_checkConnectivityState($new_state)) { + return true; + } - /** - * @param $timeout in microseconds - * @return bool true if channel is ready - * @throw Exception if channel is in FATAL_ERROR state - */ - public function waitForReady($timeout) { - $new_state = $this->getConnectivityState(true); - if ($this->_checkConnectivityState($new_state)) { - return true; - } + $now = Timeval::now(); + $delta = new Timeval($timeout); + $deadline = $now->add($delta); - $now = Timeval::now(); - $delta = new Timeval($timeout); - $deadline = $now->add($delta); + while ($this->channel->watchConnectivityState($new_state, $deadline)) { + // state has changed before deadline + $new_state = $this->getConnectivityState(); + if ($this->_checkConnectivityState($new_state)) { + return true; + } + } + // deadline has passed + $new_state = $this->getConnectivityState(); - while ($this->channel->watchConnectivityState($new_state, $deadline)) { - // state has changed before deadline - $new_state = $this->getConnectivityState(); - if ($this->_checkConnectivityState($new_state)) { - return true; - } + return $this->_checkConnectivityState($new_state); } - // deadline has passed - $new_state = $this->getConnectivityState(); - return $this->_checkConnectivityState($new_state); - } - private function _checkConnectivityState($new_state) { - if ($new_state == \Grpc\CHANNEL_READY) { - return true; + private function _checkConnectivityState($new_state) + { + if ($new_state == \Grpc\CHANNEL_READY) { + return true; + } + if ($new_state == \Grpc\CHANNEL_FATAL_FAILURE) { + throw new \Exception('Failed to connect to server'); + } + + return false; } - if ($new_state == \Grpc\CHANNEL_FATAL_FAILURE) { - // @codeCoverageIgnoreStart - throw new \Exception('Failed to connect to server'); - // @codeCoverageIgnoreEnd + + /** + * Close the communication channel associated with this stub. + */ + public function close() + { + $this->channel->close(); } - return false; - } - /** - * Close the communication channel associated with this stub - */ - public function close() { - $this->channel->close(); - } + /** + * constructs the auth uri for the jwt. + */ + private function _get_jwt_aud_uri($method) + { + $last_slash_idx = strrpos($method, '/'); + if ($last_slash_idx === false) { + throw new \InvalidArgumentException( + 'service name must have a slash'); + } + $service_name = substr($method, 0, $last_slash_idx); - /** - * constructs the auth uri for the jwt - */ - private function _get_jwt_aud_uri($method) { - $last_slash_idx = strrpos($method, '/'); - if ($last_slash_idx === false) { - throw new \InvalidArgumentException('service name must have a slash'); + return 'https://'.$this->hostname.$service_name; } - $service_name = substr($method, 0, $last_slash_idx); - return "https://" . $this->hostname . $service_name; - } - /** - * extract $timeout from $metadata - * @param $metadata The metadata map - * @return list($metadata_copy, $timeout) - */ - private function _extract_timeout_from_metadata($metadata) { - $timeout = false; - $metadata_copy = $metadata; - if (isset($metadata['timeout'])) { - $timeout = $metadata['timeout']; - unset($metadata_copy['timeout']); + /** + * extract $timeout from $metadata. + * + * @param $metadata The metadata map + * + * @return list($metadata_copy, $timeout) + */ + private function _extract_timeout_from_metadata($metadata) + { + $timeout = false; + $metadata_copy = $metadata; + if (isset($metadata['timeout'])) { + $timeout = $metadata['timeout']; + unset($metadata_copy['timeout']); + } + + return [$metadata_copy, $timeout]; } - return [$metadata_copy, $timeout]; - } - /** - * validate and normalize the metadata array - * @param $metadata The metadata map - * @return $metadata Validated and key-normalized metadata map - * @throw InvalidArgumentException if key contains invalid characters - */ - private function _validate_and_normalize_metadata($metadata) { - $metadata_copy = []; - foreach ($metadata as $key => $value) { - if (!preg_match('/^[A-Za-z\d_-]+$/', $key)) { - throw new \InvalidArgumentException( - 'Metadata keys must be nonempty strings containing only '. - 'alphanumeric characters, hyphens and underscores'); - } - $metadata_copy[strtolower($key)] = $value; + /** + * validate and normalize the metadata array. + * + * @param $metadata The metadata map + * + * @return $metadata Validated and key-normalized metadata map + * @throw InvalidArgumentException if key contains invalid characters + */ + private function _validate_and_normalize_metadata($metadata) + { + $metadata_copy = []; + foreach ($metadata as $key => $value) { + if (!preg_match('/^[A-Za-z\d_-]+$/', $key)) { + throw new \InvalidArgumentException( + 'Metadata keys must be nonempty strings containing only '. + 'alphanumeric characters, hyphens and underscores'); + } + $metadata_copy[strtolower($key)] = $value; + } + + return $metadata_copy; } - return $metadata_copy; - } - /* This class is intended to be subclassed by generated code, so all functions - begin with "_" to avoid name collisions. */ + /* This class is intended to be subclassed by generated code, so + * all functions begin with "_" to avoid name collisions. */ - /** - * Call a remote method that takes a single argument and has a single output - * - * @param string $method The name of the method to call - * @param $argument The argument to the method - * @param callable $deserialize A function that deserializes the response - * @param array $metadata A metadata map to send to the server - * @return SimpleSurfaceActiveCall The active call object - */ - public function _simpleRequest($method, - $argument, - callable $deserialize, - $metadata = [], - $options = []) { - list($actual_metadata, $timeout) = $this->_extract_timeout_from_metadata($metadata); - $call = new UnaryCall($this->channel, $method, $deserialize, $timeout); - $jwt_aud_uri = $this->_get_jwt_aud_uri($method); - if (is_callable($this->update_metadata)) { - $actual_metadata = call_user_func($this->update_metadata, + /** + * Call a remote method that takes a single argument and has a + * single output. + * + * @param string $method The name of the method to call + * @param $argument The argument to the method + * @param callable $deserialize A function that deserializes the response + * @param array $metadata A metadata map to send to the server + * + * @return SimpleSurfaceActiveCall The active call object + */ + public function _simpleRequest($method, + $argument, + callable $deserialize, + $metadata = [], + $options = []) + { + list($actual_metadata, $timeout) = + $this->_extract_timeout_from_metadata($metadata); + $call = new UnaryCall($this->channel, + $method, + $deserialize, + $timeout); + $jwt_aud_uri = $this->_get_jwt_aud_uri($method); + if (is_callable($this->update_metadata)) { + $actual_metadata = call_user_func($this->update_metadata, $actual_metadata, $jwt_aud_uri); + } + $actual_metadata = $this->_validate_and_normalize_metadata( + $actual_metadata); + $call->start($argument, $actual_metadata, $options); + + return $call; } - $actual_metadata = $this->_validate_and_normalize_metadata($actual_metadata); - $call->start($argument, $actual_metadata, $options); - return $call; - } - /** - * Call a remote method that takes a stream of arguments and has a single - * output - * - * @param string $method The name of the method to call - * @param $arguments An array or Traversable of arguments to stream to the - * server - * @param callable $deserialize A function that deserializes the response - * @param array $metadata A metadata map to send to the server - * @return ClientStreamingSurfaceActiveCall The active call object - */ - public function _clientStreamRequest($method, - callable $deserialize, - $metadata = []) { - list($actual_metadata, $timeout) = $this->_extract_timeout_from_metadata($metadata); - $call = new ClientStreamingCall($this->channel, $method, $deserialize, $timeout); - $jwt_aud_uri = $this->_get_jwt_aud_uri($method); - if (is_callable($this->update_metadata)) { - $actual_metadata = call_user_func($this->update_metadata, + /** + * Call a remote method that takes a stream of arguments and has a single + * output. + * + * @param string $method The name of the method to call + * @param $arguments An array or Traversable of arguments to stream to the + * server + * @param callable $deserialize A function that deserializes the response + * @param array $metadata A metadata map to send to the server + * + * @return ClientStreamingSurfaceActiveCall The active call object + */ + public function _clientStreamRequest($method, + callable $deserialize, + $metadata = []) + { + list($actual_metadata, $timeout) = + $this->_extract_timeout_from_metadata($metadata); + $call = new ClientStreamingCall($this->channel, + $method, + $deserialize, + $timeout); + $jwt_aud_uri = $this->_get_jwt_aud_uri($method); + if (is_callable($this->update_metadata)) { + $actual_metadata = call_user_func($this->update_metadata, $actual_metadata, $jwt_aud_uri); + } + $actual_metadata = $this->_validate_and_normalize_metadata( + $actual_metadata); + $call->start($actual_metadata); + + return $call; } - $actual_metadata = $this->_validate_and_normalize_metadata($actual_metadata); - $call->start($actual_metadata); - return $call; - } - /** - * Call a remote method that takes a single argument and returns a stream of - * responses - * - * @param string $method The name of the method to call - * @param $argument The argument to the method - * @param callable $deserialize A function that deserializes the responses - * @param array $metadata A metadata map to send to the server - * @return ServerStreamingSurfaceActiveCall The active call object - */ - public function _serverStreamRequest($method, - $argument, - callable $deserialize, - $metadata = [], - $options = []) { - list($actual_metadata, $timeout) = $this->_extract_timeout_from_metadata($metadata); - $call = new ServerStreamingCall($this->channel, $method, $deserialize, $timeout); - $jwt_aud_uri = $this->_get_jwt_aud_uri($method); - if (is_callable($this->update_metadata)) { - $actual_metadata = call_user_func($this->update_metadata, + /** + * Call a remote method that takes a single argument and returns a stream of + * responses. + * + * @param string $method The name of the method to call + * @param $argument The argument to the method + * @param callable $deserialize A function that deserializes the responses + * @param array $metadata A metadata map to send to the server + * + * @return ServerStreamingSurfaceActiveCall The active call object + */ + public function _serverStreamRequest($method, + $argument, + callable $deserialize, + $metadata = [], + $options = []) + { + list($actual_metadata, $timeout) = + $this->_extract_timeout_from_metadata($metadata); + $call = new ServerStreamingCall($this->channel, + $method, + $deserialize, + $timeout); + $jwt_aud_uri = $this->_get_jwt_aud_uri($method); + if (is_callable($this->update_metadata)) { + $actual_metadata = call_user_func($this->update_metadata, $actual_metadata, $jwt_aud_uri); + } + $actual_metadata = $this->_validate_and_normalize_metadata( + $actual_metadata); + $call->start($argument, $actual_metadata, $options); + + return $call; } - $actual_metadata = $this->_validate_and_normalize_metadata($actual_metadata); - $call->start($argument, $actual_metadata, $options); - return $call; - } - /** - * Call a remote method with messages streaming in both directions - * - * @param string $method The name of the method to call - * @param callable $deserialize A function that deserializes the responses - * @param array $metadata A metadata map to send to the server - * @return BidiStreamingSurfaceActiveCall The active call object - */ - public function _bidiRequest($method, - callable $deserialize, - $metadata = []) { - list($actual_metadata, $timeout) = $this->_extract_timeout_from_metadata($metadata); - $call = new BidiStreamingCall($this->channel, $method, $deserialize, $timeout); - $jwt_aud_uri = $this->_get_jwt_aud_uri($method); - if (is_callable($this->update_metadata)) { - $actual_metadata = call_user_func($this->update_metadata, + /** + * Call a remote method with messages streaming in both directions. + * + * @param string $method The name of the method to call + * @param callable $deserialize A function that deserializes the responses + * @param array $metadata A metadata map to send to the server + * + * @return BidiStreamingSurfaceActiveCall The active call object + */ + public function _bidiRequest($method, + callable $deserialize, + $metadata = []) + { + list($actual_metadata, $timeout) = + $this->_extract_timeout_from_metadata($metadata); + $call = new BidiStreamingCall($this->channel, + $method, + $deserialize, + $timeout); + $jwt_aud_uri = $this->_get_jwt_aud_uri($method); + if (is_callable($this->update_metadata)) { + $actual_metadata = call_user_func($this->update_metadata, $actual_metadata, $jwt_aud_uri); + } + $actual_metadata = $this->_validate_and_normalize_metadata( + $actual_metadata); + $call->start($actual_metadata); + + return $call; } - $actual_metadata = $this->_validate_and_normalize_metadata($actual_metadata); - $call->start($actual_metadata); - return $call; - } } diff --git a/src/php/lib/Grpc/BidiStreamingCall.php b/src/php/lib/Grpc/BidiStreamingCall.php index 60c0fb0f82f..bf813c12e76 100644 --- a/src/php/lib/Grpc/BidiStreamingCall.php +++ b/src/php/lib/Grpc/BidiStreamingCall.php @@ -31,68 +31,87 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + namespace Grpc; /** * Represents an active call that allows for sending and recieving messages in * streams in any order. */ -class BidiStreamingCall extends AbstractCall { - /** - * Start the call - * @param array $metadata Metadata to send with the call, if applicable - */ - public function start($metadata = []) { - $this->call->startBatch([OP_SEND_INITIAL_METADATA => $metadata]); - } +class BidiStreamingCall extends AbstractCall +{ + /** + * Start the call. + * + * @param array $metadata Metadata to send with the call, if applicable + */ + public function start($metadata = []) + { + $this->call->startBatch([ + OP_SEND_INITIAL_METADATA => $metadata, + ]); + } + + /** + * Reads the next value from the server. + * + * @return The next value from the server, or null if there is none + */ + public function read() + { + $batch = [OP_RECV_MESSAGE => true]; + if ($this->metadata === null) { + $batch[OP_RECV_INITIAL_METADATA] = true; + } + $read_event = $this->call->startBatch($batch); + if ($this->metadata === null) { + $this->metadata = $read_event->metadata; + } - /** - * Reads the next value from the server. - * @return The next value from the server, or null if there is none - */ - public function read() { - $batch = [OP_RECV_MESSAGE => true]; - if ($this->metadata === null) { - $batch[OP_RECV_INITIAL_METADATA] = true; + return $this->deserializeResponse($read_event->message); } - $read_event = $this->call->startBatch($batch); - if ($this->metadata === null) { - $this->metadata = $read_event->metadata; + + /** + * Write a single message to the server. This cannot be called after + * writesDone is called. + * + * @param ByteBuffer $data The data to write + * @param array $options an array of options, possible keys: + * 'flags' => a number + */ + public function write($data, $options = []) + { + $message_array = ['message' => $data->serialize()]; + if (isset($options['flags'])) { + $message_array['flags'] = $options['flags']; + } + $this->call->startBatch([ + OP_SEND_MESSAGE => $message_array, + ]); } - return $this->deserializeResponse($read_event->message); - } - /** - * Write a single message to the server. This cannot be called after - * writesDone is called. - * @param ByteBuffer $data The data to write - * @param array $options an array of options, possible keys: - * 'flags' => a number - */ - public function write($data, $options = []) { - $message_array = ['message' => $data->serialize()]; - if (isset($options['flags'])) { - $message_array['flags'] = $options['flags']; + /** + * Indicate that no more writes will be sent. + */ + public function writesDone() + { + $this->call->startBatch([ + OP_SEND_CLOSE_FROM_CLIENT => true, + ]); } - $this->call->startBatch([OP_SEND_MESSAGE => $message_array]); - } - /** - * Indicate that no more writes will be sent. - */ - public function writesDone() { - $this->call->startBatch([OP_SEND_CLOSE_FROM_CLIENT => true]); - } + /** + * Wait for the server to send the status, and return it. + * + * @return object The status object, with integer $code, string $details, + * and array $metadata members + */ + public function getStatus() + { + $status_event = $this->call->startBatch([ + OP_RECV_STATUS_ON_CLIENT => true, + ]); - /** - * Wait for the server to send the status, and return it. - * @return object The status object, with integer $code, string $details, - * and array $metadata members - */ - public function getStatus() { - $status_event = $this->call->startBatch([ - OP_RECV_STATUS_ON_CLIENT => true - ]); - return $status_event->status; - } -} \ No newline at end of file + return $status_event->status; + } +} diff --git a/src/php/lib/Grpc/ClientStreamingCall.php b/src/php/lib/Grpc/ClientStreamingCall.php index 55c4aa49d65..500cfe0d7a0 100644 --- a/src/php/lib/Grpc/ClientStreamingCall.php +++ b/src/php/lib/Grpc/ClientStreamingCall.php @@ -31,47 +31,61 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + namespace Grpc; /** * Represents an active call that sends a stream of messages and then gets a * single response. */ -class ClientStreamingCall extends AbstractCall { - /** - * Start the call. - * @param array $metadata Metadata to send with the call, if applicable - */ - public function start($metadata = []) { - $this->call->startBatch([OP_SEND_INITIAL_METADATA => $metadata]); - } +class ClientStreamingCall extends AbstractCall +{ + /** + * Start the call. + * + * @param array $metadata Metadata to send with the call, if applicable + */ + public function start($metadata = []) + { + $this->call->startBatch([ + OP_SEND_INITIAL_METADATA => $metadata, + ]); + } - /** - * Write a single message to the server. This cannot be called after - * wait is called. - * @param ByteBuffer $data The data to write - * @param array $options an array of options, possible keys: - * 'flags' => a number - */ - public function write($data, $options = []) { - $message_array = ['message' => $data->serialize()]; - if (isset($options['flags'])) { - $message_array['flags'] = $options['flags']; + /** + * Write a single message to the server. This cannot be called after + * wait is called. + * + * @param ByteBuffer $data The data to write + * @param array $options an array of options, possible keys: + * 'flags' => a number + */ + public function write($data, $options = []) + { + $message_array = ['message' => $data->serialize()]; + if (isset($options['flags'])) { + $message_array['flags'] = $options['flags']; + } + $this->call->startBatch([ + OP_SEND_MESSAGE => $message_array, + ]); } - $this->call->startBatch([OP_SEND_MESSAGE => $message_array]); - } - /** - * Wait for the server to respond with data and a status - * @return [response data, status] - */ - public function wait() { - $event = $this->call->startBatch([ - OP_SEND_CLOSE_FROM_CLIENT => true, - OP_RECV_INITIAL_METADATA => true, - OP_RECV_MESSAGE => true, - OP_RECV_STATUS_ON_CLIENT => true]); - $this->metadata = $event->metadata; - return [$this->deserializeResponse($event->message), $event->status]; - } -} \ No newline at end of file + /** + * Wait for the server to respond with data and a status. + * + * @return [response data, status] + */ + public function wait() + { + $event = $this->call->startBatch([ + OP_SEND_CLOSE_FROM_CLIENT => true, + OP_RECV_INITIAL_METADATA => true, + OP_RECV_MESSAGE => true, + OP_RECV_STATUS_ON_CLIENT => true, + ]); + $this->metadata = $event->metadata; + + return [$this->deserializeResponse($event->message), $event->status]; + } +} diff --git a/src/php/lib/Grpc/ServerStreamingCall.php b/src/php/lib/Grpc/ServerStreamingCall.php index f18ad2c22ad..da48523717e 100644 --- a/src/php/lib/Grpc/ServerStreamingCall.php +++ b/src/php/lib/Grpc/ServerStreamingCall.php @@ -31,53 +31,66 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + namespace Grpc; /** * Represents an active call that sends a single message and then gets a stream - * of reponses + * of reponses. */ -class ServerStreamingCall extends AbstractCall { - /** - * Start the call - * @param $data The data to send - * @param array $metadata Metadata to send with the call, if applicable - * @param array $options an array of options, possible keys: - * 'flags' => a number - */ - public function start($data, $metadata = [], $options = []) { - $message_array = ['message' => $data->serialize()]; - if (isset($options['flags'])) { - $message_array['flags'] = $options['flags']; +class ServerStreamingCall extends AbstractCall +{ + /** + * Start the call. + * + * @param $data The data to send + * @param array $metadata Metadata to send with the call, if applicable + * @param array $options an array of options, possible keys: + * 'flags' => a number + */ + public function start($data, $metadata = [], $options = []) + { + $message_array = ['message' => $data->serialize()]; + if (isset($options['flags'])) { + $message_array['flags'] = $options['flags']; + } + $event = $this->call->startBatch([ + OP_SEND_INITIAL_METADATA => $metadata, + OP_RECV_INITIAL_METADATA => true, + OP_SEND_MESSAGE => $message_array, + OP_SEND_CLOSE_FROM_CLIENT => true, + ]); + $this->metadata = $event->metadata; } - $event = $this->call->startBatch([ - OP_SEND_INITIAL_METADATA => $metadata, - OP_RECV_INITIAL_METADATA => true, - OP_SEND_MESSAGE => $message_array, - OP_SEND_CLOSE_FROM_CLIENT => true]); - $this->metadata = $event->metadata; - } - /** - * @return An iterator of response values - */ - public function responses() { - $response = $this->call->startBatch([OP_RECV_MESSAGE => true])->message; - while($response !== null) { - yield $this->deserializeResponse($response); - $response = $this->call->startBatch([OP_RECV_MESSAGE => true])->message; + /** + * @return An iterator of response values + */ + public function responses() + { + $response = $this->call->startBatch([ + OP_RECV_MESSAGE => true, + ])->message; + while ($response !== null) { + yield $this->deserializeResponse($response); + $response = $this->call->startBatch([ + OP_RECV_MESSAGE => true, + ])->message; + } } - } - /** - * Wait for the server to send the status, and return it. - * @return object The status object, with integer $code, string $details, - * and array $metadata members - */ - public function getStatus() { - $status_event = $this->call->startBatch([ - OP_RECV_STATUS_ON_CLIENT => true - ]); - return $status_event->status; - } + /** + * Wait for the server to send the status, and return it. + * + * @return object The status object, with integer $code, string $details, + * and array $metadata members + */ + public function getStatus() + { + $status_event = $this->call->startBatch([ + OP_RECV_STATUS_ON_CLIENT => true, + ]); + + return $status_event->status; + } } diff --git a/src/php/lib/Grpc/UnaryCall.php b/src/php/lib/Grpc/UnaryCall.php index 821c31013ff..b57903d6d07 100644 --- a/src/php/lib/Grpc/UnaryCall.php +++ b/src/php/lib/Grpc/UnaryCall.php @@ -31,41 +31,50 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + namespace Grpc; /** * Represents an active call that sends a single message and then gets a single * response. */ -class UnaryCall extends AbstractCall { - /** - * Start the call - * @param $data The data to send - * @param array $metadata Metadata to send with the call, if applicable - * @param array $options an array of options, possible keys: - * 'flags' => a number - */ - public function start($data, $metadata = [], $options = []) { - $message_array = ['message' => $data->serialize()]; - if (isset($options['flags'])) { - $message_array['flags'] = $options['flags']; +class UnaryCall extends AbstractCall +{ + /** + * Start the call. + * + * @param $data The data to send + * @param array $metadata Metadata to send with the call, if applicable + * @param array $options an array of options, possible keys: + * 'flags' => a number + */ + public function start($data, $metadata = [], $options = []) + { + $message_array = ['message' => $data->serialize()]; + if (isset($options['flags'])) { + $message_array['flags'] = $options['flags']; + } + $event = $this->call->startBatch([ + OP_SEND_INITIAL_METADATA => $metadata, + OP_RECV_INITIAL_METADATA => true, + OP_SEND_MESSAGE => $message_array, + OP_SEND_CLOSE_FROM_CLIENT => true, + ]); + $this->metadata = $event->metadata; } - $event = $this->call->startBatch([ - OP_SEND_INITIAL_METADATA => $metadata, - OP_RECV_INITIAL_METADATA => true, - OP_SEND_MESSAGE => $message_array, - OP_SEND_CLOSE_FROM_CLIENT => true]); - $this->metadata = $event->metadata; - } - /** - * Wait for the server to respond with data and a status - * @return [response data, status] - */ - public function wait() { - $event = $this->call->startBatch([ - OP_RECV_MESSAGE => true, - OP_RECV_STATUS_ON_CLIENT => true]); - return [$this->deserializeResponse($event->message), $event->status]; - } + /** + * Wait for the server to respond with data and a status. + * + * @return [response data, status] + */ + public function wait() + { + $event = $this->call->startBatch([ + OP_RECV_MESSAGE => true, + OP_RECV_STATUS_ON_CLIENT => true, + ]); + + return [$this->deserializeResponse($event->message), $event->status]; + } } diff --git a/src/php/tests/generated_code/AbstractGeneratedCodeTest.php b/src/php/tests/generated_code/AbstractGeneratedCodeTest.php index 1819e401f6f..4a0bd6a1f1d 100644 --- a/src/php/tests/generated_code/AbstractGeneratedCodeTest.php +++ b/src/php/tests/generated_code/AbstractGeneratedCodeTest.php @@ -31,184 +31,212 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ -require_once realpath(dirname(__FILE__) . '/../../vendor/autoload.php'); -require_once dirname(__FILE__) . '/math.php'; - -abstract class AbstractGeneratedCodeTest extends PHPUnit_Framework_TestCase { - /* These tests require that a server exporting the math service must be - * running on $GRPC_TEST_HOST */ - 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 testAlreadyReady() { - $this->assertTrue(self::$client->waitForReady(250000)); - $this->assertTrue(self::$client->waitForReady(100)); - } - - public function testGetTarget() { - $this->assertTrue(is_string(self::$client->getTarget())); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testClose() { - self::$client->close(); - $div_arg = new math\DivArgs(); - $call = self::$client->Div($div_arg); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testInvalidMetadata() { - $div_arg = new math\DivArgs(); - $call = self::$client->Div($div_arg, array(' ' => 'abc123')); - } - - public function testGetCallMetadata() { - $div_arg = new math\DivArgs(); - $call = self::$client->Div($div_arg); - $this->assertTrue(is_array($call->getMetadata())); - } - - public function testTimeout() { - $div_arg = new math\DivArgs(); - $call = self::$client->Div($div_arg, array('timeout' => 100)); - list($response, $status) = $call->wait(); - $this->assertSame(\Grpc\STATUS_DEADLINE_EXCEEDED, $status->code); - } - - public function testCancel() { - $div_arg = new math\DivArgs(); - $call = self::$client->Div($div_arg); - $call->cancel(); - list($response, $status) = $call->wait(); - $this->assertSame(\Grpc\STATUS_CANCELLED, $status->code); - } - - /** - * @expectedException InvalidArgumentException - */ - public function testInvalidMethodName() { - $invalid_client = new DummyInvalidClient('host', array()); - $div_arg = new math\DivArgs(); - $invalid_client->InvalidUnaryCall($div_arg); - } - - public function testWriteFlags() { - $div_arg = new math\DivArgs(); - $div_arg->setDividend(7); - $div_arg->setDivisor(4); - $call = self::$client->Div($div_arg, array(), array('flags' => Grpc\WRITE_NO_COMPRESS)); - $this->assertTrue(is_string($call->getPeer())); - list($response, $status) = $call->wait(); - $this->assertSame(1, $response->getQuotient()); - $this->assertSame(3, $response->getRemainder()); - $this->assertSame(\Grpc\STATUS_OK, $status->code); - } - - public function testWriteFlagsServerStreaming() { - $fib_arg = new math\FibArgs(); - $fib_arg->setLimit(7); - $call = self::$client->Fib($fib_arg, array(), array('flags' => Grpc\WRITE_NO_COMPRESS)); - $result_array = iterator_to_array($call->responses()); - $status = $call->getStatus(); - $this->assertSame(\Grpc\STATUS_OK, $status->code); - } - - public function testWriteFlagsClientStreaming() { - $call = self::$client->Sum(); - $num = new math\Num(); - $num->setNum(1); - $call->write($num, array('flags' => Grpc\WRITE_NO_COMPRESS)); - list($response, $status) = $call->wait(); - $this->assertSame(\Grpc\STATUS_OK, $status->code); - } - - public function testWriteFlagsBidiStreaming() { - $call = self::$client->DivMany(); - $div_arg = new math\DivArgs(); - $div_arg->setDividend(7); - $div_arg->setDivisor(4); - $call->write($div_arg, array('flags' => Grpc\WRITE_NO_COMPRESS)); - $response = $call->read(); - $call->writesDone(); - $status = $call->getStatus(); - $this->assertSame(\Grpc\STATUS_OK, $status->code); - } - - public function testSimpleRequest() { - $div_arg = new math\DivArgs(); - $div_arg->setDividend(7); - $div_arg->setDivisor(4); - $call = self::$client->Div($div_arg); - $this->assertTrue(is_string($call->getPeer())); - list($response, $status) = $call->wait(); - $this->assertSame(1, $response->getQuotient()); - $this->assertSame(3, $response->getRemainder()); - $this->assertSame(\Grpc\STATUS_OK, $status->code); - } - - public function testServerStreaming() { - $fib_arg = new math\FibArgs(); - $fib_arg->setLimit(7); - $call = self::$client->Fib($fib_arg); - $this->assertTrue(is_string($call->getPeer())); - $result_array = iterator_to_array($call->responses()); - $extract_num = function($num){ - return $num->getNum(); - }; - $values = array_map($extract_num, $result_array); - $this->assertSame([1, 1, 2, 3, 5, 8, 13], $values); - $status = $call->getStatus(); - $this->assertSame(\Grpc\STATUS_OK, $status->code); - } - - public function testClientStreaming() { - $call = self::$client->Sum(); - $this->assertTrue(is_string($call->getPeer())); - for ($i = 0; $i < 7; $i++) { - $num = new math\Num(); - $num->setNum($i); - $call->write($num); - } - list($response, $status) = $call->wait(); - $this->assertSame(21, $response->getNum()); - $this->assertSame(\Grpc\STATUS_OK, $status->code); - } - - public function testBidiStreaming() { - $call = self::$client->DivMany(); - $this->assertTrue(is_string($call->getPeer())); - for ($i = 0; $i < 7; $i++) { - $div_arg = new math\DivArgs(); - $div_arg->setDividend(2 * $i + 1); - $div_arg->setDivisor(2); - $call->write($div_arg); - $response = $call->read(); - $this->assertSame($i, $response->getQuotient()); - $this->assertSame(1, $response->getRemainder()); - } - $call->writesDone(); - $status = $call->getStatus(); - $this->assertSame(\Grpc\STATUS_OK, $status->code); - } +require_once realpath(dirname(__FILE__).'/../../vendor/autoload.php'); +require_once dirname(__FILE__).'/math.php'; + +abstract class AbstractGeneratedCodeTest extends PHPUnit_Framework_TestCase +{ + /** + * These tests require that a server exporting the math service must be + * running on $GRPC_TEST_HOST. + */ + 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 testAlreadyReady() + { + $this->assertTrue(self::$client->waitForReady(250000)); + $this->assertTrue(self::$client->waitForReady(100)); + } + + public function testGetTarget() + { + $this->assertTrue(is_string(self::$client->getTarget())); + } + + /** + * @expectedException InvalidArgumentException + */ + public function testClose() + { + self::$client->close(); + $div_arg = new math\DivArgs(); + $call = self::$client->Div($div_arg); + } + + /** + * @expectedException InvalidArgumentException + */ + public function testInvalidMetadata() + { + $div_arg = new math\DivArgs(); + $call = self::$client->Div($div_arg, [' ' => 'abc123']); + } + + public function testGetCallMetadata() + { + $div_arg = new math\DivArgs(); + $call = self::$client->Div($div_arg); + $this->assertTrue(is_array($call->getMetadata())); + } + + public function testTimeout() + { + $div_arg = new math\DivArgs(); + $call = self::$client->Div($div_arg, ['timeout' => 100]); + list($response, $status) = $call->wait(); + $this->assertSame(\Grpc\STATUS_DEADLINE_EXCEEDED, $status->code); + } + + public function testCancel() + { + $div_arg = new math\DivArgs(); + $call = self::$client->Div($div_arg); + $call->cancel(); + list($response, $status) = $call->wait(); + $this->assertSame(\Grpc\STATUS_CANCELLED, $status->code); + } + + /** + * @expectedException InvalidArgumentException + */ + public function testInvalidMethodName() + { + $invalid_client = new DummyInvalidClient('host', []); + $div_arg = new math\DivArgs(); + $invalid_client->InvalidUnaryCall($div_arg); + } + + public function testWriteFlags() + { + $div_arg = new math\DivArgs(); + $div_arg->setDividend(7); + $div_arg->setDivisor(4); + $call = self::$client->Div($div_arg, [], + ['flags' => Grpc\WRITE_NO_COMPRESS]); + $this->assertTrue(is_string($call->getPeer())); + list($response, $status) = $call->wait(); + $this->assertSame(1, $response->getQuotient()); + $this->assertSame(3, $response->getRemainder()); + $this->assertSame(\Grpc\STATUS_OK, $status->code); + } + + public function testWriteFlagsServerStreaming() + { + $fib_arg = new math\FibArgs(); + $fib_arg->setLimit(7); + $call = self::$client->Fib($fib_arg, [], + ['flags' => Grpc\WRITE_NO_COMPRESS]); + $result_array = iterator_to_array($call->responses()); + $status = $call->getStatus(); + $this->assertSame(\Grpc\STATUS_OK, $status->code); + } + + public function testWriteFlagsClientStreaming() + { + $call = self::$client->Sum(); + $num = new math\Num(); + $num->setNum(1); + $call->write($num, ['flags' => Grpc\WRITE_NO_COMPRESS]); + list($response, $status) = $call->wait(); + $this->assertSame(\Grpc\STATUS_OK, $status->code); + } + + public function testWriteFlagsBidiStreaming() + { + $call = self::$client->DivMany(); + $div_arg = new math\DivArgs(); + $div_arg->setDividend(7); + $div_arg->setDivisor(4); + $call->write($div_arg, ['flags' => Grpc\WRITE_NO_COMPRESS]); + $response = $call->read(); + $call->writesDone(); + $status = $call->getStatus(); + $this->assertSame(\Grpc\STATUS_OK, $status->code); + } + + public function testSimpleRequest() + { + $div_arg = new math\DivArgs(); + $div_arg->setDividend(7); + $div_arg->setDivisor(4); + $call = self::$client->Div($div_arg); + $this->assertTrue(is_string($call->getPeer())); + list($response, $status) = $call->wait(); + $this->assertSame(1, $response->getQuotient()); + $this->assertSame(3, $response->getRemainder()); + $this->assertSame(\Grpc\STATUS_OK, $status->code); + } + + public function testServerStreaming() + { + $fib_arg = new math\FibArgs(); + $fib_arg->setLimit(7); + $call = self::$client->Fib($fib_arg); + $this->assertTrue(is_string($call->getPeer())); + $result_array = iterator_to_array($call->responses()); + $extract_num = function ($num) { + return $num->getNum(); + }; + $values = array_map($extract_num, $result_array); + $this->assertSame([1, 1, 2, 3, 5, 8, 13], $values); + $status = $call->getStatus(); + $this->assertSame(\Grpc\STATUS_OK, $status->code); + } + + public function testClientStreaming() + { + $call = self::$client->Sum(); + $this->assertTrue(is_string($call->getPeer())); + for ($i = 0; $i < 7; ++$i) { + $num = new math\Num(); + $num->setNum($i); + $call->write($num); + } + list($response, $status) = $call->wait(); + $this->assertSame(21, $response->getNum()); + $this->assertSame(\Grpc\STATUS_OK, $status->code); + } + + public function testBidiStreaming() + { + $call = self::$client->DivMany(); + $this->assertTrue(is_string($call->getPeer())); + for ($i = 0; $i < 7; ++$i) { + $div_arg = new math\DivArgs(); + $div_arg->setDividend(2 * $i + 1); + $div_arg->setDivisor(2); + $call->write($div_arg); + $response = $call->read(); + $this->assertSame($i, $response->getQuotient()); + $this->assertSame(1, $response->getRemainder()); + } + $call->writesDone(); + $status = $call->getStatus(); + $this->assertSame(\Grpc\STATUS_OK, $status->code); + } } -class DummyInvalidClient extends \Grpc\BaseStub { - public function InvalidUnaryCall(\math\DivArgs $argument, - $metadata = array(), - $options = array()) { - return $this->_simpleRequest('invalidMethodName', $argument, - function() {}, $metadata, $options); - } +class DummyInvalidClient extends \Grpc\BaseStub +{ + public function InvalidUnaryCall(\math\DivArgs $argument, + $metadata = [], + $options = []) + { + return $this->_simpleRequest('invalidMethodName', + $argument, + function () {}, + $metadata, + $options); + } } diff --git a/src/php/tests/generated_code/GeneratedCodeTest.php b/src/php/tests/generated_code/GeneratedCodeTest.php index 64bcf45b4a0..7043e8e1d1b 100755 --- a/src/php/tests/generated_code/GeneratedCodeTest.php +++ b/src/php/tests/generated_code/GeneratedCodeTest.php @@ -31,15 +31,18 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ -require_once dirname(__FILE__) . '/AbstractGeneratedCodeTest.php'; +require_once dirname(__FILE__).'/AbstractGeneratedCodeTest.php'; -class GeneratedCodeTest extends AbstractGeneratedCodeTest { - public function setUp() { - self::$client = new math\MathClient( +class GeneratedCodeTest extends AbstractGeneratedCodeTest +{ + public function setUp() + { + self::$client = new math\MathClient( getenv('GRPC_TEST_HOST'), []); - } + } - public static function tearDownAfterClass() { - self::$client->close(); - } + public static function tearDownAfterClass() + { + self::$client->close(); + } } diff --git a/src/php/tests/generated_code/GeneratedCodeWithCallbackTest.php b/src/php/tests/generated_code/GeneratedCodeWithCallbackTest.php index 09c09cf3535..5a20e684c73 100644 --- a/src/php/tests/generated_code/GeneratedCodeWithCallbackTest.php +++ b/src/php/tests/generated_code/GeneratedCodeWithCallbackTest.php @@ -31,21 +31,25 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ -require_once dirname(__FILE__) . '/AbstractGeneratedCodeTest.php'; +require_once dirname(__FILE__).'/AbstractGeneratedCodeTest.php'; -class GeneratedCodeWithCallbackTest extends AbstractGeneratedCodeTest { - public function setUp() { - 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; - }]); - } +class GeneratedCodeWithCallbackTest extends AbstractGeneratedCodeTest +{ + public function setUp() + { + self::$client = new math\MathClient( + getenv('GRPC_TEST_HOST'), + ['update_metadata' => function ($a_hash, + $client = []) { + $a_copy = $a_hash; + $a_copy['foo'] = ['bar']; - public static function tearDownAfterClass() { - self::$client->close(); - } + return $a_copy; + }]); + } + + public static function tearDownAfterClass() + { + self::$client->close(); + } } diff --git a/src/php/tests/generated_code/math_client.php b/src/php/tests/generated_code/math_client.php index 7bc78287be8..76ccabc0684 100644 --- a/src/php/tests/generated_code/math_client.php +++ b/src/php/tests/generated_code/math_client.php @@ -36,31 +36,32 @@ include 'vendor/autoload.php'; include 'tests/generated_code/math.php'; -function p($line) { - print("$line
\n"); +function p($line) +{ + print("$line
\n"); } -$host = "localhost:50051"; +$host = 'localhost:50051'; p("Connecting to host: $host"); $client = new math\MathClient($host, []); -p("Client class: ".get_class($client)); +p('Client class: '.get_class($client)); p(''); -p("Running unary call test:"); +p('Running unary call test:'); $dividend = 7; $divisor = 4; $div_arg = new math\DivArgs(); $div_arg->setDividend($dividend); $div_arg->setDivisor($divisor); $call = $client->Div($div_arg); -p("Call peer: ".$call->getPeer()); +p('Call peer: '.$call->getPeer()); p("Dividing $dividend by $divisor"); list($response, $status) = $call->wait(); -p("quotient = ".$response->getQuotient()); -p("remainder = ".$response->getRemainder()); +p('quotient = '.$response->getQuotient()); +p('remainder = '.$response->getRemainder()); p(''); -p("Running server streaming test:"); +p('Running server streaming test:'); $limit = 7; $fib_arg = new math\FibArgs(); $fib_arg->setLimit($limit); @@ -68,35 +69,35 @@ $call = $client->Fib($fib_arg); $result_array = iterator_to_array($call->responses()); $result = ''; foreach ($result_array as $num) { - $result .= ' '.$num->getNum(); + $result .= ' '.$num->getNum(); } p("The first $limit Fibonacci numbers are:".$result); p(''); -p("Running client streaming test:"); +p('Running client streaming test:'); $call = $client->Sum(); -for ($i = 0; $i <= $limit; $i++) { - $num = new math\Num(); - $num->setNum($i); - $call->write($num); +for ($i = 0; $i <= $limit; ++$i) { + $num = new math\Num(); + $num->setNum($i); + $call->write($num); } list($response, $status) = $call->wait(); -p(sprintf("The first %d positive integers sum to: %d", +p(sprintf('The first %d positive integers sum to: %d', $limit, $response->getNum())); p(''); -p("Running bidi-streaming test:"); +p('Running bidi-streaming test:'); $call = $client->DivMany(); -for ($i = 0; $i < 7; $i++) { - $div_arg = new math\DivArgs(); - $dividend = 2 * $i + 1; - $divisor = 3; - $div_arg->setDividend($dividend); - $div_arg->setDivisor($divisor); - $call->write($div_arg); - p("client writing: $dividend / $divisor"); - $response = $call->read(); - p(sprintf("server writing: quotient = %d, remainder = %d", +for ($i = 0; $i < 7; ++$i) { + $div_arg = new math\DivArgs(); + $dividend = 2 * $i + 1; + $divisor = 3; + $div_arg->setDividend($dividend); + $div_arg->setDivisor($divisor); + $call->write($div_arg); + p("client writing: $dividend / $divisor"); + $response = $call->read(); + p(sprintf('server writing: quotient = %d, remainder = %d', $response->getQuotient(), $response->getRemainder())); } $call->writesDone(); diff --git a/src/php/tests/interop/interop_client.php b/src/php/tests/interop/interop_client.php index 03ce2ac7001..3019866561e 100755 --- a/src/php/tests/interop/interop_client.php +++ b/src/php/tests/interop/interop_client.php @@ -31,7 +31,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ -require_once realpath(dirname(__FILE__) . '/../../vendor/autoload.php'); +require_once realpath(dirname(__FILE__).'/../../vendor/autoload.php'); require 'empty.php'; require 'messages.php'; require 'test.php'; @@ -41,394 +41,427 @@ use GuzzleHttp\ClientInterface; /** * Assertion function that always exits with an error code if the assertion is - * falsy + * falsy. + * * @param $value Assertion value. Should be true. * @param $error_message Message to display if the assertion is false */ -function hardAssert($value, $error_message) { - if (!$value) { - echo $error_message . "\n"; - exit(1); - } +function hardAssert($value, $error_message) +{ + if (!$value) { + echo $error_message."\n"; + exit(1); + } } /** * Run the empty_unary test. + * * @param $stub Stub object that has service methods */ -function emptyUnary($stub) { - list($result, $status) = $stub->EmptyCall(new grpc\testing\EmptyMessage())->wait(); - hardAssert($status->code === Grpc\STATUS_OK, 'Call did not complete successfully'); - hardAssert($result !== null, 'Call completed with a null response'); +function emptyUnary($stub) +{ + list($result, $status) = $stub->EmptyCall(new grpc\testing\EmptyMessage())->wait(); + hardAssert($status->code === Grpc\STATUS_OK, 'Call did not complete successfully'); + hardAssert($result !== null, 'Call completed with a null response'); } /** * Run the large_unary test. + * * @param $stub Stub object that has service methods */ -function largeUnary($stub) { - performLargeUnary($stub); +function largeUnary($stub) +{ + performLargeUnary($stub); } /** - * Shared code between large unary test and auth test + * Shared code between large unary test and auth test. + * * @param $stub Stub object that has service methods * @param $fillUsername boolean whether to fill result with username * @param $fillOauthScope boolean whether to fill result with oauth scope */ function performLargeUnary($stub, $fillUsername = false, $fillOauthScope = false, - $metadata = array()) { - $request_len = 271828; - $response_len = 314159; - - $request = new grpc\testing\SimpleRequest(); - $request->setResponseType(grpc\testing\PayloadType::COMPRESSABLE); - $request->setResponseSize($response_len); - $payload = new grpc\testing\Payload(); - $payload->setType(grpc\testing\PayloadType::COMPRESSABLE); - $payload->setBody(str_repeat("\0", $request_len)); - $request->setPayload($payload); - $request->setFillUsername($fillUsername); - $request->setFillOauthScope($fillOauthScope); - - list($result, $status) = $stub->UnaryCall($request, $metadata)->wait(); - hardAssert($status->code === Grpc\STATUS_OK, 'Call did not complete successfully'); - hardAssert($result !== null, 'Call returned a null response'); - $payload = $result->getPayload(); - hardAssert($payload->getType() === grpc\testing\PayloadType::COMPRESSABLE, + $metadata = []) +{ + $request_len = 271828; + $response_len = 314159; + + $request = new grpc\testing\SimpleRequest(); + $request->setResponseType(grpc\testing\PayloadType::COMPRESSABLE); + $request->setResponseSize($response_len); + $payload = new grpc\testing\Payload(); + $payload->setType(grpc\testing\PayloadType::COMPRESSABLE); + $payload->setBody(str_repeat("\0", $request_len)); + $request->setPayload($payload); + $request->setFillUsername($fillUsername); + $request->setFillOauthScope($fillOauthScope); + + list($result, $status) = $stub->UnaryCall($request, $metadata)->wait(); + hardAssert($status->code === Grpc\STATUS_OK, 'Call did not complete successfully'); + hardAssert($result !== null, 'Call returned a null response'); + $payload = $result->getPayload(); + hardAssert($payload->getType() === grpc\testing\PayloadType::COMPRESSABLE, 'Payload had the wrong type'); - hardAssert(strlen($payload->getBody()) === $response_len, + hardAssert(strlen($payload->getBody()) === $response_len, 'Payload had the wrong length'); - hardAssert($payload->getBody() === str_repeat("\0", $response_len), + hardAssert($payload->getBody() === str_repeat("\0", $response_len), 'Payload had the wrong content'); - return $result; + + return $result; } /** * Run the service account credentials auth test. + * * @param $stub Stub object that has service methods * @param $args array command line args */ -function serviceAccountCreds($stub, $args) { - if (!array_key_exists('oauth_scope', $args)) { - throw new Exception('Missing oauth scope'); - } - $jsonKey = json_decode( - file_get_contents(getenv(CredentialsLoader::ENV_VAR)), - true); - $result = performLargeUnary($stub, $fillUsername=true, $fillOauthScope=true); - hardAssert($result->getUsername() == $jsonKey['client_email'], +function serviceAccountCreds($stub, $args) +{ + if (!array_key_exists('oauth_scope', $args)) { + throw new Exception('Missing oauth scope'); + } + $jsonKey = json_decode( + file_get_contents(getenv(CredentialsLoader::ENV_VAR)), + true); + $result = performLargeUnary($stub, $fillUsername = true, $fillOauthScope = true); + hardAssert($result->getUsername() == $jsonKey['client_email'], 'invalid email returned'); - hardAssert(strpos($args['oauth_scope'], $result->getOauthScope()) !== false, + hardAssert(strpos($args['oauth_scope'], $result->getOauthScope()) !== false, 'invalid oauth scope returned'); } /** * Run the compute engine credentials auth test. - * Has not been run from gcloud as of 2015-05-05 + * Has not been run from gcloud as of 2015-05-05. + * * @param $stub Stub object that has service methods * @param $args array command line args */ -function computeEngineCreds($stub, $args) { - if (!array_key_exists('oauth_scope', $args)) { - throw new Exception('Missing oauth scope'); - } - if (!array_key_exists('default_service_account', $args)) { - throw new Exception('Missing default_service_account'); - } - $result = performLargeUnary($stub, $fillUsername=true, $fillOauthScope=true); - hardAssert($args['default_service_account'] == $result->getUsername(), +function computeEngineCreds($stub, $args) +{ + if (!array_key_exists('oauth_scope', $args)) { + throw new Exception('Missing oauth scope'); + } + if (!array_key_exists('default_service_account', $args)) { + throw new Exception('Missing default_service_account'); + } + $result = performLargeUnary($stub, $fillUsername = true, $fillOauthScope = true); + hardAssert($args['default_service_account'] == $result->getUsername(), 'invalid email returned'); } /** * Run the jwt token credentials auth test. + * * @param $stub Stub object that has service methods * @param $args array command line args */ -function jwtTokenCreds($stub, $args) { - $jsonKey = json_decode( - file_get_contents(getenv(CredentialsLoader::ENV_VAR)), - true); - $result = performLargeUnary($stub, $fillUsername=true, $fillOauthScope=true); - hardAssert($result->getUsername() == $jsonKey['client_email'], +function jwtTokenCreds($stub, $args) +{ + $jsonKey = json_decode( + file_get_contents(getenv(CredentialsLoader::ENV_VAR)), + true); + $result = performLargeUnary($stub, $fillUsername = true, $fillOauthScope = true); + hardAssert($result->getUsername() == $jsonKey['client_email'], 'invalid email returned'); } /** * Run the oauth2_auth_token auth test. + * * @param $stub Stub object that has service methods * @param $args array command line args */ -function oauth2AuthToken($stub, $args) { - $jsonKey = json_decode( - file_get_contents(getenv(CredentialsLoader::ENV_VAR)), - true); - $result = performLargeUnary($stub, $fillUsername=true, $fillOauthScope=true); - hardAssert($result->getUsername() == $jsonKey['client_email'], +function oauth2AuthToken($stub, $args) +{ + $jsonKey = json_decode( + file_get_contents(getenv(CredentialsLoader::ENV_VAR)), + true); + $result = performLargeUnary($stub, $fillUsername = true, $fillOauthScope = true); + hardAssert($result->getUsername() == $jsonKey['client_email'], 'invalid email returned'); } /** * Run the per_rpc_creds auth test. + * * @param $stub Stub object that has service methods * @param $args array command line args */ -function perRpcCreds($stub, $args) { - $jsonKey = json_decode( - file_get_contents(getenv(CredentialsLoader::ENV_VAR)), - true); - $auth_credentials = ApplicationDefaultCredentials::getCredentials( - $args['oauth_scope'] - ); - $token = $auth_credentials->fetchAuthToken(); - $metadata = array(CredentialsLoader::AUTH_METADATA_KEY => - array(sprintf("%s %s", - $token['token_type'], - $token['access_token']))); - $result = performLargeUnary($stub, $fillUsername=true, $fillOauthScope=true, +function perRpcCreds($stub, $args) +{ + $jsonKey = json_decode( + file_get_contents(getenv(CredentialsLoader::ENV_VAR)), + true); + $auth_credentials = ApplicationDefaultCredentials::getCredentials( + $args['oauth_scope'] + ); + $token = $auth_credentials->fetchAuthToken(); + $metadata = [CredentialsLoader::AUTH_METADATA_KEY => [sprintf('%s %s', + $token['token_type'], + $token['access_token'])]]; + $result = performLargeUnary($stub, $fillUsername = true, $fillOauthScope = true, $metadata); - hardAssert($result->getUsername() == $jsonKey['client_email'], + hardAssert($result->getUsername() == $jsonKey['client_email'], 'invalid email returned'); } /** * Run the client_streaming test. + * * @param $stub Stub object that has service methods */ -function clientStreaming($stub) { - $request_lengths = array(27182, 8, 1828, 45904); - - $requests = array_map( - function($length) { - $request = new grpc\testing\StreamingInputCallRequest(); - $payload = new grpc\testing\Payload(); - $payload->setBody(str_repeat("\0", $length)); - $request->setPayload($payload); - return $request; - }, $request_lengths); - - $call = $stub->StreamingInputCall(); - foreach ($requests as $request) { - $call->write($request); - } - list($result, $status) = $call->wait(); - hardAssert($status->code === Grpc\STATUS_OK, 'Call did not complete successfully'); - hardAssert($result->getAggregatedPayloadSize() === 74922, +function clientStreaming($stub) +{ + $request_lengths = [27182, 8, 1828, 45904]; + + $requests = array_map( + function ($length) { + $request = new grpc\testing\StreamingInputCallRequest(); + $payload = new grpc\testing\Payload(); + $payload->setBody(str_repeat("\0", $length)); + $request->setPayload($payload); + + return $request; + }, $request_lengths); + + $call = $stub->StreamingInputCall(); + foreach ($requests as $request) { + $call->write($request); + } + list($result, $status) = $call->wait(); + hardAssert($status->code === Grpc\STATUS_OK, 'Call did not complete successfully'); + hardAssert($result->getAggregatedPayloadSize() === 74922, 'aggregated_payload_size was incorrect'); } /** * Run the server_streaming test. + * * @param $stub Stub object that has service methods. */ -function serverStreaming($stub) { - $sizes = array(31415, 9, 2653, 58979); - - $request = new grpc\testing\StreamingOutputCallRequest(); - $request->setResponseType(grpc\testing\PayloadType::COMPRESSABLE); - foreach($sizes as $size) { - $response_parameters = new grpc\testing\ResponseParameters(); - $response_parameters->setSize($size); - $request->addResponseParameters($response_parameters); - } +function serverStreaming($stub) +{ + $sizes = [31415, 9, 2653, 58979]; - $call = $stub->StreamingOutputCall($request); - $i = 0; - foreach($call->responses() as $value) { - hardAssert($i < 4, 'Too many responses'); - $payload = $value->getPayload(); - hardAssert($payload->getType() === grpc\testing\PayloadType::COMPRESSABLE, - 'Payload ' . $i . ' had the wrong type'); - hardAssert(strlen($payload->getBody()) === $sizes[$i], - 'Response ' . $i . ' had the wrong length'); - $i += 1; - } - hardAssert($call->getStatus()->code === Grpc\STATUS_OK, + $request = new grpc\testing\StreamingOutputCallRequest(); + $request->setResponseType(grpc\testing\PayloadType::COMPRESSABLE); + foreach ($sizes as $size) { + $response_parameters = new grpc\testing\ResponseParameters(); + $response_parameters->setSize($size); + $request->addResponseParameters($response_parameters); + } + + $call = $stub->StreamingOutputCall($request); + $i = 0; + foreach ($call->responses() as $value) { + hardAssert($i < 4, 'Too many responses'); + $payload = $value->getPayload(); + hardAssert($payload->getType() === grpc\testing\PayloadType::COMPRESSABLE, + 'Payload '.$i.' had the wrong type'); + hardAssert(strlen($payload->getBody()) === $sizes[$i], + 'Response '.$i.' had the wrong length'); + $i += 1; + } + hardAssert($call->getStatus()->code === Grpc\STATUS_OK, 'Call did not complete successfully'); } /** * Run the ping_pong test. + * * @param $stub Stub object that has service methods. */ -function pingPong($stub) { - $request_lengths = array(27182, 8, 1828, 45904); - $response_lengths = array(31415, 9, 2653, 58979); - - $call = $stub->FullDuplexCall(); - for($i = 0; $i < 4; $i++) { - $request = new grpc\testing\StreamingOutputCallRequest(); - $request->setResponseType(grpc\testing\PayloadType::COMPRESSABLE); - $response_parameters = new grpc\testing\ResponseParameters(); - $response_parameters->setSize($response_lengths[$i]); - $request->addResponseParameters($response_parameters); - $payload = new grpc\testing\Payload(); - $payload->setBody(str_repeat("\0", $request_lengths[$i])); - $request->setPayload($payload); - - $call->write($request); - $response = $call->read(); +function pingPong($stub) +{ + $request_lengths = [27182, 8, 1828, 45904]; + $response_lengths = [31415, 9, 2653, 58979]; + + $call = $stub->FullDuplexCall(); + for ($i = 0; $i < 4; ++$i) { + $request = new grpc\testing\StreamingOutputCallRequest(); + $request->setResponseType(grpc\testing\PayloadType::COMPRESSABLE); + $response_parameters = new grpc\testing\ResponseParameters(); + $response_parameters->setSize($response_lengths[$i]); + $request->addResponseParameters($response_parameters); + $payload = new grpc\testing\Payload(); + $payload->setBody(str_repeat("\0", $request_lengths[$i])); + $request->setPayload($payload); - hardAssert($response !== null, 'Server returned too few responses'); - $payload = $response->getPayload(); - hardAssert($payload->getType() === grpc\testing\PayloadType::COMPRESSABLE, - 'Payload ' . $i . ' had the wrong type'); - hardAssert(strlen($payload->getBody()) === $response_lengths[$i], - 'Payload ' . $i . ' had the wrong length'); - } - $call->writesDone(); - hardAssert($call->read() === null, 'Server returned too many responses'); - hardAssert($call->getStatus()->code === Grpc\STATUS_OK, + $call->write($request); + $response = $call->read(); + + hardAssert($response !== null, 'Server returned too few responses'); + $payload = $response->getPayload(); + hardAssert($payload->getType() === grpc\testing\PayloadType::COMPRESSABLE, + 'Payload '.$i.' had the wrong type'); + hardAssert(strlen($payload->getBody()) === $response_lengths[$i], + 'Payload '.$i.' had the wrong length'); + } + $call->writesDone(); + hardAssert($call->read() === null, 'Server returned too many responses'); + hardAssert($call->getStatus()->code === Grpc\STATUS_OK, 'Call did not complete successfully'); } /** * Run the empty_stream test. + * * @param $stub Stub object that has service methods. */ -function emptyStream($stub) { - $call = $stub->FullDuplexCall(); - $call->writesDone(); - hardAssert($call->read() === null, 'Server returned too many responses'); - hardAssert($call->getStatus()->code === Grpc\STATUS_OK, +function emptyStream($stub) +{ + $call = $stub->FullDuplexCall(); + $call->writesDone(); + hardAssert($call->read() === null, 'Server returned too many responses'); + hardAssert($call->getStatus()->code === Grpc\STATUS_OK, 'Call did not complete successfully'); } /** * Run the cancel_after_begin test. + * * @param $stub Stub object that has service methods. */ -function cancelAfterBegin($stub) { - $call = $stub->StreamingInputCall(); - $call->cancel(); - list($result, $status) = $call->wait(); - hardAssert($status->code === Grpc\STATUS_CANCELLED, +function cancelAfterBegin($stub) +{ + $call = $stub->StreamingInputCall(); + $call->cancel(); + list($result, $status) = $call->wait(); + hardAssert($status->code === Grpc\STATUS_CANCELLED, 'Call status was not CANCELLED'); } /** * Run the cancel_after_first_response test. + * * @param $stub Stub object that has service methods. */ -function cancelAfterFirstResponse($stub) { - $call = $stub->FullDuplexCall(); - $request = new grpc\testing\StreamingOutputCallRequest(); - $request->setResponseType(grpc\testing\PayloadType::COMPRESSABLE); - $response_parameters = new grpc\testing\ResponseParameters(); - $response_parameters->setSize(31415); - $request->addResponseParameters($response_parameters); - $payload = new grpc\testing\Payload(); - $payload->setBody(str_repeat("\0", 27182)); - $request->setPayload($payload); - - $call->write($request); - $response = $call->read(); - - $call->cancel(); - hardAssert($call->getStatus()->code === Grpc\STATUS_CANCELLED, +function cancelAfterFirstResponse($stub) +{ + $call = $stub->FullDuplexCall(); + $request = new grpc\testing\StreamingOutputCallRequest(); + $request->setResponseType(grpc\testing\PayloadType::COMPRESSABLE); + $response_parameters = new grpc\testing\ResponseParameters(); + $response_parameters->setSize(31415); + $request->addResponseParameters($response_parameters); + $payload = new grpc\testing\Payload(); + $payload->setBody(str_repeat("\0", 27182)); + $request->setPayload($payload); + + $call->write($request); + $response = $call->read(); + + $call->cancel(); + hardAssert($call->getStatus()->code === Grpc\STATUS_CANCELLED, 'Call status was not CANCELLED'); } -function timeoutOnSleepingServer($stub) { - $call = $stub->FullDuplexCall(array('timeout' => 1000)); - $request = new grpc\testing\StreamingOutputCallRequest(); - $request->setResponseType(grpc\testing\PayloadType::COMPRESSABLE); - $response_parameters = new grpc\testing\ResponseParameters(); - $response_parameters->setSize(8); - $request->addResponseParameters($response_parameters); - $payload = new grpc\testing\Payload(); - $payload->setBody(str_repeat("\0", 9)); - $request->setPayload($payload); - - $call->write($request); - $response = $call->read(); - - hardAssert($call->getStatus()->code === Grpc\STATUS_DEADLINE_EXCEEDED, +function timeoutOnSleepingServer($stub) +{ + $call = $stub->FullDuplexCall(['timeout' => 1000]); + $request = new grpc\testing\StreamingOutputCallRequest(); + $request->setResponseType(grpc\testing\PayloadType::COMPRESSABLE); + $response_parameters = new grpc\testing\ResponseParameters(); + $response_parameters->setSize(8); + $request->addResponseParameters($response_parameters); + $payload = new grpc\testing\Payload(); + $payload->setBody(str_repeat("\0", 9)); + $request->setPayload($payload); + + $call->write($request); + $response = $call->read(); + + hardAssert($call->getStatus()->code === Grpc\STATUS_DEADLINE_EXCEEDED, 'Call status was not DEADLINE_EXCEEDED'); } -$args = getopt('', array('server_host:', 'server_port:', 'test_case:', - 'use_tls::', 'use_test_ca::', - 'server_host_override:', 'oauth_scope:', - 'default_service_account:')); +$args = getopt('', ['server_host:', 'server_port:', 'test_case:', + 'use_tls::', 'use_test_ca::', + 'server_host_override:', 'oauth_scope:', + 'default_service_account:', ]); if (!array_key_exists('server_host', $args)) { - throw new Exception('Missing argument: --server_host is required'); + throw new Exception('Missing argument: --server_host is required'); } if (!array_key_exists('server_port', $args)) { - throw new Exception('Missing argument: --server_port is required'); + throw new Exception('Missing argument: --server_port is required'); } if (!array_key_exists('test_case', $args)) { - throw new Exception('Missing argument: --test_case is required'); + throw new Exception('Missing argument: --test_case is required'); } if ($args['server_port'] == 443) { - $server_address = $args['server_host']; + $server_address = $args['server_host']; } else { - $server_address = $args['server_host'] . ':' . $args['server_port']; + $server_address = $args['server_host'].':'.$args['server_port']; } $test_case = $args['test_case']; $host_override = 'foo.test.google.fr'; if (array_key_exists('server_host_override', $args)) { - $host_override = $args['server_host_override']; + $host_override = $args['server_host_override']; } $use_tls = false; if (array_key_exists('use_tls', $args) && $args['use_tls'] != 'false') { - $use_tls = true; + $use_tls = true; } $use_test_ca = false; if (array_key_exists('use_test_ca', $args) && $args['use_test_ca'] != 'false') { - $use_test_ca = true; + $use_test_ca = true; } $opts = []; if ($use_tls) { - if ($use_test_ca) { - $ssl_credentials = Grpc\Credentials::createSsl( - file_get_contents(dirname(__FILE__) . '/../data/ca.pem')); - } else { - $ssl_credentials = Grpc\Credentials::createSsl(); - } - $opts['credentials'] = $ssl_credentials; - $opts['grpc.ssl_target_name_override'] = $host_override; + if ($use_test_ca) { + $ssl_credentials = Grpc\Credentials::createSsl( + file_get_contents(dirname(__FILE__).'/../data/ca.pem')); + } else { + $ssl_credentials = Grpc\Credentials::createSsl(); + } + $opts['credentials'] = $ssl_credentials; + $opts['grpc.ssl_target_name_override'] = $host_override; } -if (in_array($test_case, array('service_account_creds', - 'compute_engine_creds', 'jwt_token_creds'))) { - if ($test_case == 'jwt_token_creds') { - $auth_credentials = ApplicationDefaultCredentials::getCredentials(); - } else { - $auth_credentials = ApplicationDefaultCredentials::getCredentials( - $args['oauth_scope'] - ); - } - $opts['update_metadata'] = $auth_credentials->getUpdateMetadataFunc(); +if (in_array($test_case, ['service_account_creds', + 'compute_engine_creds', 'jwt_token_creds', ])) { + if ($test_case == 'jwt_token_creds') { + $auth_credentials = ApplicationDefaultCredentials::getCredentials(); + } else { + $auth_credentials = ApplicationDefaultCredentials::getCredentials( + $args['oauth_scope'] + ); + } + $opts['update_metadata'] = $auth_credentials->getUpdateMetadataFunc(); } if ($test_case == 'oauth2_auth_token') { - $auth_credentials = ApplicationDefaultCredentials::getCredentials( - $args['oauth_scope'] - ); - $token = $auth_credentials->fetchAuthToken(); - $update_metadata = - function($metadata, - $authUri = null, - ClientInterface $client = null) use ($token) { - $metadata_copy = $metadata; - $metadata_copy[CredentialsLoader::AUTH_METADATA_KEY] = - array(sprintf("%s %s", - $token['token_type'], - $token['access_token'])); - return $metadata_copy; - }; - $opts['update_metadata'] = $update_metadata; + $auth_credentials = ApplicationDefaultCredentials::getCredentials( + $args['oauth_scope'] + ); + $token = $auth_credentials->fetchAuthToken(); + $update_metadata = + function ($metadata, + $authUri = null, + ClientInterface $client = null) use ($token) { + $metadata_copy = $metadata; + $metadata_copy[CredentialsLoader::AUTH_METADATA_KEY] = + [sprintf('%s %s', + $token['token_type'], + $token['access_token'])]; + + return $metadata_copy; + }; + $opts['update_metadata'] = $update_metadata; } $stub = new grpc\testing\TestServiceClient($server_address, $opts); @@ -437,49 +470,49 @@ echo "Connecting to $server_address\n"; echo "Running test case $test_case\n"; switch ($test_case) { - case 'empty_unary': - emptyUnary($stub); - break; - case 'large_unary': - largeUnary($stub); - break; - case 'client_streaming': - clientStreaming($stub); - break; - case 'server_streaming': - serverStreaming($stub); - break; - case 'ping_pong': - pingPong($stub); - break; - case 'empty_stream': - emptyStream($stub); - break; - case 'cancel_after_begin': - cancelAfterBegin($stub); - break; - case 'cancel_after_first_response': - cancelAfterFirstResponse($stub); - break; - case 'timeout_on_sleeping_server': - timeoutOnSleepingServer($stub); - break; - case 'service_account_creds': - serviceAccountCreds($stub, $args); - break; - case 'compute_engine_creds': - computeEngineCreds($stub, $args); - break; - case 'jwt_token_creds': - jwtTokenCreds($stub, $args); - break; - case 'oauth2_auth_token': - oauth2AuthToken($stub, $args); - break; - case 'per_rpc_creds': - perRpcCreds($stub, $args); - break; - default: - echo "Unsupported test case $test_case\n"; - exit(1); + case 'empty_unary': + emptyUnary($stub); + break; + case 'large_unary': + largeUnary($stub); + break; + case 'client_streaming': + clientStreaming($stub); + break; + case 'server_streaming': + serverStreaming($stub); + break; + case 'ping_pong': + pingPong($stub); + break; + case 'empty_stream': + emptyStream($stub); + break; + case 'cancel_after_begin': + cancelAfterBegin($stub); + break; + case 'cancel_after_first_response': + cancelAfterFirstResponse($stub); + break; + case 'timeout_on_sleeping_server': + timeoutOnSleepingServer($stub); + break; + case 'service_account_creds': + serviceAccountCreds($stub, $args); + break; + case 'compute_engine_creds': + computeEngineCreds($stub, $args); + break; + case 'jwt_token_creds': + jwtTokenCreds($stub, $args); + break; + case 'oauth2_auth_token': + oauth2AuthToken($stub, $args); + break; + case 'per_rpc_creds': + perRpcCreds($stub, $args); + break; + default: + echo "Unsupported test case $test_case\n"; + exit(1); } diff --git a/src/php/tests/unit_tests/CallTest.php b/src/php/tests/unit_tests/CallTest.php index caff15ee110..3b697b50c3b 100755 --- a/src/php/tests/unit_tests/CallTest.php +++ b/src/php/tests/unit_tests/CallTest.php @@ -31,56 +31,64 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ -class CallTest extends PHPUnit_Framework_TestCase{ - static $server; - static $port; +class CallTest extends PHPUnit_Framework_TestCase +{ + public static $server; + public static $port; - public static function setUpBeforeClass() { - self::$server = new Grpc\Server([]); - self::$port = self::$server->addHttp2Port('0.0.0.0:0'); - } + public static function setUpBeforeClass() + { + self::$server = new Grpc\Server([]); + self::$port = self::$server->addHttp2Port('0.0.0.0:0'); + } - public function setUp() { - $this->channel = new Grpc\Channel('localhost:' . self::$port, []); - $this->call = new Grpc\Call($this->channel, - '/foo', - Grpc\Timeval::infFuture()); - } + public function setUp() + { + $this->channel = new Grpc\Channel('localhost:'.self::$port, []); + $this->call = new Grpc\Call($this->channel, + '/foo', + Grpc\Timeval::infFuture()); + } - public function testAddEmptyMetadata() { - $batch = [ - Grpc\OP_SEND_INITIAL_METADATA => [] - ]; - $result = $this->call->startBatch($batch); - $this->assertTrue($result->send_metadata); - } + public function testAddEmptyMetadata() + { + $batch = [ + Grpc\OP_SEND_INITIAL_METADATA => [], + ]; + $result = $this->call->startBatch($batch); + $this->assertTrue($result->send_metadata); + } - public function testAddSingleMetadata() { - $batch = [ - Grpc\OP_SEND_INITIAL_METADATA => ['key' => ['value']] - ]; - $result = $this->call->startBatch($batch); - $this->assertTrue($result->send_metadata); - } + public function testAddSingleMetadata() + { + $batch = [ + Grpc\OP_SEND_INITIAL_METADATA => ['key' => ['value']], + ]; + $result = $this->call->startBatch($batch); + $this->assertTrue($result->send_metadata); + } - public function testAddMultiValueMetadata() { - $batch = [ - Grpc\OP_SEND_INITIAL_METADATA => ['key' => ['value1', 'value2']] - ]; - $result = $this->call->startBatch($batch); - $this->assertTrue($result->send_metadata); - } + public function testAddMultiValueMetadata() + { + $batch = [ + Grpc\OP_SEND_INITIAL_METADATA => ['key' => ['value1', 'value2']], + ]; + $result = $this->call->startBatch($batch); + $this->assertTrue($result->send_metadata); + } - public function testAddSingleAndMultiValueMetadata() { - $batch = [ - Grpc\OP_SEND_INITIAL_METADATA => ['key1' => ['value1'], - 'key2' => ['value2', 'value3']] - ]; - $result = $this->call->startBatch($batch); - $this->assertTrue($result->send_metadata); - } + public function testAddSingleAndMultiValueMetadata() + { + $batch = [ + Grpc\OP_SEND_INITIAL_METADATA => ['key1' => ['value1'], + 'key2' => ['value2', 'value3'], ], + ]; + $result = $this->call->startBatch($batch); + $this->assertTrue($result->send_metadata); + } - public function testGetPeer() { - $this->assertTrue(is_string($this->call->getPeer())); - } + public function testGetPeer() + { + $this->assertTrue(is_string($this->call->getPeer())); + } } diff --git a/src/php/tests/unit_tests/EndToEndTest.php b/src/php/tests/unit_tests/EndToEndTest.php index b65366233ad..5a38262451b 100755 --- a/src/php/tests/unit_tests/EndToEndTest.php +++ b/src/php/tests/unit_tests/EndToEndTest.php @@ -31,217 +31,228 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ -class EndToEndTest extends PHPUnit_Framework_TestCase{ - public function setUp() { - $this->server = new Grpc\Server([]); - $this->port = $this->server->addHttp2Port('0.0.0.0:0'); - $this->channel = new Grpc\Channel('localhost:' . $this->port, []); - $this->server->start(); - } - - public function tearDown() { - unset($this->channel); - unset($this->server); - } - - public function testSimpleRequestBody() { - $deadline = Grpc\Timeval::infFuture(); - $status_text = 'xyz'; - $call = new Grpc\Call($this->channel, - 'dummy_method', - $deadline); - - $event = $call->startBatch([ - Grpc\OP_SEND_INITIAL_METADATA => [], - Grpc\OP_SEND_CLOSE_FROM_CLIENT => true - ]); - - $this->assertTrue($event->send_metadata); - $this->assertTrue($event->send_close); - - $event = $this->server->requestCall(); - $this->assertSame('dummy_method', $event->method); - $server_call = $event->call; - - $event = $server_call->startBatch([ - Grpc\OP_SEND_INITIAL_METADATA => [], - Grpc\OP_SEND_STATUS_FROM_SERVER => [ - 'metadata' => [], - 'code' => Grpc\STATUS_OK, - 'details' => $status_text - ], - Grpc\OP_RECV_CLOSE_ON_SERVER => true - ]); - - $this->assertTrue($event->send_metadata); - $this->assertTrue($event->send_status); - $this->assertFalse($event->cancelled); - - $event = $call->startBatch([ - Grpc\OP_RECV_INITIAL_METADATA => true, - Grpc\OP_RECV_STATUS_ON_CLIENT => true - ]); - - $status = $event->status; - $this->assertSame([], $status->metadata); - $this->assertSame(Grpc\STATUS_OK, $status->code); - $this->assertSame($status_text, $status->details); - - unset($call); - unset($server_call); - } - - public function testMessageWriteFlags() { - $deadline = Grpc\Timeval::infFuture(); - $req_text = 'message_write_flags_test'; - $status_text = 'xyz'; - $call = new Grpc\Call($this->channel, - 'dummy_method', - $deadline); - - $event = $call->startBatch([ - Grpc\OP_SEND_INITIAL_METADATA => [], - Grpc\OP_SEND_MESSAGE => ['message' => $req_text, - 'flags' => Grpc\WRITE_NO_COMPRESS], - Grpc\OP_SEND_CLOSE_FROM_CLIENT => true - ]); - - $this->assertTrue($event->send_metadata); - $this->assertTrue($event->send_close); - - $event = $this->server->requestCall(); - $this->assertSame('dummy_method', $event->method); - $server_call = $event->call; - - $event = $server_call->startBatch([ - Grpc\OP_SEND_INITIAL_METADATA => [], - Grpc\OP_SEND_STATUS_FROM_SERVER => [ - 'metadata' => [], - 'code' => Grpc\STATUS_OK, - 'details' => $status_text - ], - ]); - - $event = $call->startBatch([ - Grpc\OP_RECV_INITIAL_METADATA => true, - Grpc\OP_RECV_STATUS_ON_CLIENT => true - ]); - - $status = $event->status; - $this->assertSame([], $status->metadata); - $this->assertSame(Grpc\STATUS_OK, $status->code); - $this->assertSame($status_text, $status->details); - - unset($call); - unset($server_call); - } - - public function testClientServerFullRequestResponse() { - $deadline = Grpc\Timeval::infFuture(); - $req_text = 'client_server_full_request_response'; - $reply_text = 'reply:client_server_full_request_response'; - $status_text = 'status:client_server_full_response_text'; - - $call = new Grpc\Call($this->channel, - 'dummy_method', - $deadline); - - $event = $call->startBatch([ - Grpc\OP_SEND_INITIAL_METADATA => [], - Grpc\OP_SEND_CLOSE_FROM_CLIENT => true, - Grpc\OP_SEND_MESSAGE => ['message' => $req_text], - ]); - - $this->assertTrue($event->send_metadata); - $this->assertTrue($event->send_close); - $this->assertTrue($event->send_message); - - $event = $this->server->requestCall(); - $this->assertSame('dummy_method', $event->method); - $server_call = $event->call; - - $event = $server_call->startBatch([ - Grpc\OP_SEND_INITIAL_METADATA => [], - Grpc\OP_SEND_MESSAGE => ['message' => $reply_text], - Grpc\OP_SEND_STATUS_FROM_SERVER => [ - 'metadata' => [], - 'code' => Grpc\STATUS_OK, - 'details' => $status_text - ], - Grpc\OP_RECV_MESSAGE => true, - Grpc\OP_RECV_CLOSE_ON_SERVER => true, - ]); - - $this->assertTrue($event->send_metadata); - $this->assertTrue($event->send_status); - $this->assertTrue($event->send_message); - $this->assertFalse($event->cancelled); - $this->assertSame($req_text, $event->message); - - $event = $call->startBatch([ - Grpc\OP_RECV_INITIAL_METADATA => true, - Grpc\OP_RECV_MESSAGE => true, - Grpc\OP_RECV_STATUS_ON_CLIENT => true, - ]); - - $this->assertSame([], $event->metadata); - $this->assertSame($reply_text, $event->message); - $status = $event->status; - $this->assertSame([], $status->metadata); - $this->assertSame(Grpc\STATUS_OK, $status->code); - $this->assertSame($status_text, $status->details); - - unset($call); - unset($server_call); - } - - public function testGetTarget() { - $this->assertTrue(is_string($this->channel->getTarget())); - } - - public function testGetConnectivityState() { - $this->assertTrue($this->channel->getConnectivityState() == Grpc\CHANNEL_IDLE); - } - - public function testWatchConnectivityStateFailed() { - $idle_state = $this->channel->getConnectivityState(); - $this->assertTrue($idle_state == Grpc\CHANNEL_IDLE); - - $now = Grpc\Timeval::now(); - $delta = new Grpc\Timeval(500000); // should timeout - $deadline = $now->add($delta); - - $this->assertFalse($this->channel->watchConnectivityState( +class EndToEndTest extends PHPUnit_Framework_TestCase +{ + public function setUp() + { + $this->server = new Grpc\Server([]); + $this->port = $this->server->addHttp2Port('0.0.0.0:0'); + $this->channel = new Grpc\Channel('localhost:'.$this->port, []); + $this->server->start(); + } + + public function tearDown() + { + unset($this->channel); + unset($this->server); + } + + public function testSimpleRequestBody() + { + $deadline = Grpc\Timeval::infFuture(); + $status_text = 'xyz'; + $call = new Grpc\Call($this->channel, + 'dummy_method', + $deadline); + + $event = $call->startBatch([ + Grpc\OP_SEND_INITIAL_METADATA => [], + Grpc\OP_SEND_CLOSE_FROM_CLIENT => true, + ]); + + $this->assertTrue($event->send_metadata); + $this->assertTrue($event->send_close); + + $event = $this->server->requestCall(); + $this->assertSame('dummy_method', $event->method); + $server_call = $event->call; + + $event = $server_call->startBatch([ + Grpc\OP_SEND_INITIAL_METADATA => [], + Grpc\OP_SEND_STATUS_FROM_SERVER => [ + 'metadata' => [], + 'code' => Grpc\STATUS_OK, + 'details' => $status_text, + ], + Grpc\OP_RECV_CLOSE_ON_SERVER => true, + ]); + + $this->assertTrue($event->send_metadata); + $this->assertTrue($event->send_status); + $this->assertFalse($event->cancelled); + + $event = $call->startBatch([ + Grpc\OP_RECV_INITIAL_METADATA => true, + Grpc\OP_RECV_STATUS_ON_CLIENT => true, + ]); + + $status = $event->status; + $this->assertSame([], $status->metadata); + $this->assertSame(Grpc\STATUS_OK, $status->code); + $this->assertSame($status_text, $status->details); + + unset($call); + unset($server_call); + } + + public function testMessageWriteFlags() + { + $deadline = Grpc\Timeval::infFuture(); + $req_text = 'message_write_flags_test'; + $status_text = 'xyz'; + $call = new Grpc\Call($this->channel, + 'dummy_method', + $deadline); + + $event = $call->startBatch([ + Grpc\OP_SEND_INITIAL_METADATA => [], + Grpc\OP_SEND_MESSAGE => ['message' => $req_text, + 'flags' => Grpc\WRITE_NO_COMPRESS, ], + Grpc\OP_SEND_CLOSE_FROM_CLIENT => true, + ]); + + $this->assertTrue($event->send_metadata); + $this->assertTrue($event->send_close); + + $event = $this->server->requestCall(); + $this->assertSame('dummy_method', $event->method); + $server_call = $event->call; + + $event = $server_call->startBatch([ + Grpc\OP_SEND_INITIAL_METADATA => [], + Grpc\OP_SEND_STATUS_FROM_SERVER => [ + 'metadata' => [], + 'code' => Grpc\STATUS_OK, + 'details' => $status_text, + ], + ]); + + $event = $call->startBatch([ + Grpc\OP_RECV_INITIAL_METADATA => true, + Grpc\OP_RECV_STATUS_ON_CLIENT => true, + ]); + + $status = $event->status; + $this->assertSame([], $status->metadata); + $this->assertSame(Grpc\STATUS_OK, $status->code); + $this->assertSame($status_text, $status->details); + + unset($call); + unset($server_call); + } + + public function testClientServerFullRequestResponse() + { + $deadline = Grpc\Timeval::infFuture(); + $req_text = 'client_server_full_request_response'; + $reply_text = 'reply:client_server_full_request_response'; + $status_text = 'status:client_server_full_response_text'; + + $call = new Grpc\Call($this->channel, + 'dummy_method', + $deadline); + + $event = $call->startBatch([ + Grpc\OP_SEND_INITIAL_METADATA => [], + Grpc\OP_SEND_CLOSE_FROM_CLIENT => true, + Grpc\OP_SEND_MESSAGE => ['message' => $req_text], + ]); + + $this->assertTrue($event->send_metadata); + $this->assertTrue($event->send_close); + $this->assertTrue($event->send_message); + + $event = $this->server->requestCall(); + $this->assertSame('dummy_method', $event->method); + $server_call = $event->call; + + $event = $server_call->startBatch([ + Grpc\OP_SEND_INITIAL_METADATA => [], + Grpc\OP_SEND_MESSAGE => ['message' => $reply_text], + Grpc\OP_SEND_STATUS_FROM_SERVER => [ + 'metadata' => [], + 'code' => Grpc\STATUS_OK, + 'details' => $status_text, + ], + Grpc\OP_RECV_MESSAGE => true, + Grpc\OP_RECV_CLOSE_ON_SERVER => true, + ]); + + $this->assertTrue($event->send_metadata); + $this->assertTrue($event->send_status); + $this->assertTrue($event->send_message); + $this->assertFalse($event->cancelled); + $this->assertSame($req_text, $event->message); + + $event = $call->startBatch([ + Grpc\OP_RECV_INITIAL_METADATA => true, + Grpc\OP_RECV_MESSAGE => true, + Grpc\OP_RECV_STATUS_ON_CLIENT => true, + ]); + + $this->assertSame([], $event->metadata); + $this->assertSame($reply_text, $event->message); + $status = $event->status; + $this->assertSame([], $status->metadata); + $this->assertSame(Grpc\STATUS_OK, $status->code); + $this->assertSame($status_text, $status->details); + + unset($call); + unset($server_call); + } + + public function testGetTarget() + { + $this->assertTrue(is_string($this->channel->getTarget())); + } + + public function testGetConnectivityState() + { + $this->assertTrue($this->channel->getConnectivityState() == Grpc\CHANNEL_IDLE); + } + + public function testWatchConnectivityStateFailed() + { + $idle_state = $this->channel->getConnectivityState(); + $this->assertTrue($idle_state == Grpc\CHANNEL_IDLE); + + $now = Grpc\Timeval::now(); + $delta = new Grpc\Timeval(500000); // should timeout + $deadline = $now->add($delta); + + $this->assertFalse($this->channel->watchConnectivityState( $idle_state, $deadline)); - } + } - public function testWatchConnectivityStateSuccess() { - $idle_state = $this->channel->getConnectivityState(true); - $this->assertTrue($idle_state == Grpc\CHANNEL_IDLE); + public function testWatchConnectivityStateSuccess() + { + $idle_state = $this->channel->getConnectivityState(true); + $this->assertTrue($idle_state == Grpc\CHANNEL_IDLE); - $now = Grpc\Timeval::now(); - $delta = new Grpc\Timeval(3000000); // should finish well before - $deadline = $now->add($delta); + $now = Grpc\Timeval::now(); + $delta = new Grpc\Timeval(3000000); // should finish well before + $deadline = $now->add($delta); - $this->assertTrue($this->channel->watchConnectivityState( + $this->assertTrue($this->channel->watchConnectivityState( $idle_state, $deadline)); - $new_state = $this->channel->getConnectivityState(); - $this->assertTrue($idle_state != $new_state); - } + $new_state = $this->channel->getConnectivityState(); + $this->assertTrue($idle_state != $new_state); + } - public function testWatchConnectivityStateDoNothing() { - $idle_state = $this->channel->getConnectivityState(); - $this->assertTrue($idle_state == Grpc\CHANNEL_IDLE); + public function testWatchConnectivityStateDoNothing() + { + $idle_state = $this->channel->getConnectivityState(); + $this->assertTrue($idle_state == Grpc\CHANNEL_IDLE); - $now = Grpc\Timeval::now(); - $delta = new Grpc\Timeval(100000); - $deadline = $now->add($delta); + $now = Grpc\Timeval::now(); + $delta = new Grpc\Timeval(100000); + $deadline = $now->add($delta); - $this->assertFalse($this->channel->watchConnectivityState( + $this->assertFalse($this->channel->watchConnectivityState( $idle_state, $deadline)); - $new_state = $this->channel->getConnectivityState(); - $this->assertTrue($new_state == Grpc\CHANNEL_IDLE); - } + $new_state = $this->channel->getConnectivityState(); + $this->assertTrue($new_state == Grpc\CHANNEL_IDLE); + } } diff --git a/src/php/tests/unit_tests/SecureEndToEndTest.php b/src/php/tests/unit_tests/SecureEndToEndTest.php index d7fca14a0d5..e66bde376c7 100755 --- a/src/php/tests/unit_tests/SecureEndToEndTest.php +++ b/src/php/tests/unit_tests/SecureEndToEndTest.php @@ -31,186 +31,193 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ -class SecureEndToEndTest extends PHPUnit_Framework_TestCase{ - public function setUp() { - $credentials = Grpc\Credentials::createSsl( - file_get_contents(dirname(__FILE__) . '/../data/ca.pem')); - $server_credentials = Grpc\ServerCredentials::createSsl( - null, - file_get_contents(dirname(__FILE__) . '/../data/server1.key'), - file_get_contents(dirname(__FILE__) . '/../data/server1.pem')); - $this->server = new Grpc\Server(); - $this->port = $this->server->addSecureHttp2Port('0.0.0.0:0', +class SecureEndToEndTest extends PHPUnit_Framework_TestCase +{ + public function setUp() + { + $credentials = Grpc\Credentials::createSsl( + file_get_contents(dirname(__FILE__).'/../data/ca.pem')); + $server_credentials = Grpc\ServerCredentials::createSsl( + null, + file_get_contents(dirname(__FILE__).'/../data/server1.key'), + file_get_contents(dirname(__FILE__).'/../data/server1.pem')); + $this->server = new Grpc\Server(); + $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:' . $this->port, - [ + $this->server->start(); + $this->host_override = 'foo.test.google.fr'; + $this->channel = new Grpc\Channel( + 'localhost:'.$this->port, + [ 'grpc.ssl_target_name_override' => $this->host_override, 'grpc.default_authority' => $this->host_override, - 'credentials' => $credentials - ]); - } - - public function tearDown() { - unset($this->channel); - unset($this->server); - } - - public function testSimpleRequestBody() { - $deadline = Grpc\Timeval::infFuture(); - $status_text = 'xyz'; - $call = new Grpc\Call($this->channel, - 'dummy_method', - $deadline, - $this->host_override); - - $event = $call->startBatch([ - Grpc\OP_SEND_INITIAL_METADATA => [], - Grpc\OP_SEND_CLOSE_FROM_CLIENT => true - ]); - - $this->assertTrue($event->send_metadata); - $this->assertTrue($event->send_close); - - $event = $this->server->requestCall(); - $this->assertSame('dummy_method', $event->method); - $server_call = $event->call; - - $event = $server_call->startBatch([ - Grpc\OP_SEND_INITIAL_METADATA => [], - Grpc\OP_SEND_STATUS_FROM_SERVER => [ - 'metadata' => [], - 'code' => Grpc\STATUS_OK, - 'details' => $status_text - ], - Grpc\OP_RECV_CLOSE_ON_SERVER => true - ]); - - $this->assertTrue($event->send_metadata); - $this->assertTrue($event->send_status); - $this->assertFalse($event->cancelled); - - $event = $call->startBatch([ - Grpc\OP_RECV_INITIAL_METADATA => true, - Grpc\OP_RECV_STATUS_ON_CLIENT => true - ]); - - $this->assertSame([], $event->metadata); - $status = $event->status; - $this->assertSame([], $status->metadata); - $this->assertSame(Grpc\STATUS_OK, $status->code); - $this->assertSame($status_text, $status->details); - - unset($call); - unset($server_call); - } - - public function testMessageWriteFlags() { - $deadline = Grpc\Timeval::infFuture(); - $req_text = 'message_write_flags_test'; - $status_text = 'xyz'; - $call = new Grpc\Call($this->channel, - 'dummy_method', - $deadline, - $this->host_override); - - $event = $call->startBatch([ - Grpc\OP_SEND_INITIAL_METADATA => [], - Grpc\OP_SEND_MESSAGE => ['message' => $req_text, - 'flags' => Grpc\WRITE_NO_COMPRESS], - Grpc\OP_SEND_CLOSE_FROM_CLIENT => true - ]); - - $this->assertTrue($event->send_metadata); - $this->assertTrue($event->send_close); - - $event = $this->server->requestCall(); - $this->assertSame('dummy_method', $event->method); - $server_call = $event->call; - - $event = $server_call->startBatch([ - Grpc\OP_SEND_INITIAL_METADATA => [], - Grpc\OP_SEND_STATUS_FROM_SERVER => [ - 'metadata' => [], - 'code' => Grpc\STATUS_OK, - 'details' => $status_text - ], - ]); - - $event = $call->startBatch([ - Grpc\OP_RECV_INITIAL_METADATA => true, - Grpc\OP_RECV_STATUS_ON_CLIENT => true - ]); - - $this->assertSame([], $event->metadata); - $status = $event->status; - $this->assertSame([], $status->metadata); - $this->assertSame(Grpc\STATUS_OK, $status->code); - $this->assertSame($status_text, $status->details); - - unset($call); - unset($server_call); - } - - public function testClientServerFullRequestResponse() { - $deadline = Grpc\Timeval::infFuture(); - $req_text = 'client_server_full_request_response'; - $reply_text = 'reply:client_server_full_request_response'; - $status_text = 'status:client_server_full_response_text'; - - $call = new Grpc\Call($this->channel, - 'dummy_method', - $deadline, - $this->host_override); - - $event = $call->startBatch([ - Grpc\OP_SEND_INITIAL_METADATA => [], - Grpc\OP_SEND_CLOSE_FROM_CLIENT => true, - Grpc\OP_SEND_MESSAGE => ['message' => $req_text] - ]); - - $this->assertTrue($event->send_metadata); - $this->assertTrue($event->send_close); - $this->assertTrue($event->send_message); - - $event = $this->server->requestCall(); - $this->assertSame('dummy_method', $event->method); - $server_call = $event->call; - - $event = $server_call->startBatch([ - Grpc\OP_SEND_INITIAL_METADATA => [], - Grpc\OP_SEND_MESSAGE => ['message' => $reply_text], - Grpc\OP_SEND_STATUS_FROM_SERVER => [ - 'metadata' => [], - 'code' => Grpc\STATUS_OK, - 'details' => $status_text - ], - Grpc\OP_RECV_MESSAGE => true, - Grpc\OP_RECV_CLOSE_ON_SERVER => true, - ]); - - $this->assertTrue($event->send_metadata); - $this->assertTrue($event->send_status); - $this->assertTrue($event->send_message); - $this->assertFalse($event->cancelled); - $this->assertSame($req_text, $event->message); - - $event = $call->startBatch([ - Grpc\OP_RECV_INITIAL_METADATA => true, - Grpc\OP_RECV_MESSAGE => true, - Grpc\OP_RECV_STATUS_ON_CLIENT => true, - ]); - - $this->assertSame([], $event->metadata); - $this->assertSame($reply_text, $event->message); - $status = $event->status; - $this->assertSame([], $status->metadata); - $this->assertSame(Grpc\STATUS_OK, $status->code); - $this->assertSame($status_text, $status->details); - - unset($call); - unset($server_call); - } + 'credentials' => $credentials, + ] + ); + } + + public function tearDown() + { + unset($this->channel); + unset($this->server); + } + + public function testSimpleRequestBody() + { + $deadline = Grpc\Timeval::infFuture(); + $status_text = 'xyz'; + $call = new Grpc\Call($this->channel, + 'dummy_method', + $deadline, + $this->host_override); + + $event = $call->startBatch([ + Grpc\OP_SEND_INITIAL_METADATA => [], + Grpc\OP_SEND_CLOSE_FROM_CLIENT => true, + ]); + + $this->assertTrue($event->send_metadata); + $this->assertTrue($event->send_close); + + $event = $this->server->requestCall(); + $this->assertSame('dummy_method', $event->method); + $server_call = $event->call; + + $event = $server_call->startBatch([ + Grpc\OP_SEND_INITIAL_METADATA => [], + Grpc\OP_SEND_STATUS_FROM_SERVER => [ + 'metadata' => [], + 'code' => Grpc\STATUS_OK, + 'details' => $status_text, + ], + Grpc\OP_RECV_CLOSE_ON_SERVER => true, + ]); + + $this->assertTrue($event->send_metadata); + $this->assertTrue($event->send_status); + $this->assertFalse($event->cancelled); + + $event = $call->startBatch([ + Grpc\OP_RECV_INITIAL_METADATA => true, + Grpc\OP_RECV_STATUS_ON_CLIENT => true, + ]); + + $this->assertSame([], $event->metadata); + $status = $event->status; + $this->assertSame([], $status->metadata); + $this->assertSame(Grpc\STATUS_OK, $status->code); + $this->assertSame($status_text, $status->details); + + unset($call); + unset($server_call); + } + + public function testMessageWriteFlags() + { + $deadline = Grpc\Timeval::infFuture(); + $req_text = 'message_write_flags_test'; + $status_text = 'xyz'; + $call = new Grpc\Call($this->channel, + 'dummy_method', + $deadline, + $this->host_override); + + $event = $call->startBatch([ + Grpc\OP_SEND_INITIAL_METADATA => [], + Grpc\OP_SEND_MESSAGE => ['message' => $req_text, + 'flags' => Grpc\WRITE_NO_COMPRESS, ], + Grpc\OP_SEND_CLOSE_FROM_CLIENT => true, + ]); + + $this->assertTrue($event->send_metadata); + $this->assertTrue($event->send_close); + + $event = $this->server->requestCall(); + $this->assertSame('dummy_method', $event->method); + $server_call = $event->call; + + $event = $server_call->startBatch([ + Grpc\OP_SEND_INITIAL_METADATA => [], + Grpc\OP_SEND_STATUS_FROM_SERVER => [ + 'metadata' => [], + 'code' => Grpc\STATUS_OK, + 'details' => $status_text, + ], + ]); + + $event = $call->startBatch([ + Grpc\OP_RECV_INITIAL_METADATA => true, + Grpc\OP_RECV_STATUS_ON_CLIENT => true, + ]); + + $this->assertSame([], $event->metadata); + $status = $event->status; + $this->assertSame([], $status->metadata); + $this->assertSame(Grpc\STATUS_OK, $status->code); + $this->assertSame($status_text, $status->details); + + unset($call); + unset($server_call); + } + + public function testClientServerFullRequestResponse() + { + $deadline = Grpc\Timeval::infFuture(); + $req_text = 'client_server_full_request_response'; + $reply_text = 'reply:client_server_full_request_response'; + $status_text = 'status:client_server_full_response_text'; + + $call = new Grpc\Call($this->channel, + 'dummy_method', + $deadline, + $this->host_override); + + $event = $call->startBatch([ + Grpc\OP_SEND_INITIAL_METADATA => [], + Grpc\OP_SEND_CLOSE_FROM_CLIENT => true, + Grpc\OP_SEND_MESSAGE => ['message' => $req_text], + ]); + + $this->assertTrue($event->send_metadata); + $this->assertTrue($event->send_close); + $this->assertTrue($event->send_message); + + $event = $this->server->requestCall(); + $this->assertSame('dummy_method', $event->method); + $server_call = $event->call; + + $event = $server_call->startBatch([ + Grpc\OP_SEND_INITIAL_METADATA => [], + Grpc\OP_SEND_MESSAGE => ['message' => $reply_text], + Grpc\OP_SEND_STATUS_FROM_SERVER => [ + 'metadata' => [], + 'code' => Grpc\STATUS_OK, + 'details' => $status_text, + ], + Grpc\OP_RECV_MESSAGE => true, + Grpc\OP_RECV_CLOSE_ON_SERVER => true, + ]); + + $this->assertTrue($event->send_metadata); + $this->assertTrue($event->send_status); + $this->assertTrue($event->send_message); + $this->assertFalse($event->cancelled); + $this->assertSame($req_text, $event->message); + + $event = $call->startBatch([ + Grpc\OP_RECV_INITIAL_METADATA => true, + Grpc\OP_RECV_MESSAGE => true, + Grpc\OP_RECV_STATUS_ON_CLIENT => true, + ]); + + $this->assertSame([], $event->metadata); + $this->assertSame($reply_text, $event->message); + $status = $event->status; + $this->assertSame([], $status->metadata); + $this->assertSame(Grpc\STATUS_OK, $status->code); + $this->assertSame($status_text, $status->details); + + unset($call); + unset($server_call); + } } diff --git a/src/php/tests/unit_tests/TimevalTest.php b/src/php/tests/unit_tests/TimevalTest.php index 7b4925cad60..1d2a8d303e7 100755 --- a/src/php/tests/unit_tests/TimevalTest.php +++ b/src/php/tests/unit_tests/TimevalTest.php @@ -31,56 +31,64 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ -class TimevalTest extends PHPUnit_Framework_TestCase{ - public function testCompareSame() { - $zero = Grpc\Timeval::zero(); - $this->assertSame(0, Grpc\Timeval::compare($zero, $zero)); - } +class TimevalTest extends PHPUnit_Framework_TestCase +{ + public function testCompareSame() + { + $zero = Grpc\Timeval::zero(); + $this->assertSame(0, Grpc\Timeval::compare($zero, $zero)); + } - public function testPastIsLessThanZero() { - $zero = Grpc\Timeval::zero(); - $past = Grpc\Timeval::infPast(); - $this->assertLessThan(0, Grpc\Timeval::compare($past, $zero)); - $this->assertGreaterThan(0, Grpc\Timeval::compare($zero, $past)); - } + public function testPastIsLessThanZero() + { + $zero = Grpc\Timeval::zero(); + $past = Grpc\Timeval::infPast(); + $this->assertLessThan(0, Grpc\Timeval::compare($past, $zero)); + $this->assertGreaterThan(0, Grpc\Timeval::compare($zero, $past)); + } - public function testFutureIsGreaterThanZero() { - $zero = Grpc\Timeval::zero(); - $future = Grpc\Timeval::infFuture(); - $this->assertLessThan(0, Grpc\Timeval::compare($zero, $future)); - $this->assertGreaterThan(0, Grpc\Timeval::compare($future, $zero)); - } + public function testFutureIsGreaterThanZero() + { + $zero = Grpc\Timeval::zero(); + $future = Grpc\Timeval::infFuture(); + $this->assertLessThan(0, Grpc\Timeval::compare($zero, $future)); + $this->assertGreaterThan(0, Grpc\Timeval::compare($future, $zero)); + } - /** - * @depends testFutureIsGreaterThanZero - */ - public function testNowIsBetweenZeroAndFuture() { - $zero = Grpc\Timeval::zero(); - $future = Grpc\Timeval::infFuture(); - $now = Grpc\Timeval::now(); - $this->assertLessThan(0, Grpc\Timeval::compare($zero, $now)); - $this->assertLessThan(0, Grpc\Timeval::compare($now, $future)); - } + /** + * @depends testFutureIsGreaterThanZero + */ + public function testNowIsBetweenZeroAndFuture() + { + $zero = Grpc\Timeval::zero(); + $future = Grpc\Timeval::infFuture(); + $now = Grpc\Timeval::now(); + $this->assertLessThan(0, Grpc\Timeval::compare($zero, $now)); + $this->assertLessThan(0, Grpc\Timeval::compare($now, $future)); + } - public function testNowAndAdd() { - $now = Grpc\Timeval::now(); - $delta = new Grpc\Timeval(1000); - $deadline = $now->add($delta); - $this->assertGreaterThan(0, Grpc\Timeval::compare($deadline, $now)); - } + public function testNowAndAdd() + { + $now = Grpc\Timeval::now(); + $delta = new Grpc\Timeval(1000); + $deadline = $now->add($delta); + $this->assertGreaterThan(0, Grpc\Timeval::compare($deadline, $now)); + } - public function testNowAndSubtract() { - $now = Grpc\Timeval::now(); - $delta = new Grpc\Timeval(1000); - $deadline = $now->subtract($delta); - $this->assertLessThan(0, Grpc\Timeval::compare($deadline, $now)); - } + public function testNowAndSubtract() + { + $now = Grpc\Timeval::now(); + $delta = new Grpc\Timeval(1000); + $deadline = $now->subtract($delta); + $this->assertLessThan(0, Grpc\Timeval::compare($deadline, $now)); + } - public function testAddAndSubtract() { - $now = Grpc\Timeval::now(); - $delta = new Grpc\Timeval(1000); - $deadline = $now->add($delta); - $back_to_now = $deadline->subtract($delta); - $this->assertSame(0, Grpc\Timeval::compare($back_to_now, $now)); - } + public function testAddAndSubtract() + { + $now = Grpc\Timeval::now(); + $delta = new Grpc\Timeval(1000); + $deadline = $now->add($delta); + $back_to_now = $deadline->subtract($delta); + $this->assertSame(0, Grpc\Timeval::compare($back_to_now, $now)); + } } From 895a2dfe77f2ac2f851cf2d264ad5328789b0303 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Tue, 27 Oct 2015 21:27:10 +0100 Subject: [PATCH 028/103] Disabling qps openloop's test. --- Makefile | 2 -- build.yaml | 1 + tools/run_tests/tests.json | 16 ---------------- 3 files changed, 1 insertion(+), 18 deletions(-) diff --git a/Makefile b/Makefile index 38d0adb796a..a25523310ea 100644 --- a/Makefile +++ b/Makefile @@ -3546,8 +3546,6 @@ test_cxx: test_zookeeper buildtests_cxx $(Q) $(BINDIR)/$(CONFIG)/interop_test || ( echo test interop_test failed ; exit 1 ) $(E) "[RUN] Testing mock_test" $(Q) $(BINDIR)/$(CONFIG)/mock_test || ( echo test mock_test failed ; exit 1 ) - $(E) "[RUN] Testing qps_openloop_test" - $(Q) $(BINDIR)/$(CONFIG)/qps_openloop_test || ( echo test qps_openloop_test failed ; exit 1 ) $(E) "[RUN] Testing qps_test" $(Q) $(BINDIR)/$(CONFIG)/qps_test || ( echo test qps_test failed ; exit 1 ) $(E) "[RUN] Testing secure_auth_context_test" diff --git a/build.yaml b/build.yaml index dadd9429e24..f70ab3368d9 100644 --- a/build.yaml +++ b/build.yaml @@ -1937,6 +1937,7 @@ targets: - posix - name: qps_openloop_test build: test + run: false language: c++ src: - test/cpp/qps/qps_openloop_test.cc diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index 2f91844f441..a8366e05abe 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -1497,22 +1497,6 @@ "windows" ] }, - { - "ci_platforms": [ - "linux", - "mac", - "posix" - ], - "exclude_configs": [], - "flaky": false, - "language": "c++", - "name": "qps_openloop_test", - "platforms": [ - "linux", - "mac", - "posix" - ] - }, { "ci_platforms": [ "linux", From d5fffa5850c3dbe6c052312c527a32e616034bf4 Mon Sep 17 00:00:00 2001 From: Adele Zhou Date: Fri, 23 Oct 2015 15:51:42 -0700 Subject: [PATCH 029/103] Print detailed results for each test. --- tools/run_tests/jobset.py | 11 +++++--- tools/run_tests/run_interop_tests.py | 4 ++- tools/run_tests/run_tests.py | 38 ++++++++++++++++++++++++---- 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py index 8343441a189..a8ff9f613fb 100755 --- a/tools/run_tests/jobset.py +++ b/tools/run_tests/jobset.py @@ -182,6 +182,7 @@ class JobResult(object): self.state = 'UNKNOWN' self.returncode = -1 self.elapsed_time = 0 + self.num_failures = 0 self.retries = 0 self.message = '' @@ -243,6 +244,7 @@ class Job(object): self._spec.shortname, self._process.returncode, self._process.pid), stdout, do_newline=True) self._retries += 1 + self.result.num_failures += 1 self.result.retries = self._timeout_retries + self._retries self.start() else: @@ -252,6 +254,7 @@ class Job(object): self._spec.shortname, self._process.returncode, self._process.pid), stdout, do_newline=True) self.result.state = 'FAILED' + self.result.num_failures += 1 self.result.returncode = self._process.returncode if self._xml_test is not None: ET.SubElement(self._xml_test, 'failure', message='Failure') @@ -271,6 +274,7 @@ class Job(object): if self._timeout_retries < self._spec.timeout_retries: message('TIMEOUT_FLAKE', self._spec.shortname, stdout, do_newline=True) self._timeout_retries += 1 + self.result.num_failures += 1 self.result.retries = self._timeout_retries + self._retries if self._spec.kill_handler: self._spec.kill_handler(self) @@ -280,6 +284,7 @@ class Job(object): message('TIMEOUT', self._spec.shortname, stdout, do_newline=True) self.kill() self.result.state = 'TIMEOUT' + self.result.num_failures += 1 if self._xml_test is not None: ET.SubElement(self._xml_test, 'system-out').text = filtered_stdout ET.SubElement(self._xml_test, 'error', message='Timeout') @@ -294,7 +299,7 @@ class Job(object): def suppress_failure_message(self): self._suppress_failure_message = True - + class Jobset(object): """Manages one run of jobs.""" @@ -347,7 +352,7 @@ class Jobset(object): self._add_env, self._xml_report) self._running.add(job) - self.resultset[job.GetSpec().shortname] = None + self.resultset[job.GetSpec().shortname] = [] return True def reap(self): @@ -367,7 +372,7 @@ class Jobset(object): break for job in dead: self._completed += 1 - self.resultset[job.GetSpec().shortname] = job.result + self.resultset[job.GetSpec().shortname].append(job.result) self._running.remove(job) if dead: return if (not self._travis): diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py index e1d60b2de39..1c398864744 100755 --- a/tools/run_tests/run_interop_tests.py +++ b/tools/run_tests/run_interop_tests.py @@ -474,7 +474,9 @@ def build_interop_image_jobspec(language, tag=None): # TODO(adelez): Use mako template. def fill_one_test_result(shortname, resultset, html_str): if shortname in resultset: - result = resultset[shortname] + # Because interop tests does not have runs_per_test flag, each test is run + # once. So there should only be one element for each result. + result = resultset[shortname][0] if result.state == 'PASSED': html_str = '%sPASS\n' % html_str else: diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 99f454397ef..3d33f93fb18 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -801,6 +801,23 @@ def _start_port_server(port_server_port): raise +def _calculate_num_runs_failures(list_of_results): + """Caculate number of runs and failures for a particular test. + + Args: + list_of_results: (List) of JobResult object. + Returns: + A tuple of total number of runs and failures. + """ + num_runs = len(list_of_results) # By default, there is 1 run per JobResult. + num_failures = 0 + for jobresult in list_of_results: + if jobresult.retries > 0: + num_runs += jobresult.retries + if jobresult.num_failures > 0: + num_failures += jobresult.num_failures + return num_runs, num_failures + def _build_and_run( check_cancelled, newline_on_success, travis, cache, xml_report=None): """Do one pass of building & running tests.""" @@ -842,13 +859,24 @@ def _build_and_run( root = ET.Element('testsuites') if xml_report else None testsuite = ET.SubElement(root, 'testsuite', id='1', package='grpc', name='tests') if xml_report else None - number_failures, _ = jobset.run( - all_runs, check_cancelled, newline_on_success=newline_on_success, + number_failures, resultset = jobset.run( + all_runs, check_cancelled, newline_on_success=newline_on_success, travis=travis, infinite_runs=infinite_runs, maxjobs=args.jobs, stop_on_failure=args.stop_on_failure, cache=cache if not xml_report else None, xml_report=testsuite, add_env={'GRPC_TEST_PORT_SERVER': 'localhost:%d' % port_server_port}) + if resultset: + for k, v in resultset.iteritems(): + num_runs, num_failures = _calculate_num_runs_failures(v) + if num_failures == num_runs: # what about infinite_runs??? + jobset.message('FAILED', k, do_newline=True) + elif num_failures > 0: + jobset.message( + 'FLAKE', '%s [%d/%d runs flaked]' % (k, num_failures, num_runs), + do_newline=True) + else: + jobset.message('PASSED', k, do_newline=True) if number_failures: return 2 finally: @@ -880,9 +908,9 @@ if forever: have_files_changed = lambda: dw.most_recent_change() != initial_time previous_success = success success = _build_and_run(check_cancelled=have_files_changed, - newline_on_success=False, - travis=args.travis, - cache=test_cache) == 0 + newline_on_success=False, + travis=args.travis, + cache=test_cache) == 0 if not previous_success and success: jobset.message('SUCCESS', 'All tests are now passing properly', From 4671096736efc40808d6330d1e157fd7f4015e21 Mon Sep 17 00:00:00 2001 From: Adele Zhou Date: Mon, 26 Oct 2015 17:29:27 -0700 Subject: [PATCH 030/103] Escape quotation marks in html. --- tools/run_tests/run_interop_tests.py | 3 ++- tools/run_tests/run_tests.py | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py index 1c398864744..729f962bb18 100755 --- a/tools/run_tests/run_interop_tests.py +++ b/tools/run_tests/run_interop_tests.py @@ -485,7 +485,8 @@ def fill_one_test_result(shortname, resultset, html_str): if result.returncode > 0: tooltip = 'returncode: %d ' % result.returncode if result.message: - tooltip = '%smessage: %s' % (tooltip, result.message) + escaped_msg = result.message.replace('"', '"') + tooltip = '%smessage: %s' % (tooltip, escaped_msg) if result.state == 'FAILED': html_str = '%s' % html_str if tooltip: diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 3d33f93fb18..9006fca1c40 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -908,9 +908,9 @@ if forever: have_files_changed = lambda: dw.most_recent_change() != initial_time previous_success = success success = _build_and_run(check_cancelled=have_files_changed, - newline_on_success=False, - travis=args.travis, - cache=test_cache) == 0 + newline_on_success=False, + travis=args.travis, + cache=test_cache) == 0 if not previous_success and success: jobset.message('SUCCESS', 'All tests are now passing properly', From fe300456f7a0ab518ba36ec7978311cef1996e07 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Tue, 27 Oct 2015 23:05:10 +0100 Subject: [PATCH 031/103] Fixing 'all' run tests target. --- tools/run_tests/run_tests.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 99f454397ef..8a3976598ac 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -450,6 +450,9 @@ class Build(object): def build_steps(self): return [] + def post_tests_steps(self): + return [] + def makefile_name(self): return 'Makefile' From bd89dd8381de2e5eb68e86492d44c1e52bb2ea55 Mon Sep 17 00:00:00 2001 From: yang-g Date: Tue, 27 Oct 2015 16:18:30 -0700 Subject: [PATCH 032/103] remove log spam --- include/grpc++/support/byte_buffer.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/grpc++/support/byte_buffer.h b/include/grpc++/support/byte_buffer.h index c413703970b..9d19b077089 100644 --- a/include/grpc++/support/byte_buffer.h +++ b/include/grpc++/support/byte_buffer.h @@ -75,7 +75,6 @@ class ByteBuffer GRPC_FINAL { // takes ownership void set_buffer(grpc_byte_buffer* buf) { if (buffer_) { - gpr_log(GPR_ERROR, "Overriding existing buffer"); Clear(); } buffer_ = buf; From bf3b153fdf2435a8ed6a63fda4d9f8642c81741d Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Mon, 26 Oct 2015 10:24:42 -0700 Subject: [PATCH 033/103] Add OpenCover coverage for C# --- src/csharp/.gitignore | 1 + src/csharp/.nuget/packages.config | 2 ++ tools/run_tests/run_csharp.bat | 18 ++++++++++++++---- tools/run_tests/run_tests.py | 14 ++++++++++---- 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/csharp/.gitignore b/src/csharp/.gitignore index deac55029ee..0f96a482219 100644 --- a/src/csharp/.gitignore +++ b/src/csharp/.gitignore @@ -7,6 +7,7 @@ Grpc.v12.suo Grpc.sdf TestResult.xml +coverage_results.xml /TestResults .vs/ *.nupkg diff --git a/src/csharp/.nuget/packages.config b/src/csharp/.nuget/packages.config index a7df95cf6bd..89a310ac569 100644 --- a/src/csharp/.nuget/packages.config +++ b/src/csharp/.nuget/packages.config @@ -1,4 +1,6 @@  + + \ No newline at end of file diff --git a/tools/run_tests/run_csharp.bat b/tools/run_tests/run_csharp.bat index 310cfe0d2fe..0e33e5295a4 100644 --- a/tools/run_tests/run_csharp.bat +++ b/tools/run_tests/run_csharp.bat @@ -2,13 +2,23 @@ setlocal -@rem enter this directory +@rem enter src/csharp directory cd /d %~dp0\..\..\src\csharp -@rem set UUID variable to a random GUID, we will use it to put TestResults.xml to a dedicated directory, so that parallel test runs don't collide -for /F %%i in ('powershell -Command "[guid]::NewGuid().ToString()"') do (set UUID=%%i) +if not "%CONFIG%" == "gcov" ( + @rem Run tests for assembly passed as 1st arg. -packages\NUnit.Runners.2.6.4\tools\nunit-console-x86.exe /domain:None -labels "%1/bin/Debug/%1.dll" -work test-results/%UUID% || goto :error + @rem set UUID variable to a random GUID, we will use it to put TestResults.xml to a dedicated directory, so that parallel test runs don't collide + for /F %%i in ('powershell -Command "[guid]::NewGuid().ToString()"') do (set UUID=%%i) + + packages\NUnit.Runners.2.6.4\tools\nunit-console-x86.exe /domain:None -labels "%1/bin/Debug/%1.dll" -work test-results/%UUID% || goto :error +) else ( + @rem Run all tests with code coverage + + packages\OpenCover.4.6.166\tools\OpenCover.Console.exe -target:"packages\NUnit.Runners.2.6.4\tools\nunit-console-x86.exe" -targetdir:"." -targetargs:"/domain:None -labels Grpc.Core.Tests/bin/Debug/Grpc.Core.Tests.dll Grpc.IntegrationTesting/bin/Debug/Grpc.IntegrationTesting.dll Grpc.Examples.Tests/bin/Debug/Grpc.Examples.Tests.dll Grpc.HealthCheck.Tests/bin/Debug/Grpc.HealthCheck.Tests.dll" -filter:"+[Grpc.Core]*" -register:user -output:coverage_results.xml || goto :error + + packages\ReportGenerator.2.3.2.0\tools\ReportGenerator.exe -reports:"coverage_results.xml" -targetdir:"..\..\reports\csharp_coverage" -reporttypes:"Html;TextSummary" || goto :error +) endlocal diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 3859958a952..b1f886f319c 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -342,10 +342,16 @@ class CSharpLanguage(object): cmd = 'tools\\run_tests\\run_csharp.bat' else: cmd = 'tools/run_tests/run_csharp.sh' - return [config.job_spec([cmd, assembly], - None, shortname=assembly, - environ=_FORCE_ENVIRON_FOR_WRAPPERS) - for assembly in assemblies] + + if not config.build_config == 'gcov': + return [config.job_spec([cmd, assembly], + None, shortname=assembly, + environ=_FORCE_ENVIRON_FOR_WRAPPERS) + for assembly in assemblies] + else: + # For code coverage we need to run all tests in one suite. + return [config.job_spec([cmd], None, + environ=_FORCE_ENVIRON_FOR_WRAPPERS)] def pre_build_steps(self): if self.platform == 'windows': From 61c3a83e9454b6ce80b8601c02f89fe9b4bfa4cb Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Tue, 27 Oct 2015 17:54:50 -0700 Subject: [PATCH 034/103] unbreak linux csharp gcov --- tools/run_tests/run_tests.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index b1f886f319c..39d7a0a9002 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -343,15 +343,17 @@ class CSharpLanguage(object): else: cmd = 'tools/run_tests/run_csharp.sh' - if not config.build_config == 'gcov': + if config.build_config == 'gcov' and self.platform == 'windows': + # For C# code coverage we need to: + # 1) Run all tests as one suite. + # 2) Need to be on Windows. + return [config.job_spec([cmd], None, + environ=_FORCE_ENVIRON_FOR_WRAPPERS)] + else: return [config.job_spec([cmd, assembly], None, shortname=assembly, environ=_FORCE_ENVIRON_FOR_WRAPPERS) for assembly in assemblies] - else: - # For code coverage we need to run all tests in one suite. - return [config.job_spec([cmd], None, - environ=_FORCE_ENVIRON_FOR_WRAPPERS)] def pre_build_steps(self): if self.platform == 'windows': From 4b69152e7fa771471ebd75d67ed80579b211b3a3 Mon Sep 17 00:00:00 2001 From: vjpai Date: Wed, 28 Oct 2015 01:11:22 -0700 Subject: [PATCH 035/103] Eliminate qpstest.proto --- test/proto/qpstest.proto | 218 --------------------------------------- 1 file changed, 218 deletions(-) delete mode 100644 test/proto/qpstest.proto diff --git a/test/proto/qpstest.proto b/test/proto/qpstest.proto deleted file mode 100644 index ef1f9451e9a..00000000000 --- a/test/proto/qpstest.proto +++ /dev/null @@ -1,218 +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. - -// An integration test service that covers all the method signature permutations -// of unary/streaming requests/responses. -syntax = "proto3"; - -package grpc.testing; - -enum PayloadType { - // Compressable text format. - COMPRESSABLE = 0; - - // Uncompressable binary format. - UNCOMPRESSABLE = 1; - - // Randomly chosen from all other formats defined in this enum. - RANDOM = 2; -} - -message StatsRequest { - // run number - int32 test_num = 1; -} - -message ServerStats { - // wall clock time - double time_elapsed = 1; - - // user time used by the server process and threads - double time_user = 2; - - // server time used by the server process and all threads - double time_system = 3; -} - -message Payload { - // The type of data in body. - PayloadType type = 1; - // Primary contents of payload. - bytes body = 2; -} - -message HistogramData { - repeated uint32 bucket = 1; - double min_seen = 2; - double max_seen = 3; - double sum = 4; - double sum_of_squares = 5; - double count = 6; -} - -enum ClientType { - SYNCHRONOUS_CLIENT = 0; - ASYNC_CLIENT = 1; -} - -enum ServerType { - SYNCHRONOUS_SERVER = 0; - ASYNC_SERVER = 1; -} - -enum RpcType { - UNARY = 0; - STREAMING = 1; -} - -enum LoadType { - CLOSED_LOOP = 0; - POISSON = 1; - UNIFORM = 2; - DETERMINISTIC = 3; - PARETO = 4; -} - -message PoissonParams { - double offered_load = 1; -} - -message UniformParams { - double interarrival_lo = 1; - double interarrival_hi = 2; -} - -message DeterministicParams { - double offered_load = 1; -} - -message ParetoParams { - double interarrival_base = 1; - double alpha = 2; -} - -message LoadParams { - oneof load { - PoissonParams poisson = 1; - UniformParams uniform = 2; - DeterministicParams determ = 3; - ParetoParams pareto = 4; - }; -} - -message ClientConfig { - repeated string server_targets = 1; - ClientType client_type = 2; - bool enable_ssl = 3; - int32 outstanding_rpcs_per_channel = 4; - int32 client_channels = 5; - int32 payload_size = 6; - // only for async client: - int32 async_client_threads = 7; - RpcType rpc_type = 8; - string host = 9; - LoadType load_type = 10; - LoadParams load_params = 11; -} - -// Request current stats -message Mark { -} - -message ClientArgs { - oneof argtype { - ClientConfig setup = 1; - Mark mark = 2; - } -} - -message ClientStats { - HistogramData latencies = 1; - double time_elapsed = 2; - double time_user = 3; - double time_system = 4; -} - -message ClientStatus { - ClientStats stats = 1; -} - -message ServerConfig { - ServerType server_type = 1; - int32 threads = 2; - bool enable_ssl = 3; - string host = 4; -} - -message ServerArgs { - oneof argtype { - ServerConfig setup = 1; - Mark mark = 2; - } -} - -message ServerStatus { - ServerStats stats = 1; - int32 port = 2; -} - -message SimpleRequest { - // Desired payload type in the response from the server. - // If response_type is RANDOM, server randomly chooses one from other formats. - PayloadType response_type = 1; - - // Desired payload size in the response from the server. - // If response_type is COMPRESSABLE, this denotes the size before compression. - int32 response_size = 2; - - // Optional input payload sent along with the request. - Payload payload = 3; -} - -message SimpleResponse { - Payload payload = 1; -} - -service TestService { - // One request followed by one response. - // The server returns the client payload as-is. - rpc UnaryCall(SimpleRequest) returns (SimpleResponse); - - // One request followed by one response. - // The server returns the client payload as-is. - rpc StreamingCall(stream SimpleRequest) returns (stream SimpleResponse); -} - -service Worker { - // Start test with specified workload - rpc RunTest(stream ClientArgs) returns (stream ClientStatus); - // Start test with specified workload - rpc RunServer(stream ServerArgs) returns (stream ServerStatus); -} From 8676d22b3d9ee2c69b50b360fa07a57d3753e82f Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 05:51:11 -0700 Subject: [PATCH 036/103] Fix RouteGuide example to use the last surface --- .../objective-c/route_guide/ViewControllers.m | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/examples/objective-c/route_guide/ViewControllers.m b/examples/objective-c/route_guide/ViewControllers.m index cfc3338bcac..8332661d57f 100644 --- a/examples/objective-c/route_guide/ViewControllers.m +++ b/examples/objective-c/route_guide/ViewControllers.m @@ -36,7 +36,7 @@ #import #import -static NSString * const kHostAddress = @"http://localhost:50051"; +static NSString * const kHostAddress = @"localhost:50051"; // Category to override RTGPoint's description. @interface RTGPoint (Description) @@ -86,7 +86,10 @@ static NSString * const kHostAddress = @"http://localhost:50051"; - (void)viewDidLoad { [super viewDidLoad]; - RTGRouteGuide *client = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; + // This only needs to be done once per host, before creating service objects for that host. + [GRPCCall useInsecureConnectionsForHost:kHostAddress]; + + RTGRouteGuide *service = [RTGRouteGuide serviceWithHost:kHostAddress]; void (^handler)(RTGFeature *response, NSError *error) = ^(RTGFeature *response, NSError *error) { if (response.name.length) { @@ -102,8 +105,8 @@ static NSString * const kHostAddress = @"http://localhost:50051"; point.latitude = 409146138; point.longitude = -746188906; - [client getFeatureWithRequest:point handler:handler]; - [client getFeatureWithRequest:[RTGPoint message] handler:handler]; + [service getFeatureWithRequest:point handler:handler]; + [service getFeatureWithRequest:[RTGPoint message] handler:handler]; } @end @@ -122,7 +125,7 @@ static NSString * const kHostAddress = @"http://localhost:50051"; - (void)viewDidLoad { [super viewDidLoad]; - RTGRouteGuide *client = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; + RTGRouteGuide *service = [RTGRouteGuide serviceWithHost:kHostAddress]; RTGRectangle *rectangle = [RTGRectangle message]; rectangle.lo.latitude = 405E6; @@ -131,8 +134,8 @@ static NSString * const kHostAddress = @"http://localhost:50051"; rectangle.hi.longitude = -745E6; NSLog(@"Looking for features between %@ and %@", rectangle.lo, rectangle.hi); - [client listFeaturesWithRequest:rectangle - eventHandler:^(BOOL done, RTGFeature *response, NSError *error) { + [service listFeaturesWithRequest:rectangle + eventHandler:^(BOOL done, RTGFeature *response, NSError *error) { if (response) { NSLog(@"Found feature at %@ called %@.", response.location, response.name); } else if (error) { @@ -171,9 +174,10 @@ static NSString * const kHostAddress = @"http://localhost:50051"; return location; }]; - RTGRouteGuide *client = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; + RTGRouteGuide *service = [RTGRouteGuide serviceWithHost:kHostAddress]; - [client recordRouteWithRequestsWriter:locations handler:^(RTGRouteSummary *response, NSError *error) { + [service recordRouteWithRequestsWriter:locations + handler:^(RTGRouteSummary *response, NSError *error) { if (response) { NSLog(@"Finished trip with %i points", response.pointCount); NSLog(@"Passed %i features", response.featureCount); @@ -210,10 +214,10 @@ static NSString * const kHostAddress = @"http://localhost:50051"; return note; }]; - RTGRouteGuide *client = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; + RTGRouteGuide *service = [RTGRouteGuide serviceWithHost:kHostAddress]; - [client routeChatWithRequestsWriter:notesWriter - eventHandler:^(BOOL done, RTGRouteNote *note, NSError *error) { + [service routeChatWithRequestsWriter:notesWriter + eventHandler:^(BOOL done, RTGRouteNote *note, NSError *error) { if (note) { NSLog(@"Got message %@ at %@", note.message, note.location); } else if (error) { From 7fb5b3c2a06d95f03a63548ed498348904c1e27e Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 05:52:11 -0700 Subject: [PATCH 037/103] nit: Use appledoc-style documentation in the example --- .../objective-c/route_guide/ViewControllers.m | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/examples/objective-c/route_guide/ViewControllers.m b/examples/objective-c/route_guide/ViewControllers.m index 8332661d57f..61367fdf85f 100644 --- a/examples/objective-c/route_guide/ViewControllers.m +++ b/examples/objective-c/route_guide/ViewControllers.m @@ -38,7 +38,7 @@ static NSString * const kHostAddress = @"localhost:50051"; -// Category to override RTGPoint's description. +/** Category to override RTGPoint's description. */ @interface RTGPoint (Description) - (NSString *)description; @end @@ -53,7 +53,7 @@ static NSString * const kHostAddress = @"localhost:50051"; } @end -// Category to give RTGRouteNote a convenience constructor. +/** Category to give RTGRouteNote a convenience constructor. */ @interface RTGRouteNote (Constructors) + (instancetype)noteWithMessage:(NSString *)message latitude:(float)latitude @@ -75,9 +75,10 @@ static NSString * const kHostAddress = @"localhost:50051"; #pragma mark Demo: Get Feature -// Run the getFeature demo. Calls getFeature with a point known to have a feature and a point known -// not to have a feature. - +/** + * Run the getFeature demo. Calls getFeature with a point known to have a feature and a point known + * not to have a feature. + */ @interface GetFeatureViewController : UIViewController @end @@ -114,9 +115,10 @@ static NSString * const kHostAddress = @"localhost:50051"; #pragma mark Demo: List Features -// Run the listFeatures demo. Calls listFeatures with a rectangle containing all of the features in -// the pre-generated database. Prints each response as it comes in. - +/** + * Run the listFeatures demo. Calls listFeatures with a rectangle containing all of the features in + * the pre-generated database. Prints each response as it comes in. + */ @interface ListFeaturesViewController : UIViewController @end @@ -149,10 +151,11 @@ static NSString * const kHostAddress = @"localhost:50051"; #pragma mark Demo: Record Route -// Run the recordRoute demo. Sends several randomly chosen points from the pre-generated feature -// database with a variable delay in between. Prints the statistics when they are sent from the -// server. - +/** + * Run the recordRoute demo. Sends several randomly chosen points from the pre-generated feature + * database with a variable delay in between. Prints the statistics when they are sent from the + * server. + */ @interface RecordRouteViewController : UIViewController @end @@ -194,9 +197,10 @@ static NSString * const kHostAddress = @"localhost:50051"; #pragma mark Demo: Route Chat -// Run the routeChat demo. Send some chat messages, and print any chat messages that are sent from -// the server. - +/** + * Run the routeChat demo. Send some chat messages, and print any chat messages that are sent from + * the server. + */ @interface RouteChatViewController : UIViewController @end From 6f7e26a5772bf363450aa32618dd20bcb4a07ae3 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 06:07:05 -0700 Subject: [PATCH 038/103] pod install on route_guide project --- .../RouteGuideClient.xcodeproj/project.pbxproj | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/examples/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj b/examples/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj index 6ab6b27a1b5..f99775562c0 100644 --- a/examples/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj +++ b/examples/objective-c/route_guide/RouteGuideClient.xcodeproj/project.pbxproj @@ -121,6 +121,7 @@ 6325277A1B1D0395003073D9 /* Frameworks */, 6325277B1B1D0395003073D9 /* Resources */, FFE0BCF30339E7A50A989EAB /* Copy Pods Resources */, + B5388EC5A25E89021740B916 /* Embed Pods Frameworks */, ); buildRules = ( ); @@ -177,6 +178,21 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + B5388EC5A25E89021740B916 /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-RouteGuideClient/Pods-RouteGuideClient-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; C6FC30AD2376EC04317237C5 /* Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; From 2f0d11bf2ad6dda052aa72b5991dc1634f12bce4 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 06:07:26 -0700 Subject: [PATCH 039/103] Fix build breakage. --- examples/objective-c/route_guide/ViewControllers.m | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/objective-c/route_guide/ViewControllers.m b/examples/objective-c/route_guide/ViewControllers.m index 61367fdf85f..0b1a1cf4823 100644 --- a/examples/objective-c/route_guide/ViewControllers.m +++ b/examples/objective-c/route_guide/ViewControllers.m @@ -32,6 +32,7 @@ */ #import +#import #import #import #import @@ -90,7 +91,7 @@ static NSString * const kHostAddress = @"localhost:50051"; // This only needs to be done once per host, before creating service objects for that host. [GRPCCall useInsecureConnectionsForHost:kHostAddress]; - RTGRouteGuide *service = [RTGRouteGuide serviceWithHost:kHostAddress]; + RTGRouteGuide *service = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; void (^handler)(RTGFeature *response, NSError *error) = ^(RTGFeature *response, NSError *error) { if (response.name.length) { @@ -127,7 +128,7 @@ static NSString * const kHostAddress = @"localhost:50051"; - (void)viewDidLoad { [super viewDidLoad]; - RTGRouteGuide *service = [RTGRouteGuide serviceWithHost:kHostAddress]; + RTGRouteGuide *service = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; RTGRectangle *rectangle = [RTGRectangle message]; rectangle.lo.latitude = 405E6; @@ -177,7 +178,7 @@ static NSString * const kHostAddress = @"localhost:50051"; return location; }]; - RTGRouteGuide *service = [RTGRouteGuide serviceWithHost:kHostAddress]; + RTGRouteGuide *service = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; [service recordRouteWithRequestsWriter:locations handler:^(RTGRouteSummary *response, NSError *error) { @@ -218,7 +219,7 @@ static NSString * const kHostAddress = @"localhost:50051"; return note; }]; - RTGRouteGuide *service = [RTGRouteGuide serviceWithHost:kHostAddress]; + RTGRouteGuide *service = [[RTGRouteGuide alloc] initWithHost:kHostAddress]; [service routeChatWithRequestsWriter:notesWriter eventHandler:^(BOOL done, RTGRouteNote *note, NSError *error) { From 10622a8d9be4ef412401de570cf1b173271c2ffe Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 07:10:47 -0700 Subject: [PATCH 040/103] Prevent XCode 7 from showing spurious warnings This will hopefully make xctool work on Travis too (cross fingers!) --- gRPC.podspec | 8 ++++++-- templates/gRPC.podspec.template | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gRPC.podspec b/gRPC.podspec index d101253bb17..2100fc86e7c 100644 --- a/gRPC.podspec +++ b/gRPC.podspec @@ -566,8 +566,12 @@ Pod::Spec.new do |s| ss.header_mappings_dir = '.' # This isn't officially supported in Cocoapods. We've asked for an alternative: # https://github.com/CocoaPods/CocoaPods/issues/4386 - ss.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC" ' + - '"$(PODS_ROOT)/Headers/Private/gRPC/include"' } + ss.xcconfig = { + 'USE_HEADERMAP' => 'NO', + 'ALWAYS_SEARCH_USER_PATHS' => 'NO', + 'USER_HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC"', + 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC/include"' + } ss.requires_arc = false ss.libraries = 'z' diff --git a/templates/gRPC.podspec.template b/templates/gRPC.podspec.template index 3b96fe28857..3885cb337b5 100644 --- a/templates/gRPC.podspec.template +++ b/templates/gRPC.podspec.template @@ -88,8 +88,12 @@ ss.header_mappings_dir = '.' # This isn't officially supported in Cocoapods. We've asked for an alternative: # https://github.com/CocoaPods/CocoaPods/issues/4386 - ss.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC" ' + - '"$(PODS_ROOT)/Headers/Private/gRPC/include"' } + ss.xcconfig = { + 'USE_HEADERMAP' => 'NO', + 'ALWAYS_SEARCH_USER_PATHS' => 'NO', + 'USER_HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC"', + 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC/include"' + } ss.requires_arc = false ss.libraries = 'z' From bdf4b2e5daf19ff3be3c02c75469c1907a0cdbb8 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Wed, 28 Oct 2015 08:22:34 -0700 Subject: [PATCH 041/103] C# native extension coverage on Linux --- tools/run_tests/build_csharp.sh | 2 +- tools/run_tests/run_csharp.sh | 18 ++++++++++++++---- tools/run_tests/run_tests.py | 8 ++++---- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/tools/run_tests/build_csharp.sh b/tools/run_tests/build_csharp.sh index 6737d88b273..2c333517922 100755 --- a/tools/run_tests/build_csharp.sh +++ b/tools/run_tests/build_csharp.sh @@ -30,7 +30,7 @@ set -ex -if [ "$CONFIG" = "dbg" ] +if [ "$CONFIG" = "dbg" ] || [ "$CONFIG" = "gcov" ] then MSBUILD_CONFIG="Debug" else diff --git a/tools/run_tests/run_csharp.sh b/tools/run_tests/run_csharp.sh index c0fedca1935..72c0e4e90aa 100755 --- a/tools/run_tests/run_csharp.sh +++ b/tools/run_tests/run_csharp.sh @@ -34,7 +34,7 @@ CONFIG=${CONFIG:-opt} NUNIT_CONSOLE="mono packages/NUnit.Runners.2.6.4/tools/nunit-console.exe" -if [ "$CONFIG" = "dbg" ] +if [ "$CONFIG" = "dbg" ] || [ "$CONFIG" = "gcov" ] then MSBUILD_CONFIG="Debug" else @@ -45,10 +45,20 @@ fi cd $(dirname $0)/../.. root=`pwd` -cd src/csharp - export LD_LIBRARY_PATH=$root/libs/$CONFIG -$NUNIT_CONSOLE -labels "$1/bin/$MSBUILD_CONFIG/$1.dll" +if [ "$CONFIG" = "gcov" ] +then + (cd src/csharp; $NUNIT_CONSOLE -labels "Grpc.Core.Tests/bin/$MSBUILD_CONFIG/Grpc.Core.Tests.dll") + + gcov objs/gcov/src/csharp/ext/*.o + lcov --base-directory . --directory . -c -o coverage.info + lcov -e coverage.info '**/src/csharp/ext/*' -o coverage.info + genhtml -o reports/csharp_ext_coverage --num-spaces 2 \ + -t 'gRPC C# native extension test coverage' coverage.info \ + --rc genhtml_hi_limit=95 --rc genhtml_med_limit=80 --no-prefix +else + (cd src/csharp; $NUNIT_CONSOLE -labels "$1/bin/$MSBUILD_CONFIG/$1.dll") +fi diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 39d7a0a9002..95b5358edfb 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -343,10 +343,10 @@ class CSharpLanguage(object): else: cmd = 'tools/run_tests/run_csharp.sh' - if config.build_config == 'gcov' and self.platform == 'windows': - # For C# code coverage we need to: - # 1) Run all tests as one suite. - # 2) Need to be on Windows. + if config.build_config == 'gcov': + # On Windows, we only collect C# code coverage. + # On Linux, we only collect coverage for native extension. + # For code coverage all tests need to run as one suite. return [config.job_spec([cmd], None, environ=_FORCE_ENVIRON_FOR_WRAPPERS)] else: From 754751e3c60d416beb92938d7d453b23fa57dd7e Mon Sep 17 00:00:00 2001 From: vjpai Date: Wed, 28 Oct 2015 09:16:22 -0700 Subject: [PATCH 042/103] Numerous proto changes to make things more sane and fix some outstanding issues --- Makefile | 40 +++++------ build.yaml | 4 +- .../cpp/qps/async_streaming_ping_pong_test.cc | 4 +- test/cpp/qps/async_unary_ping_pong_test.cc | 4 +- test/cpp/qps/client.h | 54 +++++++------- test/cpp/qps/client_async.cc | 6 +- test/cpp/qps/client_sync.cc | 2 +- test/cpp/qps/driver.h | 2 +- test/cpp/qps/histogram.h | 2 +- test/cpp/qps/perf_db.proto | 2 +- test/cpp/qps/qps_driver.cc | 71 ++++++++----------- test/cpp/qps/qps_openloop_test.cc | 5 +- test/cpp/qps/qps_test.cc | 4 +- test/cpp/qps/qps_test_with_poll.cc | 4 +- test/cpp/qps/qps_worker.cc | 2 +- test/cpp/qps/server.h | 2 +- test/cpp/qps/server_async.cc | 2 +- test/cpp/qps/server_sync.cc | 2 +- test/cpp/qps/sync_streaming_ping_pong_test.cc | 4 +- test/cpp/qps/sync_unary_ping_pong_test.cc | 4 +- .../proto/{ => perf_tests}/perf_control.proto | 17 ++--- test/proto/{ => perf_tests}/perf_stats.proto | 0 tools/run_tests/sources_and_headers.json | 8 +-- vsprojects/vcxproj/qps/qps.vcxproj | 16 ++--- vsprojects/vcxproj/qps/qps.vcxproj.filters | 11 +-- 25 files changed, 123 insertions(+), 149 deletions(-) rename test/proto/{ => perf_tests}/perf_control.proto (94%) rename test/proto/{ => perf_tests}/perf_stats.proto (100%) diff --git a/Makefile b/Makefile index 86f3fa90c92..1f2c93af72d 100644 --- a/Makefile +++ b/Makefile @@ -3586,30 +3586,30 @@ $(GENDIR)/test/proto/messages.grpc.pb.cc: test/proto/messages.proto $(PROTOBUF_D endif ifeq ($(NO_PROTOC),true) -$(GENDIR)/test/proto/perf_control.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/perf_control.grpc.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/perf_tests/perf_control.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/perf_control.pb.cc: test/proto/perf_control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/perf_tests/perf_control.pb.cc: test/proto/perf_tests/perf_control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/perf_control.grpc.pb.cc: test/proto/perf_control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc: test/proto/perf_tests/perf_control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< endif ifeq ($(NO_PROTOC),true) -$(GENDIR)/test/proto/perf_stats.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/perf_stats.grpc.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/perf_stats.pb.cc: test/proto/perf_stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc: test/proto/perf_tests/perf_stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/perf_stats.grpc.pb.cc: test/proto/perf_stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc: test/proto/perf_tests/perf_stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< @@ -5205,8 +5205,8 @@ $(OBJDIR)/$(CONFIG)/test/cpp/interop/server.o: $(GENDIR)/test/proto/empty.pb.cc LIBQPS_SRC = \ $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \ - $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc \ - $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc \ + $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc \ + $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc \ $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc \ test/cpp/qps/client_async.cc \ test/cpp/qps/client_sync.cc \ @@ -5261,16 +5261,16 @@ ifneq ($(NO_DEPS),true) -include $(LIBQPS_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/timer.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_control.pb.cc $(GENDIR)/test/proto/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_stats.pb.cc $(GENDIR)/test/proto/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/timer.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc LIBGRPC_CSHARP_EXT_SRC = \ diff --git a/build.yaml b/build.yaml index a0f3eb3d183..b8c53f2739f 100644 --- a/build.yaml +++ b/build.yaml @@ -750,8 +750,8 @@ libs: - test/cpp/util/benchmark_config.h src: - test/proto/messages.proto - - test/proto/perf_control.proto - - test/proto/perf_stats.proto + - test/proto/perf_tests/perf_control.proto + - test/proto/perf_tests/perf_stats.proto - test/cpp/qps/perf_db.proto - test/cpp/qps/client_async.cc - test/cpp/qps/client_sync.cc diff --git a/test/cpp/qps/async_streaming_ping_pong_test.cc b/test/cpp/qps/async_streaming_ping_pong_test.cc index 411df4d32af..2d3ebfdfdb4 100644 --- a/test/cpp/qps/async_streaming_ping_pong_test.cc +++ b/test/cpp/qps/async_streaming_ping_pong_test.cc @@ -52,7 +52,7 @@ static void RunAsyncStreamingPingPong() { ClientConfig client_config; client_config.set_client_type(ASYNC_CLIENT); - client_config.set_enable_ssl(false); + client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); client_config.set_payload_size(1); @@ -61,7 +61,7 @@ static void RunAsyncStreamingPingPong() { ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); - server_config.set_enable_ssl(false); + server_config.set_use_tls(false); server_config.set_threads(1); const auto result = diff --git a/test/cpp/qps/async_unary_ping_pong_test.cc b/test/cpp/qps/async_unary_ping_pong_test.cc index eda31b57442..a5f91c51575 100644 --- a/test/cpp/qps/async_unary_ping_pong_test.cc +++ b/test/cpp/qps/async_unary_ping_pong_test.cc @@ -52,7 +52,7 @@ static void RunAsyncUnaryPingPong() { ClientConfig client_config; client_config.set_client_type(ASYNC_CLIENT); - client_config.set_enable_ssl(false); + client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); client_config.set_payload_size(1); @@ -61,7 +61,7 @@ static void RunAsyncUnaryPingPong() { ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); - server_config.set_enable_ssl(false); + server_config.set_use_tls(false); server_config.set_threads(1); const auto result = diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h index a7b246e5d4d..7086ae820af 100644 --- a/test/cpp/qps/client.h +++ b/test/cpp/qps/client.h @@ -40,7 +40,7 @@ #include "test/cpp/qps/histogram.h" #include "test/cpp/qps/interarrival.h" #include "test/cpp/qps/timer.h" -#include "test/proto/perf_control.grpc.pb.h" +#include "test/proto/perf_tests/perf_control.grpc.pb.h" #include "test/cpp/util/create_test_channel.h" namespace grpc { @@ -122,7 +122,7 @@ class Client { // We have to use a 2-phase init like this with a default // constructor followed by an initializer function to make // old compilers happy with using this in std::vector - channel_ = CreateTestChannel(target, config.enable_ssl()); + channel_ = CreateTestChannel(target, config.use_tls()); stub_ = TestService::NewStub(channel_); } Channel* get_channel() { return channel_.get(); } @@ -146,37 +146,31 @@ class Client { void SetupLoadTest(const ClientConfig& config, size_t num_threads) { // Set up the load distribution based on the number of threads - if (config.load_type() == CLOSED_LOOP) { + const auto& load = config.load_params(); + + std::unique_ptr random_dist; + if (load.has_poisson()) { + random_dist.reset(new ExpDist(load.poisson().offered_load() / + num_threads)); + } else if (load.has_uniform()) { + random_dist.reset(new UniformDist(load.uniform().interarrival_lo() * + num_threads, + load.uniform().interarrival_hi() * + num_threads)); + } else if (load.has_determ()) { + random_dist.reset(new DetDist(num_threads / load.determ().offered_load())); + } else if (load.has_pareto()) { + random_dist.reset(new ParetoDist(load.pareto().interarrival_base() * num_threads, + load.pareto().alpha())); + } else { // No load parameters, so must be closed-loop + } + + // Set closed_loop_ based on whether or not random_dist is set + if (!random_dist) { closed_loop_ = true; } else { closed_loop_ = false; - - std::unique_ptr random_dist; - const auto& load = config.load_params(); - switch (config.load_type()) { - case POISSON: - random_dist.reset( - new ExpDist(load.poisson().offered_load() / num_threads)); - break; - case UNIFORM: - random_dist.reset( - new UniformDist(load.uniform().interarrival_lo() * num_threads, - load.uniform().interarrival_hi() * num_threads)); - break; - case DETERMINISTIC: - random_dist.reset( - new DetDist(num_threads / load.determ().offered_load())); - break; - case PARETO: - random_dist.reset( - new ParetoDist(load.pareto().interarrival_base() * num_threads, - load.pareto().alpha())); - break; - default: - GPR_ASSERT(false); - break; - } - + // set up interarrival timer according to random dist interarrival_timer_.init(*random_dist, num_threads); for (size_t i = 0; i < num_threads; i++) { next_time_.push_back( diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc index 98be6395da8..cef17fa1f9a 100644 --- a/test/cpp/qps/client_async.cc +++ b/test/cpp/qps/client_async.cc @@ -48,7 +48,7 @@ #include #include -#include "test/proto/perf_control.grpc.pb.h" +#include "test/proto/perf_tests/perf_control.grpc.pb.h" #include "test/cpp/qps/timer.h" #include "test/cpp/qps/client.h" #include "test/cpp/util/create_test_channel.h" @@ -439,8 +439,8 @@ class AsyncStreamingClient GRPC_FINAL : public AsyncClient { public: explicit AsyncStreamingClient(const ClientConfig& config) : AsyncClient(config, SetupCtx) { - // async streaming currently only supported closed loop - GPR_ASSERT(config.load_type() == CLOSED_LOOP); + // async streaming currently only supports closed loop + GPR_ASSERT(closed_loop_); StartThreads(config.async_client_threads()); } diff --git a/test/cpp/qps/client_sync.cc b/test/cpp/qps/client_sync.cc index 320c2b2d551..b9d857c4826 100644 --- a/test/cpp/qps/client_sync.cc +++ b/test/cpp/qps/client_sync.cc @@ -54,7 +54,7 @@ #include "test/cpp/util/create_test_channel.h" #include "test/cpp/qps/client.h" -#include "test/proto/perf_control.grpc.pb.h" +#include "test/proto/perf_tests/perf_control.grpc.pb.h" #include "test/cpp/qps/histogram.h" #include "test/cpp/qps/interarrival.h" #include "test/cpp/qps/timer.h" diff --git a/test/cpp/qps/driver.h b/test/cpp/qps/driver.h index 89e584043de..7f69c013b70 100644 --- a/test/cpp/qps/driver.h +++ b/test/cpp/qps/driver.h @@ -37,7 +37,7 @@ #include #include "test/cpp/qps/histogram.h" -#include "test/proto/perf_control.grpc.pb.h" +#include "test/proto/perf_tests/perf_control.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/qps/histogram.h b/test/cpp/qps/histogram.h index 7f77aa910ff..8ea9cb62e1a 100644 --- a/test/cpp/qps/histogram.h +++ b/test/cpp/qps/histogram.h @@ -35,7 +35,7 @@ #define TEST_QPS_HISTOGRAM_H #include -#include "test/proto/perf_stats.grpc.pb.h" +#include "test/proto/perf_tests/perf_stats.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/qps/perf_db.proto b/test/cpp/qps/perf_db.proto index 0d9aec74cd9..42334e36abb 100644 --- a/test/cpp/qps/perf_db.proto +++ b/test/cpp/qps/perf_db.proto @@ -29,7 +29,7 @@ syntax = "proto3"; -import "test/proto/perf_control.proto"; +import "test/proto/perf_tests/perf_control.proto"; package grpc.testing; diff --git a/test/cpp/qps/qps_driver.cc b/test/cpp/qps/qps_driver.cc index b1463be8f62..3d352b4996e 100644 --- a/test/cpp/qps/qps_driver.cc +++ b/test/cpp/qps/qps_driver.cc @@ -50,7 +50,7 @@ DEFINE_int32(benchmark_seconds, 30, "Benchmark time (in seconds)"); DEFINE_int32(local_workers, 0, "Number of local workers to start"); // Common config -DEFINE_bool(enable_ssl, false, "Use SSL"); +DEFINE_bool(use_tls, false, "Use TLS"); DEFINE_string(rpc_type, "UNARY", "Type of RPC: UNARY or STREAMING"); // Server config @@ -64,15 +64,20 @@ DEFINE_int32(client_channels, 1, "Number of client channels"); DEFINE_int32(payload_size, 1, "Payload size"); DEFINE_string(client_type, "SYNCHRONOUS_CLIENT", "Client type"); DEFINE_int32(async_client_threads, 1, "Async client threads"); + +DEFINE_double(poisson_load, -1.0, "Poisson offered load (qps)"); +DEFINE_double(uniform_lo, -1.0, "Uniform low interarrival time (us)"); +DEFINE_double(uniform_hi, -1.0, "Uniform high interarrival time (us)"); +DEFINE_double(determ_load, -1.0, "Deterministic offered load (qps)"); +DEFINE_double(pareto_base, -1.0, "Pareto base interarrival time (us)"); +DEFINE_double(pareto_alpha, -1.0, "Pareto alpha value"); + DEFINE_string(load_type, "CLOSED_LOOP", "Load type"); -DEFINE_double(load_param_1, 0.0, "Load parameter 1"); -DEFINE_double(load_param_2, 0.0, "Load parameter 2"); using grpc::testing::ClientConfig; using grpc::testing::ServerConfig; using grpc::testing::ClientType; using grpc::testing::ServerType; -using grpc::testing::LoadType; using grpc::testing::RpcType; using grpc::testing::ResourceUsage; @@ -85,15 +90,12 @@ static void QpsDriver() { ClientType client_type; ServerType server_type; - LoadType load_type; GPR_ASSERT(ClientType_Parse(FLAGS_client_type, &client_type)); GPR_ASSERT(ServerType_Parse(FLAGS_server_type, &server_type)); - GPR_ASSERT(LoadType_Parse(FLAGS_load_type, &load_type)); ClientConfig client_config; client_config.set_client_type(client_type); - client_config.set_load_type(load_type); - client_config.set_enable_ssl(FLAGS_enable_ssl); + client_config.set_use_tls(FLAGS_use_tls); client_config.set_outstanding_rpcs_per_channel( FLAGS_outstanding_rpcs_per_channel); client_config.set_client_channels(FLAGS_client_channels); @@ -102,46 +104,29 @@ static void QpsDriver() { client_config.set_rpc_type(rpc_type); // set up the load parameters - switch (load_type) { - case grpc::testing::CLOSED_LOOP: - break; - case grpc::testing::POISSON: { - auto poisson = client_config.mutable_load_params()->mutable_poisson(); - GPR_ASSERT(FLAGS_load_param_1 != 0.0); - poisson->set_offered_load(FLAGS_load_param_1); - break; - } - case grpc::testing::UNIFORM: { - auto uniform = client_config.mutable_load_params()->mutable_uniform(); - GPR_ASSERT(FLAGS_load_param_1 != 0.0); - GPR_ASSERT(FLAGS_load_param_2 != 0.0); - uniform->set_interarrival_lo(FLAGS_load_param_1 / 1e6); - uniform->set_interarrival_hi(FLAGS_load_param_2 / 1e6); - break; - } - case grpc::testing::DETERMINISTIC: { - auto determ = client_config.mutable_load_params()->mutable_determ(); - GPR_ASSERT(FLAGS_load_param_1 != 0.0); - determ->set_offered_load(FLAGS_load_param_1); - break; - } - case grpc::testing::PARETO: { - auto pareto = client_config.mutable_load_params()->mutable_pareto(); - GPR_ASSERT(FLAGS_load_param_1 != 0.0); - GPR_ASSERT(FLAGS_load_param_2 != 0.0); - pareto->set_interarrival_base(FLAGS_load_param_1 / 1e6); - pareto->set_alpha(FLAGS_load_param_2); - break; - } - default: - GPR_ASSERT(false); - break; + if (FLAGS_poisson_load > 0.0) { + auto poisson = client_config.mutable_load_params()->mutable_poisson(); + poisson->set_offered_load(FLAGS_poisson_load); + } else if (FLAGS_uniform_lo > 0.0) { + auto uniform = client_config.mutable_load_params()->mutable_uniform(); + uniform->set_interarrival_lo(FLAGS_uniform_lo / 1e6); + uniform->set_interarrival_hi(FLAGS_uniform_hi / 1e6); + } else if (FLAGS_determ_load > 0.0) { + auto determ = client_config.mutable_load_params()->mutable_determ(); + determ->set_offered_load(FLAGS_determ_load); + } else if (FLAGS_pareto_base > 0.0) { + auto pareto = client_config.mutable_load_params()->mutable_pareto(); + pareto->set_interarrival_base(FLAGS_pareto_base / 1e6); + pareto->set_alpha(FLAGS_pareto_alpha); + } else { + // Default is closed loop + // No need to set up any other load parameters here } ServerConfig server_config; server_config.set_server_type(server_type); server_config.set_threads(FLAGS_server_threads); - server_config.set_enable_ssl(FLAGS_enable_ssl); + server_config.set_use_tls(FLAGS_use_tls); // If we're running a sync-server streaming test, make sure // that we have at least as many threads as the active streams diff --git a/test/cpp/qps/qps_openloop_test.cc b/test/cpp/qps/qps_openloop_test.cc index 5a6a9249a93..918381b8509 100644 --- a/test/cpp/qps/qps_openloop_test.cc +++ b/test/cpp/qps/qps_openloop_test.cc @@ -52,19 +52,18 @@ static void RunQPS() { ClientConfig client_config; client_config.set_client_type(ASYNC_CLIENT); - client_config.set_enable_ssl(false); + client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1000); client_config.set_client_channels(8); client_config.set_payload_size(1); 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); ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); - server_config.set_enable_ssl(false); + server_config.set_use_tls(false); server_config.set_threads(4); const auto result = diff --git a/test/cpp/qps/qps_test.cc b/test/cpp/qps/qps_test.cc index d0c4a79cd92..c3dbc255740 100644 --- a/test/cpp/qps/qps_test.cc +++ b/test/cpp/qps/qps_test.cc @@ -52,7 +52,7 @@ static void RunQPS() { ClientConfig client_config; client_config.set_client_type(ASYNC_CLIENT); - client_config.set_enable_ssl(false); + client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1000); client_config.set_client_channels(8); client_config.set_payload_size(1); @@ -61,7 +61,7 @@ static void RunQPS() { ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); - server_config.set_enable_ssl(false); + server_config.set_use_tls(false); server_config.set_threads(8); const auto result = diff --git a/test/cpp/qps/qps_test_with_poll.cc b/test/cpp/qps/qps_test_with_poll.cc index 31d2c1bf7b4..a7a11a615cc 100644 --- a/test/cpp/qps/qps_test_with_poll.cc +++ b/test/cpp/qps/qps_test_with_poll.cc @@ -56,7 +56,7 @@ static void RunQPS() { ClientConfig client_config; client_config.set_client_type(ASYNC_CLIENT); - client_config.set_enable_ssl(false); + client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1000); client_config.set_client_channels(8); client_config.set_payload_size(1); @@ -65,7 +65,7 @@ static void RunQPS() { ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); - server_config.set_enable_ssl(false); + server_config.set_use_tls(false); server_config.set_threads(4); const auto result = diff --git a/test/cpp/qps/qps_worker.cc b/test/cpp/qps/qps_worker.cc index f60d5565146..f16740b18d7 100644 --- a/test/cpp/qps/qps_worker.cc +++ b/test/cpp/qps/qps_worker.cc @@ -52,7 +52,7 @@ #include #include "test/core/util/grpc_profiler.h" -#include "test/proto/perf_control.pb.h" +#include "test/proto/perf_tests/perf_control.pb.h" #include "test/cpp/qps/client.h" #include "test/cpp/qps/server.h" #include "test/cpp/util/create_test_channel.h" diff --git a/test/cpp/qps/server.h b/test/cpp/qps/server.h index 0135138416d..ba8394badc3 100644 --- a/test/cpp/qps/server.h +++ b/test/cpp/qps/server.h @@ -35,7 +35,7 @@ #define TEST_QPS_SERVER_H #include "test/cpp/qps/timer.h" -#include "test/proto/perf_control.grpc.pb.h" +#include "test/proto/perf_tests/perf_control.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc index 64c260b8349..db5218629af 100644 --- a/test/cpp/qps/server_async.cc +++ b/test/cpp/qps/server_async.cc @@ -49,7 +49,7 @@ #include #include -#include "test/proto/perf_control.grpc.pb.h" +#include "test/proto/perf_tests/perf_control.grpc.pb.h" #include "test/cpp/qps/server.h" namespace grpc { diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc index b53dbce56eb..2b83548d19e 100644 --- a/test/cpp/qps/server_sync.cc +++ b/test/cpp/qps/server_sync.cc @@ -43,7 +43,7 @@ #include #include -#include "test/proto/perf_control.grpc.pb.h" +#include "test/proto/perf_tests/perf_control.grpc.pb.h" #include "test/cpp/qps/server.h" #include "test/cpp/qps/timer.h" diff --git a/test/cpp/qps/sync_streaming_ping_pong_test.cc b/test/cpp/qps/sync_streaming_ping_pong_test.cc index 52e43939a81..6dddb9ef228 100644 --- a/test/cpp/qps/sync_streaming_ping_pong_test.cc +++ b/test/cpp/qps/sync_streaming_ping_pong_test.cc @@ -52,7 +52,7 @@ static void RunSynchronousStreamingPingPong() { ClientConfig client_config; client_config.set_client_type(SYNCHRONOUS_CLIENT); - client_config.set_enable_ssl(false); + client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); client_config.set_payload_size(1); @@ -60,7 +60,7 @@ static void RunSynchronousStreamingPingPong() { ServerConfig server_config; server_config.set_server_type(SYNCHRONOUS_SERVER); - server_config.set_enable_ssl(false); + server_config.set_use_tls(false); server_config.set_threads(1); const auto result = diff --git a/test/cpp/qps/sync_unary_ping_pong_test.cc b/test/cpp/qps/sync_unary_ping_pong_test.cc index fbd21357aa5..774e70e1977 100644 --- a/test/cpp/qps/sync_unary_ping_pong_test.cc +++ b/test/cpp/qps/sync_unary_ping_pong_test.cc @@ -52,7 +52,7 @@ static void RunSynchronousUnaryPingPong() { ClientConfig client_config; client_config.set_client_type(SYNCHRONOUS_CLIENT); - client_config.set_enable_ssl(false); + client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); client_config.set_payload_size(1); @@ -60,7 +60,7 @@ static void RunSynchronousUnaryPingPong() { ServerConfig server_config; server_config.set_server_type(SYNCHRONOUS_SERVER); - server_config.set_enable_ssl(false); + server_config.set_use_tls(false); server_config.set_threads(1); const auto result = diff --git a/test/proto/perf_control.proto b/test/proto/perf_tests/perf_control.proto similarity index 94% rename from test/proto/perf_control.proto rename to test/proto/perf_tests/perf_control.proto index 8f113e4609c..9c3e82285fc 100644 --- a/test/proto/perf_control.proto +++ b/test/proto/perf_tests/perf_control.proto @@ -32,7 +32,7 @@ syntax = "proto3"; import "test/proto/messages.proto"; -import "test/proto/perf_stats.proto"; +import "test/proto/perf_tests/perf_stats.proto"; package grpc.testing; @@ -51,14 +51,6 @@ enum RpcType { STREAMING = 1; } -enum LoadType { - CLOSED_LOOP = 0; - POISSON = 1; - UNIFORM = 2; - DETERMINISTIC = 3; - PARETO = 4; -} - message PoissonParams { double offered_load = 1; } @@ -83,13 +75,15 @@ message LoadParams { UniformParams uniform = 2; DeterministicParams determ = 3; ParetoParams pareto = 4; + // No need to separately specify Closed-Loop as that + // will just be the absence of any of the above }; } message ClientConfig { repeated string server_targets = 1; ClientType client_type = 2; - bool enable_ssl = 3; + bool use_tls = 3; int32 outstanding_rpcs_per_channel = 4; int32 client_channels = 5; int32 payload_size = 6; @@ -97,7 +91,6 @@ message ClientConfig { int32 async_client_threads = 7; RpcType rpc_type = 8; string host = 9; - LoadType load_type = 10; LoadParams load_params = 11; } @@ -119,7 +112,7 @@ message ClientArgs { message ServerConfig { ServerType server_type = 1; int32 threads = 2; - bool enable_ssl = 3; + bool use_tls = 3; string host = 4; } diff --git a/test/proto/perf_stats.proto b/test/proto/perf_tests/perf_stats.proto similarity index 100% rename from test/proto/perf_stats.proto rename to test/proto/perf_tests/perf_stats.proto diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 181b74eddeb..60abb62e3a3 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -13658,10 +13658,10 @@ "test/cpp/util/benchmark_config.h", "test/proto/messages.grpc.pb.h", "test/proto/messages.pb.h", - "test/proto/perf_control.grpc.pb.h", - "test/proto/perf_control.pb.h", - "test/proto/perf_stats.grpc.pb.h", - "test/proto/perf_stats.pb.h" + "test/proto/perf_tests/perf_control.grpc.pb.h", + "test/proto/perf_tests/perf_control.pb.h", + "test/proto/perf_tests/perf_stats.grpc.pb.h", + "test/proto/perf_tests/perf_stats.pb.h" ], "language": "c++", "name": "qps", diff --git a/vsprojects/vcxproj/qps/qps.vcxproj b/vsprojects/vcxproj/qps/qps.vcxproj index d5aab3725a7..e1987dba5dd 100644 --- a/vsprojects/vcxproj/qps/qps.vcxproj +++ b/vsprojects/vcxproj/qps/qps.vcxproj @@ -155,21 +155,21 @@
- + - + - + - + - + - + - + - + diff --git a/vsprojects/vcxproj/qps/qps.vcxproj.filters b/vsprojects/vcxproj/qps/qps.vcxproj.filters index fcf737b6ab7..f679ad4d543 100644 --- a/vsprojects/vcxproj/qps/qps.vcxproj.filters +++ b/vsprojects/vcxproj/qps/qps.vcxproj.filters @@ -4,11 +4,11 @@ test\proto - - test\proto + + test\proto\perf_tests - - test\proto + + test\proto\perf_tests test\cpp\qps @@ -96,6 +96,9 @@ {44e63a33-67f4-0575-e87a-711a7c9111e2} + + {cf788def-630c-8a5f-9a8c-6abdd500d712} +
From a09edad02ab9f9974565b267f2d28507bed1e6e4 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Wed, 28 Oct 2015 10:02:04 -0700 Subject: [PATCH 043/103] run all the tests for C# extension coverage --- tools/run_tests/run_csharp.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/run_tests/run_csharp.sh b/tools/run_tests/run_csharp.sh index 72c0e4e90aa..37e86feaad3 100755 --- a/tools/run_tests/run_csharp.sh +++ b/tools/run_tests/run_csharp.sh @@ -49,7 +49,11 @@ export LD_LIBRARY_PATH=$root/libs/$CONFIG if [ "$CONFIG" = "gcov" ] then - (cd src/csharp; $NUNIT_CONSOLE -labels "Grpc.Core.Tests/bin/$MSBUILD_CONFIG/Grpc.Core.Tests.dll") + (cd src/csharp; $NUNIT_CONSOLE -labels \ + "Grpc.Core.Tests/bin/$MSBUILD_CONFIG/Grpc.Core.Tests.dll" \ + "Grpc.Examples.Tests/bin/$MSBUILD_CONFIG/Grpc.Examples.Tests.dll" \ + "Grpc.HealthCheck.Tests/bin/$MSBUILD_CONFIG/Grpc.HealthCheck.Tests.dll" \ + "Grpc.IntegrationTesting/bin/$MSBUILD_CONFIG/Grpc.IntegrationTesting.dll") gcov objs/gcov/src/csharp/ext/*.o lcov --base-directory . --directory . -c -o coverage.info From ea4955e2c43d469a9e4b9ef5980f40f18ddb1e5b Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 14:36:50 -0700 Subject: [PATCH 044/103] Remove outdated routeguide test Eventually all samples will be tested. --- src/objective-c/tests/LocalClearTextTests.m | 164 ------------------ .../tests/Tests.xcodeproj/project.pbxproj | 4 - 2 files changed, 168 deletions(-) delete mode 100644 src/objective-c/tests/LocalClearTextTests.m diff --git a/src/objective-c/tests/LocalClearTextTests.m b/src/objective-c/tests/LocalClearTextTests.m deleted file mode 100644 index 976fff55bcc..00000000000 --- a/src/objective-c/tests/LocalClearTextTests.m +++ /dev/null @@ -1,164 +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. - * - */ - -#import -#import - -#import -#import -#import -#import -#import -#import - -// These tests require a gRPC "RouteGuide" sample server to be running locally. You can compile and -// run one by following the instructions here: https://github.com/grpc/grpc/blob/master/examples/cpp/cpptutorial.md#try-it-out -// Be sure to have the C gRPC library installed in your system (for example, by having followed the -// instructions at https://github.com/grpc/homebrew-grpc - -static NSString * const kRouteGuideHost = @"http://localhost:50051"; -static NSString * const kPackage = @"routeguide"; -static NSString * const kService = @"RouteGuide"; - -@interface LocalClearTextTests : XCTestCase -@end - -@implementation LocalClearTextTests - -// This test currently fails: see Issue #1907. -//- (void)testConnectionToLocalServer { -// __weak XCTestExpectation *expectation = [self expectationWithDescription:@"Server reachable."]; -// -// // This method isn't implemented by the local server. -// GRPCMethodName *method = [[GRPCMethodName alloc] initWithPackage:kPackage -// interface:kService -// method:@"EmptyCall"]; -// -// GRXWriter *requestsWriter = [GRXWriter writerWithValue:[NSData data]]; -// -// GRPCCall *call = [[GRPCCall alloc] initWithHost:kRouteGuideHost -// method:method -// requestsWriter:requestsWriter]; -// -// id responsesWriteable = [[GRXWriteable alloc] initWithValueHandler:^(NSData *value) { -// XCTFail(@"Received unexpected response: %@", value); -// } completionHandler:^(NSError *errorOrNil) { -// XCTAssertNotNil(errorOrNil, @"Finished without error!"); -// XCTAssertEqual(errorOrNil.code, 12, @"Finished with unexpected error: %@", errorOrNil); -// [expectation fulfill]; -// }]; -// -// [call startWithWriteable:responsesWriteable]; -// -// [self waitForExpectationsWithTimeout:8.0 handler:nil]; -//} - -- (void)testEmptyRPC { - __weak XCTestExpectation *response = [self expectationWithDescription:@"Empty response received."]; - __weak XCTestExpectation *completion = [self expectationWithDescription:@"Empty RPC completed."]; - - ProtoMethod *method = [[ProtoMethod alloc] initWithPackage:kPackage - service:kService - method:@"RecordRoute"]; - - GRXWriter *requestsWriter = [GRXWriter emptyWriter]; - - GRPCCall *call = [[GRPCCall alloc] initWithHost:kRouteGuideHost - path:method.HTTPPath - requestsWriter:requestsWriter]; - - id 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:2.0 handler:nil]; -} - -- (void)testSimpleProtoRPC { - __weak XCTestExpectation *response = [self expectationWithDescription:@"Response received."]; - __weak XCTestExpectation *completion = [self expectationWithDescription:@"RPC completed."]; - - ProtoMethod *method = [[ProtoMethod alloc] initWithPackage:kPackage - service:kService - method:@"GetFeature"]; - - RGDPoint *point = [RGDPoint message]; - point.latitude = 28E7; - point.longitude = -15E7; - GRXWriter *requestsWriter = [GRXWriter writerWithValue:[point data]]; - - GRPCCall *call = [[GRPCCall alloc] initWithHost:kRouteGuideHost - path:method.HTTPPath - requestsWriter:requestsWriter]; - - id responsesWriteable = [[GRXWriteable alloc] initWithValueHandler:^(NSData *value) { - XCTAssertNotNil(value, @"nil value received as response."); - RGDFeature *feature = [RGDFeature parseFromData:value error:NULL]; - XCTAssertEqualObjects(point, feature.location); - XCTAssertNotNil(feature.name, @"Response's name is nil."); - [response fulfill]; - } completionHandler:^(NSError *errorOrNil) { - XCTAssertNil(errorOrNil, @"Finished with unexpected error: %@", errorOrNil); - [completion fulfill]; - }]; - - [call startWithWriteable:responsesWriteable]; - - [self waitForExpectationsWithTimeout:2.0 handler:nil]; -} - -- (void)testSimpleProtoRPCUsingGeneratedService { - __weak XCTestExpectation *completion = [self expectationWithDescription:@"RPC completed."]; - - RGDPoint *point = [RGDPoint message]; - point.latitude = 28E7; - point.longitude = -15E7; - - RGDRouteGuide *service = [[RGDRouteGuide alloc] initWithHost:kRouteGuideHost]; - [service getFeatureWithRequest:point handler:^(RGDFeature *response, NSError *error) { - XCTAssertNil(error, @"Finished with unexpected error: %@", error); - XCTAssertEqualObjects(point, response.location); - XCTAssertNotNil(response.name, @"Response's name is nil."); - [completion fulfill]; - }]; - - [self waitForExpectationsWithTimeout:2.0 handler:nil]; -} -@end diff --git a/src/objective-c/tests/Tests.xcodeproj/project.pbxproj b/src/objective-c/tests/Tests.xcodeproj/project.pbxproj index 3a1c3d940a9..cdaf0c74e67 100644 --- a/src/objective-c/tests/Tests.xcodeproj/project.pbxproj +++ b/src/objective-c/tests/Tests.xcodeproj/project.pbxproj @@ -8,7 +8,6 @@ /* Begin PBXBuildFile section */ 6312AE4E1B1BF49B00341DEE /* GRPCClientTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6312AE4D1B1BF49B00341DEE /* GRPCClientTests.m */; }; - 63175DFF1B1B9FAF00027841 /* LocalClearTextTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 63175DFE1B1B9FAF00027841 /* LocalClearTextTests.m */; }; 63423F4A1B150A5F006CF63C /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; }; 63423F511B151B77006CF63C /* RxLibraryUnitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 63423F501B151B77006CF63C /* RxLibraryUnitTests.m */; }; 635697CD1B14FC11007A7283 /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635697CC1B14FC11007A7283 /* Tests.m */; }; @@ -45,7 +44,6 @@ 0A4F89D9C90E9C30990218F0 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; 35F2B6BF3BAE8F0DC4AFD76E /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; 6312AE4D1B1BF49B00341DEE /* GRPCClientTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GRPCClientTests.m; sourceTree = ""; }; - 63175DFE1B1B9FAF00027841 /* LocalClearTextTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocalClearTextTests.m; sourceTree = ""; }; 63423F441B150A5F006CF63C /* AllTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AllTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 63423F501B151B77006CF63C /* RxLibraryUnitTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RxLibraryUnitTests.m; sourceTree = ""; }; 635697C71B14FC11007A7283 /* libTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libTests.a; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -125,7 +123,6 @@ 63E240CD1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m */, 63715F551B780C020029CB0B /* InteropTestsLocalCleartext.m */, 63423F501B151B77006CF63C /* RxLibraryUnitTests.m */, - 63175DFE1B1B9FAF00027841 /* LocalClearTextTests.m */, 635697CC1B14FC11007A7283 /* Tests.m */, 635697D71B14FC11007A7283 /* Supporting Files */, ); @@ -265,7 +262,6 @@ buildActionMask = 2147483647; files = ( 63715F561B780C020029CB0B /* InteropTestsLocalCleartext.m in Sources */, - 63175DFF1B1B9FAF00027841 /* LocalClearTextTests.m in Sources */, 63423F511B151B77006CF63C /* RxLibraryUnitTests.m in Sources */, 63E240CE1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m in Sources */, 6312AE4E1B1BF49B00341DEE /* GRPCClientTests.m in Sources */, From 54fa62e3db569d6a06e1cd0042619eb3ba81ef41 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 14:46:23 -0700 Subject: [PATCH 045/103] Reject nils in useTestCertsPath:testName:forHost: --- src/objective-c/GRPCClient/GRPCCall+Tests.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/objective-c/GRPCClient/GRPCCall+Tests.m b/src/objective-c/GRPCClient/GRPCCall+Tests.m index bade0b29208..c8e81337031 100644 --- a/src/objective-c/GRPCClient/GRPCCall+Tests.m +++ b/src/objective-c/GRPCClient/GRPCCall+Tests.m @@ -40,6 +40,9 @@ + (void)useTestCertsPath:(NSString *)certsPath testName:(NSString *)testName forHost:(NSString *)host { + if (!host || !certsPath || !testName) { + [NSException raise:NSInvalidArgumentException format:@"host, path and name must be provided."]; + } GRPCHost *hostConfig = [GRPCHost hostWithAddress:host]; hostConfig.pathToCertificates = certsPath; hostConfig.hostNameOverride = testName; From 91db5acd5b52a41d7069fd56bf0f6802b6c6e4b7 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 14:53:38 -0700 Subject: [PATCH 046/103] Split AllTests into 4 schemes For local running one can still tests AllTests, but for C.I. one can test the 4 of them in parallel (and, importantly, deactivate the remote interop tests until we fix them on Travis; while keeping the rest). I had to make the remote tests a subclass of an abstract InteropTests (like InteropTestsLocalSSL and InteropTestsLocalCleartext), and then deactivate the abstract InteropTests on the 4 schemes that use it. --- src/objective-c/tests/InteropTests.h | 4 +- src/objective-c/tests/InteropTests.m | 14 +- src/objective-c/tests/InteropTestsRemote.m | 52 ++ src/objective-c/tests/Podfile | 18 +- .../tests/Tests.xcodeproj/project.pbxproj | 618 +++++++++++++++++- .../xcshareddata/xcschemes/AllTests.xcscheme | 14 +- .../InteropTestsLocalCleartext.xcscheme | 101 +++ .../xcschemes/InteropTestsLocalSSL.xcscheme | 95 +++ .../xcschemes/InteropTestsRemote.xcscheme | 95 +++ .../xcschemes/RxLibraryUnitTests.xcscheme | 90 +++ 10 files changed, 1088 insertions(+), 13 deletions(-) create mode 100644 src/objective-c/tests/InteropTestsRemote.m create mode 100644 src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/InteropTestsLocalCleartext.xcscheme create mode 100644 src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/InteropTestsLocalSSL.xcscheme create mode 100644 src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/InteropTestsRemote.xcscheme create mode 100644 src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/RxLibraryUnitTests.xcscheme diff --git a/src/objective-c/tests/InteropTests.h b/src/objective-c/tests/InteropTests.h index 1045c3d1248..383e3befb47 100644 --- a/src/objective-c/tests/InteropTests.h +++ b/src/objective-c/tests/InteropTests.h @@ -37,7 +37,7 @@ // https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md @interface InteropTests : XCTestCase -// Returns @"grpc-test.sandbox.google.com". -// Override in a subclass to perform the same tests against a different address. +// Returns nil, and as a consequence all tests of the superclass are skipped. +// Override in a subclass to perform these tests against a specific address. + (NSString *)host; @end diff --git a/src/objective-c/tests/InteropTests.m b/src/objective-c/tests/InteropTests.m index af58e2bd048..26877b1ae84 100644 --- a/src/objective-c/tests/InteropTests.m +++ b/src/objective-c/tests/InteropTests.m @@ -78,21 +78,20 @@ #pragma mark Tests -static NSString * const kRemoteSSLHost = @"grpc-test.sandbox.google.com"; - @implementation InteropTests { RMTTestService *_service; } + (NSString *)host { - return kRemoteSSLHost; + return nil; } - (void)setUp { - _service = [RMTTestService serviceWithHost:self.class.host]; + _service = self.class.host ? [RMTTestService serviceWithHost:self.class.host] : nil; } - (void)testEmptyUnaryRPC { + XCTAssertNotNil(self.class.host); __weak XCTestExpectation *expectation = [self expectationWithDescription:@"EmptyUnary"]; RMTEmpty *request = [RMTEmpty message]; @@ -110,6 +109,7 @@ static NSString * const kRemoteSSLHost = @"grpc-test.sandbox.google.com"; } - (void)testLargeUnaryRPC { + XCTAssertNotNil(self.class.host); __weak XCTestExpectation *expectation = [self expectationWithDescription:@"LargeUnary"]; RMTSimpleRequest *request = [RMTSimpleRequest message]; @@ -132,6 +132,7 @@ static NSString * const kRemoteSSLHost = @"grpc-test.sandbox.google.com"; } - (void)testClientStreamingRPC { + XCTAssertNotNil(self.class.host); __weak XCTestExpectation *expectation = [self expectationWithDescription:@"ClientStreaming"]; RMTStreamingInputCallRequest *request1 = [RMTStreamingInputCallRequest message]; @@ -164,6 +165,7 @@ static NSString * const kRemoteSSLHost = @"grpc-test.sandbox.google.com"; } - (void)testServerStreamingRPC { + XCTAssertNotNil(self.class.host); __weak XCTestExpectation *expectation = [self expectationWithDescription:@"ServerStreaming"]; NSArray *expectedSizes = @[@31415, @9, @2653, @58979]; @@ -200,6 +202,7 @@ static NSString * const kRemoteSSLHost = @"grpc-test.sandbox.google.com"; } - (void)testPingPongRPC { + XCTAssertNotNil(self.class.host); __weak XCTestExpectation *expectation = [self expectationWithDescription:@"PingPong"]; NSArray *requests = @[@27182, @8, @1828, @45904]; @@ -243,6 +246,7 @@ static NSString * const kRemoteSSLHost = @"grpc-test.sandbox.google.com"; } - (void)testEmptyStreamRPC { + XCTAssertNotNil(self.class.host); __weak XCTestExpectation *expectation = [self expectationWithDescription:@"EmptyStream"]; [_service fullDuplexCallWithRequestsWriter:[GRXWriter emptyWriter] eventHandler:^(BOOL done, @@ -256,6 +260,7 @@ static NSString * const kRemoteSSLHost = @"grpc-test.sandbox.google.com"; } - (void)testCancelAfterBeginRPC { + XCTAssertNotNil(self.class.host); __weak XCTestExpectation *expectation = [self expectationWithDescription:@"CancelAfterBegin"]; // A buffered pipe to which we never write any value acts as a writer that just hangs. @@ -273,6 +278,7 @@ static NSString * const kRemoteSSLHost = @"grpc-test.sandbox.google.com"; } - (void)testCancelAfterFirstResponseRPC { + XCTAssertNotNil(self.class.host); __weak XCTestExpectation *expectation = [self expectationWithDescription:@"CancelAfterFirstResponse"]; // A buffered pipe to which we write a single value but never close diff --git a/src/objective-c/tests/InteropTestsRemote.m b/src/objective-c/tests/InteropTestsRemote.m new file mode 100644 index 00000000000..50296cf04ea --- /dev/null +++ b/src/objective-c/tests/InteropTestsRemote.m @@ -0,0 +1,52 @@ +/* + * + * 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. + * + */ + +// Repeat of the tests in InteropTests.m, but sending the RPCs to a local SSL server instead of the +// remote one. + +#import + +#import "InteropTests.h" + +static NSString * const kRemoteSSLHost = @"grpc-test.sandbox.google.com"; + +@interface InteropTestsRemote : InteropTests +@end + +@implementation InteropTestsRemote + ++ (NSString *)host { + return kRemoteSSLHost; +} + +@end diff --git a/src/objective-c/tests/Podfile b/src/objective-c/tests/Podfile index 2aa837f764e..b65b363a156 100644 --- a/src/objective-c/tests/Podfile +++ b/src/objective-c/tests/Podfile @@ -6,10 +6,26 @@ pod 'gRPC', :path => "../../.." pod 'RemoteTest', :path => "../generated_libraries/RemoteTestClient" pod 'RouteGuide', :path => "../generated_libraries/RouteGuideClient" -link_with 'AllTests' +link_with 'AllTests', + 'RxLibraryUnitTests', + 'InteropTests', + 'InteropTestsLocalSSL', + 'InteropTestsLocalCleartext' target 'Tests' do end target 'AllTests' do end + +target 'RxLibraryUnitTests' do +end + +target 'InteropTests' do +end + +target 'InteropTestsLocalSSL' do +end + +target 'InteropTestsLocalCleartext' do +end diff --git a/src/objective-c/tests/Tests.xcodeproj/project.pbxproj b/src/objective-c/tests/Tests.xcodeproj/project.pbxproj index cdaf0c74e67..b0429617c01 100644 --- a/src/objective-c/tests/Tests.xcodeproj/project.pbxproj +++ b/src/objective-c/tests/Tests.xcodeproj/project.pbxproj @@ -7,15 +7,33 @@ objects = { /* Begin PBXBuildFile section */ + 036D953EE34B1FD523647ACD /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 35F2B6BF3BAE8F0DC4AFD76E /* libPods.a */; }; + 08A8BB02D19A53D902B214B8 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 35F2B6BF3BAE8F0DC4AFD76E /* libPods.a */; }; + 50267643BA114A2A724D4FDF /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 35F2B6BF3BAE8F0DC4AFD76E /* libPods.a */; }; 6312AE4E1B1BF49B00341DEE /* GRPCClientTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6312AE4D1B1BF49B00341DEE /* GRPCClientTests.m */; }; 63423F4A1B150A5F006CF63C /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; }; - 63423F511B151B77006CF63C /* RxLibraryUnitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 63423F501B151B77006CF63C /* RxLibraryUnitTests.m */; }; 635697CD1B14FC11007A7283 /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635697CC1B14FC11007A7283 /* Tests.m */; }; 635ED2EC1B1A3BC400FDE5C3 /* InteropTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */; }; 63715F561B780C020029CB0B /* InteropTestsLocalCleartext.m in Sources */ = {isa = PBXBuildFile; fileRef = 63715F551B780C020029CB0B /* InteropTestsLocalCleartext.m */; }; + 6379CC4D1BE1662A001BC0A1 /* InteropTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */; settings = {ASSET_TAGS = (); }; }; + 6379CC4E1BE1662B001BC0A1 /* InteropTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */; settings = {ASSET_TAGS = (); }; }; + 6379CC501BE16703001BC0A1 /* InteropTestsRemote.m in Sources */ = {isa = PBXBuildFile; fileRef = 6379CC4F1BE16703001BC0A1 /* InteropTestsRemote.m */; settings = {ASSET_TAGS = (); }; }; + 6379CC511BE1683B001BC0A1 /* InteropTestsRemote.m in Sources */ = {isa = PBXBuildFile; fileRef = 6379CC4F1BE16703001BC0A1 /* InteropTestsRemote.m */; settings = {ASSET_TAGS = (); }; }; + 6379CC531BE17709001BC0A1 /* TestCertificates.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 63E240CF1B6C63DC005F3B0E /* TestCertificates.bundle */; settings = {ASSET_TAGS = (); }; }; + 63DC84181BE15179000708E8 /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; settings = {ASSET_TAGS = (); }; }; + 63DC841E1BE15180000708E8 /* RxLibraryUnitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 63423F501B151B77006CF63C /* RxLibraryUnitTests.m */; settings = {ASSET_TAGS = (); }; }; + 63DC84281BE15267000708E8 /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; settings = {ASSET_TAGS = (); }; }; + 63DC842E1BE15278000708E8 /* RxLibraryUnitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 63423F501B151B77006CF63C /* RxLibraryUnitTests.m */; settings = {ASSET_TAGS = (); }; }; + 63DC842F1BE1527D000708E8 /* InteropTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */; settings = {ASSET_TAGS = (); }; }; + 63DC84391BE15294000708E8 /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; settings = {ASSET_TAGS = (); }; }; + 63DC84481BE152B5000708E8 /* libTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 635697C71B14FC11007A7283 /* libTests.a */; settings = {ASSET_TAGS = (); }; }; + 63DC844E1BE15350000708E8 /* InteropTestsLocalCleartext.m in Sources */ = {isa = PBXBuildFile; fileRef = 63715F551B780C020029CB0B /* InteropTestsLocalCleartext.m */; settings = {ASSET_TAGS = (); }; }; + 63DC844F1BE15353000708E8 /* InteropTestsLocalSSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E240CD1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m */; settings = {ASSET_TAGS = (); }; }; + 63DC84501BE153AA000708E8 /* GRPCClientTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6312AE4D1B1BF49B00341DEE /* GRPCClientTests.m */; settings = {ASSET_TAGS = (); }; }; 63E240CE1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E240CD1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m */; }; 63E240D01B6C63DC005F3B0E /* TestCertificates.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 63E240CF1B6C63DC005F3B0E /* TestCertificates.bundle */; }; 7D8A186224D39101F90230F6 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 35F2B6BF3BAE8F0DC4AFD76E /* libPods.a */; }; + DCFAE001609CCBFE69DFA6A1 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 35F2B6BF3BAE8F0DC4AFD76E /* libPods.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -26,6 +44,34 @@ remoteGlobalIDString = 635697C61B14FC11007A7283; remoteInfo = Tests; }; + 63DC84191BE15179000708E8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 635697BF1B14FC11007A7283 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 635697C61B14FC11007A7283; + remoteInfo = Tests; + }; + 63DC84291BE15267000708E8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 635697BF1B14FC11007A7283 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 635697C61B14FC11007A7283; + remoteInfo = Tests; + }; + 63DC843A1BE15294000708E8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 635697BF1B14FC11007A7283 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 635697C61B14FC11007A7283; + remoteInfo = Tests; + }; + 63DC84491BE152B5000708E8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 635697BF1B14FC11007A7283 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 635697C61B14FC11007A7283; + remoteInfo = Tests; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -51,6 +97,11 @@ 635697D81B14FC11007A7283 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InteropTests.m; sourceTree = ""; }; 63715F551B780C020029CB0B /* InteropTestsLocalCleartext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InteropTestsLocalCleartext.m; sourceTree = ""; }; + 6379CC4F1BE16703001BC0A1 /* InteropTestsRemote.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InteropTestsRemote.m; sourceTree = ""; }; + 63DC84131BE15179000708E8 /* RxLibraryUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RxLibraryUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 63DC84231BE15267000708E8 /* InteropTestsRemote.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = InteropTestsRemote.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 63DC84341BE15294000708E8 /* InteropTestsLocalSSL.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = InteropTestsLocalSSL.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 63DC84431BE152B5000708E8 /* InteropTestsLocalCleartext.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = InteropTestsLocalCleartext.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 63E240CC1B6C4D3A005F3B0E /* InteropTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InteropTests.h; sourceTree = ""; }; 63E240CD1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InteropTestsLocalSSL.m; sourceTree = ""; }; 63E240CF1B6C63DC005F3B0E /* TestCertificates.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = TestCertificates.bundle; sourceTree = ""; }; @@ -74,6 +125,42 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 63DC84101BE15179000708E8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 63DC84181BE15179000708E8 /* libTests.a in Frameworks */, + 036D953EE34B1FD523647ACD /* libPods.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 63DC84201BE15267000708E8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 63DC84281BE15267000708E8 /* libTests.a in Frameworks */, + DCFAE001609CCBFE69DFA6A1 /* libPods.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 63DC84311BE15294000708E8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 63DC84391BE15294000708E8 /* libTests.a in Frameworks */, + 08A8BB02D19A53D902B214B8 /* libPods.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 63DC84401BE152B5000708E8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 63DC84481BE152B5000708E8 /* libTests.a in Frameworks */, + 50267643BA114A2A724D4FDF /* libPods.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -110,6 +197,10 @@ children = ( 635697C71B14FC11007A7283 /* libTests.a */, 63423F441B150A5F006CF63C /* AllTests.xctest */, + 63DC84131BE15179000708E8 /* RxLibraryUnitTests.xctest */, + 63DC84231BE15267000708E8 /* InteropTestsRemote.xctest */, + 63DC84341BE15294000708E8 /* InteropTestsLocalSSL.xctest */, + 63DC84431BE152B5000708E8 /* InteropTestsLocalCleartext.xctest */, ); name = Products; sourceTree = ""; @@ -120,6 +211,7 @@ 6312AE4D1B1BF49B00341DEE /* GRPCClientTests.m */, 63E240CC1B6C4D3A005F3B0E /* InteropTests.h */, 635ED2EB1B1A3BC400FDE5C3 /* InteropTests.m */, + 6379CC4F1BE16703001BC0A1 /* InteropTestsRemote.m */, 63E240CD1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m */, 63715F551B780C020029CB0B /* InteropTestsLocalCleartext.m */, 63423F501B151B77006CF63C /* RxLibraryUnitTests.m */, @@ -149,6 +241,7 @@ 63423F411B150A5F006CF63C /* Frameworks */, 63423F421B150A5F006CF63C /* Resources */, A441F71824DCB9D0CA297748 /* Copy Pods Resources */, + 5F14F59509E10C2852014F9E /* Embed Pods Frameworks */, ); buildRules = ( ); @@ -177,6 +270,90 @@ productReference = 635697C71B14FC11007A7283 /* libTests.a */; productType = "com.apple.product-type.library.static"; }; + 63DC84121BE15179000708E8 /* RxLibraryUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 63DC841B1BE15179000708E8 /* Build configuration list for PBXNativeTarget "RxLibraryUnitTests" */; + buildPhases = ( + B2986CEEE8CDD4901C97598B /* Check Pods Manifest.lock */, + 63DC840F1BE15179000708E8 /* Sources */, + 63DC84101BE15179000708E8 /* Frameworks */, + 63DC84111BE15179000708E8 /* Resources */, + 4F5690DC0E6AD6663FE78B8B /* Embed Pods Frameworks */, + C977426A8727267BBAC7D48E /* Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 63DC841A1BE15179000708E8 /* PBXTargetDependency */, + ); + name = RxLibraryUnitTests; + productName = RxLibraryUnitTests; + productReference = 63DC84131BE15179000708E8 /* RxLibraryUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 63DC84221BE15267000708E8 /* InteropTestsRemote */ = { + isa = PBXNativeTarget; + buildConfigurationList = 63DC842B1BE15267000708E8 /* Build configuration list for PBXNativeTarget "InteropTestsRemote" */; + buildPhases = ( + 4C406327D3907A5E5FBA8AC9 /* Check Pods Manifest.lock */, + 63DC841F1BE15267000708E8 /* Sources */, + 63DC84201BE15267000708E8 /* Frameworks */, + 63DC84211BE15267000708E8 /* Resources */, + 900B6EDD4D16BE7D765C3885 /* Embed Pods Frameworks */, + C2E09DC4BD239F71160F0CC1 /* Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 63DC842A1BE15267000708E8 /* PBXTargetDependency */, + ); + name = InteropTestsRemote; + productName = InteropTests; + productReference = 63DC84231BE15267000708E8 /* InteropTestsRemote.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 63DC84331BE15294000708E8 /* InteropTestsLocalSSL */ = { + isa = PBXNativeTarget; + buildConfigurationList = 63DC843C1BE15294000708E8 /* Build configuration list for PBXNativeTarget "InteropTestsLocalSSL" */; + buildPhases = ( + 5C20DCCB71C3991E6FE78C22 /* Check Pods Manifest.lock */, + 63DC84301BE15294000708E8 /* Sources */, + 63DC84311BE15294000708E8 /* Frameworks */, + 63DC84321BE15294000708E8 /* Resources */, + C591129ACE9F6CC5EE03FCDE /* Embed Pods Frameworks */, + 693DD0B453431D64EA24FD66 /* Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 63DC843B1BE15294000708E8 /* PBXTargetDependency */, + ); + name = InteropTestsLocalSSL; + productName = InteropTestsLocalSSL; + productReference = 63DC84341BE15294000708E8 /* InteropTestsLocalSSL.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 63DC84421BE152B5000708E8 /* InteropTestsLocalCleartext */ = { + isa = PBXNativeTarget; + buildConfigurationList = 63DC844B1BE152B5000708E8 /* Build configuration list for PBXNativeTarget "InteropTestsLocalCleartext" */; + buildPhases = ( + 7418AC7B3844B29E48D24FC7 /* Check Pods Manifest.lock */, + 63DC843F1BE152B5000708E8 /* Sources */, + 63DC84401BE152B5000708E8 /* Frameworks */, + 63DC84411BE152B5000708E8 /* Resources */, + A8E3AC66DF770B774114A30E /* Embed Pods Frameworks */, + 8AD3130D3C58A0FB32FF2A36 /* Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 63DC844A1BE152B5000708E8 /* PBXTargetDependency */, + ); + name = InteropTestsLocalCleartext; + productName = InteropTestsLocalCleartext; + productReference = 63DC84431BE152B5000708E8 /* InteropTestsLocalCleartext.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -192,6 +369,18 @@ 635697C61B14FC11007A7283 = { CreatedOnToolsVersion = 6.3.1; }; + 63DC84121BE15179000708E8 = { + CreatedOnToolsVersion = 7.0.1; + }; + 63DC84221BE15267000708E8 = { + CreatedOnToolsVersion = 7.0.1; + }; + 63DC84331BE15294000708E8 = { + CreatedOnToolsVersion = 7.0.1; + }; + 63DC84421BE152B5000708E8 = { + CreatedOnToolsVersion = 7.0.1; + }; }; }; buildConfigurationList = 635697C21B14FC11007A7283 /* Build configuration list for PBXProject "Tests" */; @@ -208,6 +397,10 @@ targets = ( 635697C61B14FC11007A7283 /* Tests */, 63423F431B150A5F006CF63C /* AllTests */, + 63DC84121BE15179000708E8 /* RxLibraryUnitTests */, + 63DC84221BE15267000708E8 /* InteropTestsRemote */, + 63DC84331BE15294000708E8 /* InteropTestsLocalSSL */, + 63DC84421BE152B5000708E8 /* InteropTestsLocalCleartext */, ); }; /* End PBXProject section */ @@ -221,9 +414,158 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 63DC84111BE15179000708E8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 63DC84211BE15267000708E8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 63DC84321BE15294000708E8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6379CC531BE17709001BC0A1 /* TestCertificates.bundle in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 63DC84411BE152B5000708E8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 4C406327D3907A5E5FBA8AC9 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 4F5690DC0E6AD6663FE78B8B /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 5C20DCCB71C3991E6FE78C22 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 5F14F59509E10C2852014F9E /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 693DD0B453431D64EA24FD66 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 7418AC7B3844B29E48D24FC7 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 8AD3130D3C58A0FB32FF2A36 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 900B6EDD4D16BE7D765C3885 /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 914ADDD7106BA9BB8A7E569F /* Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -254,6 +596,81 @@ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; showEnvVarsInLog = 0; }; + A8E3AC66DF770B774114A30E /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + B2986CEEE8CDD4901C97598B /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + C2E09DC4BD239F71160F0CC1 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + C591129ACE9F6CC5EE03FCDE /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + C977426A8727267BBAC7D48E /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -262,10 +679,11 @@ buildActionMask = 2147483647; files = ( 63715F561B780C020029CB0B /* InteropTestsLocalCleartext.m in Sources */, - 63423F511B151B77006CF63C /* RxLibraryUnitTests.m in Sources */, + 6379CC511BE1683B001BC0A1 /* InteropTestsRemote.m in Sources */, 63E240CE1B6C4E2B005F3B0E /* InteropTestsLocalSSL.m in Sources */, 6312AE4E1B1BF49B00341DEE /* GRPCClientTests.m in Sources */, 635ED2EC1B1A3BC400FDE5C3 /* InteropTests.m in Sources */, + 63DC842E1BE15278000708E8 /* RxLibraryUnitTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -277,6 +695,42 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 63DC840F1BE15179000708E8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 63DC841E1BE15180000708E8 /* RxLibraryUnitTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 63DC841F1BE15267000708E8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 63DC842F1BE1527D000708E8 /* InteropTests.m in Sources */, + 6379CC501BE16703001BC0A1 /* InteropTestsRemote.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 63DC84301BE15294000708E8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 63DC844F1BE15353000708E8 /* InteropTestsLocalSSL.m in Sources */, + 6379CC4D1BE1662A001BC0A1 /* InteropTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 63DC843F1BE152B5000708E8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 63DC84501BE153AA000708E8 /* GRPCClientTests.m in Sources */, + 63DC844E1BE15350000708E8 /* InteropTestsLocalCleartext.m in Sources */, + 6379CC4E1BE1662B001BC0A1 /* InteropTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -285,6 +739,26 @@ target = 635697C61B14FC11007A7283 /* Tests */; targetProxy = 63423F4B1B150A5F006CF63C /* PBXContainerItemProxy */; }; + 63DC841A1BE15179000708E8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 635697C61B14FC11007A7283 /* Tests */; + targetProxy = 63DC84191BE15179000708E8 /* PBXContainerItemProxy */; + }; + 63DC842A1BE15267000708E8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 635697C61B14FC11007A7283 /* Tests */; + targetProxy = 63DC84291BE15267000708E8 /* PBXContainerItemProxy */; + }; + 63DC843B1BE15294000708E8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 635697C61B14FC11007A7283 /* Tests */; + targetProxy = 63DC843A1BE15294000708E8 /* PBXContainerItemProxy */; + }; + 63DC844A1BE152B5000708E8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 635697C61B14FC11007A7283 /* Tests */; + targetProxy = 63DC84491BE152B5000708E8 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ @@ -414,6 +888,110 @@ }; name = Release; }; + 63DC841C1BE15179000708E8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FF7B5489BCFE40111D768DD0 /* Pods.debug.xcconfig */; + buildSettings = { + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = io.grpc.RxLibraryUnitTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 63DC841D1BE15179000708E8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0A4F89D9C90E9C30990218F0 /* Pods.release.xcconfig */; + buildSettings = { + INFOPLIST_FILE = Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = io.grpc.RxLibraryUnitTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + 63DC842C1BE15267000708E8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FF7B5489BCFE40111D768DD0 /* Pods.debug.xcconfig */; + buildSettings = { + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 63DC842D1BE15267000708E8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0A4F89D9C90E9C30990218F0 /* Pods.release.xcconfig */; + buildSettings = { + INFOPLIST_FILE = Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + 63DC843D1BE15294000708E8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FF7B5489BCFE40111D768DD0 /* Pods.debug.xcconfig */; + buildSettings = { + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsLocalSSL; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 63DC843E1BE15294000708E8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0A4F89D9C90E9C30990218F0 /* Pods.release.xcconfig */; + buildSettings = { + INFOPLIST_FILE = Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsLocalSSL; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + 63DC844C1BE152B5000708E8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FF7B5489BCFE40111D768DD0 /* Pods.debug.xcconfig */; + buildSettings = { + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + INFOPLIST_FILE = Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsLocalCleartext; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 63DC844D1BE152B5000708E8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0A4F89D9C90E9C30990218F0 /* Pods.release.xcconfig */; + buildSettings = { + INFOPLIST_FILE = Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = io.grpc.InteropTestsLocalCleartext; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -444,6 +1022,42 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 63DC841B1BE15179000708E8 /* Build configuration list for PBXNativeTarget "RxLibraryUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 63DC841C1BE15179000708E8 /* Debug */, + 63DC841D1BE15179000708E8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 63DC842B1BE15267000708E8 /* Build configuration list for PBXNativeTarget "InteropTestsRemote" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 63DC842C1BE15267000708E8 /* Debug */, + 63DC842D1BE15267000708E8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 63DC843C1BE15294000708E8 /* Build configuration list for PBXNativeTarget "InteropTestsLocalSSL" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 63DC843D1BE15294000708E8 /* Debug */, + 63DC843E1BE15294000708E8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 63DC844B1BE152B5000708E8 /* Build configuration list for PBXNativeTarget "InteropTestsLocalCleartext" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 63DC844C1BE152B5000708E8 /* Debug */, + 63DC844D1BE152B5000708E8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 635697BF1B14FC11007A7283 /* Project object */; diff --git a/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/AllTests.xcscheme b/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/AllTests.xcscheme index a7e0ed110ec..e6a052a8ce1 100644 --- a/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/AllTests.xcscheme +++ b/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/AllTests.xcscheme @@ -23,10 +23,10 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -44,6 +44,9 @@ + + @@ -62,15 +65,18 @@ ReferencedContainer = "container:Tests.xcodeproj"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/InteropTestsLocalSSL.xcscheme b/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/InteropTestsLocalSSL.xcscheme new file mode 100644 index 00000000000..f268da1fb0c --- /dev/null +++ b/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/InteropTestsLocalSSL.xcscheme @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/InteropTestsRemote.xcscheme b/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/InteropTestsRemote.xcscheme new file mode 100644 index 00000000000..186d7208e04 --- /dev/null +++ b/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/InteropTestsRemote.xcscheme @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/RxLibraryUnitTests.xcscheme b/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/RxLibraryUnitTests.xcscheme new file mode 100644 index 00000000000..3abc1d42e4d --- /dev/null +++ b/src/objective-c/tests/Tests.xcodeproj/xcshareddata/xcschemes/RxLibraryUnitTests.xcscheme @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 2beb88c1fd961cfd697df6c94d6bd72537ddefc9 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 15:13:40 -0700 Subject: [PATCH 047/103] Fix documentation of tests --- src/objective-c/tests/GRPCClientTests.m | 36 ++++++++++++------- src/objective-c/tests/InteropTests.h | 16 ++++++--- .../tests/InteropTestsLocalCleartext.m | 4 +-- src/objective-c/tests/InteropTestsLocalSSL.m | 4 +-- src/objective-c/tests/InteropTestsRemote.m | 4 +-- 5 files changed, 38 insertions(+), 26 deletions(-) diff --git a/src/objective-c/tests/GRPCClientTests.m b/src/objective-c/tests/GRPCClientTests.m index 09a55e07045..00c4b8830d3 100644 --- a/src/objective-c/tests/GRPCClientTests.m +++ b/src/objective-c/tests/GRPCClientTests.m @@ -42,9 +42,6 @@ #import #import -// These are a few tests similar to InteropTests, but which use the generic gRPC client (GRPCCall) -// rather than a generated proto library on top of it. - static NSString * const kHostAddress = @"localhost:5050"; static NSString * const kPackage = @"grpc.testing"; static NSString * const kService = @"TestService"; @@ -53,11 +50,10 @@ static ProtoMethod *kInexistentMethod; static ProtoMethod *kEmptyCallMethod; static ProtoMethod *kUnaryCallMethod; -// This is an observer class for testing that responseMetadata is KVO-compliant - +/** Observer class for testing that responseMetadata is KVO-compliant */ @interface PassthroughObserver : NSObject - -- (instancetype) initWithCallback:(void (^)(NSString*, id, NSDictionary*))callback; +- (instancetype) initWithCallback:(void (^)(NSString*, id, NSDictionary*))callback + NS_DESIGNATED_INITIALIZER; - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context; @@ -67,23 +63,38 @@ static ProtoMethod *kUnaryCallMethod; void (^_callback)(NSString*, id, NSDictionary*); } +- (instancetype)init { + return [self initWithCallback:nil]; +} + - (instancetype)initWithCallback:(void (^)(NSString *, id, NSDictionary *))callback { - self = [super init]; - if (self) { + if (!callback) { + return nil; + } + if ((self = [super init])) { _callback = callback; } return self; - } -- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context -{ +- (void)observeValueForKeyPath:(NSString *)keyPath + ofObject:(id)object + change:(NSDictionary *)change + context:(void *)context { _callback(keyPath, object, change); [object removeObserver:self forKeyPath:keyPath]; } @end +# pragma mark Tests + +/** + * A few tests similar to InteropTests, but which use the generic gRPC client (GRPCCall) rather than + * a generated proto library on top of it. Its RPCs are sent to a local cleartext server. + * + * TODO(jcanizales): Run them also against a local SSL server and against a remote server. + */ @interface GRPCClientTests : XCTestCase @end @@ -180,6 +191,7 @@ static ProtoMethod *kUnaryCallMethod; [self waitForExpectationsWithTimeout:8 handler:nil]; } +// TODO(jcanizales): Activate this test against the remote server. - (void)testMetadata { __weak XCTestExpectation *expectation = [self expectationWithDescription:@"RPC unauthorized."]; diff --git a/src/objective-c/tests/InteropTests.h b/src/objective-c/tests/InteropTests.h index 383e3befb47..6d54343b135 100644 --- a/src/objective-c/tests/InteropTests.h +++ b/src/objective-c/tests/InteropTests.h @@ -33,11 +33,17 @@ #import -// Implements tests as described here: -// https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md - +/** + * Implements tests as described here: + * https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md + * + * This is an abstract class that needs to be subclassed. See |+host|. + */ @interface InteropTests : XCTestCase -// Returns nil, and as a consequence all tests of the superclass are skipped. -// Override in a subclass to perform these tests against a specific address. +/** + * Host to send the RPCs to. The base implementation returns nil, which would make all tests to + * fail. + * Override in a subclass to perform these tests against a specific address. + */ + (NSString *)host; @end diff --git a/src/objective-c/tests/InteropTestsLocalCleartext.m b/src/objective-c/tests/InteropTestsLocalCleartext.m index 2d7d3c4b2c0..56927a8af6d 100644 --- a/src/objective-c/tests/InteropTestsLocalCleartext.m +++ b/src/objective-c/tests/InteropTestsLocalCleartext.m @@ -31,15 +31,13 @@ * */ -// Repeat of the tests in InteropTests.m, but sending the RPCs to a local cleartext server instead -// of the remote SSL one. - #import #import "InteropTests.h" static NSString * const kLocalCleartextHost = @"localhost:5050"; +/** Tests in InteropTests.m, sending the RPCs to a local cleartext server. */ @interface InteropTestsLocalCleartext : InteropTests @end diff --git a/src/objective-c/tests/InteropTestsLocalSSL.m b/src/objective-c/tests/InteropTestsLocalSSL.m index f69f806dcf5..9d7afefbfe3 100644 --- a/src/objective-c/tests/InteropTestsLocalSSL.m +++ b/src/objective-c/tests/InteropTestsLocalSSL.m @@ -31,15 +31,13 @@ * */ -// Repeat of the tests in InteropTests.m, but sending the RPCs to a local SSL server instead of the -// remote one. - #import #import "InteropTests.h" static NSString * const kLocalSSLHost = @"localhost:5051"; +/** Tests in InteropTests.m, sending the RPCs to a local SSL server. */ @interface InteropTestsLocalSSL : InteropTests @end diff --git a/src/objective-c/tests/InteropTestsRemote.m b/src/objective-c/tests/InteropTestsRemote.m index 50296cf04ea..a67be98431e 100644 --- a/src/objective-c/tests/InteropTestsRemote.m +++ b/src/objective-c/tests/InteropTestsRemote.m @@ -31,15 +31,13 @@ * */ -// Repeat of the tests in InteropTests.m, but sending the RPCs to a local SSL server instead of the -// remote one. - #import #import "InteropTests.h" static NSString * const kRemoteSSLHost = @"grpc-test.sandbox.google.com"; +/** Tests in InteropTests.m, sending the RPCs to a remote SSL server. */ @interface InteropTestsRemote : InteropTests @end From de87e1ceb90f1b3deeaf05a38970f332a54e4faa Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Fri, 25 Sep 2015 22:21:38 +0200 Subject: [PATCH 048/103] Testing travis iOS feature. --- .travis.yml | 40 ++++------------------------------------ 1 file changed, 4 insertions(+), 36 deletions(-) diff --git a/.travis.yml b/.travis.yml index b6c80629852..c98d79acec4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,42 +1,10 @@ -language: cpp -before_install: - - sudo add-apt-repository ppa:yjwong/gflags -y - - sudo add-apt-repository ppa:h-rayflood/llvm -y - - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF - - echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list - - echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list - - sudo apt-get update -qq - - sudo apt-get install -qq libgtest-dev libgflags-dev python-virtualenv python-dev python3-dev clang-3.5 - - sudo pip install --upgrade virtualenv - - sudo pip install cpp-coveralls mako simplejson - - sudo apt-get install -qq mono-devel nunit - - wget www.nuget.org/NuGet.exe -O nuget.exe +language: objective-c env: global: - - RUBY_VERSION=2.1 - - COVERALLS_PARALLEL=true - - CPPFLAGS=-I/tmp/prebuilt/include - - NUGET="mono nuget.exe" - matrix: - - CONFIG=opt TEST=sanity JOBS=1 - - CONFIG=gcov TEST=c JOBS=16 - - CONFIG=gcov TEST=c++ JOBS=16 - - CONFIG=opt TEST=c JOBS=16 - - CONFIG=opt TEST=c++ JOBS=16 - - CONFIG=opt TEST=node JOBS=16 - - CONFIG=opt TEST=ruby JOBS=16 - - CONFIG=opt TEST=python JOBS=1 - - CONFIG=opt TEST=csharp JOBS=16 - - USE_GCC=4.4 CONFIG=opt TEST=build JOBS=16 + - CONFIG=opt + - TEST=objc + - JOBS=1 script: - - rvm use $RUBY_VERSION - - gem install bundler - - ./tools/run_tests/prepare_travis.sh - - if [ ! -z "$USE_GCC" ] ; then export CC=gcc-$USE_GCC ; export CXX=g++-$USE_GCC ; fi - ./tools/run_tests/run_tests.py -l $TEST -t -j $JOBS -c $CONFIG -s 4.0 -after_success: - - if [ "$CONFIG" = "gcov" ] ; then coveralls --exclude third_party --exclude gens --exclude test --exclude tools --exclude src/compiler -b. --gcov-options '\-p' ; fi notifications: email: false - webhooks: - - https://coveralls.io/webhook?repo_token=54IxAHPjJNdQJzJAhPU0MFpCtg7KvcydQ From 833a215e345e39c00702e6e6ecbb939ff0674b53 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Tue, 27 Oct 2015 17:25:14 -0700 Subject: [PATCH 049/103] Install gflags, needed to build the C++ interop server --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index c98d79acec4..eef54810e2f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,6 @@ language: objective-c +before_install: + - brew install gflags env: global: - CONFIG=opt From 227c9b2a05b8746af7704ac56f1bbc8ca538f697 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 02:23:15 -0700 Subject: [PATCH 050/103] Try Travis builtin support for Cocoapods & xctool --- .travis.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index eef54810e2f..06965143501 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,18 @@ language: objective-c -before_install: - - brew install gflags env: global: - CONFIG=opt - TEST=objc - JOBS=1 -script: - - ./tools/run_tests/run_tests.py -l $TEST -t -j $JOBS -c $CONFIG -s 4.0 +before_install: + - brew install gflags + - make grpc_objective_c_plugin + - make interop_server +podfile: src/objective-c/tests/Podfile +before_script: + - bins/$CONFIG/interop_server --port=5050 & + - bins/$CONFIG/interop_server --port=5051 --use_tls & +xcode_workspace: src/objective-c/tests/Tests.xcworkspace +xcode_scheme: AllTests notifications: email: false From bda34767fac2389a405ada15fff0913d786255f2 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 03:48:42 -0700 Subject: [PATCH 051/103] =?UTF-8?q?Pod=20install=20manually,=20to=20get=20?= =?UTF-8?q?=E2=80=94-verbose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 06965143501..c48d39ac287 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,12 @@ before_install: - brew install gflags - make grpc_objective_c_plugin - make interop_server -podfile: src/objective-c/tests/Podfile +install: + - pushd src/objective-c/tests + # Needs to be verbose, or otherwise OpenSSL's prepare_command makes Travis + # time out: + - pod install --verbose + - popd before_script: - bins/$CONFIG/interop_server --port=5050 & - bins/$CONFIG/interop_server --port=5051 --use_tls & From 53d01bc0049c1b00308d867ad20b7e40f2e4faa5 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 04:31:35 -0700 Subject: [PATCH 052/103] Silence pod repo update --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index c48d39ac287..3829104f85a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,8 @@ env: - JOBS=1 before_install: - brew install gflags + # Pod install does this too, but we don't want the output. + - pod repo update --silent - make grpc_objective_c_plugin - make interop_server install: From 289016d702e56fd4a73cd489fc0ae25babbb9552 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 03:07:54 -0700 Subject: [PATCH 053/103] Require Xcode 7.1 to try and get NS_ASSUME_NONNULL_BEGIN --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 3829104f85a..c0d7c25280a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ language: objective-c +osx_image: xcode7.1 env: global: - CONFIG=opt From ea1cfc8eb1d11f0bae22d5cee1763f87ff05bf1d Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 07:50:54 -0700 Subject: [PATCH 054/103] Restrict tests to simulator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Device builds require code signing, that isn’t set up (they probably wouldn’t work anyway - I don’t think Travis is attaching devices to their VMs). --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index c0d7c25280a..518b1b8e3fb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,5 +22,6 @@ before_script: - bins/$CONFIG/interop_server --port=5051 --use_tls & xcode_workspace: src/objective-c/tests/Tests.xcworkspace xcode_scheme: AllTests +xcode_sdk: iphonesimulator9.1 notifications: email: false From abf596c022816d83a37be68ef93cd36f1808c7b7 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 16:55:02 -0700 Subject: [PATCH 055/103] =?UTF-8?q?Fail=20fast=20if=20the=20plugin=20can?= =?UTF-8?q?=E2=80=99t=20be=20made=20or=20pod=20not=20installed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 518b1b8e3fb..ef803e3f0ad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,15 +9,15 @@ before_install: - brew install gflags # Pod install does this too, but we don't want the output. - pod repo update --silent - - make grpc_objective_c_plugin - - make interop_server install: + - make grpc_objective_c_plugin - pushd src/objective-c/tests # Needs to be verbose, or otherwise OpenSSL's prepare_command makes Travis # time out: - pod install --verbose - popd before_script: + - make interop_server - bins/$CONFIG/interop_server --port=5050 & - bins/$CONFIG/interop_server --port=5051 --use_tls & xcode_workspace: src/objective-c/tests/Tests.xcworkspace From 96dde58ba59f0f124ae647b6e581225a62c2ea07 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 19:40:00 -0700 Subject: [PATCH 056/103] Fixup: Target name changed. --- src/objective-c/tests/Podfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/objective-c/tests/Podfile b/src/objective-c/tests/Podfile index b65b363a156..2a9b894cf63 100644 --- a/src/objective-c/tests/Podfile +++ b/src/objective-c/tests/Podfile @@ -21,7 +21,7 @@ end target 'RxLibraryUnitTests' do end -target 'InteropTests' do +target 'InteropTestsRemote' do end target 'InteropTestsLocalSSL' do From 7102c92979856ba013475a01c223b007798b06b4 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 20:27:40 -0700 Subject: [PATCH 057/103] Deactivate remote interop tests in Travis --- .travis.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ef803e3f0ad..d2d1c8ba639 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,12 @@ before_script: - bins/$CONFIG/interop_server --port=5050 & - bins/$CONFIG/interop_server --port=5051 --use_tls & xcode_workspace: src/objective-c/tests/Tests.xcworkspace -xcode_scheme: AllTests +xcode_scheme: + - RxLibraryUnitTests + - InteropTestsLocalSSL + - InteropTestsLocalCleartext + # TODO(jcanizales): Investigate why they time out: + # - InteropTestsRemote xcode_sdk: iphonesimulator9.1 notifications: email: false From 119c103ab00f309a66de6f1cb78c648eb3c4e2cc Mon Sep 17 00:00:00 2001 From: vjpai Date: Thu, 29 Oct 2015 01:21:04 -0700 Subject: [PATCH 058/103] Split up into a new service proto, use proper service suffix, add a reset option to the mark, create a closed loop config params (empty message) for consistency with other tests. --- Makefile | 36 +++++++--- build.yaml | 1 + include/grpc/support/histogram.h | 2 +- src/core/support/histogram.c | 2 +- .../cpp/qps/async_streaming_ping_pong_test.cc | 1 + test/cpp/qps/async_unary_ping_pong_test.cc | 1 + test/cpp/qps/client.h | 71 ++++++++++++------- test/cpp/qps/client_async.cc | 28 ++++---- test/cpp/qps/client_sync.cc | 2 +- test/cpp/qps/driver.cc | 13 ++-- test/cpp/qps/histogram.h | 2 +- test/cpp/qps/qps_driver.cc | 6 +- test/cpp/qps/qps_test.cc | 1 + test/cpp/qps/qps_test_with_poll.cc | 1 + test/cpp/qps/qps_worker.cc | 16 ++--- test/cpp/qps/qps_worker.h | 4 +- test/cpp/qps/server.h | 15 ++-- test/cpp/qps/server_async.cc | 8 +-- test/cpp/qps/server_sync.cc | 6 +- test/cpp/qps/sync_streaming_ping_pong_test.cc | 1 + test/cpp/qps/sync_unary_ping_pong_test.cc | 1 + test/cpp/qps/timer.cc | 2 +- test/cpp/qps/timer.h | 2 +- test/proto/perf_tests/perf_control.proto | 26 ++----- test/proto/perf_tests/perf_services.proto | 56 +++++++++++++++ tools/run_tests/sources_and_headers.json | 2 + vsprojects/vcxproj/qps/qps.vcxproj | 8 +++ vsprojects/vcxproj/qps/qps.vcxproj.filters | 3 + 28 files changed, 207 insertions(+), 110 deletions(-) create mode 100644 test/proto/perf_tests/perf_services.proto diff --git a/Makefile b/Makefile index 1f2c93af72d..0dd0f266eee 100644 --- a/Makefile +++ b/Makefile @@ -3600,6 +3600,21 @@ $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc: test/proto/perf_tests/p $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< endif +ifeq ($(NO_PROTOC),true) +$(GENDIR)/test/proto/perf_tests/perf_services.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc: protoc_dep_error +else +$(GENDIR)/test/proto/perf_tests/perf_services.pb.cc: test/proto/perf_tests/perf_services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating protobuf CC file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< + +$(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc: test/proto/perf_tests/perf_services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< +endif + ifeq ($(NO_PROTOC),true) $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc: protoc_dep_error $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc: protoc_dep_error @@ -5206,6 +5221,7 @@ $(OBJDIR)/$(CONFIG)/test/cpp/interop/server.o: $(GENDIR)/test/proto/empty.pb.cc LIBQPS_SRC = \ $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \ $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc \ + $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc \ $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc \ $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc \ test/cpp/qps/client_async.cc \ @@ -5261,16 +5277,16 @@ ifneq ($(NO_DEPS),true) -include $(LIBQPS_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/timer.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/timer.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc LIBGRPC_CSHARP_EXT_SRC = \ diff --git a/build.yaml b/build.yaml index b8c53f2739f..a90cd12b15e 100644 --- a/build.yaml +++ b/build.yaml @@ -751,6 +751,7 @@ libs: src: - test/proto/messages.proto - test/proto/perf_tests/perf_control.proto + - test/proto/perf_tests/perf_services.proto - test/proto/perf_tests/perf_stats.proto - test/cpp/qps/perf_db.proto - test/cpp/qps/client_async.cc diff --git a/include/grpc/support/histogram.h b/include/grpc/support/histogram.h index 2fd1084208f..fd56dacc989 100644 --- a/include/grpc/support/histogram.h +++ b/include/grpc/support/histogram.h @@ -50,7 +50,7 @@ void gpr_histogram_add(gpr_histogram *h, double x); /* The following merges the second histogram into the first. It only works if they have the same buckets and resolution. Returns 0 on failure, 1 on success */ -int gpr_histogram_merge(gpr_histogram *dst, gpr_histogram *src); +int gpr_histogram_merge(gpr_histogram *dst, const gpr_histogram *src); double gpr_histogram_percentile(gpr_histogram *histogram, double percentile); double gpr_histogram_mean(gpr_histogram *histogram); diff --git a/src/core/support/histogram.c b/src/core/support/histogram.c index 8a1a9d92330..77b48af9969 100644 --- a/src/core/support/histogram.c +++ b/src/core/support/histogram.c @@ -125,7 +125,7 @@ void gpr_histogram_add(gpr_histogram *h, double x) { h->buckets[bucket_for(h, x)]++; } -int gpr_histogram_merge(gpr_histogram *dst, gpr_histogram *src) { +int gpr_histogram_merge(gpr_histogram *dst, const gpr_histogram *src) { if ((dst->num_buckets != src->num_buckets) || (dst->multiplier != src->multiplier)) { /* Fail because these histograms don't match */ diff --git a/test/cpp/qps/async_streaming_ping_pong_test.cc b/test/cpp/qps/async_streaming_ping_pong_test.cc index 2d3ebfdfdb4..e3a614e7433 100644 --- a/test/cpp/qps/async_streaming_ping_pong_test.cc +++ b/test/cpp/qps/async_streaming_ping_pong_test.cc @@ -58,6 +58,7 @@ static void RunAsyncStreamingPingPong() { client_config.set_payload_size(1); client_config.set_async_client_threads(1); client_config.set_rpc_type(STREAMING); + client_config.mutable_load_params()->mutable_closed(); ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); diff --git a/test/cpp/qps/async_unary_ping_pong_test.cc b/test/cpp/qps/async_unary_ping_pong_test.cc index a5f91c51575..caed835325e 100644 --- a/test/cpp/qps/async_unary_ping_pong_test.cc +++ b/test/cpp/qps/async_unary_ping_pong_test.cc @@ -58,6 +58,7 @@ static void RunAsyncUnaryPingPong() { client_config.set_payload_size(1); client_config.set_async_client_threads(1); client_config.set_rpc_type(UNARY); + client_config.mutable_load_params()->mutable_closed(); ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h index 7086ae820af..110249bd259 100644 --- a/test/cpp/qps/client.h +++ b/test/cpp/qps/client.h @@ -40,8 +40,8 @@ #include "test/cpp/qps/histogram.h" #include "test/cpp/qps/interarrival.h" #include "test/cpp/qps/timer.h" -#include "test/proto/perf_tests/perf_control.grpc.pb.h" #include "test/cpp/util/create_test_channel.h" +#include "test/proto/perf_tests/perf_services.grpc.pb.h" namespace grpc { @@ -80,22 +80,31 @@ class Client { } virtual ~Client() {} - ClientStats Mark() { + ClientStats Mark(bool reset) { Histogram latencies; + Timer::Result timer_result; + // avoid std::vector for old compilers that expect a copy constructor - Histogram* to_merge = new Histogram[threads_.size()]; - for (size_t i = 0; i < threads_.size(); i++) { - threads_[i]->BeginSwap(&to_merge[i]); - } - std::unique_ptr timer(new Timer); - timer_.swap(timer); - for (size_t i = 0; i < threads_.size(); i++) { - threads_[i]->EndSwap(); - latencies.Merge(&to_merge[i]); + if (reset) { + Histogram* to_merge = new Histogram[threads_.size()]; + for (size_t i = 0; i < threads_.size(); i++) { + threads_[i]->BeginSwap(&to_merge[i]); + } + std::unique_ptr timer(new Timer); + timer_.swap(timer); + for (size_t i = 0; i < threads_.size(); i++) { + threads_[i]->EndSwap(); + latencies.Merge(to_merge[i]); + } + delete[] to_merge; + timer_result = timer->Mark(); + } else { + // merge snapshots of each thread histogram + for (size_t i = 0; i < threads_.size(); i++) { + threads_[i]->MergeStatsInto(&latencies); + } + timer_result = timer_->Mark(); } - delete[] to_merge; - - auto timer_result = timer->Mark(); ClientStats stats; latencies.FillProto(stats.mutable_latencies()); @@ -123,14 +132,14 @@ class Client { // constructor followed by an initializer function to make // old compilers happy with using this in std::vector channel_ = CreateTestChannel(target, config.use_tls()); - stub_ = TestService::NewStub(channel_); + stub_ = BenchmarkService::NewStub(channel_); } Channel* get_channel() { return channel_.get(); } - TestService::Stub* get_stub() { return stub_.get(); } + BenchmarkService::Stub* get_stub() { return stub_.get(); } private: std::shared_ptr channel_; - std::unique_ptr stub_; + std::unique_ptr stub_; }; std::vector channels_; @@ -162,7 +171,10 @@ class Client { } else if (load.has_pareto()) { random_dist.reset(new ParetoDist(load.pareto().interarrival_base() * num_threads, load.pareto().alpha())); - } else { // No load parameters, so must be closed-loop + } else if (load.has_closed()) { + // Closed-loop doesn't use random dist at all + } else { // invalid load type + GPR_ASSERT(false); } // Set closed_loop_ based on whether or not random_dist is set @@ -198,7 +210,7 @@ class Client { public: Thread(Client* client, size_t idx) : done_(false), - new_(nullptr), + new_stats_(nullptr), client_(client), idx_(idx), impl_(&Thread::ThreadFunc, this) {} @@ -213,16 +225,21 @@ class Client { void BeginSwap(Histogram* n) { std::lock_guard g(mu_); - new_ = n; + new_stats_ = n; } void EndSwap() { std::unique_lock g(mu_); - while (new_ != nullptr) { + while (new_stats_ != nullptr) { cv_.wait(g); }; } + void MergeStatsInto(Histogram* hist) { + std::unique_lock g(mu_); + hist->Merge(histogram_); + } + private: Thread(const Thread&); Thread& operator=(const Thread&); @@ -240,21 +257,21 @@ class Client { if (done_) { return; } - // check if we're marking, swap out the histogram if so - if (new_) { - new_->Swap(&histogram_); - new_ = nullptr; + // check if we're resetting stats, swap out the histogram if so + if (new_stats_) { + new_stats_->Swap(&histogram_); + new_stats_ = nullptr; cv_.notify_one(); } } } - TestService::Stub* stub_; + BenchmarkService::Stub* stub_; ClientConfig config_; std::mutex mu_; std::condition_variable cv_; bool done_; - Histogram* new_; + Histogram* new_stats_; Histogram histogram_; Client* client_; size_t idx_; diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc index cef17fa1f9a..41db6151c5a 100644 --- a/test/cpp/qps/client_async.cc +++ b/test/cpp/qps/client_async.cc @@ -48,10 +48,10 @@ #include #include -#include "test/proto/perf_tests/perf_control.grpc.pb.h" #include "test/cpp/qps/timer.h" #include "test/cpp/qps/client.h" #include "test/cpp/util/create_test_channel.h" +#include "test/proto/perf_tests/perf_services.grpc.pb.h" namespace grpc { namespace testing { @@ -88,10 +88,10 @@ template class ClientRpcContextUnaryImpl : public ClientRpcContext { public: ClientRpcContextUnaryImpl( - int channel_id, TestService::Stub* stub, const RequestType& req, + int channel_id, BenchmarkService::Stub* stub, const RequestType& req, std::function< std::unique_ptr>( - TestService::Stub*, grpc::ClientContext*, const RequestType&, + BenchmarkService::Stub*, grpc::ClientContext*, const RequestType&, CompletionQueue*)> start_req, std::function on_done) : ClientRpcContext(channel_id), @@ -131,13 +131,13 @@ class ClientRpcContextUnaryImpl : public ClientRpcContext { return true; // we're done, this'll be ignored } grpc::ClientContext context_; - TestService::Stub* stub_; + BenchmarkService::Stub* stub_; RequestType req_; ResponseType response_; bool (ClientRpcContextUnaryImpl::*next_state_)(bool); std::function callback_; std::function>( - TestService::Stub*, grpc::ClientContext*, const RequestType&, + BenchmarkService::Stub*, grpc::ClientContext*, const RequestType&, CompletionQueue*)> start_req_; grpc::Status status_; double start_; @@ -151,7 +151,7 @@ class AsyncClient : public Client { public: explicit AsyncClient( const ClientConfig& config, - std::function setup_ctx) : Client(config), channel_lock_(new std::mutex[config.client_channels()]), @@ -354,11 +354,11 @@ class AsyncUnaryClient GRPC_FINAL : public AsyncClient { private: static void CheckDone(grpc::Status s, SimpleResponse* response) {} static std::unique_ptr> - StartReq(TestService::Stub* stub, grpc::ClientContext* ctx, + StartReq(BenchmarkService::Stub* stub, grpc::ClientContext* ctx, const SimpleRequest& request, CompletionQueue* cq) { return stub->AsyncUnaryCall(ctx, request, cq); }; - static ClientRpcContext* SetupCtx(int channel_id, TestService::Stub* stub, + static ClientRpcContext* SetupCtx(int channel_id, BenchmarkService::Stub* stub, const SimpleRequest& req) { return new ClientRpcContextUnaryImpl( channel_id, stub, req, AsyncUnaryClient::StartReq, @@ -370,9 +370,9 @@ template class ClientRpcContextStreamingImpl : public ClientRpcContext { public: ClientRpcContextStreamingImpl( - int channel_id, TestService::Stub* stub, const RequestType& req, + int channel_id, BenchmarkService::Stub* stub, const RequestType& req, std::function>(TestService::Stub*, grpc::ClientContext*, + RequestType, ResponseType>>(BenchmarkService::Stub*, grpc::ClientContext*, CompletionQueue*, void*)> start_req, std::function on_done) : ClientRpcContext(channel_id), @@ -420,14 +420,14 @@ class ClientRpcContextStreamingImpl : public ClientRpcContext { return StartWrite(ok); } grpc::ClientContext context_; - TestService::Stub* stub_; + BenchmarkService::Stub* stub_; RequestType req_; ResponseType response_; bool (ClientRpcContextStreamingImpl::*next_state_)(bool, Histogram*); std::function callback_; std::function< std::unique_ptr>( - TestService::Stub*, grpc::ClientContext*, CompletionQueue*, void*)> + BenchmarkService::Stub*, grpc::ClientContext*, CompletionQueue*, void*)> start_req_; grpc::Status status_; double start_; @@ -451,12 +451,12 @@ class AsyncStreamingClient GRPC_FINAL : public AsyncClient { static void CheckDone(grpc::Status s, SimpleResponse* response) {} static std::unique_ptr< grpc::ClientAsyncReaderWriter> - StartReq(TestService::Stub* stub, grpc::ClientContext* ctx, + StartReq(BenchmarkService::Stub* stub, grpc::ClientContext* ctx, CompletionQueue* cq, void* tag) { auto stream = stub->AsyncStreamingCall(ctx, cq, tag); return stream; }; - static ClientRpcContext* SetupCtx(int channel_id, TestService::Stub* stub, + static ClientRpcContext* SetupCtx(int channel_id, BenchmarkService::Stub* stub, const SimpleRequest& req) { return new ClientRpcContextStreamingImpl( channel_id, stub, req, AsyncStreamingClient::StartReq, diff --git a/test/cpp/qps/client_sync.cc b/test/cpp/qps/client_sync.cc index b9d857c4826..44d525b1965 100644 --- a/test/cpp/qps/client_sync.cc +++ b/test/cpp/qps/client_sync.cc @@ -54,10 +54,10 @@ #include "test/cpp/util/create_test_channel.h" #include "test/cpp/qps/client.h" -#include "test/proto/perf_tests/perf_control.grpc.pb.h" #include "test/cpp/qps/histogram.h" #include "test/cpp/qps/interarrival.h" #include "test/cpp/qps/timer.h" +#include "test/proto/perf_tests/perf_services.grpc.pb.h" #include "src/core/profiling/timers.h" diff --git a/test/cpp/qps/driver.cc b/test/cpp/qps/driver.cc index 500cc510188..12b9feed251 100644 --- a/test/cpp/qps/driver.cc +++ b/test/cpp/qps/driver.cc @@ -48,6 +48,7 @@ #include "test/cpp/qps/driver.h" #include "test/cpp/qps/histogram.h" #include "test/cpp/qps/qps_worker.h" +#include "test/proto/perf_tests/perf_services.grpc.pb.h" using std::list; using std::thread; @@ -91,12 +92,12 @@ static ClientContext* AllocContext(list* contexts, T deadline) { } struct ServerData { - unique_ptr stub; + unique_ptr stub; unique_ptr> stream; }; struct ClientData { - unique_ptr stub; + unique_ptr stub; unique_ptr> stream; }; } // namespace runsc @@ -162,7 +163,7 @@ std::unique_ptr RunScenario( auto* servers = new ServerData[num_servers]; for (size_t i = 0; i < num_servers; i++) { servers[i].stub = - Worker::NewStub(CreateChannel(workers[i], InsecureCredentials())); + WorkerService::NewStub(CreateChannel(workers[i], InsecureCredentials())); ServerArgs args; result_server_config = server_config; result_server_config.set_host(workers[i]); @@ -189,7 +190,7 @@ std::unique_ptr RunScenario( // where class contained in std::vector must have a copy constructor auto* clients = new ClientData[num_clients]; for (size_t i = 0; i < num_clients; i++) { - clients[i].stub = Worker::NewStub( + clients[i].stub = WorkerService::NewStub( CreateChannel(workers[i + num_servers], InsecureCredentials())); ClientArgs args; result_client_config = client_config; @@ -211,9 +212,9 @@ std::unique_ptr RunScenario( // Start a run gpr_log(GPR_INFO, "Starting"); ServerArgs server_mark; - server_mark.mutable_mark(); + server_mark.mutable_mark()->set_reset(true); ClientArgs client_mark; - client_mark.mutable_mark(); + client_mark.mutable_mark()->set_reset(true); for (auto server = &servers[0]; server != &servers[num_servers]; server++) { GPR_ASSERT(server->stream->Write(server_mark)); } diff --git a/test/cpp/qps/histogram.h b/test/cpp/qps/histogram.h index 8ea9cb62e1a..f7cb30871d2 100644 --- a/test/cpp/qps/histogram.h +++ b/test/cpp/qps/histogram.h @@ -48,7 +48,7 @@ class Histogram { } Histogram(Histogram&& other) : impl_(other.impl_) { other.impl_ = nullptr; } - void Merge(Histogram* h) { gpr_histogram_merge(impl_, h->impl_); } + void Merge(const Histogram& h) { gpr_histogram_merge(impl_, h.impl_); } void Add(double value) { gpr_histogram_add(impl_, value); } double Percentile(double pctile) const { return gpr_histogram_percentile(impl_, pctile); diff --git a/test/cpp/qps/qps_driver.cc b/test/cpp/qps/qps_driver.cc index 3d352b4996e..658cf873e84 100644 --- a/test/cpp/qps/qps_driver.cc +++ b/test/cpp/qps/qps_driver.cc @@ -72,8 +72,6 @@ DEFINE_double(determ_load, -1.0, "Deterministic offered load (qps)"); DEFINE_double(pareto_base, -1.0, "Pareto base interarrival time (us)"); DEFINE_double(pareto_alpha, -1.0, "Pareto alpha value"); -DEFINE_string(load_type, "CLOSED_LOOP", "Load type"); - using grpc::testing::ClientConfig; using grpc::testing::ServerConfig; using grpc::testing::ClientType; @@ -119,8 +117,8 @@ static void QpsDriver() { pareto->set_interarrival_base(FLAGS_pareto_base / 1e6); pareto->set_alpha(FLAGS_pareto_alpha); } else { - // Default is closed loop - // No need to set up any other load parameters here + client_config.mutable_load_params()->mutable_closed(); + // No further load parameters to set up for closed loop } ServerConfig server_config; diff --git a/test/cpp/qps/qps_test.cc b/test/cpp/qps/qps_test.cc index c3dbc255740..82850e5dbe4 100644 --- a/test/cpp/qps/qps_test.cc +++ b/test/cpp/qps/qps_test.cc @@ -58,6 +58,7 @@ static void RunQPS() { client_config.set_payload_size(1); client_config.set_async_client_threads(8); client_config.set_rpc_type(UNARY); + client_config.mutable_load_params()->mutable_closed(); ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); diff --git a/test/cpp/qps/qps_test_with_poll.cc b/test/cpp/qps/qps_test_with_poll.cc index a7a11a615cc..153cbd7cea0 100644 --- a/test/cpp/qps/qps_test_with_poll.cc +++ b/test/cpp/qps/qps_test_with_poll.cc @@ -62,6 +62,7 @@ static void RunQPS() { client_config.set_payload_size(1); client_config.set_async_client_threads(8); client_config.set_rpc_type(UNARY); + client_config.mutable_load_params()->mutable_closed(); ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); diff --git a/test/cpp/qps/qps_worker.cc b/test/cpp/qps/qps_worker.cc index f16740b18d7..76b4c9b875f 100644 --- a/test/cpp/qps/qps_worker.cc +++ b/test/cpp/qps/qps_worker.cc @@ -52,10 +52,10 @@ #include #include "test/core/util/grpc_profiler.h" -#include "test/proto/perf_tests/perf_control.pb.h" #include "test/cpp/qps/client.h" #include "test/cpp/qps/server.h" #include "test/cpp/util/create_test_channel.h" +#include "test/proto/perf_tests/perf_services.pb.h" namespace grpc { namespace testing { @@ -89,9 +89,9 @@ std::unique_ptr CreateServer(const ServerConfig& config, abort(); } -class WorkerImpl GRPC_FINAL : public Worker::Service { +class WorkerServiceImpl GRPC_FINAL : public WorkerService::Service { public: - explicit WorkerImpl(int server_port) + explicit WorkerServiceImpl(int server_port) : server_port_(server_port), acquired_(false) {} Status RunClient(ServerContext* ctx, @@ -126,7 +126,7 @@ class WorkerImpl GRPC_FINAL : public Worker::Service { // Protect against multiple clients using this worker at once. class InstanceGuard { public: - InstanceGuard(WorkerImpl* impl) + InstanceGuard(WorkerServiceImpl* impl) : impl_(impl), acquired_(impl->TryAcquireInstance()) {} ~InstanceGuard() { if (acquired_) { @@ -137,7 +137,7 @@ class WorkerImpl GRPC_FINAL : public Worker::Service { bool Acquired() const { return acquired_; } private: - WorkerImpl* const impl_; + WorkerServiceImpl* const impl_; const bool acquired_; }; @@ -175,7 +175,7 @@ class WorkerImpl GRPC_FINAL : public Worker::Service { if (!args.has_mark()) { return Status(StatusCode::INVALID_ARGUMENT, ""); } - *status.mutable_stats() = client->Mark(); + *status.mutable_stats() = client->Mark(args.mark().reset()); stream->Write(status); } @@ -204,7 +204,7 @@ class WorkerImpl GRPC_FINAL : public Worker::Service { if (!args.has_mark()) { return Status(StatusCode::INVALID_ARGUMENT, ""); } - *status.mutable_stats() = server->Mark(); + *status.mutable_stats() = server->Mark(args.mark().reset()); stream->Write(status); } @@ -218,7 +218,7 @@ class WorkerImpl GRPC_FINAL : public Worker::Service { }; QpsWorker::QpsWorker(int driver_port, int server_port) { - impl_.reset(new WorkerImpl(server_port)); + impl_.reset(new WorkerServiceImpl(server_port)); char* server_address = NULL; gpr_join_host_port(&server_address, "::", driver_port); diff --git a/test/cpp/qps/qps_worker.h b/test/cpp/qps/qps_worker.h index 861588907ec..d5a7d7df1c5 100644 --- a/test/cpp/qps/qps_worker.h +++ b/test/cpp/qps/qps_worker.h @@ -42,7 +42,7 @@ class Server; namespace testing { -class WorkerImpl; +class WorkerServiceImpl; class QpsWorker { public: @@ -50,7 +50,7 @@ class QpsWorker { ~QpsWorker(); private: - std::unique_ptr impl_; + std::unique_ptr impl_; std::unique_ptr server_; }; diff --git a/test/cpp/qps/server.h b/test/cpp/qps/server.h index ba8394badc3..c99ef97564f 100644 --- a/test/cpp/qps/server.h +++ b/test/cpp/qps/server.h @@ -35,6 +35,7 @@ #define TEST_QPS_SERVER_H #include "test/cpp/qps/timer.h" +#include "test/proto/messages.grpc.pb.h" #include "test/proto/perf_tests/perf_control.grpc.pb.h" namespace grpc { @@ -45,11 +46,15 @@ class Server { Server() : timer_(new Timer) {} virtual ~Server() {} - ServerStats Mark() { - std::unique_ptr timer(new Timer); - timer.swap(timer_); - - auto timer_result = timer->Mark(); + ServerStats Mark(bool reset) { + Timer::Result timer_result; + if (reset) { + std::unique_ptr timer(new Timer); + timer.swap(timer_); + timer_result = timer->Mark(); + } else { + timer_result = timer_->Mark(); + } ServerStats stats; stats.set_time_elapsed(timer_result.wall); diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc index db5218629af..2aee7294d4f 100644 --- a/test/cpp/qps/server_async.cc +++ b/test/cpp/qps/server_async.cc @@ -49,8 +49,8 @@ #include #include -#include "test/proto/perf_tests/perf_control.grpc.pb.h" #include "test/cpp/qps/server.h" +#include "test/proto/perf_tests/perf_services.grpc.pb.h" namespace grpc { namespace testing { @@ -76,10 +76,10 @@ class AsyncQpsServerTest : public Server { for (int i = 0; i < 10000 / config.threads(); i++) { for (int j = 0; j < config.threads(); j++) { auto request_unary = std::bind( - &TestService::AsyncService::RequestUnaryCall, &async_service_, _1, + &BenchmarkService::AsyncService::RequestUnaryCall, &async_service_, _1, _2, _3, srv_cqs_[j].get(), srv_cqs_[j].get(), _4); auto request_streaming = std::bind( - &TestService::AsyncService::RequestStreamingCall, &async_service_, + &BenchmarkService::AsyncService::RequestStreamingCall, &async_service_, _1, _2, srv_cqs_[j].get(), srv_cqs_[j].get(), _3); contexts_.push_front( new ServerRpcContextUnaryImpl( @@ -309,7 +309,7 @@ class AsyncQpsServerTest : public Server { std::vector threads_; std::unique_ptr server_; std::vector> srv_cqs_; - TestService::AsyncService async_service_; + BenchmarkService::AsyncService async_service_; std::forward_list contexts_; class PerThreadShutdownState { diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc index 2b83548d19e..20da139826a 100644 --- a/test/cpp/qps/server_sync.cc +++ b/test/cpp/qps/server_sync.cc @@ -43,14 +43,14 @@ #include #include -#include "test/proto/perf_tests/perf_control.grpc.pb.h" #include "test/cpp/qps/server.h" #include "test/cpp/qps/timer.h" +#include "test/proto/perf_tests/perf_services.grpc.pb.h" namespace grpc { namespace testing { -class TestServiceImpl GRPC_FINAL : public TestService::Service { +class BenchmarkServiceImpl GRPC_FINAL : public BenchmarkService::Service { public: Status UnaryCall(ServerContext* context, const SimpleRequest* request, SimpleResponse* response) GRPC_OVERRIDE { @@ -101,7 +101,7 @@ class SynchronousServer GRPC_FINAL : public grpc::testing::Server { return builder.BuildAndStart(); } - TestServiceImpl service_; + BenchmarkServiceImpl service_; std::unique_ptr impl_; }; diff --git a/test/cpp/qps/sync_streaming_ping_pong_test.cc b/test/cpp/qps/sync_streaming_ping_pong_test.cc index 6dddb9ef228..ce10a87ab37 100644 --- a/test/cpp/qps/sync_streaming_ping_pong_test.cc +++ b/test/cpp/qps/sync_streaming_ping_pong_test.cc @@ -57,6 +57,7 @@ static void RunSynchronousStreamingPingPong() { client_config.set_client_channels(1); client_config.set_payload_size(1); client_config.set_rpc_type(STREAMING); + client_config.mutable_load_params()->mutable_closed(); ServerConfig server_config; server_config.set_server_type(SYNCHRONOUS_SERVER); diff --git a/test/cpp/qps/sync_unary_ping_pong_test.cc b/test/cpp/qps/sync_unary_ping_pong_test.cc index 774e70e1977..c20e2c5ff0b 100644 --- a/test/cpp/qps/sync_unary_ping_pong_test.cc +++ b/test/cpp/qps/sync_unary_ping_pong_test.cc @@ -57,6 +57,7 @@ static void RunSynchronousUnaryPingPong() { client_config.set_client_channels(1); client_config.set_payload_size(1); client_config.set_rpc_type(UNARY); + client_config.mutable_load_params()->mutable_closed(); ServerConfig server_config; server_config.set_server_type(SYNCHRONOUS_SERVER); diff --git a/test/cpp/qps/timer.cc b/test/cpp/qps/timer.cc index 8edb838da37..3ec7f49f832 100644 --- a/test/cpp/qps/timer.cc +++ b/test/cpp/qps/timer.cc @@ -61,7 +61,7 @@ Timer::Result Timer::Sample() { return r; } -Timer::Result Timer::Mark() { +Timer::Result Timer::Mark() const { Result s = Sample(); Result r; r.wall = s.wall - start_.wall; diff --git a/test/cpp/qps/timer.h b/test/cpp/qps/timer.h index 30dbd7e7d50..d1aee1a9d19 100644 --- a/test/cpp/qps/timer.h +++ b/test/cpp/qps/timer.h @@ -44,7 +44,7 @@ class Timer { double system; }; - Result Mark(); + Result Mark() const; static double Now(); diff --git a/test/proto/perf_tests/perf_control.proto b/test/proto/perf_tests/perf_control.proto index 9c3e82285fc..bfdbfacb124 100644 --- a/test/proto/perf_tests/perf_control.proto +++ b/test/proto/perf_tests/perf_control.proto @@ -31,7 +31,6 @@ // of unary/streaming requests/responses. syntax = "proto3"; -import "test/proto/messages.proto"; import "test/proto/perf_tests/perf_stats.proto"; package grpc.testing; @@ -69,14 +68,16 @@ message ParetoParams { double alpha = 2; } +message ClosedLoopParams { +} + message LoadParams { oneof load { PoissonParams poisson = 1; UniformParams uniform = 2; DeterministicParams determ = 3; ParetoParams pareto = 4; - // No need to separately specify Closed-Loop as that - // will just be the absence of any of the above + ClosedLoopParams closed = 5; }; } @@ -100,6 +101,7 @@ message ClientStatus { // Request current stats message Mark { + bool reset = 1; } message ClientArgs { @@ -127,21 +129,3 @@ message ServerStatus { ServerStats stats = 1; int32 port = 2; } - -service TestService { - // One request followed by one response. - // The server returns the client payload as-is. - rpc UnaryCall(SimpleRequest) returns (SimpleResponse); - - // One request followed by one response. - // The server returns the client payload as-is. - rpc StreamingCall(stream SimpleRequest) returns (stream SimpleResponse); -} - -service Worker { - // Start server with specified workload - rpc RunServer(stream ServerArgs) returns (stream ServerStatus); - - // Start client with specified workload - rpc RunClient(stream ClientArgs) returns (stream ClientStatus); -} diff --git a/test/proto/perf_tests/perf_services.proto b/test/proto/perf_tests/perf_services.proto new file mode 100644 index 00000000000..f9497e2f758 --- /dev/null +++ b/test/proto/perf_tests/perf_services.proto @@ -0,0 +1,56 @@ +// 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. + +// An integration test service that covers all the method signature permutations +// of unary/streaming requests/responses. +syntax = "proto3"; + +import "test/proto/messages.proto"; +import "test/proto/perf_tests/perf_stats.proto"; +import "test/proto/perf_tests/perf_control.proto"; + +package grpc.testing; + +service BenchmarkService { + // One request followed by one response. + // The server returns the client payload as-is. + rpc UnaryCall(SimpleRequest) returns (SimpleResponse); + + // One request followed by one response. + // The server returns the client payload as-is. + rpc StreamingCall(stream SimpleRequest) returns (stream SimpleResponse); +} + +service WorkerService { + // Start server with specified workload + rpc RunServer(stream ServerArgs) returns (stream ServerStatus); + + // Start client with specified workload + rpc RunClient(stream ClientArgs) returns (stream ClientStatus); +} diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 60abb62e3a3..a3902cf3817 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -13660,6 +13660,8 @@ "test/proto/messages.pb.h", "test/proto/perf_tests/perf_control.grpc.pb.h", "test/proto/perf_tests/perf_control.pb.h", + "test/proto/perf_tests/perf_services.grpc.pb.h", + "test/proto/perf_tests/perf_services.pb.h", "test/proto/perf_tests/perf_stats.grpc.pb.h", "test/proto/perf_tests/perf_stats.pb.h" ], diff --git a/vsprojects/vcxproj/qps/qps.vcxproj b/vsprojects/vcxproj/qps/qps.vcxproj index e1987dba5dd..152ba7af6c5 100644 --- a/vsprojects/vcxproj/qps/qps.vcxproj +++ b/vsprojects/vcxproj/qps/qps.vcxproj @@ -163,6 +163,14 @@
+ + + + + + + + diff --git a/vsprojects/vcxproj/qps/qps.vcxproj.filters b/vsprojects/vcxproj/qps/qps.vcxproj.filters index f679ad4d543..8bbd5c35c2b 100644 --- a/vsprojects/vcxproj/qps/qps.vcxproj.filters +++ b/vsprojects/vcxproj/qps/qps.vcxproj.filters @@ -7,6 +7,9 @@ test\proto\perf_tests + + test\proto\perf_tests + test\proto\perf_tests From 72a633213815f19ac04b51331287e3f7b075dcc1 Mon Sep 17 00:00:00 2001 From: vjpai Date: Thu, 29 Oct 2015 02:23:11 -0700 Subject: [PATCH 059/103] QPS worker no longer needs to specify server port on command line. This is part of the proto if desired, or just goes to pick_unused_port_or_die if not specified --- test/cpp/qps/driver.cc | 3 +-- test/cpp/qps/qps_worker.cc | 20 ++++++++------------ test/cpp/qps/qps_worker.h | 2 +- test/cpp/qps/server.h | 16 ++++++++++++---- test/cpp/qps/server_async.cc | 10 +++++----- test/cpp/qps/server_sync.cc | 18 ++++++++---------- test/cpp/qps/single_run_localhost.sh | 4 ++-- test/cpp/qps/worker.cc | 5 ++--- test/proto/perf_tests/perf_control.proto | 1 + 9 files changed, 40 insertions(+), 39 deletions(-) diff --git a/test/cpp/qps/driver.cc b/test/cpp/qps/driver.cc index 12b9feed251..6c852769a59 100644 --- a/test/cpp/qps/driver.cc +++ b/test/cpp/qps/driver.cc @@ -132,8 +132,7 @@ std::unique_ptr RunScenario( } int driver_port = grpc_pick_unused_port_or_die(); - int benchmark_port = grpc_pick_unused_port_or_die(); - local_workers.emplace_back(new QpsWorker(driver_port, benchmark_port)); + local_workers.emplace_back(new QpsWorker(driver_port)); char addr[256]; sprintf(addr, "localhost:%d", driver_port); if (spawn_local_worker_count < 0) { diff --git a/test/cpp/qps/qps_worker.cc b/test/cpp/qps/qps_worker.cc index 76b4c9b875f..cad2a9e0645 100644 --- a/test/cpp/qps/qps_worker.cc +++ b/test/cpp/qps/qps_worker.cc @@ -76,13 +76,12 @@ std::unique_ptr CreateClient(const ClientConfig& config) { abort(); } -std::unique_ptr CreateServer(const ServerConfig& config, - int server_port) { +std::unique_ptr CreateServer(const ServerConfig& config) { switch (config.server_type()) { case ServerType::SYNCHRONOUS_SERVER: - return CreateSynchronousServer(config, server_port); + return CreateSynchronousServer(config); case ServerType::ASYNC_SERVER: - return CreateAsyncServer(config, server_port); + return CreateAsyncServer(config); default: abort(); } @@ -91,8 +90,7 @@ std::unique_ptr CreateServer(const ServerConfig& config, class WorkerServiceImpl GRPC_FINAL : public WorkerService::Service { public: - explicit WorkerServiceImpl(int server_port) - : server_port_(server_port), acquired_(false) {} + explicit WorkerServiceImpl() : acquired_(false) {} Status RunClient(ServerContext* ctx, ServerReaderWriter* stream) @@ -191,12 +189,12 @@ class WorkerServiceImpl GRPC_FINAL : public WorkerService::Service { if (!args.has_setup()) { return Status(StatusCode::INVALID_ARGUMENT, ""); } - auto server = CreateServer(args.setup(), server_port_); + auto server = CreateServer(args.setup()); if (!server) { return Status(StatusCode::INVALID_ARGUMENT, ""); } ServerStatus status; - status.set_port(server_port_); + status.set_port(server->Port()); if (!stream->Write(status)) { return Status(StatusCode::UNKNOWN, ""); } @@ -211,14 +209,12 @@ class WorkerServiceImpl GRPC_FINAL : public WorkerService::Service { return Status::OK; } - const int server_port_; - std::mutex mu_; bool acquired_; }; -QpsWorker::QpsWorker(int driver_port, int server_port) { - impl_.reset(new WorkerServiceImpl(server_port)); +QpsWorker::QpsWorker(int driver_port) { + impl_.reset(new WorkerServiceImpl()); char* server_address = NULL; gpr_join_host_port(&server_address, "::", driver_port); diff --git a/test/cpp/qps/qps_worker.h b/test/cpp/qps/qps_worker.h index d5a7d7df1c5..0db88ad3d13 100644 --- a/test/cpp/qps/qps_worker.h +++ b/test/cpp/qps/qps_worker.h @@ -46,7 +46,7 @@ class WorkerServiceImpl; class QpsWorker { public: - QpsWorker(int driver_port, int server_port); + explicit QpsWorker(int driver_port); ~QpsWorker(); private: diff --git a/test/cpp/qps/server.h b/test/cpp/qps/server.h index c99ef97564f..3ea9382e509 100644 --- a/test/cpp/qps/server.h +++ b/test/cpp/qps/server.h @@ -34,6 +34,7 @@ #ifndef TEST_QPS_SERVER_H #define TEST_QPS_SERVER_H +#include "test/core/util/port.h" #include "test/cpp/qps/timer.h" #include "test/proto/messages.grpc.pb.h" #include "test/proto/perf_tests/perf_control.grpc.pb.h" @@ -43,7 +44,13 @@ namespace testing { class Server { public: - Server() : timer_(new Timer) {} + explicit Server(const ServerConfig& config) : timer_(new Timer) { + if (config.port()) { + port_ = config.port(); + } else { + port_ = grpc_pick_unused_port_or_die(); + } + } virtual ~Server() {} ServerStats Mark(bool reset) { @@ -75,13 +82,14 @@ class Server { return true; } + int Port() const {return port_;} private: + int port_; std::unique_ptr timer_; }; -std::unique_ptr CreateSynchronousServer(const ServerConfig& config, - int port); -std::unique_ptr CreateAsyncServer(const ServerConfig& config, int port); +std::unique_ptr CreateSynchronousServer(const ServerConfig& config); +std::unique_ptr CreateAsyncServer(const ServerConfig& config); } // namespace testing } // namespace grpc diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc index 2aee7294d4f..2b3f7a38fb0 100644 --- a/test/cpp/qps/server_async.cc +++ b/test/cpp/qps/server_async.cc @@ -57,9 +57,10 @@ namespace testing { class AsyncQpsServerTest : public Server { public: - AsyncQpsServerTest(const ServerConfig &config, int port) { + explicit AsyncQpsServerTest(const ServerConfig &config): Server(config) { char *server_address = NULL; - gpr_join_host_port(&server_address, "::", port); + + gpr_join_host_port(&server_address, "::", Port()); ServerBuilder builder; builder.AddListeningPort(server_address, InsecureServerCredentials()); @@ -333,9 +334,8 @@ class AsyncQpsServerTest : public Server { std::vector> shutdown_state_; }; -std::unique_ptr CreateAsyncServer(const ServerConfig &config, - int port) { - return std::unique_ptr(new AsyncQpsServerTest(config, port)); +std::unique_ptr CreateAsyncServer(const ServerConfig& config) { + return std::unique_ptr(new AsyncQpsServerTest(config)); } } // namespace testing diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc index 20da139826a..3e7cf1d4cb3 100644 --- a/test/cpp/qps/server_sync.cc +++ b/test/cpp/qps/server_sync.cc @@ -84,30 +84,28 @@ class BenchmarkServiceImpl GRPC_FINAL : public BenchmarkService::Service { class SynchronousServer GRPC_FINAL : public grpc::testing::Server { public: - SynchronousServer(const ServerConfig& config, int port) - : impl_(MakeImpl(port)) {} - - private: - std::unique_ptr MakeImpl(int port) { + explicit SynchronousServer(const ServerConfig& config) + : Server(config) { ServerBuilder builder; char* server_address = NULL; - gpr_join_host_port(&server_address, "::", port); + + gpr_join_host_port(&server_address, "::", Port()); builder.AddListeningPort(server_address, InsecureServerCredentials()); gpr_free(server_address); builder.RegisterService(&service_); - return builder.BuildAndStart(); + impl_ = builder.BuildAndStart(); } - + private: BenchmarkServiceImpl service_; std::unique_ptr impl_; }; std::unique_ptr CreateSynchronousServer( - const ServerConfig& config, int port) { - return std::unique_ptr(new SynchronousServer(config, port)); + const ServerConfig& config) { + return std::unique_ptr(new SynchronousServer(config)); } } // namespace testing diff --git a/test/cpp/qps/single_run_localhost.sh b/test/cpp/qps/single_run_localhost.sh index 9d76f08f800..f5356f18343 100755 --- a/test/cpp/qps/single_run_localhost.sh +++ b/test/cpp/qps/single_run_localhost.sh @@ -42,9 +42,9 @@ NUMCPUS=`python2.7 -c 'import multiprocessing; print multiprocessing.cpu_count() make CONFIG=$config qps_worker qps_driver -j$NUMCPUS -bins/$config/qps_worker -driver_port 10000 -server_port 10001 & +bins/$config/qps_worker -driver_port 10000 & PID1=$! -bins/$config/qps_worker -driver_port 10010 -server_port 10011 & +bins/$config/qps_worker -driver_port 10010 & PID2=$! export QPS_WORKERS="localhost:10000,localhost:10010" diff --git a/test/cpp/qps/worker.cc b/test/cpp/qps/worker.cc index 935e4853a62..430ffb7cdc2 100644 --- a/test/cpp/qps/worker.cc +++ b/test/cpp/qps/worker.cc @@ -43,8 +43,7 @@ #include "test/cpp/qps/qps_worker.h" #include "test/cpp/util/test_config.h" -DEFINE_int32(driver_port, 0, "Driver server port."); -DEFINE_int32(server_port, 0, "Spawned server port."); +DEFINE_int32(driver_port, 0, "Port for communication with driver"); static bool got_sigint = false; @@ -54,7 +53,7 @@ namespace grpc { namespace testing { static void RunServer() { - QpsWorker worker(FLAGS_driver_port, FLAGS_server_port); + QpsWorker worker(FLAGS_driver_port); while (!got_sigint) { gpr_sleep_until(gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), diff --git a/test/proto/perf_tests/perf_control.proto b/test/proto/perf_tests/perf_control.proto index bfdbfacb124..7a294233b76 100644 --- a/test/proto/perf_tests/perf_control.proto +++ b/test/proto/perf_tests/perf_control.proto @@ -116,6 +116,7 @@ message ServerConfig { int32 threads = 2; bool use_tls = 3; string host = 4; + int32 port = 5; } message ServerArgs { From f987e3af95ffbf69a7a197ae583b4ed18ddee9c8 Mon Sep 17 00:00:00 2001 From: Alistair Veitch Date: Thu, 29 Oct 2015 10:10:10 -0700 Subject: [PATCH 060/103] Fix for long-running tsan test --- test/core/support/cpu_test.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/core/support/cpu_test.c b/test/core/support/cpu_test.c index 6559c1b57e2..fa83878a152 100644 --- a/test/core/support/cpu_test.c +++ b/test/core/support/cpu_test.c @@ -81,9 +81,9 @@ static void worker_thread(void *arg) { gpr_uint32 cpu; int r = 12345678; int i, j; - for (i = 0; i < 1000; i++) { + for (i = 0; i < 1000 / GRPC_TEST_SLOWDOWN_FACTOR; i++) { /* run for a bit - just calculate something random. */ - for (j = 0; j < 1000000; j++) { + for (j = 0; j < 1000000 / GRPC_TEST_SLOWDOWN_FACTOR; j++) { r = (r * 17) & ((r - i) | (r * i)); } cpu = gpr_cpu_current_cpu(); From 93c65aeb59dc902c27df0234ce55d439ea735c37 Mon Sep 17 00:00:00 2001 From: David Garcia Quintas Date: Thu, 29 Oct 2015 15:36:52 -0700 Subject: [PATCH 061/103] Fixed potential stack corruption --- test/core/client_config/lb_policies_test.c | 63 ++++++++++++---------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/test/core/client_config/lb_policies_test.c b/test/core/client_config/lb_policies_test.c index a9edf381575..3eb6f11bf74 100644 --- a/test/core/client_config/lb_policies_test.c +++ b/test/core/client_config/lb_policies_test.c @@ -211,29 +211,32 @@ static void teardown_servers(servers_fixture *f) { gpr_free(f); } +typedef struct request_data { + grpc_metadata_array initial_metadata_recv; + grpc_metadata_array trailing_metadata_recv; + char *details; + size_t details_capacity; + grpc_status_code status; + grpc_call_details *call_details; +} request_data; + /** Returns connection sequence (server indices), which must be freed */ int *perform_request(servers_fixture *f, grpc_channel *client, - const test_spec *spec) { + request_data *rdata, const test_spec *spec) { grpc_call *c; int s_idx; int *s_valid; gpr_timespec deadline; grpc_op ops[6]; grpc_op *op; - grpc_status_code status; - char *details; - size_t details_capacity; int was_cancelled; - grpc_call_details *call_details; size_t i, iter_num; grpc_event ev; int read_tag; int *connection_sequence; - grpc_metadata_array initial_metadata_recv; - grpc_metadata_array trailing_metadata_recv; s_valid = gpr_malloc(sizeof(int) * f->num_servers); - call_details = gpr_malloc(sizeof(grpc_call_details) * f->num_servers); + rdata->call_details = gpr_malloc(sizeof(grpc_call_details) * f->num_servers); connection_sequence = gpr_malloc(sizeof(int) * spec->num_iters); /* Send a trivial request. */ @@ -241,8 +244,8 @@ int *perform_request(servers_fixture *f, grpc_channel *client, for (iter_num = 0; iter_num < spec->num_iters; iter_num++) { cq_verifier *cqv = cq_verifier_create(f->cq); - details = NULL; - details_capacity = 0; + rdata->details = NULL; + rdata->details_capacity = 0; was_cancelled = 2; for (i = 0; i < f->num_servers; i++) { @@ -255,11 +258,11 @@ int *perform_request(servers_fixture *f, grpc_channel *client, } connection_sequence[iter_num] = -1; - grpc_metadata_array_init(&initial_metadata_recv); - grpc_metadata_array_init(&trailing_metadata_recv); + grpc_metadata_array_init(&rdata->initial_metadata_recv); + grpc_metadata_array_init(&rdata->trailing_metadata_recv); for (i = 0; i < f->num_servers; i++) { - grpc_call_details_init(&call_details[i]); + grpc_call_details_init(&rdata->call_details[i]); } memset(s_valid, 0, f->num_servers * sizeof(int)); @@ -278,15 +281,15 @@ int *perform_request(servers_fixture *f, grpc_channel *client, op->reserved = NULL; op++; op->op = GRPC_OP_RECV_INITIAL_METADATA; - op->data.recv_initial_metadata = &initial_metadata_recv; + op->data.recv_initial_metadata = &rdata->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; - op->data.recv_status_on_client.status = &status; - op->data.recv_status_on_client.status_details = &details; - op->data.recv_status_on_client.status_details_capacity = &details_capacity; + op->data.recv_status_on_client.trailing_metadata = &rdata->trailing_metadata_recv; + op->data.recv_status_on_client.status = &rdata->status; + op->data.recv_status_on_client.status_details = &rdata->details; + op->data.recv_status_on_client.status_details_capacity = &rdata->details_capacity; op->flags = 0; op->reserved = NULL; op++; @@ -299,7 +302,7 @@ int *perform_request(servers_fixture *f, grpc_channel *client, if (f->servers[i] != NULL) { GPR_ASSERT(GRPC_CALL_OK == grpc_server_request_call(f->servers[i], &f->server_calls[i], - &call_details[i], + &rdata->call_details[i], &f->request_metadata_recv[i], f->cq, f->cq, tag(1000 + (int)i))); } @@ -348,11 +351,12 @@ int *perform_request(servers_fixture *f, grpc_channel *client, cq_expect_completion(cqv, tag(1), 1); cq_verify(cqv); - GPR_ASSERT(status == GRPC_STATUS_UNIMPLEMENTED); - GPR_ASSERT(0 == strcmp(details, "xyz")); - GPR_ASSERT(0 == strcmp(call_details[s_idx].method, "/foo")); - GPR_ASSERT(0 == strcmp(call_details[s_idx].host, "foo.test.google.fr")); + GPR_ASSERT(rdata->status == GRPC_STATUS_UNIMPLEMENTED); + GPR_ASSERT(0 == strcmp(rdata->details, "xyz")); + GPR_ASSERT(0 == strcmp(rdata->call_details[s_idx].method, "/foo")); + GPR_ASSERT(0 == strcmp(rdata->call_details[s_idx].host, "foo.test.google.fr")); GPR_ASSERT(was_cancelled == 1); + } else { } for (i = 0; i < f->num_servers; i++) { @@ -361,20 +365,20 @@ int *perform_request(servers_fixture *f, grpc_channel *client, } grpc_metadata_array_destroy(&f->request_metadata_recv[i]); } - grpc_metadata_array_destroy(&initial_metadata_recv); - grpc_metadata_array_destroy(&trailing_metadata_recv); + grpc_metadata_array_destroy(&rdata->initial_metadata_recv); + grpc_metadata_array_destroy(&rdata->trailing_metadata_recv); cq_verifier_destroy(cqv); grpc_call_destroy(c); for (i = 0; i < f->num_servers; i++) { - grpc_call_details_destroy(&call_details[i]); + grpc_call_details_destroy(&rdata->call_details[i]); } - gpr_free(details); + gpr_free(rdata->details); } - gpr_free(call_details); + gpr_free(rdata->call_details); gpr_free(s_valid); return connection_sequence; @@ -436,6 +440,7 @@ void run_spec(const test_spec *spec) { char *client_hostport; char *servers_hostports_str; int *actual_connection_sequence; + request_data rdata; servers_fixture *f = setup_servers("127.0.0.1", spec->num_servers); /* Create client. */ @@ -448,7 +453,7 @@ void run_spec(const test_spec *spec) { gpr_log(GPR_INFO, "Testing '%s' with servers=%s client=%s", spec->description, servers_hostports_str, client_hostport); - actual_connection_sequence = perform_request(f, client, spec); + actual_connection_sequence = perform_request(f, client, &rdata, spec); spec->verifier(f, client, actual_connection_sequence, spec->num_iters); From c8a5cc586d8136bd7bbe900e15dbae1893ab49dc Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Fri, 30 Oct 2015 08:47:52 -0700 Subject: [PATCH 062/103] Add npm badge --- src/node/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/node/README.md b/src/node/README.md index 5d89e2228db..b46b9862432 100644 --- a/src/node/README.md +++ b/src/node/README.md @@ -1,3 +1,4 @@ +[![npm](https://img.shields.io/npm/v/grpc.svg)](https://www.npmjs.com/package/grpc) # Node.js gRPC Library ## Status From a9b933eee3400c2757f4e31d81d571c4e93aa694 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Fri, 30 Oct 2015 08:52:19 -0700 Subject: [PATCH 063/103] Add gem badge --- src/ruby/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ruby/README.md b/src/ruby/README.md index e6ffadcaa93..76d9f7663a0 100644 --- a/src/ruby/README.md +++ b/src/ruby/README.md @@ -1,3 +1,4 @@ +[![Gem](https://img.shields.io/gem/v/grpc.svg)](https://rubygems.org/gems/grpc/) gRPC Ruby ========= From d6c0415e94359733143fb68e226a6bc8ca8af1d9 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Fri, 30 Oct 2015 09:11:40 -0700 Subject: [PATCH 064/103] Add cocoapods badge --- src/objective-c/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/objective-c/README.md b/src/objective-c/README.md index a861a9f6f93..c1d25b96f50 100644 --- a/src/objective-c/README.md +++ b/src/objective-c/README.md @@ -1,3 +1,4 @@ +[![Cocoapods](https://img.shields.io/cocoapods/v/gRPC.svg)](https://cocoapods.org/pods/gRPC) # gRPC for Objective-C - [Install protoc with the gRPC plugin](#install) From d76f1467d291ca6f63330bc582d349027d2d99eb Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Wed, 28 Oct 2015 07:10:47 -0700 Subject: [PATCH 065/103] Prevent XCode 7 from showing spurious warnings This will hopefully make xctool work on Travis too (cross fingers!) --- gRPC.podspec | 8 ++++++-- templates/gRPC.podspec.template | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gRPC.podspec b/gRPC.podspec index 1ee2198125f..5404829be4a 100644 --- a/gRPC.podspec +++ b/gRPC.podspec @@ -530,8 +530,12 @@ Pod::Spec.new do |s| ss.header_mappings_dir = '.' # This isn't officially supported in Cocoapods. We've asked for an alternative: # https://github.com/CocoaPods/CocoaPods/issues/4386 - ss.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC" ' + - '"$(PODS_ROOT)/Headers/Private/gRPC/include"' } + ss.xcconfig = { + 'USE_HEADERMAP' => 'NO', + 'ALWAYS_SEARCH_USER_PATHS' => 'NO', + 'USER_HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC"', + 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC/include"' + } ss.requires_arc = false ss.libraries = 'z' diff --git a/templates/gRPC.podspec.template b/templates/gRPC.podspec.template index 3b96fe28857..3885cb337b5 100644 --- a/templates/gRPC.podspec.template +++ b/templates/gRPC.podspec.template @@ -88,8 +88,12 @@ ss.header_mappings_dir = '.' # This isn't officially supported in Cocoapods. We've asked for an alternative: # https://github.com/CocoaPods/CocoaPods/issues/4386 - ss.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC" ' + - '"$(PODS_ROOT)/Headers/Private/gRPC/include"' } + ss.xcconfig = { + 'USE_HEADERMAP' => 'NO', + 'ALWAYS_SEARCH_USER_PATHS' => 'NO', + 'USER_HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC"', + 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC/include"' + } ss.requires_arc = false ss.libraries = 'z' From 6eb3925a70c70e64e4c4d8577e40841473f19423 Mon Sep 17 00:00:00 2001 From: David Garcia Quintas Date: Fri, 30 Oct 2015 17:01:05 -0700 Subject: [PATCH 066/103] Added grpc_byte_buffer_reader_readall --- include/grpc/byte_buffer.h | 3 ++ src/core/surface/byte_buffer_reader.c | 19 +++++++++++ test/core/surface/byte_buffer_reader_test.c | 35 ++++++++++++++++++++- 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/include/grpc/byte_buffer.h b/include/grpc/byte_buffer.h index 1433ffdf7e3..ffc5982bc03 100644 --- a/include/grpc/byte_buffer.h +++ b/include/grpc/byte_buffer.h @@ -106,6 +106,9 @@ void grpc_byte_buffer_reader_destroy(grpc_byte_buffer_reader *reader); int grpc_byte_buffer_reader_next(grpc_byte_buffer_reader *reader, gpr_slice *slice); +/** Merge all data from \a reader into single slice */ +gpr_slice grpc_byte_buffer_reader_readall(grpc_byte_buffer_reader *reader); + /** Returns a RAW byte buffer instance from the output of \a reader. */ grpc_byte_buffer *grpc_raw_byte_buffer_from_reader( grpc_byte_buffer_reader *reader); diff --git a/src/core/surface/byte_buffer_reader.c b/src/core/surface/byte_buffer_reader.c index 283db83833d..9f830df68ce 100644 --- a/src/core/surface/byte_buffer_reader.c +++ b/src/core/surface/byte_buffer_reader.c @@ -31,6 +31,7 @@ * */ +#include #include #include @@ -103,3 +104,21 @@ int grpc_byte_buffer_reader_next(grpc_byte_buffer_reader *reader, } return 0; } + +gpr_slice grpc_byte_buffer_reader_readall(grpc_byte_buffer_reader *reader) { + gpr_slice in_slice; + size_t bytes_read = 0; + const size_t input_size = grpc_byte_buffer_length(reader->buffer_out); + gpr_slice out_slice = gpr_slice_malloc(input_size); + gpr_uint8 *const outbuf = GPR_SLICE_START_PTR(out_slice); /* just an alias */ + + while (grpc_byte_buffer_reader_next(reader, &in_slice) != 0) { + const size_t slice_length = GPR_SLICE_LENGTH(in_slice); + memcpy(&(outbuf[bytes_read]), GPR_SLICE_START_PTR(in_slice), slice_length); + bytes_read += slice_length; + gpr_slice_unref(in_slice); + GPR_ASSERT(bytes_read <= input_size); + } + return out_slice; +} + diff --git a/test/core/surface/byte_buffer_reader_test.c b/test/core/surface/byte_buffer_reader_test.c index 560e0ac7b23..c654f80f71c 100644 --- a/test/core/surface/byte_buffer_reader_test.c +++ b/test/core/surface/byte_buffer_reader_test.c @@ -184,6 +184,39 @@ static void test_byte_buffer_from_reader(void) { grpc_byte_buffer_destroy(buffer_from_reader); } +static void test_readall(void) { + const char* lotsa_as[512]; + const char* lotsa_bs[1024]; + gpr_slice slices[2]; + grpc_byte_buffer *buffer; + grpc_byte_buffer_reader reader; + gpr_slice slice_out; + + LOG_TEST("test_readall"); + + memset(lotsa_as, 'a', 512); + memset(lotsa_bs, 'b', 1024); + /* use slices large enough to overflow inlining */ + slices[0] = gpr_slice_malloc(512); + memcpy(GPR_SLICE_START_PTR(slices[0]), lotsa_as, 512); + slices[1] = gpr_slice_malloc(1024); + memcpy(GPR_SLICE_START_PTR(slices[1]), lotsa_bs, 1024); + + buffer = grpc_raw_byte_buffer_create(slices, 2); + gpr_slice_unref(slices[0]); + gpr_slice_unref(slices[1]); + + grpc_byte_buffer_reader_init(&reader, buffer); + slice_out = grpc_byte_buffer_reader_readall(&reader); + + GPR_ASSERT(GPR_SLICE_LENGTH(slice_out) == 512 + 1024); + GPR_ASSERT(memcmp(GPR_SLICE_START_PTR(slice_out), lotsa_as, 512) == 0); + GPR_ASSERT(memcmp(&(GPR_SLICE_START_PTR(slice_out)[512]), lotsa_bs, 1024) == + 0); + gpr_slice_unref(slice_out); + grpc_byte_buffer_destroy(buffer); +} + int main(int argc, char **argv) { grpc_test_init(argc, argv); test_read_one_slice(); @@ -192,6 +225,6 @@ int main(int argc, char **argv) { test_read_gzip_compressed_slice(); test_read_deflate_compressed_slice(); test_byte_buffer_from_reader(); - + test_readall(); return 0; } From 66197ca25d13f2725ba6d741868557fade1cc8c8 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 2 Nov 2015 08:04:10 -0800 Subject: [PATCH 067/103] Fix nap condition for pollset wakeup If: - one thread issues a kick forcing pollset re-evaluation - concurrently with a second thread forcing a specific poller to be awoken And: - both threads kicks are processed as a single wakeup Then: - since we enqueue nothing to the exec_ctx in this situation, we responded to the wakeup by doing another poll until the timeout, ignoring urgent work up the stack Fix this by flagging that a specific worker was designated to be awoken (since this is a good signal that we really really need to wake up), and use that to still re-evaluate the poll set, but with an immediate deadline so that we fall out of the poll loop as soon as possible. --- src/core/iomgr/pollset_posix.c | 5 ++++- src/core/iomgr/pollset_posix.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/iomgr/pollset_posix.c b/src/core/iomgr/pollset_posix.c index bce1ce97144..6f478ccacb9 100644 --- a/src/core/iomgr/pollset_posix.c +++ b/src/core/iomgr/pollset_posix.c @@ -121,12 +121,14 @@ void grpc_pollset_kick_ext(grpc_pollset *p, if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) { specific_worker->reevaluate_polling_on_wakeup = 1; } + specific_worker->kicked_specifically = 1; grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd); } else if ((flags & GRPC_POLLSET_CAN_KICK_SELF) != 0) { GPR_TIMER_MARK("kick_yoself", 0); if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) { specific_worker->reevaluate_polling_on_wakeup = 1; } + specific_worker->kicked_specifically = 1; grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd); } } else if (gpr_tls_get(&g_current_thread_poller) != (gpr_intptr)p) { @@ -242,6 +244,7 @@ void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset, /* this must happen before we (potentially) drop pollset->mu */ worker->next = worker->prev = NULL; worker->reevaluate_polling_on_wakeup = 0; + worker->kicked_specifically = 0; /* TODO(ctiller): pool these */ grpc_wakeup_fd_init(&worker->wakeup_fd); /* If there's work waiting for the pollset to be idle, and the @@ -308,7 +311,7 @@ void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset, if (worker->reevaluate_polling_on_wakeup) { worker->reevaluate_polling_on_wakeup = 0; pollset->kicked_without_pollers = 0; - if (queued_work) { + if (queued_work || worker->kicked_specifically) { /* If there's queued work on the list, then set the deadline to be immediate so we get back out of the polling loop quickly */ deadline = gpr_inf_past(GPR_CLOCK_MONOTONIC); diff --git a/src/core/iomgr/pollset_posix.h b/src/core/iomgr/pollset_posix.h index 34f76db2afa..95ebeab1c26 100644 --- a/src/core/iomgr/pollset_posix.h +++ b/src/core/iomgr/pollset_posix.h @@ -51,6 +51,7 @@ struct grpc_fd; typedef struct grpc_pollset_worker { grpc_wakeup_fd wakeup_fd; int reevaluate_polling_on_wakeup; + int kicked_specifically; struct grpc_pollset_worker *next; struct grpc_pollset_worker *prev; } grpc_pollset_worker; From aa39192d70ca4b9e0f63994c595545130b6c6224 Mon Sep 17 00:00:00 2001 From: vjpai Date: Mon, 2 Nov 2015 14:46:04 -0800 Subject: [PATCH 068/103] Cleanup directory and make minor changes --- Makefile | 66 +++++++++---------- build.yaml | 6 +- test/cpp/qps/histogram.h | 2 +- test/cpp/qps/perf_db.proto | 2 +- .../control.proto} | 16 ++--- .../services.proto} | 3 +- .../stats.proto} | 0 tools/run_tests/sources_and_headers.json | 14 ++-- vsprojects/vcxproj/qps/qps.vcxproj | 24 +++---- vsprojects/vcxproj/qps/qps.vcxproj.filters | 16 ++--- 10 files changed, 74 insertions(+), 75 deletions(-) rename test/proto/{perf_tests/perf_control.proto => benchmarks/control.proto} (92%) rename test/proto/{perf_tests/perf_services.proto => benchmarks/services.proto} (95%) rename test/proto/{perf_tests/perf_stats.proto => benchmarks/stats.proto} (100%) diff --git a/Makefile b/Makefile index 06a984ad67b..39bf687f421 100644 --- a/Makefile +++ b/Makefile @@ -3753,75 +3753,75 @@ $(GENDIR)/test/cpp/util/messages.grpc.pb.cc: test/cpp/util/messages.proto $(PROT endif ifeq ($(NO_PROTOC),true) -$(GENDIR)/test/proto/empty.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/empty.grpc.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/benchmarks/control.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/empty.pb.cc: test/proto/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/benchmarks/control.pb.cc: test/proto/benchmarks/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/empty.grpc.pb.cc: test/proto/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc: test/proto/benchmarks/control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< endif ifeq ($(NO_PROTOC),true) -$(GENDIR)/test/proto/messages.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/messages.grpc.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/benchmarks/services.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/messages.pb.cc: test/proto/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/benchmarks/services.pb.cc: test/proto/benchmarks/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/messages.grpc.pb.cc: test/proto/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc: test/proto/benchmarks/services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< endif ifeq ($(NO_PROTOC),true) -$(GENDIR)/test/proto/perf_tests/perf_control.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/benchmarks/stats.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/perf_tests/perf_control.pb.cc: test/proto/perf_tests/perf_control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/benchmarks/stats.pb.cc: test/proto/benchmarks/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc: test/proto/perf_tests/perf_control.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc: test/proto/benchmarks/stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< endif ifeq ($(NO_PROTOC),true) -$(GENDIR)/test/proto/perf_tests/perf_services.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/empty.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/empty.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/perf_tests/perf_services.pb.cc: test/proto/perf_tests/perf_services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/empty.pb.cc: test/proto/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc: test/proto/perf_tests/perf_services.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/empty.grpc.pb.cc: test/proto/empty.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< endif ifeq ($(NO_PROTOC),true) -$(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc: protoc_dep_error -$(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/messages.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/messages.grpc.pb.cc: protoc_dep_error else -$(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc: test/proto/perf_tests/perf_stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/messages.pb.cc: test/proto/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[PROTOC] Generating protobuf CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< -$(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc: test/proto/perf_tests/perf_stats.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) +$(GENDIR)/test/proto/messages.grpc.pb.cc: test/proto/messages.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" $(Q) mkdir -p `dirname $@` $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< @@ -5419,9 +5419,9 @@ $(OBJDIR)/$(CONFIG)/test/cpp/interop/server.o: $(GENDIR)/test/proto/empty.pb.cc LIBQPS_SRC = \ $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \ - $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc \ - $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc \ - $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc \ + $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc \ + $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc \ + $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc \ $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc \ test/cpp/qps/client_async.cc \ test/cpp/qps/client_sync.cc \ @@ -5476,16 +5476,16 @@ ifneq ($(NO_DEPS),true) -include $(LIBQPS_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/timer.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.pb.cc $(GENDIR)/test/proto/perf_tests/perf_control.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.pb.cc $(GENDIR)/test/proto/perf_tests/perf_services.grpc.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.pb.cc $(GENDIR)/test/proto/perf_tests/perf_stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/timer.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc LIBGRPC_CSHARP_EXT_SRC = \ diff --git a/build.yaml b/build.yaml index c8240bb53d3..55618182b17 100644 --- a/build.yaml +++ b/build.yaml @@ -752,9 +752,9 @@ libs: - test/cpp/util/benchmark_config.h src: - test/proto/messages.proto - - test/proto/perf_tests/perf_control.proto - - test/proto/perf_tests/perf_services.proto - - test/proto/perf_tests/perf_stats.proto + - test/proto/benchmarks/control.proto + - test/proto/benchmarks/services.proto + - test/proto/benchmarks/stats.proto - test/cpp/qps/perf_db.proto - test/cpp/qps/client_async.cc - test/cpp/qps/client_sync.cc diff --git a/test/cpp/qps/histogram.h b/test/cpp/qps/histogram.h index f7cb30871d2..35527d2a2cb 100644 --- a/test/cpp/qps/histogram.h +++ b/test/cpp/qps/histogram.h @@ -35,7 +35,7 @@ #define TEST_QPS_HISTOGRAM_H #include -#include "test/proto/perf_tests/perf_stats.grpc.pb.h" +#include "test/proto/benchmarks/stats.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/qps/perf_db.proto b/test/cpp/qps/perf_db.proto index 42334e36abb..8a691ddded4 100644 --- a/test/cpp/qps/perf_db.proto +++ b/test/cpp/qps/perf_db.proto @@ -29,7 +29,7 @@ syntax = "proto3"; -import "test/proto/perf_tests/perf_control.proto"; +import "test/proto/benchmarks/control.proto"; package grpc.testing; diff --git a/test/proto/perf_tests/perf_control.proto b/test/proto/benchmarks/control.proto similarity index 92% rename from test/proto/perf_tests/perf_control.proto rename to test/proto/benchmarks/control.proto index 7a294233b76..e0fe8c0d26b 100644 --- a/test/proto/perf_tests/perf_control.proto +++ b/test/proto/benchmarks/control.proto @@ -31,17 +31,17 @@ // of unary/streaming requests/responses. syntax = "proto3"; -import "test/proto/perf_tests/perf_stats.proto"; +import "test/proto/benchmarks/stats.proto"; package grpc.testing; enum ClientType { - SYNCHRONOUS_CLIENT = 0; + SYNC_CLIENT = 0; ASYNC_CLIENT = 1; } enum ServerType { - SYNCHRONOUS_SERVER = 0; + SYNC_SERVER = 0; ASYNC_SERVER = 1; } @@ -73,11 +73,11 @@ message ClosedLoopParams { message LoadParams { oneof load { - PoissonParams poisson = 1; - UniformParams uniform = 2; - DeterministicParams determ = 3; - ParetoParams pareto = 4; - ClosedLoopParams closed = 5; + ClosedLoopParams closed_loop = 1; + PoissonParams poisson = 2; + UniformParams uniform = 3; + DeterministicParams determ = 4; + ParetoParams pareto = 5; }; } diff --git a/test/proto/perf_tests/perf_services.proto b/test/proto/benchmarks/services.proto similarity index 95% rename from test/proto/perf_tests/perf_services.proto rename to test/proto/benchmarks/services.proto index f9497e2f758..4c2cbabdf87 100644 --- a/test/proto/perf_tests/perf_services.proto +++ b/test/proto/benchmarks/services.proto @@ -32,8 +32,7 @@ syntax = "proto3"; import "test/proto/messages.proto"; -import "test/proto/perf_tests/perf_stats.proto"; -import "test/proto/perf_tests/perf_control.proto"; +import "test/proto/benchmarks/control.proto"; package grpc.testing; diff --git a/test/proto/perf_tests/perf_stats.proto b/test/proto/benchmarks/stats.proto similarity index 100% rename from test/proto/perf_tests/perf_stats.proto rename to test/proto/benchmarks/stats.proto diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index a90dfcb22c1..8def62aaa81 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -14649,14 +14649,14 @@ "test/cpp/qps/stats.h", "test/cpp/qps/timer.h", "test/cpp/util/benchmark_config.h", + "test/proto/benchmarks/control.grpc.pb.h", + "test/proto/benchmarks/control.pb.h", + "test/proto/benchmarks/services.grpc.pb.h", + "test/proto/benchmarks/services.pb.h", + "test/proto/benchmarks/stats.grpc.pb.h", + "test/proto/benchmarks/stats.pb.h", "test/proto/messages.grpc.pb.h", - "test/proto/messages.pb.h", - "test/proto/perf_tests/perf_control.grpc.pb.h", - "test/proto/perf_tests/perf_control.pb.h", - "test/proto/perf_tests/perf_services.grpc.pb.h", - "test/proto/perf_tests/perf_services.pb.h", - "test/proto/perf_tests/perf_stats.grpc.pb.h", - "test/proto/perf_tests/perf_stats.pb.h" + "test/proto/messages.pb.h" ], "language": "c++", "name": "qps", diff --git a/vsprojects/vcxproj/qps/qps.vcxproj b/vsprojects/vcxproj/qps/qps.vcxproj index 152ba7af6c5..3a851939e27 100644 --- a/vsprojects/vcxproj/qps/qps.vcxproj +++ b/vsprojects/vcxproj/qps/qps.vcxproj @@ -155,29 +155,29 @@
- + - + - + - + - + - + - + - + - + - + - + - + diff --git a/vsprojects/vcxproj/qps/qps.vcxproj.filters b/vsprojects/vcxproj/qps/qps.vcxproj.filters index 8bbd5c35c2b..0b9c2cb8337 100644 --- a/vsprojects/vcxproj/qps/qps.vcxproj.filters +++ b/vsprojects/vcxproj/qps/qps.vcxproj.filters @@ -4,14 +4,14 @@ test\proto - - test\proto\perf_tests + + test\proto\benchmarks - - test\proto\perf_tests + + test\proto\benchmarks - - test\proto\perf_tests + + test\proto\benchmarks test\cpp\qps @@ -99,8 +99,8 @@ {44e63a33-67f4-0575-e87a-711a7c9111e2} - - {cf788def-630c-8a5f-9a8c-6abdd500d712} + + {4180a094-39b4-e46c-1576-940bfe87d284}
From 6bf1de9ab2b324156d766a2f2da14a5d75eae379 Mon Sep 17 00:00:00 2001 From: vjpai Date: Mon, 2 Nov 2015 14:48:57 -0800 Subject: [PATCH 069/103] Mark a method with GRPC_OVERRIDE to avoid compiler warning --- test/cpp/end2end/mock_test.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/cpp/end2end/mock_test.cc b/test/cpp/end2end/mock_test.cc index 9c35fede8f6..80057d893e1 100644 --- a/test/cpp/end2end/mock_test.cc +++ b/test/cpp/end2end/mock_test.cc @@ -62,7 +62,7 @@ template class MockClientReaderWriter GRPC_FINAL : public ClientReaderWriterInterface { public: - void WaitForInitialMetadata() {} + void WaitForInitialMetadata() GRPC_OVERRIDE {} bool Read(R* msg) GRPC_OVERRIDE { return true; } bool Write(const W& msg) GRPC_OVERRIDE { return true; } bool WritesDone() GRPC_OVERRIDE { return true; } @@ -73,7 +73,7 @@ class MockClientReaderWriter GRPC_FINAL : public ClientReaderWriterInterface { public: MockClientReaderWriter() : writes_done_(false) {} - void WaitForInitialMetadata() {} + void WaitForInitialMetadata() GRPC_OVERRIDE {} bool Read(EchoResponse* msg) GRPC_OVERRIDE { if (writes_done_) return false; msg->set_message(last_message_); From 452ca9b912cf1173d901dc7ef0fcc4098d0ea551 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Thu, 29 Oct 2015 10:38:03 -0700 Subject: [PATCH 070/103] add profiling support --- .../Grpc.Core.Tests/ClientServerTest.cs | 14 +- .../Grpc.Core.Tests/Grpc.Core.Tests.csproj | 1 + .../Grpc.Core.Tests/Internal/TimespecTest.cs | 19 +++ src/csharp/Grpc.Core.Tests/PerformanceTest.cs | 99 +++++++++++++ src/csharp/Grpc.Core/Grpc.Core.csproj | 7 + src/csharp/Grpc.Core/Internal/AsyncCall.cs | 106 ++++++++------ .../Grpc.Core/Internal/AsyncCallBase.cs | 42 ++++-- .../Grpc.Core/Internal/CallSafeHandle.cs | 8 +- .../Grpc.Core/Internal/ChannelSafeHandle.cs | 14 +- .../Internal/CompletionQueueSafeHandle.cs | 6 +- src/csharp/Grpc.Core/Internal/Enums.cs | 3 + .../Internal/MetadataArraySafeHandle.cs | 16 ++- src/csharp/Grpc.Core/Internal/Timespec.cs | 13 ++ src/csharp/Grpc.Core/Profiling/IProfiler.cs | 47 +++++++ .../Grpc.Core/Profiling/ProfilerEntry.cs | 87 ++++++++++++ .../Grpc.Core/Profiling/ProfilerScope.cs | 60 ++++++++ src/csharp/Grpc.Core/Profiling/Profilers.cs | 131 ++++++++++++++++++ 17 files changed, 587 insertions(+), 86 deletions(-) create mode 100644 src/csharp/Grpc.Core.Tests/PerformanceTest.cs create mode 100644 src/csharp/Grpc.Core/Profiling/IProfiler.cs create mode 100644 src/csharp/Grpc.Core/Profiling/ProfilerEntry.cs create mode 100644 src/csharp/Grpc.Core/Profiling/ProfilerScope.cs create mode 100644 src/csharp/Grpc.Core/Profiling/Profilers.cs diff --git a/src/csharp/Grpc.Core.Tests/ClientServerTest.cs b/src/csharp/Grpc.Core.Tests/ClientServerTest.cs index e58528ff50e..25a5a27c8e3 100644 --- a/src/csharp/Grpc.Core.Tests/ClientServerTest.cs +++ b/src/csharp/Grpc.Core.Tests/ClientServerTest.cs @@ -38,6 +38,7 @@ using System.Threading; using System.Threading.Tasks; using Grpc.Core; using Grpc.Core.Internal; +using Grpc.Core.Profiling; using Grpc.Core.Utils; using NUnit.Framework; @@ -200,19 +201,6 @@ namespace Grpc.Core.Tests Assert.AreEqual(headers[1].Key, trailers[1].Key); CollectionAssert.AreEqual(headers[1].ValueBytes, trailers[1].ValueBytes); } - - [Test] - public void UnaryCallPerformance() - { - helper.UnaryHandler = new UnaryServerMethod(async (request, context) => - { - return request; - }); - - var callDetails = helper.CreateUnaryCall(); - BenchmarkUtil.RunBenchmark(1, 10, - () => { Calls.BlockingUnaryCall(callDetails, "ABC"); }); - } [Test] public void UnknownMethodHandler() diff --git a/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj b/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj index 91d072ababe..e5ffa319895 100644 --- a/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj +++ b/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj @@ -88,6 +88,7 @@ + diff --git a/src/csharp/Grpc.Core.Tests/Internal/TimespecTest.cs b/src/csharp/Grpc.Core.Tests/Internal/TimespecTest.cs index 874df02baa0..9be5450d810 100644 --- a/src/csharp/Grpc.Core.Tests/Internal/TimespecTest.cs +++ b/src/csharp/Grpc.Core.Tests/Internal/TimespecTest.cs @@ -34,6 +34,7 @@ using System; using System.Runtime.InteropServices; using Grpc.Core.Internal; +using Grpc.Core.Utils; using NUnit.Framework; namespace Grpc.Core.Internal.Tests @@ -198,5 +199,23 @@ namespace Grpc.Core.Internal.Tests Console.WriteLine("Test cannot be run on this platform, skipping the test."); } } + + // Test attribute commented out to prevent running as part of the default test suite. + // [Test] + // [Category("Performance")] + public void NowBenchmark() + { + // approx Timespec.Now latency <33ns + BenchmarkUtil.RunBenchmark(10000000, 1000000000, () => { var now = Timespec.Now; }); + } + + // Test attribute commented out to prevent running as part of the default test suite. + // [Test] + // [Category("Performance")] + public void PreciseNowBenchmark() + { + // approx Timespec.PreciseNow latency <18ns (when compiled with GRPC_TIMERS_RDTSC) + BenchmarkUtil.RunBenchmark(10000000, 1000000000, () => { var now = Timespec.PreciseNow; }); + } } } diff --git a/src/csharp/Grpc.Core.Tests/PerformanceTest.cs b/src/csharp/Grpc.Core.Tests/PerformanceTest.cs new file mode 100644 index 00000000000..5516cd33774 --- /dev/null +++ b/src/csharp/Grpc.Core.Tests/PerformanceTest.cs @@ -0,0 +1,99 @@ +#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.Profiling; +using Grpc.Core.Utils; +using NUnit.Framework; + +namespace Grpc.Core.Tests +{ + public class PerformanceTest + { + 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(); + } + + [TearDown] + public void Cleanup() + { + channel.ShutdownAsync().Wait(); + server.ShutdownAsync().Wait(); + } + + // Test attribute commented out to prevent running as part of the default test suite. + //[Test] + //[Category("Performance")] + public void UnaryCallPerformance() + { + var profiler = new BasicProfiler(); + Profilers.SetForCurrentThread(profiler); + + helper.UnaryHandler = new UnaryServerMethod(async (request, context) => + { + return request; + }); + + var callDetails = helper.CreateUnaryCall(); + for(int i = 0; i < 3000; i++) + { + Calls.BlockingUnaryCall(callDetails, "ABC"); + } + + profiler.Reset(); + + for(int i = 0; i < 3000; i++) + { + Calls.BlockingUnaryCall(callDetails, "ABC"); + } + profiler.Dump("latency_trace_csharp.txt"); + } + } +} diff --git a/src/csharp/Grpc.Core/Grpc.Core.csproj b/src/csharp/Grpc.Core/Grpc.Core.csproj index 92d4e19eac2..0aab7bdd8ad 100644 --- a/src/csharp/Grpc.Core/Grpc.Core.csproj +++ b/src/csharp/Grpc.Core/Grpc.Core.csproj @@ -119,6 +119,10 @@ + + + + @@ -150,4 +154,7 @@ + + + \ No newline at end of file diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs index 800462c8540..e3ecc472826 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs @@ -39,6 +39,7 @@ using System.Threading; using System.Threading.Tasks; using Grpc.Core.Internal; using Grpc.Core.Logging; +using Grpc.Core.Profiling; using Grpc.Core.Utils; namespace Grpc.Core.Internal @@ -87,6 +88,9 @@ namespace Grpc.Core.Internal /// public TResponse UnaryCall(TRequest msg) { + var profiler = Profilers.ForCurrentThread(); + + using (profiler.NewScope("AsyncCall.UnaryCall")) using (CompletionQueueSafeHandle cq = CompletionQueueSafeHandle.Create()) { byte[] payload = UnsafeSerialize(msg); @@ -104,24 +108,26 @@ namespace Grpc.Core.Internal } using (var metadataArray = MetadataArraySafeHandle.Create(details.Options.Headers)) + using (var ctx = BatchContextSafeHandle.Create()) { - using (var ctx = BatchContextSafeHandle.Create()) - { - call.StartUnary(ctx, payload, metadataArray, GetWriteFlagsForCall()); - var ev = cq.Pluck(ctx.Handle); + call.StartUnary(ctx, payload, metadataArray, GetWriteFlagsForCall()); + + var ev = cq.Pluck(ctx.Handle); - bool success = (ev.success != 0); - try + bool success = (ev.success != 0); + try + { + using (profiler.NewScope("AsyncCall.UnaryCall.HandleBatch")) { HandleUnaryResponse(success, ctx.GetReceivedStatusOnClient(), ctx.GetReceivedMessage(), ctx.GetReceivedInitialMetadata()); } - catch (Exception e) - { - Logger.Error(e, "Exception occured while invoking completion delegate."); - } + } + catch (Exception e) + { + Logger.Error(e, "Exception occured while invoking completion delegate."); } } - + // Once the blocking call returns, the result should be available synchronously. // Note that GetAwaiter().GetResult() doesn't wrap exceptions in AggregateException. return unaryResponseTcs.Task.GetAwaiter().GetResult(); @@ -329,27 +335,35 @@ namespace Grpc.Core.Internal private void Initialize(CompletionQueueSafeHandle cq) { - var call = CreateNativeCall(cq); - details.Channel.AddCallReference(this); - InitializeInternal(call); - RegisterCancellationCallback(); + using (Profilers.ForCurrentThread().NewScope("AsyncCall.Initialize")) + { + var call = CreateNativeCall(cq); + + details.Channel.AddCallReference(this); + InitializeInternal(call); + RegisterCancellationCallback(); + } } private INativeCall CreateNativeCall(CompletionQueueSafeHandle cq) { - if (injectedNativeCall != null) - { - return injectedNativeCall; // allows injecting a mock INativeCall in tests. - } + using (Profilers.ForCurrentThread().NewScope("AsyncCall.CreateNativeCall")) + { + 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 parentCall = details.Options.PropagationToken != null ? details.Options.PropagationToken.ParentCall : CallSafeHandle.NullInstance; - var credentials = details.Options.Credentials; - using (var nativeCredentials = credentials != null ? credentials.ToNativeCredentials() : null) - { - return details.Channel.Handle.CreateCall(environment.CompletionRegistry, - parentCall, ContextPropagationToken.DefaultMask, cq, - details.Method, details.Host, Timespec.FromDateTime(details.Options.Deadline.Value), nativeCredentials); + var credentials = details.Options.Credentials; + using (var nativeCredentials = credentials != null ? credentials.ToNativeCredentials() : null) + { + var result = details.Channel.Handle.CreateCall(environment.CompletionRegistry, + parentCall, ContextPropagationToken.DefaultMask, cq, + details.Method, details.Host, Timespec.FromDateTime(details.Options.Deadline.Value), nativeCredentials); + return result; + } } } @@ -385,33 +399,37 @@ namespace Grpc.Core.Internal /// private void HandleUnaryResponse(bool success, ClientSideStatus receivedStatus, byte[] receivedMessage, Metadata responseHeaders) { - TResponse msg = default(TResponse); - var deserializeException = success ? TryDeserialize(receivedMessage, out msg) : null; - - lock (myLock) + using (Profilers.ForCurrentThread().NewScope("AsyncCall.HandleUnaryResponse")) { - finished = true; + TResponse msg = default(TResponse); + var deserializeException = success ? TryDeserialize(receivedMessage, out msg) : null; - if (deserializeException != null && receivedStatus.Status.StatusCode == StatusCode.OK) + lock (myLock) { - receivedStatus = new ClientSideStatus(DeserializeResponseFailureStatus, receivedStatus.Trailers); + finished = true; + + if (deserializeException != null && receivedStatus.Status.StatusCode == StatusCode.OK) + { + receivedStatus = new ClientSideStatus(DeserializeResponseFailureStatus, receivedStatus.Trailers); + } + finishedStatus = receivedStatus; + + ReleaseResourcesIfPossible(); + } - finishedStatus = receivedStatus; - ReleaseResourcesIfPossible(); - } + responseHeadersTcs.SetResult(responseHeaders); - responseHeadersTcs.SetResult(responseHeaders); + var status = receivedStatus.Status; - var status = receivedStatus.Status; + if (!success || status.StatusCode != StatusCode.OK) + { + unaryResponseTcs.SetException(new RpcException(status)); + return; + } - if (!success || status.StatusCode != StatusCode.OK) - { - unaryResponseTcs.SetException(new RpcException(status)); - return; + unaryResponseTcs.SetResult(msg); } - - unaryResponseTcs.SetResult(msg); } /// diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs index 3e2c57c9b5b..953f61aa1ea 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs @@ -41,6 +41,7 @@ using System.Threading.Tasks; using Grpc.Core.Internal; using Grpc.Core.Logging; +using Grpc.Core.Profiling; using Grpc.Core.Utils; namespace Grpc.Core.Internal @@ -167,16 +168,19 @@ namespace Grpc.Core.Internal /// protected bool ReleaseResourcesIfPossible() { - if (!disposed && call != null) + using (Profilers.ForCurrentThread().NewScope("AsyncCallBase.ReleaseResourcesIfPossible")) { - bool noMoreSendCompletions = sendCompletionDelegate == null && (halfcloseRequested || cancelRequested || finished); - if (noMoreSendCompletions && readingDone && finished) + if (!disposed && call != null) { - ReleaseResources(); - return true; + bool noMoreSendCompletions = sendCompletionDelegate == null && (halfcloseRequested || cancelRequested || finished); + if (noMoreSendCompletions && readingDone && finished) + { + ReleaseResources(); + return true; + } } + return false; } - return false; } protected abstract bool IsClient @@ -228,7 +232,10 @@ namespace Grpc.Core.Internal protected byte[] UnsafeSerialize(TWrite msg) { - return serializer(msg); + using (Profilers.ForCurrentThread().NewScope("AsyncCallBase.UnsafeSerialize")) + { + return serializer(msg); + } } protected Exception TrySerialize(TWrite msg, out byte[] payload) @@ -247,15 +254,20 @@ namespace Grpc.Core.Internal protected Exception TryDeserialize(byte[] payload, out TRead msg) { - try - { - msg = deserializer(payload); - return null; - } - catch (Exception e) + using (Profilers.ForCurrentThread().NewScope("AsyncCallBase.TryDeserialize")) { - msg = default(TRead); - return e; + try + { + + msg = deserializer(payload); + return null; + + } + catch (Exception e) + { + msg = default(TRead); + return e; + } } } diff --git a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs index 0be7a4dd3a1..ddeedebd117 100644 --- a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs @@ -34,6 +34,7 @@ using System.Diagnostics; using System.Runtime.InteropServices; using Grpc.Core; using Grpc.Core.Utils; +using Grpc.Core.Profiling; namespace Grpc.Core.Internal { @@ -131,8 +132,11 @@ namespace Grpc.Core.Internal public void StartUnary(BatchContextSafeHandle ctx, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags) { - grpcsharp_call_start_unary(this, ctx, payload, new UIntPtr((ulong)payload.Length), metadataArray, writeFlags) - .CheckOk(); + using (Profilers.ForCurrentThread().NewScope("CallSafeHandle.StartUnary")) + { + grpcsharp_call_start_unary(this, ctx, payload, new UIntPtr((ulong)payload.Length), metadataArray, writeFlags) + .CheckOk(); + } } public void StartClientStreaming(UnaryResponseClientHandler callback, MetadataArraySafeHandle metadataArray) diff --git a/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs index d270d77526f..5f9169bcb2f 100644 --- a/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs @@ -32,6 +32,7 @@ using System; using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; +using Grpc.Core.Profiling; namespace Grpc.Core.Internal { @@ -84,13 +85,16 @@ namespace Grpc.Core.Internal public CallSafeHandle CreateCall(CompletionRegistry registry, CallSafeHandle parentCall, ContextPropagationFlags propagationMask, CompletionQueueSafeHandle cq, string method, string host, Timespec deadline, CredentialsSafeHandle credentials) { - var result = grpcsharp_channel_create_call(this, parentCall, propagationMask, cq, method, host, deadline); - if (credentials != null) + using (Profilers.ForCurrentThread().NewScope("ChannelSafeHandle.CreateCall")) { - result.SetCredentials(credentials); + var result = grpcsharp_channel_create_call(this, parentCall, propagationMask, cq, method, host, deadline); + if (credentials != null) + { + result.SetCredentials(credentials); + } + result.SetCompletionRegistry(registry); + return result; } - result.SetCompletionRegistry(registry); - return result; } public ChannelState CheckConnectivityState(bool tryToConnect) diff --git a/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs index f7a3471bb4b..9de2bc7950b 100644 --- a/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs @@ -31,6 +31,7 @@ using System; using System.Runtime.InteropServices; using System.Threading.Tasks; +using Grpc.Core.Profiling; namespace Grpc.Core.Internal { @@ -70,7 +71,10 @@ namespace Grpc.Core.Internal public CompletionQueueEvent Pluck(IntPtr tag) { - return grpcsharp_completion_queue_pluck(this, tag); + using (Profilers.ForCurrentThread().NewScope("CompletionQueueSafeHandle.Pluck")) + { + return grpcsharp_completion_queue_pluck(this, tag); + } } public void Shutdown() diff --git a/src/csharp/Grpc.Core/Internal/Enums.cs b/src/csharp/Grpc.Core/Internal/Enums.cs index 185098160b6..b0eab2001bc 100644 --- a/src/csharp/Grpc.Core/Internal/Enums.cs +++ b/src/csharp/Grpc.Core/Internal/Enums.cs @@ -102,6 +102,9 @@ namespace Grpc.Core.Internal /* Realtime clock */ Realtime, + /* Precise clock good for performance profiling. */ + Precise, + /* Timespan - the distance between two time points */ Timespan } diff --git a/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs b/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs index 31b834c979a..ed1bd244980 100644 --- a/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs +++ b/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs @@ -31,6 +31,7 @@ using System; using System.Runtime.InteropServices; using System.Threading.Tasks; +using Grpc.Core.Profiling; namespace Grpc.Core.Internal { @@ -66,14 +67,17 @@ namespace Grpc.Core.Internal public static MetadataArraySafeHandle Create(Metadata metadata) { - // TODO(jtattermusch): we might wanna check that the metadata is readonly - var metadataArray = grpcsharp_metadata_array_create(new UIntPtr((ulong)metadata.Count)); - for (int i = 0; i < metadata.Count; i++) + using (Profilers.ForCurrentThread().NewScope("MetadataArraySafeHandle.Create")) { - var valueBytes = metadata[i].GetSerializedValueUnsafe(); - grpcsharp_metadata_array_add(metadataArray, metadata[i].Key, valueBytes, new UIntPtr((ulong)valueBytes.Length)); + // TODO(jtattermusch): we might wanna check that the metadata is readonly + var metadataArray = grpcsharp_metadata_array_create(new UIntPtr((ulong)metadata.Count)); + for (int i = 0; i < metadata.Count; i++) + { + var valueBytes = metadata[i].GetSerializedValueUnsafe(); + grpcsharp_metadata_array_add(metadataArray, metadata[i].Key, valueBytes, new UIntPtr((ulong)valueBytes.Length)); + } + return metadataArray; } - return metadataArray; } /// diff --git a/src/csharp/Grpc.Core/Internal/Timespec.cs b/src/csharp/Grpc.Core/Internal/Timespec.cs index daf85d5f61d..38fc067d9f4 100644 --- a/src/csharp/Grpc.Core/Internal/Timespec.cs +++ b/src/csharp/Grpc.Core/Internal/Timespec.cs @@ -239,6 +239,19 @@ namespace Grpc.Core.Internal } } + /// + /// Gets current timestamp using GPRClockType.Precise. + /// Only available internally because core needs to be compiled with + /// GRPC_TIMERS_RDTSC support for this to use RDTSC. + /// + internal static Timespec PreciseNow + { + get + { + return gprsharp_now(GPRClockType.Precise); + } + } + internal static int NativeSize { get diff --git a/src/csharp/Grpc.Core/Profiling/IProfiler.cs b/src/csharp/Grpc.Core/Profiling/IProfiler.cs new file mode 100644 index 00000000000..c426c365d2d --- /dev/null +++ b/src/csharp/Grpc.Core/Profiling/IProfiler.cs @@ -0,0 +1,47 @@ +#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.IO; +using System.Threading; +using Grpc.Core.Internal; + +namespace Grpc.Core.Profiling +{ + internal interface IProfiler + { + void Begin(string tag); + void End(string tag); + void Mark(string tag); + } +} diff --git a/src/csharp/Grpc.Core/Profiling/ProfilerEntry.cs b/src/csharp/Grpc.Core/Profiling/ProfilerEntry.cs new file mode 100644 index 00000000000..5cc4c3c0542 --- /dev/null +++ b/src/csharp/Grpc.Core/Profiling/ProfilerEntry.cs @@ -0,0 +1,87 @@ +#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.IO; +using System.Threading; +using Grpc.Core.Internal; + +namespace Grpc.Core.Profiling +{ + internal struct ProfilerEntry + { + public enum Type { + BEGIN, + END, + MARK + } + + public ProfilerEntry(Timespec timespec, Type type, string tag) + { + this.timespec = timespec; + this.type = type; + this.tag = tag; + } + + public Timespec timespec; + public Type type; + public string tag; + + public override string ToString() + { + // mimic the output format used by C core. + return string.Format( + "{{\"t\": {0}.{1}, \"thd\":\"unknown\", \"type\": \"{2}\", \"tag\": \"{3}\", " + + "\"file\": \"unknown\", \"line\": 0, \"imp\": 0}}", + timespec.TimevalSeconds, timespec.TimevalNanos.ToString("D9"), + GetTypeAbbreviation(type), tag); + } + + internal static string GetTypeAbbreviation(Type type) + { + switch (type) + { + case Type.BEGIN: + return "{"; + + case Type.END: + return "}"; + + case Type.MARK: + return "."; + default: + throw new ArgumentException("Unknown type"); + } + } + } +} diff --git a/src/csharp/Grpc.Core/Profiling/ProfilerScope.cs b/src/csharp/Grpc.Core/Profiling/ProfilerScope.cs new file mode 100644 index 00000000000..413f3a1a358 --- /dev/null +++ b/src/csharp/Grpc.Core/Profiling/ProfilerScope.cs @@ -0,0 +1,60 @@ +#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.IO; +using System.Threading; +using Grpc.Core.Internal; + +namespace Grpc.Core.Profiling +{ + // Allows declaring Begin and End of a profiler scope with a using statement. + // declared as struct for better performance. + internal struct ProfilerScope : IDisposable + { + readonly IProfiler profiler; + readonly string tag; + + public ProfilerScope(IProfiler profiler, string tag) + { + this.profiler = profiler; + this.tag = tag; + this.profiler.Begin(this.tag); + } + + public void Dispose() + { + profiler.End(tag); + } + } +} diff --git a/src/csharp/Grpc.Core/Profiling/Profilers.cs b/src/csharp/Grpc.Core/Profiling/Profilers.cs new file mode 100644 index 00000000000..c8123347f2b --- /dev/null +++ b/src/csharp/Grpc.Core/Profiling/Profilers.cs @@ -0,0 +1,131 @@ +#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.IO; +using System.Threading; +using Grpc.Core.Internal; + +namespace Grpc.Core.Profiling +{ + internal static class Profilers + { + static readonly NopProfiler defaultProfiler = new NopProfiler(); + static readonly ThreadLocal profilers = new ThreadLocal(); + + public static IProfiler ForCurrentThread() + { + return profilers.Value ?? defaultProfiler; + } + + public static void SetForCurrentThread(IProfiler profiler) + { + profilers.Value = profiler; + } + + public static ProfilerScope NewScope(this IProfiler profiler, string tag) + { + return new ProfilerScope(profiler, tag); + } + } + + internal class NopProfiler : IProfiler + { + public void Begin(string tag) + { + } + + public void End(string tag) + { + } + + public void Mark(string tag) + { + } + } + + // Profiler using Timespec.PreciseNow + internal class BasicProfiler : IProfiler + { + ProfilerEntry[] entries; + int count; + + public BasicProfiler() : this(1024*1024) + { + } + + public BasicProfiler(int capacity) + { + this.entries = new ProfilerEntry[capacity]; + } + + public void Begin(string tag) { + AddEntry(new ProfilerEntry(Timespec.PreciseNow, ProfilerEntry.Type.BEGIN, tag)); + } + + public void End(string tag) { + AddEntry(new ProfilerEntry(Timespec.PreciseNow, ProfilerEntry.Type.END, tag)); + } + + public void Mark(string tag) { + AddEntry(new ProfilerEntry(Timespec.PreciseNow, ProfilerEntry.Type.MARK, tag)); + } + + public void Reset() + { + count = 0; + } + + public void Dump(string filepath) + { + using (var stream = new StreamWriter(filepath)) + { + Dump(stream); + } + } + + public void Dump(TextWriter stream) + { + for (int i = 0; i < count; i++) + { + var entry = entries[i]; + stream.WriteLine(entry.ToString()); + } + } + + // NOT THREADSAFE! + void AddEntry(ProfilerEntry entry) { + entries[count++] = entry; + } + } +} From d08a738166e7f293d4590bc852e102ebcbd2239d Mon Sep 17 00:00:00 2001 From: vjpai Date: Mon, 2 Nov 2015 16:45:08 -0800 Subject: [PATCH 071/103] Cleanup some names Remove some unused options and make server_threads relevant Start stubbing out better qps/core calculations --- .../cpp/qps/async_streaming_ping_pong_test.cc | 4 ++-- test/cpp/qps/async_unary_ping_pong_test.cc | 4 ++-- test/cpp/qps/client.h | 4 ++-- test/cpp/qps/client_async.cc | 2 +- test/cpp/qps/client_sync.cc | 2 +- test/cpp/qps/driver.cc | 15 ++++++++------- test/cpp/qps/driver.h | 8 +++++--- test/cpp/qps/qps-sweep.sh | 4 ++-- test/cpp/qps/qps_driver.cc | 19 +++++-------------- test/cpp/qps/qps_openloop_test.cc | 2 +- test/cpp/qps/qps_test.cc | 4 ++-- test/cpp/qps/qps_worker.cc | 17 ++++++++++++----- test/cpp/qps/report.cc | 7 ++++--- test/cpp/qps/server.h | 5 ++++- test/cpp/qps/server_async.cc | 12 ++++++------ test/cpp/qps/server_sync.cc | 2 +- test/cpp/qps/sync_streaming_ping_pong_test.cc | 7 +++---- test/cpp/qps/sync_unary_ping_pong_test.cc | 7 +++---- test/proto/benchmarks/control.proto | 14 ++++++++------ 19 files changed, 72 insertions(+), 67 deletions(-) diff --git a/test/cpp/qps/async_streaming_ping_pong_test.cc b/test/cpp/qps/async_streaming_ping_pong_test.cc index e3a614e7433..c66aa19e18a 100644 --- a/test/cpp/qps/async_streaming_ping_pong_test.cc +++ b/test/cpp/qps/async_streaming_ping_pong_test.cc @@ -58,12 +58,12 @@ static void RunAsyncStreamingPingPong() { client_config.set_payload_size(1); client_config.set_async_client_threads(1); client_config.set_rpc_type(STREAMING); - client_config.mutable_load_params()->mutable_closed(); + client_config.mutable_load_params()->mutable_closed_loop(); ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); server_config.set_use_tls(false); - server_config.set_threads(1); + server_config.set_async_server_threads(1); const auto result = RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); diff --git a/test/cpp/qps/async_unary_ping_pong_test.cc b/test/cpp/qps/async_unary_ping_pong_test.cc index caed835325e..efc599d6986 100644 --- a/test/cpp/qps/async_unary_ping_pong_test.cc +++ b/test/cpp/qps/async_unary_ping_pong_test.cc @@ -58,12 +58,12 @@ static void RunAsyncUnaryPingPong() { client_config.set_payload_size(1); client_config.set_async_client_threads(1); client_config.set_rpc_type(UNARY); - client_config.mutable_load_params()->mutable_closed(); + client_config.mutable_load_params()->mutable_closed_loop(); ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); server_config.set_use_tls(false); - server_config.set_threads(1); + server_config.set_async_server_threads(1); const auto result = RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h index 110249bd259..961e714fa82 100644 --- a/test/cpp/qps/client.h +++ b/test/cpp/qps/client.h @@ -41,7 +41,7 @@ #include "test/cpp/qps/interarrival.h" #include "test/cpp/qps/timer.h" #include "test/cpp/util/create_test_channel.h" -#include "test/proto/perf_tests/perf_services.grpc.pb.h" +#include "test/proto/benchmarks/services.grpc.pb.h" namespace grpc { @@ -171,7 +171,7 @@ class Client { } else if (load.has_pareto()) { random_dist.reset(new ParetoDist(load.pareto().interarrival_base() * num_threads, load.pareto().alpha())); - } else if (load.has_closed()) { + } else if (load.has_closed_loop()) { // Closed-loop doesn't use random dist at all } else { // invalid load type GPR_ASSERT(false); diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc index 41db6151c5a..b376f8501b2 100644 --- a/test/cpp/qps/client_async.cc +++ b/test/cpp/qps/client_async.cc @@ -51,7 +51,7 @@ #include "test/cpp/qps/timer.h" #include "test/cpp/qps/client.h" #include "test/cpp/util/create_test_channel.h" -#include "test/proto/perf_tests/perf_services.grpc.pb.h" +#include "test/proto/benchmarks/services.grpc.pb.h" namespace grpc { namespace testing { diff --git a/test/cpp/qps/client_sync.cc b/test/cpp/qps/client_sync.cc index 44d525b1965..10d680860a9 100644 --- a/test/cpp/qps/client_sync.cc +++ b/test/cpp/qps/client_sync.cc @@ -57,7 +57,7 @@ #include "test/cpp/qps/histogram.h" #include "test/cpp/qps/interarrival.h" #include "test/cpp/qps/timer.h" -#include "test/proto/perf_tests/perf_services.grpc.pb.h" +#include "test/proto/benchmarks/services.grpc.pb.h" #include "src/core/profiling/timers.h" diff --git a/test/cpp/qps/driver.cc b/test/cpp/qps/driver.cc index 6c852769a59..2803991b421 100644 --- a/test/cpp/qps/driver.cc +++ b/test/cpp/qps/driver.cc @@ -48,7 +48,7 @@ #include "test/cpp/qps/driver.h" #include "test/cpp/qps/histogram.h" #include "test/cpp/qps/qps_worker.h" -#include "test/proto/perf_tests/perf_services.grpc.pb.h" +#include "test/proto/benchmarks/services.grpc.pb.h" using std::list; using std::thread; @@ -165,7 +165,6 @@ std::unique_ptr RunScenario( WorkerService::NewStub(CreateChannel(workers[i], InsecureCredentials())); ServerArgs args; result_server_config = server_config; - result_server_config.set_host(workers[i]); *args.mutable_setup() = server_config; servers[i].stream = servers[i].stub->RunServer(runsc::AllocContext(&contexts, deadline)); @@ -193,7 +192,6 @@ std::unique_ptr RunScenario( CreateChannel(workers[i + num_servers], InsecureCredentials())); ClientArgs args; result_client_config = client_config; - result_client_config.set_host(workers[i + num_servers]); *args.mutable_setup() = client_config; clients[i].stream = clients[i].stub->RunClient(runsc::AllocContext(&contexts, deadline)); @@ -250,15 +248,18 @@ std::unique_ptr RunScenario( for (auto server = &servers[0]; server != &servers[num_servers]; server++) { GPR_ASSERT(server->stream->Read(&server_status)); const auto& stats = server_status.stats(); - result->server_resources.emplace_back( - stats.time_elapsed(), stats.time_user(), stats.time_system()); + result->server_resources.emplace_back(stats.time_elapsed(), + stats.time_user(), + stats.time_system(), + server_status.cores()); } for (auto client = &clients[0]; client != &clients[num_clients]; client++) { GPR_ASSERT(client->stream->Read(&client_status)); const auto& stats = client_status.stats(); result->latencies.MergeProto(stats.latencies()); - result->client_resources.emplace_back( - stats.time_elapsed(), stats.time_user(), stats.time_system()); + result->client_resources.emplace_back(stats.time_elapsed(), + stats.time_user(), + stats.time_system(), -1); } for (auto client = &clients[0]; client != &clients[num_clients]; client++) { diff --git a/test/cpp/qps/driver.h b/test/cpp/qps/driver.h index 7f69c013b70..50c0ba63a11 100644 --- a/test/cpp/qps/driver.h +++ b/test/cpp/qps/driver.h @@ -37,22 +37,24 @@ #include #include "test/cpp/qps/histogram.h" -#include "test/proto/perf_tests/perf_control.grpc.pb.h" +#include "test/proto/benchmarks/control.grpc.pb.h" namespace grpc { namespace testing { class ResourceUsage { public: - ResourceUsage(double w, double u, double s) - : wall_time_(w), user_time_(u), system_time_(s) {} + ResourceUsage(double w, double u, double s, int c) + : wall_time_(w), user_time_(u), system_time_(s), cores_(c) {} double wall_time() const { return wall_time_; } double user_time() const { return user_time_; } double system_time() const { return system_time_; } + int cores() const { return cores_; } private: double wall_time_; double user_time_; double system_time_; + int cores_; }; struct ScenarioResult { diff --git a/test/cpp/qps/qps-sweep.sh b/test/cpp/qps/qps-sweep.sh index cb932019335..216e40820c4 100755 --- a/test/cpp/qps/qps-sweep.sh +++ b/test/cpp/qps/qps-sweep.sh @@ -39,9 +39,9 @@ bins=`find . .. ../.. ../../.. -name bins | head -1` for channels in 1 2 4 8 do - for client in SYNCHRONOUS_CLIENT ASYNC_CLIENT + for client in SYNC_CLIENT ASYNC_CLIENT do - for server in SYNCHRONOUS_SERVER ASYNC_SERVER + for server in SYNC_SERVER ASYNC_SERVER do for rpc in UNARY STREAMING do diff --git a/test/cpp/qps/qps_driver.cc b/test/cpp/qps/qps_driver.cc index 658cf873e84..a314be6f69a 100644 --- a/test/cpp/qps/qps_driver.cc +++ b/test/cpp/qps/qps_driver.cc @@ -54,15 +54,15 @@ DEFINE_bool(use_tls, false, "Use TLS"); DEFINE_string(rpc_type, "UNARY", "Type of RPC: UNARY or STREAMING"); // Server config -DEFINE_int32(server_threads, 1, "Number of server threads"); -DEFINE_string(server_type, "SYNCHRONOUS_SERVER", "Server type"); +DEFINE_int32(async_server_threads, 1, "Number of threads for async servers"); +DEFINE_string(server_type, "SYNC_SERVER", "Server type"); // Client config DEFINE_int32(outstanding_rpcs_per_channel, 1, "Number of outstanding rpcs per channel"); DEFINE_int32(client_channels, 1, "Number of client channels"); DEFINE_int32(payload_size, 1, "Payload size"); -DEFINE_string(client_type, "SYNCHRONOUS_CLIENT", "Client type"); +DEFINE_string(client_type, "SYNC_CLIENT", "Client type"); DEFINE_int32(async_client_threads, 1, "Async client threads"); DEFINE_double(poisson_load, -1.0, "Poisson offered load (qps)"); @@ -117,23 +117,14 @@ static void QpsDriver() { pareto->set_interarrival_base(FLAGS_pareto_base / 1e6); pareto->set_alpha(FLAGS_pareto_alpha); } else { - client_config.mutable_load_params()->mutable_closed(); + client_config.mutable_load_params()->mutable_closed_loop(); // No further load parameters to set up for closed loop } ServerConfig server_config; server_config.set_server_type(server_type); - server_config.set_threads(FLAGS_server_threads); server_config.set_use_tls(FLAGS_use_tls); - - // If we're running a sync-server streaming test, make sure - // that we have at least as many threads as the active streams - // or else threads will be blocked from forward progress and the - // client will deadlock on a timer. - GPR_ASSERT(!(server_type == grpc::testing::SYNCHRONOUS_SERVER && - rpc_type == grpc::testing::STREAMING && - FLAGS_server_threads < - FLAGS_client_channels * FLAGS_outstanding_rpcs_per_channel)); + server_config.set_async_server_threads(FLAGS_async_server_threads); const auto result = RunScenario( client_config, FLAGS_num_clients, server_config, FLAGS_num_servers, diff --git a/test/cpp/qps/qps_openloop_test.cc b/test/cpp/qps/qps_openloop_test.cc index 918381b8509..d9f5ffc2efd 100644 --- a/test/cpp/qps/qps_openloop_test.cc +++ b/test/cpp/qps/qps_openloop_test.cc @@ -64,7 +64,7 @@ static void RunQPS() { ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); server_config.set_use_tls(false); - server_config.set_threads(4); + server_config.set_async_server_threads(4); const auto result = RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); diff --git a/test/cpp/qps/qps_test.cc b/test/cpp/qps/qps_test.cc index 82850e5dbe4..770a0d4ebf4 100644 --- a/test/cpp/qps/qps_test.cc +++ b/test/cpp/qps/qps_test.cc @@ -58,12 +58,12 @@ static void RunQPS() { client_config.set_payload_size(1); client_config.set_async_client_threads(8); client_config.set_rpc_type(UNARY); - client_config.mutable_load_params()->mutable_closed(); + client_config.mutable_load_params()->mutable_closed_loop(); ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); server_config.set_use_tls(false); - server_config.set_threads(8); + server_config.set_async_server_threads(8); const auto result = RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); diff --git a/test/cpp/qps/qps_worker.cc b/test/cpp/qps/qps_worker.cc index cad2a9e0645..0b34daec63f 100644 --- a/test/cpp/qps/qps_worker.cc +++ b/test/cpp/qps/qps_worker.cc @@ -55,14 +55,14 @@ #include "test/cpp/qps/client.h" #include "test/cpp/qps/server.h" #include "test/cpp/util/create_test_channel.h" -#include "test/proto/perf_tests/perf_services.pb.h" +#include "test/proto/benchmarks/services.pb.h" namespace grpc { namespace testing { -std::unique_ptr CreateClient(const ClientConfig& config) { +static std::unique_ptr CreateClient(const ClientConfig& config) { switch (config.client_type()) { - case ClientType::SYNCHRONOUS_CLIENT: + case ClientType::SYNC_CLIENT: return (config.rpc_type() == RpcType::UNARY) ? CreateSynchronousUnaryClient(config) : CreateSynchronousStreamingClient(config); @@ -76,9 +76,15 @@ std::unique_ptr CreateClient(const ClientConfig& config) { abort(); } -std::unique_ptr CreateServer(const ServerConfig& config) { +static void LimitCores(int cores) { +} + +static std::unique_ptr CreateServer(const ServerConfig& config) { + if (config.core_limit() > 0) { + LimitCores(config.core_limit()); + } switch (config.server_type()) { - case ServerType::SYNCHRONOUS_SERVER: + case ServerType::SYNC_SERVER: return CreateSynchronousServer(config); case ServerType::ASYNC_SERVER: return CreateAsyncServer(config); @@ -195,6 +201,7 @@ class WorkerServiceImpl GRPC_FINAL : public WorkerService::Service { } ServerStatus status; status.set_port(server->Port()); + status.set_cores(server->Cores()); if (!stream->Write(status)) { return Status(StatusCode::UNKNOWN, ""); } diff --git a/test/cpp/qps/report.cc b/test/cpp/qps/report.cc index e03e8e1fb08..b230eb441e8 100644 --- a/test/cpp/qps/report.cc +++ b/test/cpp/qps/report.cc @@ -43,6 +43,7 @@ namespace testing { static double WallTime(ResourceUsage u) { return u.wall_time(); } static double UserTime(ResourceUsage u) { return u.user_time(); } static double SystemTime(ResourceUsage u) { return u.system_time(); } +static int Cores(ResourceUsage u) { return u.cores(); } void CompositeReporter::add(std::unique_ptr reporter) { reporters_.emplace_back(std::move(reporter)); @@ -83,7 +84,7 @@ void GprLogReporter::ReportQPSPerCore(const ScenarioResult& result) { result.latencies.Count() / average(result.client_resources, WallTime); gpr_log(GPR_INFO, "QPS: %.1f (%.1f/server core)", qps, - qps / result.server_config.threads()); + qps / sum(result.server_resources, Cores)); } void GprLogReporter::ReportLatency(const ScenarioResult& result) { @@ -123,10 +124,10 @@ void PerfDbReporter::ReportQPSPerCore(const ScenarioResult& result) { auto qps = result.latencies.Count() / average(result.client_resources, WallTime); - auto qpsPerCore = qps / result.server_config.threads(); + auto qps_per_core = qps / sum(result.server_resources, Cores); perf_db_client_.setQps(qps); - perf_db_client_.setQpsPerCore(qpsPerCore); + perf_db_client_.setQpsPerCore(qps_per_core); perf_db_client_.setConfigs(result.client_config, result.server_config); } diff --git a/test/cpp/qps/server.h b/test/cpp/qps/server.h index 3ea9382e509..12bbf1fef65 100644 --- a/test/cpp/qps/server.h +++ b/test/cpp/qps/server.h @@ -34,10 +34,12 @@ #ifndef TEST_QPS_SERVER_H #define TEST_QPS_SERVER_H +#include + #include "test/core/util/port.h" #include "test/cpp/qps/timer.h" #include "test/proto/messages.grpc.pb.h" -#include "test/proto/perf_tests/perf_control.grpc.pb.h" +#include "test/proto/benchmarks/control.grpc.pb.h" namespace grpc { namespace testing { @@ -83,6 +85,7 @@ class Server { } int Port() const {return port_;} + int Cores() const {return gpr_cpu_num_cores();} private: int port_; std::unique_ptr timer_; diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc index 2b3f7a38fb0..b4b397afa82 100644 --- a/test/cpp/qps/server_async.cc +++ b/test/cpp/qps/server_async.cc @@ -50,7 +50,7 @@ #include #include "test/cpp/qps/server.h" -#include "test/proto/perf_tests/perf_services.grpc.pb.h" +#include "test/proto/benchmarks/services.grpc.pb.h" namespace grpc { namespace testing { @@ -67,15 +67,15 @@ class AsyncQpsServerTest : public Server { gpr_free(server_address); builder.RegisterAsyncService(&async_service_); - for (int i = 0; i < config.threads(); i++) { + for (int i = 0; i < config.async_server_threads(); i++) { srv_cqs_.emplace_back(builder.AddCompletionQueue()); } server_ = builder.BuildAndStart(); using namespace std::placeholders; - for (int i = 0; i < 10000 / config.threads(); i++) { - for (int j = 0; j < config.threads(); j++) { + for (int i = 0; i < 10000 / config.async_server_threads(); i++) { + for (int j = 0; j < config.async_server_threads(); j++) { auto request_unary = std::bind( &BenchmarkService::AsyncService::RequestUnaryCall, &async_service_, _1, _2, _3, srv_cqs_[j].get(), srv_cqs_[j].get(), _4); @@ -90,10 +90,10 @@ class AsyncQpsServerTest : public Server { request_streaming, ProcessRPC)); } } - for (int i = 0; i < config.threads(); i++) { + for (int i = 0; i < config.async_server_threads(); i++) { shutdown_state_.emplace_back(new PerThreadShutdownState()); } - for (int i = 0; i < config.threads(); i++) { + for (int i = 0; i < config.async_server_threads(); i++) { threads_.emplace_back(&AsyncQpsServerTest::ThreadFunc, this, i); } } diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc index 3e7cf1d4cb3..feca7e2ac24 100644 --- a/test/cpp/qps/server_sync.cc +++ b/test/cpp/qps/server_sync.cc @@ -45,7 +45,7 @@ #include "test/cpp/qps/server.h" #include "test/cpp/qps/timer.h" -#include "test/proto/perf_tests/perf_services.grpc.pb.h" +#include "test/proto/benchmarks/services.grpc.pb.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 ce10a87ab37..dd3be736859 100644 --- a/test/cpp/qps/sync_streaming_ping_pong_test.cc +++ b/test/cpp/qps/sync_streaming_ping_pong_test.cc @@ -51,18 +51,17 @@ static void RunSynchronousStreamingPingPong() { gpr_log(GPR_INFO, "Running Synchronous Streaming Ping Pong"); ClientConfig client_config; - client_config.set_client_type(SYNCHRONOUS_CLIENT); + client_config.set_client_type(SYNC_CLIENT); client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); client_config.set_payload_size(1); client_config.set_rpc_type(STREAMING); - client_config.mutable_load_params()->mutable_closed(); + client_config.mutable_load_params()->mutable_closed_loop(); ServerConfig server_config; - server_config.set_server_type(SYNCHRONOUS_SERVER); + server_config.set_server_type(SYNC_SERVER); server_config.set_use_tls(false); - server_config.set_threads(1); const auto result = RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); diff --git a/test/cpp/qps/sync_unary_ping_pong_test.cc b/test/cpp/qps/sync_unary_ping_pong_test.cc index c20e2c5ff0b..2c1d2aa764e 100644 --- a/test/cpp/qps/sync_unary_ping_pong_test.cc +++ b/test/cpp/qps/sync_unary_ping_pong_test.cc @@ -51,18 +51,17 @@ static void RunSynchronousUnaryPingPong() { gpr_log(GPR_INFO, "Running Synchronous Unary Ping Pong"); ClientConfig client_config; - client_config.set_client_type(SYNCHRONOUS_CLIENT); + client_config.set_client_type(SYNC_CLIENT); client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); client_config.set_payload_size(1); client_config.set_rpc_type(UNARY); - client_config.mutable_load_params()->mutable_closed(); + client_config.mutable_load_params()->mutable_closed_loop(); ServerConfig server_config; - server_config.set_server_type(SYNCHRONOUS_SERVER); + server_config.set_server_type(SYNC_SERVER); server_config.set_use_tls(false); - server_config.set_threads(1); const auto result = RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); diff --git a/test/proto/benchmarks/control.proto b/test/proto/benchmarks/control.proto index e0fe8c0d26b..50c2a31633a 100644 --- a/test/proto/benchmarks/control.proto +++ b/test/proto/benchmarks/control.proto @@ -91,8 +91,7 @@ message ClientConfig { // only for async client: int32 async_client_threads = 7; RpcType rpc_type = 8; - string host = 9; - LoadParams load_params = 11; + LoadParams load_params = 10; } message ClientStatus { @@ -113,10 +112,12 @@ message ClientArgs { message ServerConfig { ServerType server_type = 1; - int32 threads = 2; - bool use_tls = 3; - string host = 4; - int32 port = 5; + bool use_tls = 2; + int32 port = 4; + // only for async server + int32 async_server_threads = 7; + // restrict core usage + int32 core_limit = 8; } message ServerArgs { @@ -129,4 +130,5 @@ message ServerArgs { message ServerStatus { ServerStats stats = 1; int32 port = 2; + int32 cores = 3; } From 2271ab5aeab775cb0a6382ae1e0a6979e7e4210c Mon Sep 17 00:00:00 2001 From: Adele Zhou Date: Wed, 28 Oct 2015 13:59:14 -0700 Subject: [PATCH 072/103] Create a separate utility for reporting. --- tools/run_tests/dockerjob.py | 2 +- tools/run_tests/generate_reports.py | 172 +++++++++++++++++++++++++++ tools/run_tests/jobset.py | 29 ++--- tools/run_tests/run_interop_tests.py | 136 ++------------------- tools/run_tests/run_tests.py | 11 +- 5 files changed, 190 insertions(+), 160 deletions(-) create mode 100644 tools/run_tests/generate_reports.py diff --git a/tools/run_tests/dockerjob.py b/tools/run_tests/dockerjob.py index 1d67fe3033e..7d64222ba0b 100755 --- a/tools/run_tests/dockerjob.py +++ b/tools/run_tests/dockerjob.py @@ -101,7 +101,7 @@ class DockerJob: def __init__(self, spec): self._spec = spec - self._job = jobset.Job(spec, bin_hash=None, newline_on_success=True, travis=True, add_env={}, xml_report=None) + self._job = jobset.Job(spec, bin_hash=None, newline_on_success=True, travis=True, add_env={}) self._container_name = spec.container_name def mapped_port(self, port): diff --git a/tools/run_tests/generate_reports.py b/tools/run_tests/generate_reports.py new file mode 100644 index 00000000000..6ba47e9c2ef --- /dev/null +++ b/tools/run_tests/generate_reports.py @@ -0,0 +1,172 @@ +# 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. + +"""Generate XML and HTML test reports.""" + +import os +import xml.etree.cElementTree as ET + + +def render_xml_report(resultset, xml_report): + """Generate JUnit-like XML report.""" + root = ET.Element('testsuites') + testsuite = ET.SubElement(root, 'testsuite', id='1', package='grpc', + name='tests') + for shortname, results in resultset.iteritems(): + for result in results: + xml_test = ET.SubElement(testsuite, 'testcase', name=shortname) + if result.elapsed_time: + xml_test.set('time', str(result.elapsed_time)) + ET.SubElement(xml_test, 'system-out').text = result.message + if result.state == 'FAILED': + ET.SubElement(xml_test, 'failure', message='Failure') + elif result.state == 'TIMEOUT': + ET.SubElement(xml_test, 'error', message='Timeout') + tree = ET.ElementTree(root) + tree.write(xml_report, encoding='UTF-8') + + +# TODO(adelez): Use mako template. +def fill_one_test_result(shortname, resultset, html_str): + if shortname in resultset: + # Because interop tests does not have runs_per_test flag, each test is run + # once. So there should only be one element for each result. + result = resultset[shortname][0] + if result.state == 'PASSED': + html_str = '%sPASS\n' % html_str + else: + tooltip = '' + if result.returncode > 0 or result.message: + if result.returncode > 0: + tooltip = 'returncode: %d ' % result.returncode + if result.message: + escaped_msg = result.message.replace('"', '"') + tooltip = '%smessage: %s' % (tooltip, escaped_msg) + if result.state == 'FAILED': + html_str = '%s' % html_str + if tooltip: + html_str = ('%sFAIL\n' % + (html_str, tooltip)) + else: + html_str = '%sFAIL\n' % html_str + elif result.state == 'TIMEOUT': + html_str = '%s' % html_str + if tooltip: + html_str = ('%sTIMEOUT\n' + % (html_str, tooltip)) + else: + html_str = '%sTIMEOUT\n' % html_str + else: + html_str = '%sNot implemented\n' % html_str + + return html_str + + +def render_html_report(client_langs, server_langs, test_cases, auth_test_cases, + resultset, num_failures, cloud_to_prod): + """Generate html report.""" + sorted_test_cases = sorted(test_cases) + sorted_auth_test_cases = sorted(auth_test_cases) + sorted_client_langs = sorted(client_langs) + sorted_server_langs = sorted(server_langs) + html_str = ('\n' + '\n' + 'Interop Test Result\n' + '\n') + if num_failures > 1: + html_str = ( + '%s

%d tests failed!

\n' % + (html_str, num_failures)) + elif num_failures: + html_str = ( + '%s

%d test failed!

\n' % + (html_str, num_failures)) + else: + html_str = ( + '%s

All tests passed!

\n' % + html_str) + if cloud_to_prod: + # Each column header is the client language. + html_str = ('%s

Cloud to Prod

\n' + '\n' + '\n' + '\n') % html_str + for client_lang in sorted_client_langs: + html_str = '%s\n' % html_str + for test_case in sorted_test_cases + sorted_auth_test_cases: + html_str = '%s\n' % (html_str, test_case) + for client_lang in sorted_client_langs: + if not test_case in sorted_auth_test_cases: + shortname = 'cloud_to_prod:%s:%s' % (client_lang, test_case) + else: + shortname = 'cloud_to_prod_auth:%s:%s' % (client_lang, test_case) + html_str = fill_one_test_result(shortname, resultset, html_str) + html_str = '%s\n' % html_str + html_str = '%s
Client languages ►%s\n' % (html_str, client_lang) + html_str = '%s
%s
\n' % html_str + if server_langs: + for test_case in sorted_test_cases: + # Each column header is the client language. + html_str = ('%s

%s

\n' + '\n' + '\n' + '\n') % (html_str, test_case) + for client_lang in sorted_client_langs: + html_str = '%s\n' % html_str + # Each row head is the server language. + for server_lang in sorted_server_langs: + html_str = '%s\n' % (html_str, server_lang) + # Fill up the cells with test result. + for client_lang in sorted_client_langs: + shortname = 'cloud_to_cloud:%s:%s_server:%s' % ( + client_lang, server_lang, test_case) + html_str = fill_one_test_result(shortname, resultset, html_str) + html_str = '%s\n' % html_str + html_str = '%s
Client languages ►
' + 'Server languages ▼
%s\n' % (html_str, client_lang) + html_str = '%s
%s
\n' % html_str + + html_str = ('%s\n' + '\n' + '\n' + '') % html_str + + # Write to reports/index.html as set up in Jenkins plugin. + html_report_dir = 'reports' + if not os.path.exists(html_report_dir): + os.mkdir(html_report_dir) + html_file_path = os.path.join(html_report_dir, 'index.html') + with open(html_file_path, 'w') as f: + f.write(html_str) diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py index a8ff9f613fb..95bd7c7256a 100755 --- a/tools/run_tests/jobset.py +++ b/tools/run_tests/jobset.py @@ -39,7 +39,6 @@ import subprocess import sys import tempfile import time -import xml.etree.cElementTree as ET _DEFAULT_MAX_JOBS = 16 * multiprocessing.cpu_count() @@ -190,14 +189,12 @@ class JobResult(object): class Job(object): """Manages one job.""" - def __init__(self, spec, bin_hash, newline_on_success, travis, add_env, xml_report): + def __init__(self, spec, bin_hash, newline_on_success, travis, add_env): self._spec = spec self._bin_hash = bin_hash self._newline_on_success = newline_on_success self._travis = travis self._add_env = add_env.copy() - self._xml_test = ET.SubElement(xml_report, 'testcase', - name=self._spec.shortname) if xml_report is not None else None self._retries = 0 self._timeout_retries = 0 self._suppress_failure_message = False @@ -229,15 +226,12 @@ class Job(object): self._tempfile.seek(0) stdout = self._tempfile.read() filtered_stdout = _filter_stdout(stdout) - # TODO: looks like jenkins master is slow because parsing the junit results XMLs is not - # implemented efficiently. This is an experiment to workaround the issue by making sure - # results.xml file is small enough. + # TODO: looks like jenkins master is slow because parsing the junit + # results XMLs is not implemented efficiently. This is an experiment to + # workaround the issue by making sure results.xml file is small enough. filtered_stdout = filtered_stdout[-128:] self.result.message = filtered_stdout self.result.elapsed_time = elapsed - if self._xml_test is not None: - self._xml_test.set('time', str(elapsed)) - ET.SubElement(self._xml_test, 'system-out').text = filtered_stdout if self._process.returncode != 0: if self._retries < self._spec.flake_retries: message('FLAKE', '%s [ret=%d, pid=%d]' % ( @@ -256,8 +250,6 @@ class Job(object): self.result.state = 'FAILED' self.result.num_failures += 1 self.result.returncode = self._process.returncode - if self._xml_test is not None: - ET.SubElement(self._xml_test, 'failure', message='Failure') else: self._state = _SUCCESS message('PASSED', '%s [time=%.1fsec; retries=%d;%d]' % ( @@ -285,9 +277,6 @@ class Job(object): self.kill() self.result.state = 'TIMEOUT' self.result.num_failures += 1 - if self._xml_test is not None: - ET.SubElement(self._xml_test, 'system-out').text = filtered_stdout - ET.SubElement(self._xml_test, 'error', message='Timeout') return self._state def kill(self): @@ -305,7 +294,7 @@ class Jobset(object): """Manages one run of jobs.""" def __init__(self, check_cancelled, maxjobs, newline_on_success, travis, - stop_on_failure, add_env, cache, xml_report): + stop_on_failure, add_env, cache): self._running = set() self._check_cancelled = check_cancelled self._cancelled = False @@ -317,7 +306,6 @@ class Jobset(object): self._cache = cache self._stop_on_failure = stop_on_failure self._hashes = {} - self._xml_report = xml_report self._add_env = add_env self.resultset = {} @@ -349,8 +337,7 @@ class Jobset(object): bin_hash, self._newline_on_success, self._travis, - self._add_env, - self._xml_report) + self._add_env) self._running.add(job) self.resultset[job.GetSpec().shortname] = [] return True @@ -424,13 +411,11 @@ def run(cmdlines, infinite_runs=False, stop_on_failure=False, cache=None, - xml_report=None, add_env={}): js = Jobset(check_cancelled, maxjobs if maxjobs is not None else _DEFAULT_MAX_JOBS, newline_on_success, travis, stop_on_failure, add_env, - cache if cache is not None else NoCache(), - xml_report) + cache if cache is not None else NoCache()) for cmdline in cmdlines: if not js.start(cmdline): break diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py index 729f962bb18..efbfe1f269a 100755 --- a/tools/run_tests/run_interop_tests.py +++ b/tools/run_tests/run_interop_tests.py @@ -33,7 +33,7 @@ import argparse import dockerjob import itertools -import xml.etree.cElementTree as ET +import generate_reports import jobset import multiprocessing import os @@ -471,126 +471,6 @@ def build_interop_image_jobspec(language, tag=None): return build_job -# TODO(adelez): Use mako template. -def fill_one_test_result(shortname, resultset, html_str): - if shortname in resultset: - # Because interop tests does not have runs_per_test flag, each test is run - # once. So there should only be one element for each result. - result = resultset[shortname][0] - if result.state == 'PASSED': - html_str = '%sPASS\n' % html_str - else: - tooltip = '' - if result.returncode > 0 or result.message: - if result.returncode > 0: - tooltip = 'returncode: %d ' % result.returncode - if result.message: - escaped_msg = result.message.replace('"', '"') - tooltip = '%smessage: %s' % (tooltip, escaped_msg) - if result.state == 'FAILED': - html_str = '%s' % html_str - if tooltip: - html_str = ('%sFAIL\n' % - (html_str, tooltip)) - else: - html_str = '%sFAIL\n' % html_str - elif result.state == 'TIMEOUT': - html_str = '%s' % html_str - if tooltip: - html_str = ('%sTIMEOUT\n' - % (html_str, tooltip)) - else: - html_str = '%sTIMEOUT\n' % html_str - else: - html_str = '%sNot implemented\n' % html_str - - return html_str - - -def render_html_report(client_langs, server_langs, resultset, - num_failures): - """Generate html report.""" - sorted_test_cases = sorted(_TEST_CASES) - sorted_auth_test_cases = sorted(_AUTH_TEST_CASES) - sorted_client_langs = sorted(client_langs) - sorted_server_langs = sorted(server_langs) - html_str = ('\n' - '\n' - 'Interop Test Result\n' - '\n') - if num_failures > 1: - html_str = ( - '%s

%d tests failed!

\n' % - (html_str, num_failures)) - elif num_failures: - html_str = ( - '%s

%d test failed!

\n' % - (html_str, num_failures)) - else: - html_str = ( - '%s

All tests passed!

\n' % - html_str) - if args.cloud_to_prod_auth or args.cloud_to_prod: - # Each column header is the client language. - html_str = ('%s

Cloud to Prod

\n' - '\n' - '\n' - '\n') % html_str - for client_lang in sorted_client_langs: - html_str = '%s\n' % html_str - for test_case in sorted_test_cases + sorted_auth_test_cases: - html_str = '%s\n' % (html_str, test_case) - for client_lang in sorted_client_langs: - if not test_case in sorted_auth_test_cases: - shortname = 'cloud_to_prod:%s:%s' % (client_lang, test_case) - else: - shortname = 'cloud_to_prod_auth:%s:%s' % (client_lang, test_case) - html_str = fill_one_test_result(shortname, resultset, html_str) - html_str = '%s\n' % html_str - html_str = '%s
Client languages ►%s\n' % (html_str, client_lang) - html_str = '%s
%s
\n' % html_str - if servers: - for test_case in sorted_test_cases: - # Each column header is the client language. - html_str = ('%s

%s

\n' - '\n' - '\n' - '\n') % (html_str, test_case) - for client_lang in sorted_client_langs: - html_str = '%s\n' % html_str - # Each row head is the server language. - for server_lang in sorted_server_langs: - html_str = '%s\n' % (html_str, server_lang) - # Fill up the cells with test result. - for client_lang in sorted_client_langs: - shortname = 'cloud_to_cloud:%s:%s_server:%s' % ( - client_lang, server_lang, test_case) - html_str = fill_one_test_result(shortname, resultset, html_str) - html_str = '%s\n' % html_str - html_str = '%s
Client languages ►
' - 'Server languages ▼
%s\n' % (html_str, client_lang) - html_str = '%s
%s
\n' % html_str - - html_str = ('%s\n' - '\n' - '\n' - '') % html_str - - # Write to reports/index.html as set up in Jenkins plugin. - html_report_dir = 'reports' - if not os.path.exists(html_report_dir): - os.mkdir(html_report_dir) - html_file_path = os.path.join(html_report_dir, 'index.html') - with open(html_file_path, 'w') as f: - f.write(html_str) - - argp = argparse.ArgumentParser(description='Run interop tests.') argp.add_argument('-l', '--language', choices=['all'] + sorted(_LANGUAGES), @@ -740,22 +620,20 @@ try: dockerjob.remove_image(image, skip_nonexistent=True) sys.exit(1) - root = ET.Element('testsuites') - testsuite = ET.SubElement(root, 'testsuite', id='1', package='grpc', name='tests') - num_failures, resultset = jobset.run(jobs, newline_on_success=True, - maxjobs=args.jobs, xml_report=testsuite) + maxjobs=args.jobs) if num_failures: jobset.message('FAILED', 'Some tests failed', do_newline=True) else: jobset.message('SUCCESS', 'All tests passed', do_newline=True) - tree = ET.ElementTree(root) - tree.write('report.xml', encoding='UTF-8') + # Generate XML report. + generate_reports.render_xml_report(resultset, 'report.xml') # Generate HTML report. - render_html_report(set([str(l) for l in languages]), servers, - resultset, num_failures) + generate_reports.render_html_report( + set([str(l) for l in languages]), servers, _TEST_CASES, _AUTH_TEST_CASES, + resultset, num_failures, args.cloud_to_prod_auth or args.cloud_to_prod) finally: # Check if servers are still running. diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 4232637c7f8..725b4812399 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -46,9 +46,9 @@ import sys import tempfile import traceback import time -import xml.etree.cElementTree as ET import urllib2 +import generate_reports import jobset import watch_dirs @@ -867,15 +867,11 @@ def _build_and_run( else itertools.repeat(massaged_one_run, runs_per_test)) all_runs = itertools.chain.from_iterable(runs_sequence) - root = ET.Element('testsuites') if xml_report else None - testsuite = ET.SubElement(root, 'testsuite', id='1', package='grpc', name='tests') if xml_report else None - number_failures, resultset = jobset.run( - all_runs, check_cancelled, newline_on_success=newline_on_success, + all_runs, check_cancelled, newline_on_success=newline_on_success, travis=travis, infinite_runs=infinite_runs, maxjobs=args.jobs, stop_on_failure=args.stop_on_failure, cache=cache if not xml_report else None, - xml_report=testsuite, add_env={'GRPC_TEST_PORT_SERVER': 'localhost:%d' % port_server_port}) if resultset: for k, v in resultset.iteritems(): @@ -894,8 +890,7 @@ def _build_and_run( for antagonist in antagonists: antagonist.kill() if xml_report: - tree = ET.ElementTree(root) - tree.write(xml_report, encoding='UTF-8') + generate_reports.render_xml_report(resultset, xml_report) number_failures, _ = jobset.run( post_tests_steps, maxjobs=1, stop_on_failure=True, From a30f829e62ca245db7d2ddcd22054b1494ce3a4c Mon Sep 17 00:00:00 2001 From: Adele Zhou Date: Mon, 2 Nov 2015 13:15:46 -0800 Subject: [PATCH 073/103] Renamed report_utils.py. --- tools/run_tests/{generate_reports.py => report_utils.py} | 0 tools/run_tests/run_interop_tests.py | 8 +++----- tools/run_tests/run_tests.py | 4 ++-- 3 files changed, 5 insertions(+), 7 deletions(-) rename tools/run_tests/{generate_reports.py => report_utils.py} (100%) diff --git a/tools/run_tests/generate_reports.py b/tools/run_tests/report_utils.py similarity index 100% rename from tools/run_tests/generate_reports.py rename to tools/run_tests/report_utils.py diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py index efbfe1f269a..cebe2468867 100755 --- a/tools/run_tests/run_interop_tests.py +++ b/tools/run_tests/run_interop_tests.py @@ -33,10 +33,10 @@ import argparse import dockerjob import itertools -import generate_reports import jobset import multiprocessing import os +import report_utils import subprocess import sys import tempfile @@ -627,11 +627,9 @@ try: else: jobset.message('SUCCESS', 'All tests passed', do_newline=True) - # Generate XML report. - generate_reports.render_xml_report(resultset, 'report.xml') + report_utils.render_xml_report(resultset, 'report.xml') - # Generate HTML report. - generate_reports.render_html_report( + report_utils.render_html_report( set([str(l) for l in languages]), servers, _TEST_CASES, _AUTH_TEST_CASES, resultset, num_failures, args.cloud_to_prod_auth or args.cloud_to_prod) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index 725b4812399..ae7899e47ee 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -48,8 +48,8 @@ import traceback import time import urllib2 -import generate_reports import jobset +import report_utils import watch_dirs ROOT = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '../..')) @@ -890,7 +890,7 @@ def _build_and_run( for antagonist in antagonists: antagonist.kill() if xml_report: - generate_reports.render_xml_report(resultset, xml_report) + report_utils.render_xml_report(resultset, xml_report) number_failures, _ = jobset.run( post_tests_steps, maxjobs=1, stop_on_failure=True, From 472bb6849cd9b51589e27d0d124e6a883d1de1e6 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Tue, 3 Nov 2015 19:09:01 +0100 Subject: [PATCH 074/103] Fixing proto dependencies for targets that aren't libraries. --- Makefile | 5 +++++ templates/Makefile.template | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/Makefile b/Makefile index a25523310ea..819ac7a6494 100644 --- a/Makefile +++ b/Makefile @@ -10235,6 +10235,7 @@ ifneq ($(NO_DEPS),true) -include $(RECONNECT_INTEROP_CLIENT_OBJS:.o=.dep) endif endif +$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_client.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc RECONNECT_INTEROP_SERVER_SRC = \ @@ -10281,6 +10282,7 @@ ifneq ($(NO_DEPS),true) -include $(RECONNECT_INTEROP_SERVER_OBJS:.o=.dep) endif endif +$(OBJDIR)/$(CONFIG)/test/cpp/interop/reconnect_interop_server.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc SECURE_AUTH_CONTEXT_TEST_SRC = \ @@ -10571,6 +10573,9 @@ ifneq ($(NO_DEPS),true) -include $(STRESS_TEST_OBJS:.o=.dep) endif endif +$(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_interop_client.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/interop/stress_test.o: $(GENDIR)/test/proto/empty.pb.cc $(GENDIR)/test/proto/empty.grpc.pb.cc $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/test.pb.cc $(GENDIR)/test/proto/test.grpc.pb.cc SYNC_STREAMING_PING_PONG_TEST_SRC = \ diff --git a/templates/Makefile.template b/templates/Makefile.template index 115d8136b53..20d14c797f9 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -1851,6 +1851,11 @@ endif % endif % endif + % for src in tgt.src: + % if not proto_re.match(src) and any(proto_re.match(src2) for src2 in tgt.src): + $(OBJDIR)/$(CONFIG)/${os.path.splitext(src)[0]}.o: ${' '.join(proto_to_cc(src2) for src2 in tgt.src if proto_re.match(src2))} + % endif + % endfor ifneq ($(OPENSSL_DEP),) From d01cbe324c81a492b14062ff5884f38cb2c34c4f Mon Sep 17 00:00:00 2001 From: Adele Zhou Date: Mon, 2 Nov 2015 14:20:43 -0800 Subject: [PATCH 075/103] Move string filter to report_utils --- tools/run_tests/jobset.py | 25 ++++--------------------- tools/run_tests/report_utils.py | 21 +++++++++++++++++++-- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py index 95bd7c7256a..0c4d1b8143c 100755 --- a/tools/run_tests/jobset.py +++ b/tools/run_tests/jobset.py @@ -34,7 +34,6 @@ import multiprocessing import os import platform import signal -import string import subprocess import sys import tempfile @@ -42,6 +41,7 @@ import time _DEFAULT_MAX_JOBS = 16 * multiprocessing.cpu_count() +_MAX_RESULT_SIZE = 8192 # setup a signal handler so that signal.pause registers 'something' @@ -129,14 +129,6 @@ def which(filename): raise Exception('%s not found' % filename) -def _filter_stdout(stdout): - """Filters out nonprintable and XML-illegal characters from stdout.""" - # keep whitespaces but remove formfeed and vertical tab characters - # that make XML report unparseable. - return filter(lambda x: x in string.printable and x != '\f' and x != '\v', - stdout.decode(errors='ignore')) - - class JobSpec(object): """Specifies what to run for a job.""" @@ -221,16 +213,11 @@ class Job(object): def state(self, update_cache): """Poll current state of the job. Prints messages at completion.""" + self._tempfile.seek(0) + stdout = self._tempfile.read() + self.result.message = stdout[-_MAX_RESULT_SIZE:] if self._state == _RUNNING and self._process.poll() is not None: elapsed = time.time() - self._start - self._tempfile.seek(0) - stdout = self._tempfile.read() - filtered_stdout = _filter_stdout(stdout) - # TODO: looks like jenkins master is slow because parsing the junit - # results XMLs is not implemented efficiently. This is an experiment to - # workaround the issue by making sure results.xml file is small enough. - filtered_stdout = filtered_stdout[-128:] - self.result.message = filtered_stdout self.result.elapsed_time = elapsed if self._process.returncode != 0: if self._retries < self._spec.flake_retries: @@ -259,10 +246,6 @@ class Job(object): if self._bin_hash: update_cache.finished(self._spec.identity(), self._bin_hash) elif self._state == _RUNNING and time.time() - self._start > self._spec.timeout_seconds: - self._tempfile.seek(0) - stdout = self._tempfile.read() - filtered_stdout = _filter_stdout(stdout) - self.result.message = filtered_stdout if self._timeout_retries < self._spec.timeout_retries: message('TIMEOUT_FLAKE', self._spec.shortname, stdout, do_newline=True) self._timeout_retries += 1 diff --git a/tools/run_tests/report_utils.py b/tools/run_tests/report_utils.py index 6ba47e9c2ef..57a93d0da05 100644 --- a/tools/run_tests/report_utils.py +++ b/tools/run_tests/report_utils.py @@ -30,9 +30,25 @@ """Generate XML and HTML test reports.""" import os +import string import xml.etree.cElementTree as ET +def _filter_msg(msg, output_format): + """Filters out nonprintable and illegal characters from the message.""" + if output_format in ['XML', 'HTML']: + # keep whitespaces but remove formfeed and vertical tab characters + # that make XML report unparseable. + filtered_msg = filter( + lambda x: x in string.printable and x != '\f' and x != '\v', + msg.decode(errors='ignore')) + if output_format == 'HTML': + filtered_msg = filtered_msg.replace('"', '"') + return filtered_msg + else: + return msg + + def render_xml_report(resultset, xml_report): """Generate JUnit-like XML report.""" root = ET.Element('testsuites') @@ -43,7 +59,8 @@ def render_xml_report(resultset, xml_report): xml_test = ET.SubElement(testsuite, 'testcase', name=shortname) if result.elapsed_time: xml_test.set('time', str(result.elapsed_time)) - ET.SubElement(xml_test, 'system-out').text = result.message + ET.SubElement(xml_test, 'system-out').text = _filter_msg(result.message, + 'XML') if result.state == 'FAILED': ET.SubElement(xml_test, 'failure', message='Failure') elif result.state == 'TIMEOUT': @@ -66,7 +83,7 @@ def fill_one_test_result(shortname, resultset, html_str): if result.returncode > 0: tooltip = 'returncode: %d ' % result.returncode if result.message: - escaped_msg = result.message.replace('"', '"') + escaped_msg = _filter_msg(result.message, 'HTML') tooltip = '%smessage: %s' % (tooltip, escaped_msg) if result.state == 'FAILED': html_str = '%s' % html_str From 04f4054546ccc794fa59e8e989bba14142d50495 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Tue, 3 Nov 2015 11:12:52 -0800 Subject: [PATCH 076/103] use QueryPerformanceCounter as precise clock for windows --- src/core/support/time_win32.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/core/support/time_win32.c b/src/core/support/time_win32.c index bc0586d0691..623a8d92337 100644 --- a/src/core/support/time_win32.c +++ b/src/core/support/time_win32.c @@ -66,14 +66,12 @@ gpr_timespec gpr_now(gpr_clock_type clock) { now_tv.tv_nsec = now_tb.millitm * 1000000; break; case GPR_CLOCK_MONOTONIC: + case GPR_CLOCK_PRECISE: QueryPerformanceCounter(×tamp); now_dbl = (timestamp.QuadPart - g_start_time.QuadPart) * g_time_scale; now_tv.tv_sec = (time_t)now_dbl; now_tv.tv_nsec = (int)((now_dbl - (double)now_tv.tv_sec) * 1e9); break; - case GPR_CLOCK_PRECISE: - gpr_precise_clock_now(&now_tv); - break; } return now_tv; } From 780a7f205d81eb4a63a4040329b527c3082fbf79 Mon Sep 17 00:00:00 2001 From: vjpai Date: Wed, 4 Nov 2015 00:19:09 -0800 Subject: [PATCH 077/103] Add in security support, make payload protos configurable Have not yet added tests with security support, coming soon --- Makefile | 36 ++++++-- build.yaml | 1 + .../cpp/qps/async_streaming_ping_pong_test.cc | 4 +- test/cpp/qps/async_unary_ping_pong_test.cc | 4 +- test/cpp/qps/client.h | 23 ++++- test/cpp/qps/qps_driver.cc | 22 ++++- test/cpp/qps/qps_openloop_test.cc | 4 +- test/cpp/qps/qps_test.cc | 4 +- test/cpp/qps/qps_test_with_poll.cc | 91 ------------------- test/cpp/qps/server.h | 14 +++ test/cpp/qps/server_async.cc | 2 +- test/cpp/qps/server_sync.cc | 2 +- test/cpp/qps/sync_streaming_ping_pong_test.cc | 4 +- test/cpp/qps/sync_unary_ping_pong_test.cc | 4 +- test/proto/benchmarks/control.proto | 16 +++- test/proto/benchmarks/payloads.proto | 56 ++++++++++++ test/proto/benchmarks/stats.proto | 2 - tools/run_tests/sources_and_headers.json | 2 + vsprojects/vcxproj/qps/qps.vcxproj | 8 ++ vsprojects/vcxproj/qps/qps.vcxproj.filters | 3 + 20 files changed, 166 insertions(+), 136 deletions(-) delete mode 100644 test/cpp/qps/qps_test_with_poll.cc create mode 100644 test/proto/benchmarks/payloads.proto diff --git a/Makefile b/Makefile index 39bf687f421..9e2b5e0b10f 100644 --- a/Makefile +++ b/Makefile @@ -3767,6 +3767,21 @@ $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc: test/proto/benchmarks/contro $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< endif +ifeq ($(NO_PROTOC),true) +$(GENDIR)/test/proto/benchmarks/payloads.pb.cc: protoc_dep_error +$(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc: protoc_dep_error +else +$(GENDIR)/test/proto/benchmarks/payloads.pb.cc: test/proto/benchmarks/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[PROTOC] Generating protobuf CC file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) --cpp_out=$(GENDIR) $< + +$(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc: test/proto/benchmarks/payloads.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) + $(E) "[GRPC] Generating gRPC's protobuf service CC file from $<" + $(Q) mkdir -p `dirname $@` + $(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $< +endif + ifeq ($(NO_PROTOC),true) $(GENDIR)/test/proto/benchmarks/services.pb.cc: protoc_dep_error $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc: protoc_dep_error @@ -5420,6 +5435,7 @@ $(OBJDIR)/$(CONFIG)/test/cpp/interop/server.o: $(GENDIR)/test/proto/empty.pb.cc LIBQPS_SRC = \ $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \ $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc \ + $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc \ $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc \ $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc \ $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc \ @@ -5476,16 +5492,16 @@ ifneq ($(NO_DEPS),true) -include $(LIBQPS_OBJS:.o=.dep) endif endif -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/qps/timer.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc -$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/qps/timer.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc +$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/control.pb.cc $(GENDIR)/test/proto/benchmarks/control.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.pb.cc $(GENDIR)/test/proto/benchmarks/payloads.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/services.pb.cc $(GENDIR)/test/proto/benchmarks/services.grpc.pb.cc $(GENDIR)/test/proto/benchmarks/stats.pb.cc $(GENDIR)/test/proto/benchmarks/stats.grpc.pb.cc $(GENDIR)/test/cpp/qps/perf_db.pb.cc $(GENDIR)/test/cpp/qps/perf_db.grpc.pb.cc LIBGRPC_CSHARP_EXT_SRC = \ diff --git a/build.yaml b/build.yaml index 55618182b17..fba87cc07a4 100644 --- a/build.yaml +++ b/build.yaml @@ -753,6 +753,7 @@ libs: src: - test/proto/messages.proto - test/proto/benchmarks/control.proto + - test/proto/benchmarks/payloads.proto - test/proto/benchmarks/services.proto - test/proto/benchmarks/stats.proto - test/cpp/qps/perf_db.proto diff --git a/test/cpp/qps/async_streaming_ping_pong_test.cc b/test/cpp/qps/async_streaming_ping_pong_test.cc index c66aa19e18a..338eebe356f 100644 --- a/test/cpp/qps/async_streaming_ping_pong_test.cc +++ b/test/cpp/qps/async_streaming_ping_pong_test.cc @@ -52,17 +52,15 @@ static void RunAsyncStreamingPingPong() { ClientConfig client_config; client_config.set_client_type(ASYNC_CLIENT); - client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.set_payload_size(1); + client_config.mutable_payload_config()->mutable_simple_params()->set_resp_size(1); client_config.set_async_client_threads(1); client_config.set_rpc_type(STREAMING); client_config.mutable_load_params()->mutable_closed_loop(); ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); - server_config.set_use_tls(false); server_config.set_async_server_threads(1); const auto result = diff --git a/test/cpp/qps/async_unary_ping_pong_test.cc b/test/cpp/qps/async_unary_ping_pong_test.cc index efc599d6986..c17ea6c2cc0 100644 --- a/test/cpp/qps/async_unary_ping_pong_test.cc +++ b/test/cpp/qps/async_unary_ping_pong_test.cc @@ -52,17 +52,15 @@ static void RunAsyncUnaryPingPong() { ClientConfig client_config; client_config.set_client_type(ASYNC_CLIENT); - client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.set_payload_size(1); + client_config.mutable_payload_config()->mutable_simple_params()->set_resp_size(1); client_config.set_async_client_threads(1); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_closed_loop(); ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); - server_config.set_use_tls(false); server_config.set_async_server_threads(1); const auto result = diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h index 961e714fa82..507642b284b 100644 --- a/test/cpp/qps/client.h +++ b/test/cpp/qps/client.h @@ -41,6 +41,7 @@ #include "test/cpp/qps/interarrival.h" #include "test/cpp/qps/timer.h" #include "test/cpp/util/create_test_channel.h" +#include "test/proto/benchmarks/payloads.grpc.pb.h" #include "test/proto/benchmarks/services.grpc.pb.h" namespace grpc { @@ -75,8 +76,20 @@ class Client { channels_[i].init(config.server_targets(i % config.server_targets_size()), config); } - request_.set_response_type(grpc::testing::PayloadType::COMPRESSABLE); - request_.set_response_size(config.payload_size()); + if (config.payload_config().has_bytebuf_params()) { + GPR_ASSERT(false); // not yet implemented + } else if (config.payload_config().has_simple_params()) { + request_.set_response_type(grpc::testing::PayloadType::COMPRESSABLE); + request_.set_response_size(config.payload_config().simple_params().resp_size()); + request_.mutable_payload()->set_type(grpc::testing::PayloadType::COMPRESSABLE); + int size = config.payload_config().simple_params().req_size(); + std::unique_ptr body(new char[size]); + request_.mutable_payload()->set_body(body.get(), size); + } else if (config.payload_config().has_complex_params()) { + GPR_ASSERT(false); // not yet implemented + } else { + GPR_ASSERT(false); // badly configured + } } virtual ~Client() {} @@ -131,7 +144,11 @@ class Client { // We have to use a 2-phase init like this with a default // constructor followed by an initializer function to make // old compilers happy with using this in std::vector - channel_ = CreateTestChannel(target, config.use_tls()); + channel_ = + CreateTestChannel(target, + config.security_params().server_host_override(), + config.has_security_params(), + !config.security_params().use_test_ca()); stub_ = BenchmarkService::NewStub(channel_); } Channel* get_channel() { return channel_.get(); } diff --git a/test/cpp/qps/qps_driver.cc b/test/cpp/qps/qps_driver.cc index a314be6f69a..e5d60d90e48 100644 --- a/test/cpp/qps/qps_driver.cc +++ b/test/cpp/qps/qps_driver.cc @@ -50,7 +50,6 @@ DEFINE_int32(benchmark_seconds, 30, "Benchmark time (in seconds)"); DEFINE_int32(local_workers, 0, "Number of local workers to start"); // Common config -DEFINE_bool(use_tls, false, "Use TLS"); DEFINE_string(rpc_type, "UNARY", "Type of RPC: UNARY or STREAMING"); // Server config @@ -61,7 +60,10 @@ DEFINE_string(server_type, "SYNC_SERVER", "Server type"); DEFINE_int32(outstanding_rpcs_per_channel, 1, "Number of outstanding rpcs per channel"); DEFINE_int32(client_channels, 1, "Number of client channels"); -DEFINE_int32(payload_size, 1, "Payload size"); + +DEFINE_int32(simple_req_size, -1, "Simple proto request payload size"); +DEFINE_int32(simple_resp_size, -1, "Simple proto response payload size"); + DEFINE_string(client_type, "SYNC_CLIENT", "Client type"); DEFINE_int32(async_client_threads, 1, "Async client threads"); @@ -93,11 +95,22 @@ static void QpsDriver() { ClientConfig client_config; client_config.set_client_type(client_type); - client_config.set_use_tls(FLAGS_use_tls); client_config.set_outstanding_rpcs_per_channel( FLAGS_outstanding_rpcs_per_channel); client_config.set_client_channels(FLAGS_client_channels); - client_config.set_payload_size(FLAGS_payload_size); + + // Decide which type to use based on the response type + if (FLAGS_simple_resp_size >= 0) { + auto params = client_config.mutable_payload_config()->mutable_simple_params(); + params->set_resp_size(FLAGS_simple_resp_size); + if (FLAGS_simple_req_size >= 0) { + params->set_req_size(FLAGS_simple_req_size); + } + } else { + GPR_ASSERT(false); // not yet implemented + } + + client_config.set_async_client_threads(FLAGS_async_client_threads); client_config.set_rpc_type(rpc_type); @@ -123,7 +136,6 @@ static void QpsDriver() { ServerConfig server_config; server_config.set_server_type(server_type); - server_config.set_use_tls(FLAGS_use_tls); server_config.set_async_server_threads(FLAGS_async_server_threads); const auto result = RunScenario( diff --git a/test/cpp/qps/qps_openloop_test.cc b/test/cpp/qps/qps_openloop_test.cc index d9f5ffc2efd..c867714ad0d 100644 --- a/test/cpp/qps/qps_openloop_test.cc +++ b/test/cpp/qps/qps_openloop_test.cc @@ -52,10 +52,9 @@ static void RunQPS() { ClientConfig client_config; client_config.set_client_type(ASYNC_CLIENT); - client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1000); client_config.set_client_channels(8); - client_config.set_payload_size(1); + client_config.mutable_payload_config()->mutable_simple_params()->set_resp_size(1); client_config.set_async_client_threads(8); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_poisson()->set_offered_load( @@ -63,7 +62,6 @@ static void RunQPS() { ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); - server_config.set_use_tls(false); server_config.set_async_server_threads(4); const auto result = diff --git a/test/cpp/qps/qps_test.cc b/test/cpp/qps/qps_test.cc index 770a0d4ebf4..c51663a95ba 100644 --- a/test/cpp/qps/qps_test.cc +++ b/test/cpp/qps/qps_test.cc @@ -52,17 +52,15 @@ static void RunQPS() { ClientConfig client_config; client_config.set_client_type(ASYNC_CLIENT); - client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1000); client_config.set_client_channels(8); - client_config.set_payload_size(1); + client_config.mutable_payload_config()->mutable_simple_params()->set_resp_size(1); client_config.set_async_client_threads(8); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_closed_loop(); ServerConfig server_config; server_config.set_server_type(ASYNC_SERVER); - server_config.set_use_tls(false); server_config.set_async_server_threads(8); const auto result = diff --git a/test/cpp/qps/qps_test_with_poll.cc b/test/cpp/qps/qps_test_with_poll.cc deleted file mode 100644 index 153cbd7cea0..00000000000 --- a/test/cpp/qps/qps_test_with_poll.cc +++ /dev/null @@ -1,91 +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. - * - */ - -#include - -#include - -#include - -#include "test/cpp/qps/driver.h" -#include "test/cpp/qps/report.h" -#include "test/cpp/util/benchmark_config.h" - -extern "C" { -#include "src/core/iomgr/pollset_posix.h" -} - -namespace grpc { -namespace testing { - -static const int WARMUP = 5; -static const int BENCHMARK = 5; - -static void RunQPS() { - gpr_log(GPR_INFO, "Running QPS test"); - - ClientConfig client_config; - client_config.set_client_type(ASYNC_CLIENT); - client_config.set_use_tls(false); - client_config.set_outstanding_rpcs_per_channel(1000); - client_config.set_client_channels(8); - client_config.set_payload_size(1); - client_config.set_async_client_threads(8); - client_config.set_rpc_type(UNARY); - client_config.mutable_load_params()->mutable_closed(); - - ServerConfig server_config; - server_config.set_server_type(ASYNC_SERVER); - server_config.set_use_tls(false); - server_config.set_threads(4); - - const auto result = - RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); - - GetReporter()->ReportQPSPerCore(*result); - GetReporter()->ReportLatency(*result); -} - -} // namespace testing -} // namespace grpc - -int main(int argc, char** argv) { - grpc::testing::InitBenchmark(&argc, &argv, true); - - grpc_platform_become_multipoller = grpc_poll_become_multipoller; - - signal(SIGPIPE, SIG_IGN); - grpc::testing::RunQPS(); - - return 0; -} diff --git a/test/cpp/qps/server.h b/test/cpp/qps/server.h index 12bbf1fef65..f4ae9900220 100644 --- a/test/cpp/qps/server.h +++ b/test/cpp/qps/server.h @@ -35,7 +35,9 @@ #define TEST_QPS_SERVER_H #include +#include +#include "test/core/end2end/data/ssl_test_data.h" #include "test/core/util/port.h" #include "test/cpp/qps/timer.h" #include "test/proto/messages.grpc.pb.h" @@ -86,6 +88,18 @@ class Server { int Port() const {return port_;} int Cores() const {return gpr_cpu_num_cores();} + static std::shared_ptr CreateServerCredentials(const ServerConfig &config) { + if (config.has_security_params()) { + SslServerCredentialsOptions::PemKeyCertPair pkcp = {test_server1_key, + test_server1_cert}; + SslServerCredentialsOptions ssl_opts; + ssl_opts.pem_root_certs = ""; + ssl_opts.pem_key_cert_pairs.push_back(pkcp); + return SslServerCredentials(ssl_opts); + } else { + return InsecureServerCredentials(); + } + } private: int port_; std::unique_ptr timer_; diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc index b4b397afa82..fed59c04331 100644 --- a/test/cpp/qps/server_async.cc +++ b/test/cpp/qps/server_async.cc @@ -63,7 +63,7 @@ class AsyncQpsServerTest : public Server { gpr_join_host_port(&server_address, "::", Port()); ServerBuilder builder; - builder.AddListeningPort(server_address, InsecureServerCredentials()); + builder.AddListeningPort(server_address, Server::CreateServerCredentials(config)); gpr_free(server_address); builder.RegisterAsyncService(&async_service_); diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc index feca7e2ac24..c235069e204 100644 --- a/test/cpp/qps/server_sync.cc +++ b/test/cpp/qps/server_sync.cc @@ -91,7 +91,7 @@ class SynchronousServer GRPC_FINAL : public grpc::testing::Server { char* server_address = NULL; gpr_join_host_port(&server_address, "::", Port()); - builder.AddListeningPort(server_address, InsecureServerCredentials()); + builder.AddListeningPort(server_address, Server::CreateServerCredentials(config)); gpr_free(server_address); builder.RegisterService(&service_); diff --git a/test/cpp/qps/sync_streaming_ping_pong_test.cc b/test/cpp/qps/sync_streaming_ping_pong_test.cc index dd3be736859..8dbbec17e82 100644 --- a/test/cpp/qps/sync_streaming_ping_pong_test.cc +++ b/test/cpp/qps/sync_streaming_ping_pong_test.cc @@ -52,16 +52,14 @@ static void RunSynchronousStreamingPingPong() { ClientConfig client_config; client_config.set_client_type(SYNC_CLIENT); - client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.set_payload_size(1); + client_config.mutable_payload_config()->mutable_simple_params()->set_resp_size(1); client_config.set_rpc_type(STREAMING); client_config.mutable_load_params()->mutable_closed_loop(); ServerConfig server_config; server_config.set_server_type(SYNC_SERVER); - server_config.set_use_tls(false); const auto result = RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); diff --git a/test/cpp/qps/sync_unary_ping_pong_test.cc b/test/cpp/qps/sync_unary_ping_pong_test.cc index 2c1d2aa764e..909529ec614 100644 --- a/test/cpp/qps/sync_unary_ping_pong_test.cc +++ b/test/cpp/qps/sync_unary_ping_pong_test.cc @@ -52,16 +52,14 @@ static void RunSynchronousUnaryPingPong() { ClientConfig client_config; client_config.set_client_type(SYNC_CLIENT); - client_config.set_use_tls(false); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.set_payload_size(1); + client_config.mutable_payload_config()->mutable_simple_params()->set_resp_size(1); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_closed_loop(); ServerConfig server_config; server_config.set_server_type(SYNC_SERVER); - server_config.set_use_tls(false); const auto result = RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); diff --git a/test/proto/benchmarks/control.proto b/test/proto/benchmarks/control.proto index 50c2a31633a..26a19ea0728 100644 --- a/test/proto/benchmarks/control.proto +++ b/test/proto/benchmarks/control.proto @@ -27,10 +27,9 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// An integration test service that covers all the method signature permutations -// of unary/streaming requests/responses. syntax = "proto3"; +import "test/proto/benchmarks/payloads.proto"; import "test/proto/benchmarks/stats.proto"; package grpc.testing; @@ -81,17 +80,23 @@ message LoadParams { }; } +// presence of SecurityParams implies use of TLS +message SecurityParams { + bool use_test_ca = 1; + string server_host_override = 2; +} + message ClientConfig { repeated string server_targets = 1; ClientType client_type = 2; - bool use_tls = 3; + SecurityParams security_params = 3; int32 outstanding_rpcs_per_channel = 4; int32 client_channels = 5; - int32 payload_size = 6; // only for async client: int32 async_client_threads = 7; RpcType rpc_type = 8; LoadParams load_params = 10; + PayloadConfig payload_config = 11; } message ClientStatus { @@ -112,12 +117,13 @@ message ClientArgs { message ServerConfig { ServerType server_type = 1; - bool use_tls = 2; + SecurityParams security_params = 2; int32 port = 4; // only for async server int32 async_server_threads = 7; // restrict core usage int32 core_limit = 8; + PayloadConfig payload_config = 9; } message ServerArgs { diff --git a/test/proto/benchmarks/payloads.proto b/test/proto/benchmarks/payloads.proto new file mode 100644 index 00000000000..ad6c08a4afb --- /dev/null +++ b/test/proto/benchmarks/payloads.proto @@ -0,0 +1,56 @@ +// 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.testing; + +message ByteBufferParams { + int32 req_size = 1; + int32 resp_size = 2; +} + +message SimpleProtoParams { + int32 req_size = 1; + int32 resp_size = 2; +} + +message ComplexProtoParams { +// TODO (vpai): Fill this in once the details of complex, representative +// protos are decided +} + +message PayloadConfig { + oneof payload { + ByteBufferParams bytebuf_params = 1; + SimpleProtoParams simple_params = 2; + ComplexProtoParams complex_params = 3; + } +} + diff --git a/test/proto/benchmarks/stats.proto b/test/proto/benchmarks/stats.proto index 0a98465f3d9..670af33e037 100644 --- a/test/proto/benchmarks/stats.proto +++ b/test/proto/benchmarks/stats.proto @@ -27,8 +27,6 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// An integration test service that covers all the method signature permutations -// of unary/streaming requests/responses. syntax = "proto3"; package grpc.testing; diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 8def62aaa81..eb9a117733a 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -14651,6 +14651,8 @@ "test/cpp/util/benchmark_config.h", "test/proto/benchmarks/control.grpc.pb.h", "test/proto/benchmarks/control.pb.h", + "test/proto/benchmarks/payloads.grpc.pb.h", + "test/proto/benchmarks/payloads.pb.h", "test/proto/benchmarks/services.grpc.pb.h", "test/proto/benchmarks/services.pb.h", "test/proto/benchmarks/stats.grpc.pb.h", diff --git a/vsprojects/vcxproj/qps/qps.vcxproj b/vsprojects/vcxproj/qps/qps.vcxproj index 3a851939e27..9c5a4da0081 100644 --- a/vsprojects/vcxproj/qps/qps.vcxproj +++ b/vsprojects/vcxproj/qps/qps.vcxproj @@ -163,6 +163,14 @@ + + + + + + + + diff --git a/vsprojects/vcxproj/qps/qps.vcxproj.filters b/vsprojects/vcxproj/qps/qps.vcxproj.filters index 0b9c2cb8337..afa71953164 100644 --- a/vsprojects/vcxproj/qps/qps.vcxproj.filters +++ b/vsprojects/vcxproj/qps/qps.vcxproj.filters @@ -7,6 +7,9 @@ test\proto\benchmarks + + test\proto\benchmarks + test\proto\benchmarks From ce846706287e68e644eb611be71b1a02b252f043 Mon Sep 17 00:00:00 2001 From: Vijay Pai Date: Wed, 4 Nov 2015 00:30:12 -0800 Subject: [PATCH 078/103] clang-format --- .../cpp/qps/async_streaming_ping_pong_test.cc | 4 +- test/cpp/qps/async_unary_ping_pong_test.cc | 4 +- test/cpp/qps/client.h | 50 +++++----- test/cpp/qps/client_async.cc | 17 ++-- test/cpp/qps/driver.cc | 16 ++-- test/cpp/qps/driver.h | 2 +- test/cpp/qps/qps_driver.cc | 6 +- test/cpp/qps/qps_openloop_test.cc | 4 +- test/cpp/qps/qps_test.cc | 4 +- test/cpp/qps/qps_worker.cc | 7 +- test/cpp/qps/server.h | 10 +- test/cpp/qps/server_async.cc | 15 +-- test/cpp/qps/server_sync.cc | 7 +- test/cpp/qps/single_run_localhost.sh | 92 ++++++++++--------- test/cpp/qps/sync_streaming_ping_pong_test.cc | 4 +- test/cpp/qps/sync_unary_ping_pong_test.cc | 4 +- test/proto/benchmarks/control.proto | 4 +- test/proto/benchmarks/payloads.proto | 5 +- test/proto/benchmarks/stats.proto | 1 - 19 files changed, 140 insertions(+), 116 deletions(-) mode change 100755 => 100644 test/cpp/qps/single_run_localhost.sh diff --git a/test/cpp/qps/async_streaming_ping_pong_test.cc b/test/cpp/qps/async_streaming_ping_pong_test.cc index 338eebe356f..9aa7f88fa4d 100644 --- a/test/cpp/qps/async_streaming_ping_pong_test.cc +++ b/test/cpp/qps/async_streaming_ping_pong_test.cc @@ -54,7 +54,9 @@ static void RunAsyncStreamingPingPong() { client_config.set_client_type(ASYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.mutable_payload_config()->mutable_simple_params()->set_resp_size(1); + client_config.mutable_payload_config() + ->mutable_simple_params() + ->set_resp_size(1); client_config.set_async_client_threads(1); client_config.set_rpc_type(STREAMING); client_config.mutable_load_params()->mutable_closed_loop(); diff --git a/test/cpp/qps/async_unary_ping_pong_test.cc b/test/cpp/qps/async_unary_ping_pong_test.cc index c17ea6c2cc0..fe2cde038a1 100644 --- a/test/cpp/qps/async_unary_ping_pong_test.cc +++ b/test/cpp/qps/async_unary_ping_pong_test.cc @@ -54,7 +54,9 @@ static void RunAsyncUnaryPingPong() { client_config.set_client_type(ASYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.mutable_payload_config()->mutable_simple_params()->set_resp_size(1); + client_config.mutable_payload_config() + ->mutable_simple_params() + ->set_resp_size(1); client_config.set_async_client_threads(1); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_closed_loop(); diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h index 507642b284b..027e0d4be0f 100644 --- a/test/cpp/qps/client.h +++ b/test/cpp/qps/client.h @@ -77,18 +77,20 @@ class Client { config); } if (config.payload_config().has_bytebuf_params()) { - GPR_ASSERT(false); // not yet implemented + GPR_ASSERT(false); // not yet implemented } else if (config.payload_config().has_simple_params()) { request_.set_response_type(grpc::testing::PayloadType::COMPRESSABLE); - request_.set_response_size(config.payload_config().simple_params().resp_size()); - request_.mutable_payload()->set_type(grpc::testing::PayloadType::COMPRESSABLE); + request_.set_response_size( + config.payload_config().simple_params().resp_size()); + request_.mutable_payload()->set_type( + grpc::testing::PayloadType::COMPRESSABLE); int size = config.payload_config().simple_params().req_size(); std::unique_ptr body(new char[size]); request_.mutable_payload()->set_body(body.get(), size); } else if (config.payload_config().has_complex_params()) { - GPR_ASSERT(false); // not yet implemented + GPR_ASSERT(false); // not yet implemented } else { - GPR_ASSERT(false); // badly configured + GPR_ASSERT(false); // badly configured } } virtual ~Client() {} @@ -101,20 +103,20 @@ class Client { if (reset) { Histogram* to_merge = new Histogram[threads_.size()]; for (size_t i = 0; i < threads_.size(); i++) { - threads_[i]->BeginSwap(&to_merge[i]); + threads_[i]->BeginSwap(&to_merge[i]); } std::unique_ptr timer(new Timer); timer_.swap(timer); for (size_t i = 0; i < threads_.size(); i++) { - threads_[i]->EndSwap(); - latencies.Merge(to_merge[i]); + threads_[i]->EndSwap(); + latencies.Merge(to_merge[i]); } delete[] to_merge; timer_result = timer->Mark(); } else { // merge snapshots of each thread histogram for (size_t i = 0; i < threads_.size(); i++) { - threads_[i]->MergeStatsInto(&latencies); + threads_[i]->MergeStatsInto(&latencies); } timer_result = timer_->Mark(); } @@ -144,11 +146,10 @@ class Client { // We have to use a 2-phase init like this with a default // constructor followed by an initializer function to make // old compilers happy with using this in std::vector - channel_ = - CreateTestChannel(target, - config.security_params().server_host_override(), - config.has_security_params(), - !config.security_params().use_test_ca()); + channel_ = CreateTestChannel( + target, config.security_params().server_host_override(), + config.has_security_params(), + !config.security_params().use_test_ca()); stub_ = BenchmarkService::NewStub(channel_); } Channel* get_channel() { return channel_.get(); } @@ -176,21 +177,22 @@ class Client { std::unique_ptr random_dist; if (load.has_poisson()) { - random_dist.reset(new ExpDist(load.poisson().offered_load() / - num_threads)); + random_dist.reset( + new ExpDist(load.poisson().offered_load() / num_threads)); } else if (load.has_uniform()) { - random_dist.reset(new UniformDist(load.uniform().interarrival_lo() * - num_threads, - load.uniform().interarrival_hi() * - num_threads)); + random_dist.reset( + new UniformDist(load.uniform().interarrival_lo() * num_threads, + load.uniform().interarrival_hi() * num_threads)); } else if (load.has_determ()) { - random_dist.reset(new DetDist(num_threads / load.determ().offered_load())); + random_dist.reset( + new DetDist(num_threads / load.determ().offered_load())); } else if (load.has_pareto()) { - random_dist.reset(new ParetoDist(load.pareto().interarrival_base() * num_threads, - load.pareto().alpha())); + random_dist.reset( + new ParetoDist(load.pareto().interarrival_base() * num_threads, + load.pareto().alpha())); } else if (load.has_closed_loop()) { // Closed-loop doesn't use random dist at all - } else { // invalid load type + } else { // invalid load type GPR_ASSERT(false); } diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc index b376f8501b2..9594179822d 100644 --- a/test/cpp/qps/client_async.cc +++ b/test/cpp/qps/client_async.cc @@ -358,7 +358,8 @@ class AsyncUnaryClient GRPC_FINAL : public AsyncClient { const SimpleRequest& request, CompletionQueue* cq) { return stub->AsyncUnaryCall(ctx, request, cq); }; - static ClientRpcContext* SetupCtx(int channel_id, BenchmarkService::Stub* stub, + static ClientRpcContext* SetupCtx(int channel_id, + BenchmarkService::Stub* stub, const SimpleRequest& req) { return new ClientRpcContextUnaryImpl( channel_id, stub, req, AsyncUnaryClient::StartReq, @@ -371,9 +372,10 @@ class ClientRpcContextStreamingImpl : public ClientRpcContext { public: ClientRpcContextStreamingImpl( int channel_id, BenchmarkService::Stub* stub, const RequestType& req, - std::function>(BenchmarkService::Stub*, grpc::ClientContext*, - CompletionQueue*, void*)> start_req, + std::function>( + BenchmarkService::Stub*, grpc::ClientContext*, CompletionQueue*, + void*)> start_req, std::function on_done) : ClientRpcContext(channel_id), context_(), @@ -427,8 +429,8 @@ class ClientRpcContextStreamingImpl : public ClientRpcContext { std::function callback_; std::function< std::unique_ptr>( - BenchmarkService::Stub*, grpc::ClientContext*, CompletionQueue*, void*)> - start_req_; + BenchmarkService::Stub*, grpc::ClientContext*, CompletionQueue*, + void*)> start_req_; grpc::Status status_; double start_; std::unique_ptr> @@ -456,7 +458,8 @@ class AsyncStreamingClient GRPC_FINAL : public AsyncClient { auto stream = stub->AsyncStreamingCall(ctx, cq, tag); return stream; }; - static ClientRpcContext* SetupCtx(int channel_id, BenchmarkService::Stub* stub, + static ClientRpcContext* SetupCtx(int channel_id, + BenchmarkService::Stub* stub, const SimpleRequest& req) { return new ClientRpcContextStreamingImpl( channel_id, stub, req, AsyncStreamingClient::StartReq, diff --git a/test/cpp/qps/driver.cc b/test/cpp/qps/driver.cc index 2803991b421..2c6247deea1 100644 --- a/test/cpp/qps/driver.cc +++ b/test/cpp/qps/driver.cc @@ -161,8 +161,8 @@ std::unique_ptr RunScenario( // where class contained in std::vector must have a copy constructor auto* servers = new ServerData[num_servers]; for (size_t i = 0; i < num_servers; i++) { - servers[i].stub = - WorkerService::NewStub(CreateChannel(workers[i], InsecureCredentials())); + servers[i].stub = WorkerService::NewStub( + CreateChannel(workers[i], InsecureCredentials())); ServerArgs args; result_server_config = server_config; *args.mutable_setup() = server_config; @@ -248,18 +248,16 @@ std::unique_ptr RunScenario( for (auto server = &servers[0]; server != &servers[num_servers]; server++) { GPR_ASSERT(server->stream->Read(&server_status)); const auto& stats = server_status.stats(); - result->server_resources.emplace_back(stats.time_elapsed(), - stats.time_user(), - stats.time_system(), - server_status.cores()); + result->server_resources.emplace_back( + stats.time_elapsed(), stats.time_user(), stats.time_system(), + server_status.cores()); } for (auto client = &clients[0]; client != &clients[num_clients]; client++) { GPR_ASSERT(client->stream->Read(&client_status)); const auto& stats = client_status.stats(); result->latencies.MergeProto(stats.latencies()); - result->client_resources.emplace_back(stats.time_elapsed(), - stats.time_user(), - stats.time_system(), -1); + result->client_resources.emplace_back( + stats.time_elapsed(), stats.time_user(), stats.time_system(), -1); } for (auto client = &clients[0]; client != &clients[num_clients]; client++) { diff --git a/test/cpp/qps/driver.h b/test/cpp/qps/driver.h index 50c0ba63a11..50bf17ceab2 100644 --- a/test/cpp/qps/driver.h +++ b/test/cpp/qps/driver.h @@ -44,7 +44,7 @@ namespace testing { class ResourceUsage { public: ResourceUsage(double w, double u, double s, int c) - : wall_time_(w), user_time_(u), system_time_(s), cores_(c) {} + : wall_time_(w), user_time_(u), system_time_(s), cores_(c) {} double wall_time() const { return wall_time_; } double user_time() const { return user_time_; } double system_time() const { return system_time_; } diff --git a/test/cpp/qps/qps_driver.cc b/test/cpp/qps/qps_driver.cc index e5d60d90e48..30795157cbb 100644 --- a/test/cpp/qps/qps_driver.cc +++ b/test/cpp/qps/qps_driver.cc @@ -101,16 +101,16 @@ static void QpsDriver() { // Decide which type to use based on the response type if (FLAGS_simple_resp_size >= 0) { - auto params = client_config.mutable_payload_config()->mutable_simple_params(); + auto params = + client_config.mutable_payload_config()->mutable_simple_params(); params->set_resp_size(FLAGS_simple_resp_size); if (FLAGS_simple_req_size >= 0) { params->set_req_size(FLAGS_simple_req_size); } } else { - GPR_ASSERT(false); // not yet implemented + GPR_ASSERT(false); // not yet implemented } - client_config.set_async_client_threads(FLAGS_async_client_threads); client_config.set_rpc_type(rpc_type); diff --git a/test/cpp/qps/qps_openloop_test.cc b/test/cpp/qps/qps_openloop_test.cc index c867714ad0d..fbd9558b5a2 100644 --- a/test/cpp/qps/qps_openloop_test.cc +++ b/test/cpp/qps/qps_openloop_test.cc @@ -54,7 +54,9 @@ static void RunQPS() { client_config.set_client_type(ASYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1000); client_config.set_client_channels(8); - client_config.mutable_payload_config()->mutable_simple_params()->set_resp_size(1); + client_config.mutable_payload_config() + ->mutable_simple_params() + ->set_resp_size(1); client_config.set_async_client_threads(8); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_poisson()->set_offered_load( diff --git a/test/cpp/qps/qps_test.cc b/test/cpp/qps/qps_test.cc index c51663a95ba..de81d99a37c 100644 --- a/test/cpp/qps/qps_test.cc +++ b/test/cpp/qps/qps_test.cc @@ -54,7 +54,9 @@ static void RunQPS() { client_config.set_client_type(ASYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1000); client_config.set_client_channels(8); - client_config.mutable_payload_config()->mutable_simple_params()->set_resp_size(1); + client_config.mutable_payload_config() + ->mutable_simple_params() + ->set_resp_size(1); client_config.set_async_client_threads(8); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_closed_loop(); diff --git a/test/cpp/qps/qps_worker.cc b/test/cpp/qps/qps_worker.cc index 0b34daec63f..8af6fd0f16f 100644 --- a/test/cpp/qps/qps_worker.cc +++ b/test/cpp/qps/qps_worker.cc @@ -76,8 +76,7 @@ static std::unique_ptr CreateClient(const ClientConfig& config) { abort(); } -static void LimitCores(int cores) { -} +static void LimitCores(int cores) {} static std::unique_ptr CreateServer(const ServerConfig& config) { if (config.core_limit() > 0) { @@ -99,7 +98,7 @@ class WorkerServiceImpl GRPC_FINAL : public WorkerService::Service { explicit WorkerServiceImpl() : acquired_(false) {} Status RunClient(ServerContext* ctx, - ServerReaderWriter* stream) + ServerReaderWriter* stream) GRPC_OVERRIDE { InstanceGuard g(this); if (!g.Acquired()) { @@ -159,7 +158,7 @@ class WorkerServiceImpl GRPC_FINAL : public WorkerService::Service { } Status RunClientBody(ServerContext* ctx, - ServerReaderWriter* stream) { + ServerReaderWriter* stream) { ClientArgs args; if (!stream->Read(&args)) { return Status(StatusCode::INVALID_ARGUMENT, ""); diff --git a/test/cpp/qps/server.h b/test/cpp/qps/server.h index f4ae9900220..0309cb5c20f 100644 --- a/test/cpp/qps/server.h +++ b/test/cpp/qps/server.h @@ -86,12 +86,13 @@ class Server { return true; } - int Port() const {return port_;} - int Cores() const {return gpr_cpu_num_cores();} - static std::shared_ptr CreateServerCredentials(const ServerConfig &config) { + int Port() const { return port_; } + int Cores() const { return gpr_cpu_num_cores(); } + static std::shared_ptr CreateServerCredentials( + const ServerConfig& config) { if (config.has_security_params()) { 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); @@ -100,6 +101,7 @@ class Server { return InsecureServerCredentials(); } } + private: int port_; std::unique_ptr timer_; diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc index fed59c04331..40f9dd3f46b 100644 --- a/test/cpp/qps/server_async.cc +++ b/test/cpp/qps/server_async.cc @@ -57,13 +57,14 @@ namespace testing { class AsyncQpsServerTest : public Server { public: - explicit AsyncQpsServerTest(const ServerConfig &config): Server(config) { + explicit AsyncQpsServerTest(const ServerConfig &config) : Server(config) { char *server_address = NULL; gpr_join_host_port(&server_address, "::", Port()); ServerBuilder builder; - builder.AddListeningPort(server_address, Server::CreateServerCredentials(config)); + builder.AddListeningPort(server_address, + Server::CreateServerCredentials(config)); gpr_free(server_address); builder.RegisterAsyncService(&async_service_); @@ -77,11 +78,11 @@ class AsyncQpsServerTest : public Server { for (int i = 0; i < 10000 / config.async_server_threads(); i++) { for (int j = 0; j < config.async_server_threads(); j++) { auto request_unary = std::bind( - &BenchmarkService::AsyncService::RequestUnaryCall, &async_service_, _1, - _2, _3, srv_cqs_[j].get(), srv_cqs_[j].get(), _4); + &BenchmarkService::AsyncService::RequestUnaryCall, &async_service_, + _1, _2, _3, srv_cqs_[j].get(), srv_cqs_[j].get(), _4); auto request_streaming = std::bind( - &BenchmarkService::AsyncService::RequestStreamingCall, &async_service_, - _1, _2, srv_cqs_[j].get(), srv_cqs_[j].get(), _3); + &BenchmarkService::AsyncService::RequestStreamingCall, + &async_service_, _1, _2, srv_cqs_[j].get(), srv_cqs_[j].get(), _3); contexts_.push_front( new ServerRpcContextUnaryImpl( request_unary, ProcessRPC)); @@ -334,7 +335,7 @@ class AsyncQpsServerTest : public Server { std::vector> shutdown_state_; }; -std::unique_ptr CreateAsyncServer(const ServerConfig& config) { +std::unique_ptr CreateAsyncServer(const ServerConfig &config) { return std::unique_ptr(new AsyncQpsServerTest(config)); } diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc index c235069e204..9f06b44aece 100644 --- a/test/cpp/qps/server_sync.cc +++ b/test/cpp/qps/server_sync.cc @@ -84,20 +84,21 @@ class BenchmarkServiceImpl GRPC_FINAL : public BenchmarkService::Service { class SynchronousServer GRPC_FINAL : public grpc::testing::Server { public: - explicit SynchronousServer(const ServerConfig& config) - : Server(config) { + explicit SynchronousServer(const ServerConfig& config) : Server(config) { ServerBuilder builder; char* server_address = NULL; gpr_join_host_port(&server_address, "::", Port()); - builder.AddListeningPort(server_address, Server::CreateServerCredentials(config)); + builder.AddListeningPort(server_address, + Server::CreateServerCredentials(config)); gpr_free(server_address); builder.RegisterService(&service_); impl_ = builder.BuildAndStart(); } + private: BenchmarkServiceImpl service_; std::unique_ptr impl_; diff --git a/test/cpp/qps/single_run_localhost.sh b/test/cpp/qps/single_run_localhost.sh old mode 100755 new mode 100644 index f5356f18343..771cf0fd60a --- a/test/cpp/qps/single_run_localhost.sh +++ b/test/cpp/qps/single_run_localhost.sh @@ -1,56 +1,64 @@ -#!/bin/sh -# Copyright 2015, Google Inc. -# All rights reserved. +#!/ bin / sh +#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: +#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. +#* 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. +#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. -# performs a single qps run with one client and one server +#performs a single qps run with one client and one server -set -ex +set - + ex -cd $(dirname $0)/../../.. + cd + $(dirname $0) / + ../../ + .. -killall qps_worker || true + killall qps_worker + || true -config=opt + config = opt -NUMCPUS=`python2.7 -c 'import multiprocessing; print multiprocessing.cpu_count()'` + NUMCPUS =`python2 .7 - c + 'import multiprocessing; print multiprocessing.cpu_count()'` -make CONFIG=$config qps_worker qps_driver -j$NUMCPUS + make CONFIG = $config qps_worker qps_driver - + j$NUMCPUS -bins/$config/qps_worker -driver_port 10000 & -PID1=$! -bins/$config/qps_worker -driver_port 10010 & -PID2=$! + bins + / $config / qps_worker + - driver_port + 10000 &PID1 = $ !bins / $config / qps_worker + - driver_port 10010 &PID2 = $ ! -export QPS_WORKERS="localhost:10000,localhost:10010" + export QPS_WORKERS = "localhost:10000,localhost:10010" -bins/$config/qps_driver $* - -kill -2 $PID1 $PID2 -wait + bins + / $config / qps_driver $ * + kill + - 2 $PID1 $PID2 wait diff --git a/test/cpp/qps/sync_streaming_ping_pong_test.cc b/test/cpp/qps/sync_streaming_ping_pong_test.cc index 8dbbec17e82..250e8eb7727 100644 --- a/test/cpp/qps/sync_streaming_ping_pong_test.cc +++ b/test/cpp/qps/sync_streaming_ping_pong_test.cc @@ -54,7 +54,9 @@ static void RunSynchronousStreamingPingPong() { client_config.set_client_type(SYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.mutable_payload_config()->mutable_simple_params()->set_resp_size(1); + client_config.mutable_payload_config() + ->mutable_simple_params() + ->set_resp_size(1); client_config.set_rpc_type(STREAMING); client_config.mutable_load_params()->mutable_closed_loop(); diff --git a/test/cpp/qps/sync_unary_ping_pong_test.cc b/test/cpp/qps/sync_unary_ping_pong_test.cc index 909529ec614..4defcf30657 100644 --- a/test/cpp/qps/sync_unary_ping_pong_test.cc +++ b/test/cpp/qps/sync_unary_ping_pong_test.cc @@ -54,7 +54,9 @@ static void RunSynchronousUnaryPingPong() { client_config.set_client_type(SYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.mutable_payload_config()->mutable_simple_params()->set_resp_size(1); + client_config.mutable_payload_config() + ->mutable_simple_params() + ->set_resp_size(1); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_closed_loop(); diff --git a/test/proto/benchmarks/control.proto b/test/proto/benchmarks/control.proto index 26a19ea0728..966ab78baae 100644 --- a/test/proto/benchmarks/control.proto +++ b/test/proto/benchmarks/control.proto @@ -82,8 +82,8 @@ message LoadParams { // presence of SecurityParams implies use of TLS message SecurityParams { - bool use_test_ca = 1; - string server_host_override = 2; + bool use_test_ca = 1; + string server_host_override = 2; } message ClientConfig { diff --git a/test/proto/benchmarks/payloads.proto b/test/proto/benchmarks/payloads.proto index ad6c08a4afb..7e5b2c61ff7 100644 --- a/test/proto/benchmarks/payloads.proto +++ b/test/proto/benchmarks/payloads.proto @@ -42,8 +42,8 @@ message SimpleProtoParams { } message ComplexProtoParams { -// TODO (vpai): Fill this in once the details of complex, representative -// protos are decided + // TODO (vpai): Fill this in once the details of complex, representative + // protos are decided } message PayloadConfig { @@ -53,4 +53,3 @@ message PayloadConfig { ComplexProtoParams complex_params = 3; } } - diff --git a/test/proto/benchmarks/stats.proto b/test/proto/benchmarks/stats.proto index 670af33e037..d52144f3214 100644 --- a/test/proto/benchmarks/stats.proto +++ b/test/proto/benchmarks/stats.proto @@ -57,4 +57,3 @@ message ClientStats { double time_user = 3; double time_system = 4; } - From 5dd93dae9398ee1ad815296173f6a804c3726622 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 3 Nov 2015 17:22:22 -0800 Subject: [PATCH 079/103] Coverage improvements --- tools/run_tests/post_tests_c.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tools/run_tests/post_tests_c.sh b/tools/run_tests/post_tests_c.sh index f2f3ce9432d..4409526dab2 100755 --- a/tools/run_tests/post_tests_c.sh +++ b/tools/run_tests/post_tests_c.sh @@ -34,8 +34,12 @@ if [ "$CONFIG" != "gcov" ] ; then exit ; fi root=$(readlink -f $(dirname $0)/../..) out=$root/reports/c_cxx_coverage -tmp=$(mktemp) +tmp1=$(mktemp) +tmp2=$(mktemp) cd $root -lcov --capture --directory . --output-file $tmp -genhtml $tmp --output-directory $out -rm $tmp +lcov --capture --directory . --output-file $tmp1 +lcov --extract $tmp1 "$root/src/*" "$root/include/*" --output-file $tmp2 +genhtml $tmp2 --output-directory $out +rm $tmp2 +rm $tmp1 + From 783c144afa7a38ca1abaf410b9b44cb465a11ed1 Mon Sep 17 00:00:00 2001 From: vjpai Date: Wed, 4 Nov 2015 08:29:33 -0800 Subject: [PATCH 080/103] Fix up single run test Enable reasonable default if resp size not specified --- test/cpp/qps/qps_driver.cc | 5 +- test/cpp/qps/single_run_localhost.sh | 92 +++++++++++++--------------- 2 files changed, 46 insertions(+), 51 deletions(-) mode change 100644 => 100755 test/cpp/qps/single_run_localhost.sh diff --git a/test/cpp/qps/qps_driver.cc b/test/cpp/qps/qps_driver.cc index 30795157cbb..ebbf931933e 100644 --- a/test/cpp/qps/qps_driver.cc +++ b/test/cpp/qps/qps_driver.cc @@ -108,7 +108,10 @@ static void QpsDriver() { params->set_req_size(FLAGS_simple_req_size); } } else { - GPR_ASSERT(false); // not yet implemented + // choose a reasonable default + auto params = + client_config.mutable_payload_config()->mutable_simple_params(); + params->set_resp_size(1); } client_config.set_async_client_threads(FLAGS_async_client_threads); diff --git a/test/cpp/qps/single_run_localhost.sh b/test/cpp/qps/single_run_localhost.sh old mode 100644 new mode 100755 index 771cf0fd60a..f5356f18343 --- a/test/cpp/qps/single_run_localhost.sh +++ b/test/cpp/qps/single_run_localhost.sh @@ -1,64 +1,56 @@ -#!/ bin / sh -#Copyright 2015, Google Inc. -#All rights reserved. +#!/bin/sh +# 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: +# 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. +# * 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. +# 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. -#performs a single qps run with one client and one server +# performs a single qps run with one client and one server -set - - ex +set -ex - cd - $(dirname $0) / - ../../ - .. +cd $(dirname $0)/../../.. - killall qps_worker - || true +killall qps_worker || true - config = opt +config=opt - NUMCPUS =`python2 .7 - c - 'import multiprocessing; print multiprocessing.cpu_count()'` +NUMCPUS=`python2.7 -c 'import multiprocessing; print multiprocessing.cpu_count()'` - make CONFIG = $config qps_worker qps_driver - - j$NUMCPUS +make CONFIG=$config qps_worker qps_driver -j$NUMCPUS - bins - / $config / qps_worker - - driver_port - 10000 &PID1 = $ !bins / $config / qps_worker - - driver_port 10010 &PID2 = $ ! +bins/$config/qps_worker -driver_port 10000 & +PID1=$! +bins/$config/qps_worker -driver_port 10010 & +PID2=$! - export QPS_WORKERS = "localhost:10000,localhost:10010" +export QPS_WORKERS="localhost:10000,localhost:10010" - bins - / $config / qps_driver $ * +bins/$config/qps_driver $* + +kill -2 $PID1 $PID2 +wait - kill - - 2 $PID1 $PID2 wait From 454074369e361450114d9303d6354664ac7d7fc0 Mon Sep 17 00:00:00 2001 From: vjpai Date: Wed, 4 Nov 2015 08:33:49 -0800 Subject: [PATCH 081/103] Better reasonable default --- test/cpp/qps/qps_driver.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/test/cpp/qps/qps_driver.cc b/test/cpp/qps/qps_driver.cc index ebbf931933e..d8bee6ec2b7 100644 --- a/test/cpp/qps/qps_driver.cc +++ b/test/cpp/qps/qps_driver.cc @@ -108,10 +108,8 @@ static void QpsDriver() { params->set_req_size(FLAGS_simple_req_size); } } else { - // choose a reasonable default - auto params = - client_config.mutable_payload_config()->mutable_simple_params(); - params->set_resp_size(1); + // set a reasonable default: proto but no payload + client_config.mutable_payload_config()->mutable_simple_params(); } client_config.set_async_client_threads(FLAGS_async_client_threads); From 7cf7211fc70e3fdd413da6a9d9366a486ebcb17d Mon Sep 17 00:00:00 2001 From: Adele Zhou Date: Wed, 4 Nov 2015 11:18:43 -0800 Subject: [PATCH 082/103] Define resultset. --- tools/run_tests/run_tests.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index ae7899e47ee..c78a120fc65 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -844,6 +844,7 @@ def _build_and_run( for _ in range(0, args.antagonists)] port_server_port = 32767 _start_port_server(port_server_port) + resultset = None try: infinite_runs = runs_per_test == 0 one_run = set( @@ -889,7 +890,7 @@ def _build_and_run( finally: for antagonist in antagonists: antagonist.kill() - if xml_report: + if xml_report and resultset: report_utils.render_xml_report(resultset, xml_report) number_failures, _ = jobset.run( From f8603adba192d1d89aec5f5860033041ec383984 Mon Sep 17 00:00:00 2001 From: vjpai Date: Wed, 4 Nov 2015 12:49:33 -0800 Subject: [PATCH 083/103] Secure performance testing for C++ is in the hizzouse! --- Makefile | 45 +++++++++- build.yaml | 17 ++++ test/cpp/qps/qps_driver.cc | 12 +++ .../qps/secure_sync_unary_ping_pong_test.cc | 90 +++++++++++++++++++ tools/run_tests/sources_and_headers.json | 17 ++++ tools/run_tests/tests.json | 16 ++++ 6 files changed, 196 insertions(+), 1 deletion(-) create mode 100644 test/cpp/qps/secure_sync_unary_ping_pong_test.cc diff --git a/Makefile b/Makefile index 9e2b5e0b10f..ca0856d103e 100644 --- a/Makefile +++ b/Makefile @@ -889,6 +889,7 @@ qps_worker: $(BINDIR)/$(CONFIG)/qps_worker reconnect_interop_client: $(BINDIR)/$(CONFIG)/reconnect_interop_client reconnect_interop_server: $(BINDIR)/$(CONFIG)/reconnect_interop_server secure_auth_context_test: $(BINDIR)/$(CONFIG)/secure_auth_context_test +secure_sync_unary_ping_pong_test: $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_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 @@ -1802,7 +1803,7 @@ buildtests: buildtests_c buildtests_cxx buildtests_zookeeper buildtests_c: privatelibs_c $(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)/endpoint_pair_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_cpu_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)/lb_policies_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)/timer_heap_test $(BINDIR)/$(CONFIG)/timer_list_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)/workqueue_test $(BINDIR)/$(CONFIG)/h2_compress_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_compress_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_compress_call_creds_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_compress_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_compress_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_compress_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_compress_default_host_test $(BINDIR)/$(CONFIG)/h2_compress_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_compress_empty_batch_test $(BINDIR)/$(CONFIG)/h2_compress_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_compress_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_compress_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_compress_large_metadata_test $(BINDIR)/$(CONFIG)/h2_compress_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_compress_max_message_length_test $(BINDIR)/$(CONFIG)/h2_compress_metadata_test $(BINDIR)/$(CONFIG)/h2_compress_no_op_test $(BINDIR)/$(CONFIG)/h2_compress_payload_test $(BINDIR)/$(CONFIG)/h2_compress_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_compress_registered_call_test $(BINDIR)/$(CONFIG)/h2_compress_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_compress_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_compress_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_compress_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_compress_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_compress_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_compress_simple_request_test $(BINDIR)/$(CONFIG)/h2_compress_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_fakesec_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_fakesec_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_fakesec_call_creds_test $(BINDIR)/$(CONFIG)/h2_fakesec_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_fakesec_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_fakesec_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_fakesec_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_fakesec_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_fakesec_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_fakesec_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_fakesec_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_fakesec_default_host_test $(BINDIR)/$(CONFIG)/h2_fakesec_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_fakesec_empty_batch_test $(BINDIR)/$(CONFIG)/h2_fakesec_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_fakesec_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_fakesec_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_fakesec_large_metadata_test $(BINDIR)/$(CONFIG)/h2_fakesec_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_fakesec_max_message_length_test $(BINDIR)/$(CONFIG)/h2_fakesec_metadata_test $(BINDIR)/$(CONFIG)/h2_fakesec_no_op_test $(BINDIR)/$(CONFIG)/h2_fakesec_payload_test $(BINDIR)/$(CONFIG)/h2_fakesec_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_fakesec_registered_call_test $(BINDIR)/$(CONFIG)/h2_fakesec_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_fakesec_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_fakesec_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_fakesec_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_fakesec_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_fakesec_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_fakesec_simple_request_test $(BINDIR)/$(CONFIG)/h2_fakesec_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_full_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_full_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_full_call_creds_test $(BINDIR)/$(CONFIG)/h2_full_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_full_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_full_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_full_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_full_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_full_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_full_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_full_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_full_default_host_test $(BINDIR)/$(CONFIG)/h2_full_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_full_empty_batch_test $(BINDIR)/$(CONFIG)/h2_full_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_full_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_full_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_full_large_metadata_test $(BINDIR)/$(CONFIG)/h2_full_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_full_max_message_length_test $(BINDIR)/$(CONFIG)/h2_full_metadata_test $(BINDIR)/$(CONFIG)/h2_full_no_op_test $(BINDIR)/$(CONFIG)/h2_full_payload_test $(BINDIR)/$(CONFIG)/h2_full_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_full_registered_call_test $(BINDIR)/$(CONFIG)/h2_full_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_full_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_full_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_full_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_full_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_full_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_full_simple_request_test $(BINDIR)/$(CONFIG)/h2_full_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_full+poll_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_full+poll_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_full+poll_call_creds_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_full+poll_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_full+poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_full+poll_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_full+poll_default_host_test $(BINDIR)/$(CONFIG)/h2_full+poll_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_full+poll_empty_batch_test $(BINDIR)/$(CONFIG)/h2_full+poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_full+poll_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_full+poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_full+poll_large_metadata_test $(BINDIR)/$(CONFIG)/h2_full+poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_full+poll_max_message_length_test $(BINDIR)/$(CONFIG)/h2_full+poll_metadata_test $(BINDIR)/$(CONFIG)/h2_full+poll_no_op_test $(BINDIR)/$(CONFIG)/h2_full+poll_payload_test $(BINDIR)/$(CONFIG)/h2_full+poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_full+poll_registered_call_test $(BINDIR)/$(CONFIG)/h2_full+poll_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_full+poll_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_full+poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_full+poll_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_full+poll_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_full+poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_full+poll_simple_request_test $(BINDIR)/$(CONFIG)/h2_full+poll_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_oauth2_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_oauth2_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_oauth2_call_creds_test $(BINDIR)/$(CONFIG)/h2_oauth2_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_oauth2_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_oauth2_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_oauth2_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_oauth2_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_oauth2_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_oauth2_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_oauth2_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_oauth2_default_host_test $(BINDIR)/$(CONFIG)/h2_oauth2_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_oauth2_empty_batch_test $(BINDIR)/$(CONFIG)/h2_oauth2_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_oauth2_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_oauth2_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_oauth2_large_metadata_test $(BINDIR)/$(CONFIG)/h2_oauth2_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_oauth2_max_message_length_test $(BINDIR)/$(CONFIG)/h2_oauth2_metadata_test $(BINDIR)/$(CONFIG)/h2_oauth2_no_op_test $(BINDIR)/$(CONFIG)/h2_oauth2_payload_test $(BINDIR)/$(CONFIG)/h2_oauth2_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_oauth2_registered_call_test $(BINDIR)/$(CONFIG)/h2_oauth2_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_oauth2_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_oauth2_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_oauth2_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_oauth2_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_oauth2_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_oauth2_simple_request_test $(BINDIR)/$(CONFIG)/h2_oauth2_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_proxy_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_proxy_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_proxy_call_creds_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_proxy_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_proxy_default_host_test $(BINDIR)/$(CONFIG)/h2_proxy_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_proxy_empty_batch_test $(BINDIR)/$(CONFIG)/h2_proxy_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_proxy_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_proxy_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_proxy_large_metadata_test $(BINDIR)/$(CONFIG)/h2_proxy_max_message_length_test $(BINDIR)/$(CONFIG)/h2_proxy_metadata_test $(BINDIR)/$(CONFIG)/h2_proxy_no_op_test $(BINDIR)/$(CONFIG)/h2_proxy_payload_test $(BINDIR)/$(CONFIG)/h2_proxy_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_proxy_registered_call_test $(BINDIR)/$(CONFIG)/h2_proxy_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_proxy_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_proxy_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_proxy_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_proxy_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_proxy_simple_request_test $(BINDIR)/$(CONFIG)/h2_proxy_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_sockpair_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_call_creds_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_sockpair_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair_empty_batch_test $(BINDIR)/$(CONFIG)/h2_sockpair_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_sockpair_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_sockpair_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_large_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_sockpair_max_message_length_test $(BINDIR)/$(CONFIG)/h2_sockpair_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_no_op_test $(BINDIR)/$(CONFIG)/h2_sockpair_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_sockpair_registered_call_test $(BINDIR)/$(CONFIG)/h2_sockpair_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_sockpair_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_sockpair_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_sockpair_simple_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_call_creds_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_empty_batch_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_large_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_max_message_length_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_no_op_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_registered_call_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_simple_request_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_call_creds_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_empty_batch_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_large_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_max_message_length_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_metadata_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_no_op_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_registered_call_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_simple_request_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_ssl_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_call_creds_test $(BINDIR)/$(CONFIG)/h2_ssl_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_ssl_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_ssl_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_ssl_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_ssl_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_ssl_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_ssl_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_ssl_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_ssl_default_host_test $(BINDIR)/$(CONFIG)/h2_ssl_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_ssl_empty_batch_test $(BINDIR)/$(CONFIG)/h2_ssl_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_ssl_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_ssl_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_ssl_large_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_ssl_max_message_length_test $(BINDIR)/$(CONFIG)/h2_ssl_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_no_op_test $(BINDIR)/$(CONFIG)/h2_ssl_payload_test $(BINDIR)/$(CONFIG)/h2_ssl_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_ssl_registered_call_test $(BINDIR)/$(CONFIG)/h2_ssl_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_ssl_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_ssl_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_ssl_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_ssl_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_ssl_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_ssl_simple_request_test $(BINDIR)/$(CONFIG)/h2_ssl_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_call_creds_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_default_host_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_empty_batch_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_large_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_max_message_length_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_no_op_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_payload_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_registered_call_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_simple_request_test $(BINDIR)/$(CONFIG)/h2_ssl+poll_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_call_creds_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_default_host_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_empty_batch_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_large_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_max_message_length_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_metadata_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_no_op_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_payload_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_registered_call_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_simple_request_test $(BINDIR)/$(CONFIG)/h2_ssl_proxy_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_uchannel_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_uchannel_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_uchannel_call_creds_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_uchannel_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_uchannel_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_uchannel_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_uchannel_default_host_test $(BINDIR)/$(CONFIG)/h2_uchannel_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_uchannel_empty_batch_test $(BINDIR)/$(CONFIG)/h2_uchannel_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_uchannel_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_uchannel_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_uchannel_large_metadata_test $(BINDIR)/$(CONFIG)/h2_uchannel_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_uchannel_max_message_length_test $(BINDIR)/$(CONFIG)/h2_uchannel_metadata_test $(BINDIR)/$(CONFIG)/h2_uchannel_no_op_test $(BINDIR)/$(CONFIG)/h2_uchannel_payload_test $(BINDIR)/$(CONFIG)/h2_uchannel_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_uchannel_registered_call_test $(BINDIR)/$(CONFIG)/h2_uchannel_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_uchannel_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_uchannel_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_uchannel_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_uchannel_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_uchannel_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_uchannel_simple_request_test $(BINDIR)/$(CONFIG)/h2_uchannel_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_uds_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_uds_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_uds_call_creds_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_uds_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_uds_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_uds_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_uds_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_uds_empty_batch_test $(BINDIR)/$(CONFIG)/h2_uds_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_uds_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_uds_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_uds_large_metadata_test $(BINDIR)/$(CONFIG)/h2_uds_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_uds_max_message_length_test $(BINDIR)/$(CONFIG)/h2_uds_metadata_test $(BINDIR)/$(CONFIG)/h2_uds_no_op_test $(BINDIR)/$(CONFIG)/h2_uds_payload_test $(BINDIR)/$(CONFIG)/h2_uds_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_uds_registered_call_test $(BINDIR)/$(CONFIG)/h2_uds_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_uds_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_uds_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_uds_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_uds_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_uds_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_uds_simple_request_test $(BINDIR)/$(CONFIG)/h2_uds_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_uds+poll_bad_hostname_test $(BINDIR)/$(CONFIG)/h2_uds+poll_binary_metadata_test $(BINDIR)/$(CONFIG)/h2_uds+poll_call_creds_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_after_client_done_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/h2_uds+poll_census_simple_request_test $(BINDIR)/$(CONFIG)/h2_uds+poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/h2_uds+poll_compressed_payload_test $(BINDIR)/$(CONFIG)/h2_uds+poll_disappearing_server_test $(BINDIR)/$(CONFIG)/h2_uds+poll_empty_batch_test $(BINDIR)/$(CONFIG)/h2_uds+poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/h2_uds+poll_high_initial_seqno_test $(BINDIR)/$(CONFIG)/h2_uds+poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/h2_uds+poll_large_metadata_test $(BINDIR)/$(CONFIG)/h2_uds+poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/h2_uds+poll_max_message_length_test $(BINDIR)/$(CONFIG)/h2_uds+poll_metadata_test $(BINDIR)/$(CONFIG)/h2_uds+poll_no_op_test $(BINDIR)/$(CONFIG)/h2_uds+poll_payload_test $(BINDIR)/$(CONFIG)/h2_uds+poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/h2_uds+poll_registered_call_test $(BINDIR)/$(CONFIG)/h2_uds+poll_request_with_flags_test $(BINDIR)/$(CONFIG)/h2_uds+poll_request_with_payload_test $(BINDIR)/$(CONFIG)/h2_uds+poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/h2_uds+poll_shutdown_finishes_calls_test $(BINDIR)/$(CONFIG)/h2_uds+poll_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/h2_uds+poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/h2_uds+poll_simple_request_test $(BINDIR)/$(CONFIG)/h2_uds+poll_trailing_metadata_test $(BINDIR)/$(CONFIG)/h2_compress_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_channel_connectivity_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_default_host_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_compress_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_full_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_full_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_full_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_full_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_full_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_full_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full_channel_connectivity_nosec_test $(BINDIR)/$(CONFIG)/h2_full_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_full_default_host_nosec_test $(BINDIR)/$(CONFIG)/h2_full_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_full_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_full_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_full_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_full_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_full_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_full_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_full_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_full_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_full_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_full_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_full_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_full_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_full_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_full_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_channel_connectivity_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_default_host_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_full+poll_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_default_host_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_proxy_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair+trace_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_channel_connectivity_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_default_host_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uchannel_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_channel_connectivity_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds_trailing_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_bad_hostname_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_binary_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_after_accept_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_after_client_done_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_after_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_before_invoke_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_cancel_in_a_vacuum_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_census_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_channel_connectivity_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_compressed_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_disappearing_server_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_empty_batch_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_graceful_server_shutdown_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_high_initial_seqno_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_invoke_large_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_large_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_max_concurrent_streams_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_max_message_length_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_metadata_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_no_op_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_ping_pong_streaming_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_registered_call_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_request_with_flags_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_request_with_payload_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_server_finishes_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_shutdown_finishes_calls_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_shutdown_finishes_tags_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_simple_delayed_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_simple_request_nosec_test $(BINDIR)/$(CONFIG)/h2_uds+poll_trailing_metadata_nosec_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_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)/streaming_throughput_test $(BINDIR)/$(CONFIG)/stress_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)/secure_sync_unary_ping_pong_test $(BINDIR)/$(CONFIG)/server_crash_test $(BINDIR)/$(CONFIG)/server_crash_test_client $(BINDIR)/$(CONFIG)/shutdown_test $(BINDIR)/$(CONFIG)/status_test $(BINDIR)/$(CONFIG)/streaming_throughput_test $(BINDIR)/$(CONFIG)/stress_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 @@ -3550,6 +3551,8 @@ test_cxx: test_zookeeper buildtests_cxx $(Q) $(BINDIR)/$(CONFIG)/qps_test || ( echo test qps_test failed ; exit 1 ) $(E) "[RUN] Testing secure_auth_context_test" $(Q) $(BINDIR)/$(CONFIG)/secure_auth_context_test || ( echo test secure_auth_context_test failed ; exit 1 ) + $(E) "[RUN] Testing secure_sync_unary_ping_pong_test" + $(Q) $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test || ( echo test secure_sync_unary_ping_pong_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" @@ -10372,6 +10375,46 @@ endif endif +SECURE_SYNC_UNARY_PING_PONG_TEST_SRC = \ + test/cpp/qps/secure_sync_unary_ping_pong_test.cc \ + +SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SECURE_SYNC_UNARY_PING_PONG_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_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)/secure_sync_unary_ping_pong_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test: $(PROTOBUF_DEP) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(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) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(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)/secure_sync_unary_ping_pong_test + +endif + +endif + +$(OBJDIR)/$(CONFIG)/test/cpp/qps/secure_sync_unary_ping_pong_test.o: $(LIBDIR)/$(CONFIG)/libqps.a $(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_secure_sync_unary_ping_pong_test: $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS:.o=.dep) +endif +endif + + SERVER_CRASH_TEST_SRC = \ test/cpp/end2end/server_crash_test.cc \ diff --git a/build.yaml b/build.yaml index fba87cc07a4..873606f9806 100644 --- a/build.yaml +++ b/build.yaml @@ -2042,6 +2042,23 @@ targets: - grpc - gpr_test_util - gpr +- name: secure_sync_unary_ping_pong_test + build: test + language: c++ + src: + - test/cpp/qps/secure_sync_unary_ping_pong_test.cc + deps: + - qps + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc + - gpr_test_util + - gpr + platforms: + - mac + - linux + - posix - name: server_crash_test build: test language: c++ diff --git a/test/cpp/qps/qps_driver.cc b/test/cpp/qps/qps_driver.cc index d8bee6ec2b7..cdcd808bf77 100644 --- a/test/cpp/qps/qps_driver.cc +++ b/test/cpp/qps/qps_driver.cc @@ -74,12 +74,15 @@ DEFINE_double(determ_load, -1.0, "Deterministic offered load (qps)"); DEFINE_double(pareto_base, -1.0, "Pareto base interarrival time (us)"); DEFINE_double(pareto_alpha, -1.0, "Pareto alpha value"); +DEFINE_bool(secure_test, false, "Run a secure test"); + using grpc::testing::ClientConfig; using grpc::testing::ServerConfig; using grpc::testing::ClientType; using grpc::testing::ServerType; using grpc::testing::RpcType; using grpc::testing::ResourceUsage; +using grpc::testing::SecurityParams; namespace grpc { namespace testing { @@ -139,6 +142,15 @@ static void QpsDriver() { server_config.set_server_type(server_type); server_config.set_async_server_threads(FLAGS_async_server_threads); + if (FLAGS_secure_test) { + // Set up security params + SecurityParams security; + security.set_use_test_ca(true); + security.set_server_host_override("foo.test.google.fr"); + client_config.mutable_security_params()->CopyFrom(security); + server_config.mutable_security_params()->CopyFrom(security); + } + const auto result = RunScenario( client_config, FLAGS_num_clients, server_config, FLAGS_num_servers, FLAGS_warmup_seconds, FLAGS_benchmark_seconds, FLAGS_local_workers); diff --git a/test/cpp/qps/secure_sync_unary_ping_pong_test.cc b/test/cpp/qps/secure_sync_unary_ping_pong_test.cc new file mode 100644 index 00000000000..874b7470d47 --- /dev/null +++ b/test/cpp/qps/secure_sync_unary_ping_pong_test.cc @@ -0,0 +1,90 @@ +/* + * + * 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 + +#include + +#include + +#include "test/cpp/qps/driver.h" +#include "test/cpp/qps/report.h" +#include "test/cpp/util/benchmark_config.h" + +namespace grpc { +namespace testing { + +static const int WARMUP = 5; +static const int BENCHMARK = 10; + +static void RunSynchronousUnaryPingPong() { + gpr_log(GPR_INFO, "Running Synchronous Unary Ping Pong"); + + ClientConfig client_config; + client_config.set_client_type(SYNC_CLIENT); + client_config.set_outstanding_rpcs_per_channel(1); + client_config.set_client_channels(1); + client_config.mutable_payload_config() + ->mutable_simple_params() + ->set_resp_size(1); + client_config.set_rpc_type(UNARY); + client_config.mutable_load_params()->mutable_closed_loop(); + + ServerConfig server_config; + server_config.set_server_type(SYNC_SERVER); + + // Set up security params + SecurityParams security; + security.set_use_test_ca(true); + security.set_server_host_override("foo.test.google.fr"); + client_config.mutable_security_params()->CopyFrom(security); + server_config.mutable_security_params()->CopyFrom(security); + + const auto result = + RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); + + GetReporter()->ReportQPS(*result); + GetReporter()->ReportLatency(*result); +} + +} // namespace testing +} // namespace grpc + +int main(int argc, char** argv) { + grpc::testing::InitBenchmark(&argc, &argv, true); + + signal(SIGPIPE, SIG_IGN); + grpc::testing::RunSynchronousUnaryPingPong(); + + return 0; +} diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index eb9a117733a..7f4b339a53d 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -1587,6 +1587,23 @@ "test/cpp/common/secure_auth_context_test.cc" ] }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc++", + "grpc++_test_util", + "grpc_test_util", + "qps" + ], + "headers": [], + "language": "c++", + "name": "secure_sync_unary_ping_pong_test", + "src": [ + "test/cpp/qps/secure_sync_unary_ping_pong_test.cc" + ] + }, { "deps": [ "gpr", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index a8366e05abe..3abd41dfdc2 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -1533,6 +1533,22 @@ "windows" ] }, + { + "ci_platforms": [ + "linux", + "mac", + "posix" + ], + "exclude_configs": [], + "flaky": false, + "language": "c++", + "name": "secure_sync_unary_ping_pong_test", + "platforms": [ + "linux", + "mac", + "posix" + ] + }, { "ci_platforms": [ "linux", From 3affdddf5b6b53cda27683eb776915b7f7ea155b Mon Sep 17 00:00:00 2001 From: vjpai Date: Wed, 4 Nov 2015 13:13:25 -0800 Subject: [PATCH 084/103] Add secure testing to sweep --- test/cpp/qps/qps-sweep.sh | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/test/cpp/qps/qps-sweep.sh b/test/cpp/qps/qps-sweep.sh index 216e40820c4..36ea974812a 100755 --- a/test/cpp/qps/qps-sweep.sh +++ b/test/cpp/qps/qps-sweep.sh @@ -37,17 +37,21 @@ fi bins=`find . .. ../.. ../../.. -name bins | head -1` -for channels in 1 2 4 8 +for secure in true false do - for client in SYNC_CLIENT ASYNC_CLIENT + for channels in 1 2 4 8 do - for server in SYNC_SERVER ASYNC_SERVER + for client in SYNC_CLIENT ASYNC_CLIENT do - for rpc in UNARY STREAMING + for server in SYNC_SERVER ASYNC_SERVER do - echo "Test $rpc $client $server , $channels channels" - "$bins"/opt/qps_driver --rpc_type=$rpc \ - --client_type=$client --server_type=$server + for rpc in UNARY STREAMING + do + echo "Test $rpc $client $server, $channels channels, secure=$secure" + "$bins"/opt/qps_driver --rpc_type=$rpc \ + --client_type=$client --server_type=$server \ + --secure_test=$secure + done done done done From fba20c987d4eedaa039a828ec7c6ab3fed99ea7d Mon Sep 17 00:00:00 2001 From: vjpai Date: Wed, 4 Nov 2015 14:49:17 -0800 Subject: [PATCH 085/103] Address some review comments about signal and restoring qps_test_with_poll Make payloads respect the new defaults --- .../cpp/qps/async_streaming_ping_pong_test.cc | 6 -- test/cpp/qps/async_unary_ping_pong_test.cc | 6 -- test/cpp/qps/client.h | 26 ++++-- test/cpp/qps/qps_driver.cc | 2 - test/cpp/qps/qps_openloop_test.cc | 6 -- test/cpp/qps/qps_test.cc | 6 -- test/cpp/qps/qps_test_with_poll.cc | 85 +++++++++++++++++++ test/cpp/qps/qps_worker.cc | 4 +- .../qps/secure_sync_unary_ping_pong_test.cc | 6 -- test/cpp/qps/server.h | 4 +- test/cpp/qps/server_async.cc | 2 +- test/cpp/qps/server_sync.cc | 2 +- test/cpp/qps/sync_streaming_ping_pong_test.cc | 6 -- test/cpp/qps/sync_unary_ping_pong_test.cc | 6 -- 14 files changed, 109 insertions(+), 58 deletions(-) create mode 100644 test/cpp/qps/qps_test_with_poll.cc diff --git a/test/cpp/qps/async_streaming_ping_pong_test.cc b/test/cpp/qps/async_streaming_ping_pong_test.cc index 9aa7f88fa4d..9fef93a70fd 100644 --- a/test/cpp/qps/async_streaming_ping_pong_test.cc +++ b/test/cpp/qps/async_streaming_ping_pong_test.cc @@ -35,8 +35,6 @@ #include -#include - #include "test/cpp/qps/driver.h" #include "test/cpp/qps/report.h" #include "test/cpp/util/benchmark_config.h" @@ -54,9 +52,6 @@ static void RunAsyncStreamingPingPong() { client_config.set_client_type(ASYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.mutable_payload_config() - ->mutable_simple_params() - ->set_resp_size(1); client_config.set_async_client_threads(1); client_config.set_rpc_type(STREAMING); client_config.mutable_load_params()->mutable_closed_loop(); @@ -78,7 +73,6 @@ static void RunAsyncStreamingPingPong() { int main(int argc, char** argv) { grpc::testing::InitBenchmark(&argc, &argv, true); - signal(SIGPIPE, SIG_IGN); grpc::testing::RunAsyncStreamingPingPong(); return 0; } diff --git a/test/cpp/qps/async_unary_ping_pong_test.cc b/test/cpp/qps/async_unary_ping_pong_test.cc index fe2cde038a1..b4ab0e5d595 100644 --- a/test/cpp/qps/async_unary_ping_pong_test.cc +++ b/test/cpp/qps/async_unary_ping_pong_test.cc @@ -35,8 +35,6 @@ #include -#include - #include "test/cpp/qps/driver.h" #include "test/cpp/qps/report.h" #include "test/cpp/util/benchmark_config.h" @@ -54,9 +52,6 @@ static void RunAsyncUnaryPingPong() { client_config.set_client_type(ASYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.mutable_payload_config() - ->mutable_simple_params() - ->set_resp_size(1); client_config.set_async_client_threads(1); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_closed_loop(); @@ -76,7 +71,6 @@ static void RunAsyncUnaryPingPong() { int main(int argc, char** argv) { grpc::testing::InitBenchmark(&argc, &argv, true); - signal(SIGPIPE, SIG_IGN); grpc::testing::RunAsyncUnaryPingPong(); return 0; diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h index 027e0d4be0f..f4400692fea 100644 --- a/test/cpp/qps/client.h +++ b/test/cpp/qps/client.h @@ -90,7 +90,11 @@ class Client { } else if (config.payload_config().has_complex_params()) { GPR_ASSERT(false); // not yet implemented } else { - GPR_ASSERT(false); // badly configured + // default should be simple proto without payloads + request_.set_response_type(grpc::testing::PayloadType::COMPRESSABLE); + request_.set_response_size(0); + request_.mutable_payload()->set_type( + grpc::testing::PayloadType::COMPRESSABLE); } } virtual ~Client() {} @@ -176,23 +180,29 @@ class Client { const auto& load = config.load_params(); std::unique_ptr random_dist; - if (load.has_poisson()) { + switch (load.load_case()) { + case LoadParams::kClosedLoop: + // Closed-loop doesn't use random dist at all + break; + case LoadParams::kPoisson: random_dist.reset( new ExpDist(load.poisson().offered_load() / num_threads)); - } else if (load.has_uniform()) { + break; + case LoadParams::kUniform: random_dist.reset( new UniformDist(load.uniform().interarrival_lo() * num_threads, load.uniform().interarrival_hi() * num_threads)); - } else if (load.has_determ()) { + break; + case LoadParams::kDeterm: random_dist.reset( new DetDist(num_threads / load.determ().offered_load())); - } else if (load.has_pareto()) { + break; + case LoadParams::kPareto: random_dist.reset( new ParetoDist(load.pareto().interarrival_base() * num_threads, load.pareto().alpha())); - } else if (load.has_closed_loop()) { - // Closed-loop doesn't use random dist at all - } else { // invalid load type + break; + default: GPR_ASSERT(false); } diff --git a/test/cpp/qps/qps_driver.cc b/test/cpp/qps/qps_driver.cc index cdcd808bf77..4c93a042cf5 100644 --- a/test/cpp/qps/qps_driver.cc +++ b/test/cpp/qps/qps_driver.cc @@ -33,7 +33,6 @@ #include #include -#include #include #include @@ -167,7 +166,6 @@ static void QpsDriver() { int main(int argc, char** argv) { grpc::testing::InitBenchmark(&argc, &argv, true); - signal(SIGPIPE, SIG_IGN); grpc::testing::QpsDriver(); return 0; diff --git a/test/cpp/qps/qps_openloop_test.cc b/test/cpp/qps/qps_openloop_test.cc index fbd9558b5a2..dc88c893bb9 100644 --- a/test/cpp/qps/qps_openloop_test.cc +++ b/test/cpp/qps/qps_openloop_test.cc @@ -31,8 +31,6 @@ * */ -#include - #include #include @@ -54,9 +52,6 @@ static void RunQPS() { client_config.set_client_type(ASYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1000); client_config.set_client_channels(8); - client_config.mutable_payload_config() - ->mutable_simple_params() - ->set_resp_size(1); client_config.set_async_client_threads(8); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_poisson()->set_offered_load( @@ -79,7 +74,6 @@ static void RunQPS() { int main(int argc, char** argv) { grpc::testing::InitBenchmark(&argc, &argv, true); - signal(SIGPIPE, SIG_IGN); grpc::testing::RunQPS(); return 0; diff --git a/test/cpp/qps/qps_test.cc b/test/cpp/qps/qps_test.cc index de81d99a37c..89b35cfb052 100644 --- a/test/cpp/qps/qps_test.cc +++ b/test/cpp/qps/qps_test.cc @@ -31,8 +31,6 @@ * */ -#include - #include #include @@ -54,9 +52,6 @@ static void RunQPS() { client_config.set_client_type(ASYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1000); client_config.set_client_channels(8); - client_config.mutable_payload_config() - ->mutable_simple_params() - ->set_resp_size(1); client_config.set_async_client_threads(8); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_closed_loop(); @@ -78,7 +73,6 @@ static void RunQPS() { int main(int argc, char** argv) { grpc::testing::InitBenchmark(&argc, &argv, true); - signal(SIGPIPE, SIG_IGN); grpc::testing::RunQPS(); return 0; diff --git a/test/cpp/qps/qps_test_with_poll.cc b/test/cpp/qps/qps_test_with_poll.cc new file mode 100644 index 00000000000..97da4096ed3 --- /dev/null +++ b/test/cpp/qps/qps_test_with_poll.cc @@ -0,0 +1,85 @@ +/* + * + * 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 + +#include + +#include "test/cpp/qps/driver.h" +#include "test/cpp/qps/report.h" +#include "test/cpp/util/benchmark_config.h" + +extern "C" { +#include "src/core/iomgr/pollset_posix.h" +} + +namespace grpc { +namespace testing { + +static const int WARMUP = 5; +static const int BENCHMARK = 5; + +static void RunQPS() { + gpr_log(GPR_INFO, "Running QPS test"); + + ClientConfig client_config; + client_config.set_client_type(ASYNC_CLIENT); + client_config.set_outstanding_rpcs_per_channel(1000); + client_config.set_client_channels(8); + client_config.set_async_client_threads(8); + client_config.set_rpc_type(UNARY); + client_config.mutable_load_params()->mutable_closed_loop(); + + ServerConfig server_config; + server_config.set_server_type(ASYNC_SERVER); + server_config.set_async_server_threads(4); + + const auto result = + RunScenario(client_config, 1, server_config, 1, WARMUP, BENCHMARK, -2); + + GetReporter()->ReportQPSPerCore(*result); + GetReporter()->ReportLatency(*result); +} + +} // namespace testing +} // namespace grpc + +int main(int argc, char** argv) { + grpc::testing::InitBenchmark(&argc, &argv, true); + + grpc_platform_become_multipoller = grpc_poll_become_multipoller; + + grpc::testing::RunQPS(); + + return 0; +} diff --git a/test/cpp/qps/qps_worker.cc b/test/cpp/qps/qps_worker.cc index 8af6fd0f16f..dc59eab7ef6 100644 --- a/test/cpp/qps/qps_worker.cc +++ b/test/cpp/qps/qps_worker.cc @@ -199,8 +199,8 @@ class WorkerServiceImpl GRPC_FINAL : public WorkerService::Service { return Status(StatusCode::INVALID_ARGUMENT, ""); } ServerStatus status; - status.set_port(server->Port()); - status.set_cores(server->Cores()); + status.set_port(server->port()); + status.set_cores(server->cores()); if (!stream->Write(status)) { return Status(StatusCode::UNKNOWN, ""); } diff --git a/test/cpp/qps/secure_sync_unary_ping_pong_test.cc b/test/cpp/qps/secure_sync_unary_ping_pong_test.cc index 874b7470d47..df06f7e471f 100644 --- a/test/cpp/qps/secure_sync_unary_ping_pong_test.cc +++ b/test/cpp/qps/secure_sync_unary_ping_pong_test.cc @@ -31,8 +31,6 @@ * */ -#include - #include #include @@ -54,9 +52,6 @@ static void RunSynchronousUnaryPingPong() { client_config.set_client_type(SYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.mutable_payload_config() - ->mutable_simple_params() - ->set_resp_size(1); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_closed_loop(); @@ -83,7 +78,6 @@ static void RunSynchronousUnaryPingPong() { int main(int argc, char** argv) { grpc::testing::InitBenchmark(&argc, &argv, true); - signal(SIGPIPE, SIG_IGN); grpc::testing::RunSynchronousUnaryPingPong(); return 0; diff --git a/test/cpp/qps/server.h b/test/cpp/qps/server.h index 0309cb5c20f..6e81edc8ffe 100644 --- a/test/cpp/qps/server.h +++ b/test/cpp/qps/server.h @@ -86,8 +86,8 @@ class Server { return true; } - int Port() const { return port_; } - int Cores() const { return gpr_cpu_num_cores(); } + int port() const { return port_; } + int cores() const { return gpr_cpu_num_cores(); } static std::shared_ptr CreateServerCredentials( const ServerConfig& config) { if (config.has_security_params()) { diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc index 40f9dd3f46b..2d922fa6150 100644 --- a/test/cpp/qps/server_async.cc +++ b/test/cpp/qps/server_async.cc @@ -60,7 +60,7 @@ class AsyncQpsServerTest : public Server { explicit AsyncQpsServerTest(const ServerConfig &config) : Server(config) { char *server_address = NULL; - gpr_join_host_port(&server_address, "::", Port()); + gpr_join_host_port(&server_address, "::", port()); ServerBuilder builder; builder.AddListeningPort(server_address, diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc index 9f06b44aece..a09b174b7e0 100644 --- a/test/cpp/qps/server_sync.cc +++ b/test/cpp/qps/server_sync.cc @@ -89,7 +89,7 @@ class SynchronousServer GRPC_FINAL : public grpc::testing::Server { char* server_address = NULL; - gpr_join_host_port(&server_address, "::", Port()); + gpr_join_host_port(&server_address, "::", port()); builder.AddListeningPort(server_address, Server::CreateServerCredentials(config)); gpr_free(server_address); diff --git a/test/cpp/qps/sync_streaming_ping_pong_test.cc b/test/cpp/qps/sync_streaming_ping_pong_test.cc index 250e8eb7727..186afc03f7c 100644 --- a/test/cpp/qps/sync_streaming_ping_pong_test.cc +++ b/test/cpp/qps/sync_streaming_ping_pong_test.cc @@ -31,8 +31,6 @@ * */ -#include - #include #include @@ -54,9 +52,6 @@ static void RunSynchronousStreamingPingPong() { client_config.set_client_type(SYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.mutable_payload_config() - ->mutable_simple_params() - ->set_resp_size(1); client_config.set_rpc_type(STREAMING); client_config.mutable_load_params()->mutable_closed_loop(); @@ -75,7 +70,6 @@ static void RunSynchronousStreamingPingPong() { int main(int argc, char** argv) { grpc::testing::InitBenchmark(&argc, &argv, true); - signal(SIGPIPE, SIG_IGN); grpc::testing::RunSynchronousStreamingPingPong(); return 0; diff --git a/test/cpp/qps/sync_unary_ping_pong_test.cc b/test/cpp/qps/sync_unary_ping_pong_test.cc index 4defcf30657..25851833a6d 100644 --- a/test/cpp/qps/sync_unary_ping_pong_test.cc +++ b/test/cpp/qps/sync_unary_ping_pong_test.cc @@ -31,8 +31,6 @@ * */ -#include - #include #include @@ -54,9 +52,6 @@ static void RunSynchronousUnaryPingPong() { client_config.set_client_type(SYNC_CLIENT); client_config.set_outstanding_rpcs_per_channel(1); client_config.set_client_channels(1); - client_config.mutable_payload_config() - ->mutable_simple_params() - ->set_resp_size(1); client_config.set_rpc_type(UNARY); client_config.mutable_load_params()->mutable_closed_loop(); @@ -76,7 +71,6 @@ static void RunSynchronousUnaryPingPong() { int main(int argc, char** argv) { grpc::testing::InitBenchmark(&argc, &argv, true); - signal(SIGPIPE, SIG_IGN); grpc::testing::RunSynchronousUnaryPingPong(); return 0; From 81790fc7cf695d4048973a0ff81d90aabea7b29b Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Wed, 4 Nov 2015 15:37:21 -0800 Subject: [PATCH 086/103] Escape some special markdown characters None of them were causing display problems online, but it would be easy for them to start causing trouble. --- doc/PROTOCOL-HTTP2.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/PROTOCOL-HTTP2.md b/doc/PROTOCOL-HTTP2.md index 02d4f28102b..c449df0e940 100644 --- a/doc/PROTOCOL-HTTP2.md +++ b/doc/PROTOCOL-HTTP2.md @@ -10,17 +10,17 @@ Production rules are using ABNF syn The following is the general sequence of message atoms in a GRPC request & response message stream -* Request → Request-Headers *Delimited-Message EOS -* Response → (Response-Headers *Delimited-Message Trailers) / Trailers-Only +* Request → Request-Headers \*Delimited-Message EOS +* Response → (Response-Headers \*Delimited-Message Trailers) / Trailers-Only ### Requests -* Request → Request-Headers *Delimited-Message EOS +* Request → Request-Headers \*Delimited-Message EOS Request-Headers are delivered as HTTP2 headers in HEADERS + CONTINUATION frames. -* **Request-Headers** → Call-Definition *Custom-Metadata +* **Request-Headers** → Call-Definition \*Custom-Metadata * **Call-Definition** → Method Scheme Path TE [Authority] [Timeout] [Content-Type] [Message-Type] [Message-Encoding] [Message-Accept-Encoding] [User-Agent] * **Method** → “:method POST” * **Scheme** → “:scheme ” (“http” / “https”) @@ -39,13 +39,13 @@ Request-Headers are delivered as HTTP2 headers in HEADERS + CONTINUATION frames. * **Content-Type** → “content-type” “application/grpc” [(“+proto” / “+json” / {_custom_})] * **Content-Coding** → “gzip” / “deflate” / “snappy” / {_custom_} * **Message-Encoding** → “grpc-encoding” Content-Coding -* **Message-Accept-Encoding** → “grpc-accept-encoding” Content-Coding *("," Content-Coding) +* **Message-Accept-Encoding** → “grpc-accept-encoding” Content-Coding \*("," Content-Coding) * **User-Agent** → “user-agent” {_structured user-agent string_} * **Message-Type** → “grpc-message-type” {_type name for message schema_} * **Custom-Metadata** → Binary-Header / ASCII-Header * **Binary-Header** → {Header-Name “-bin” } {_base64 encoded value_} * **ASCII-Header** → Header-Name {_value_} -* **Header-Name** → 1*( %x30-39 / %x61-7A / “_” / “-”) ; 0-9 a-z +* **Header-Name** → 1\*( %x30-39 / %x61-7A / “\_” / “-”) ; 0-9 a-z HTTP2 requires that reserved headers, ones starting with “:” appear before all other headers. Additionally implementations should send **Timeout** immediately after the reserved headers and they should send the **Call-Definition** headers before sending **Custom-Metadata**. @@ -61,7 +61,7 @@ The repeated sequence of **Delimited-Message** items is delivered in DATA frames * **Delimited-Message** → Compressed-Flag Message-Length Message * **Compressed-Flag** → 0 / 1 # encoded as 1 byte unsigned integer * **Message-Length** → {_length of Message_} # encoded as 4 byte unsigned integer -* **Message** → *{binary octet} +* **Message** → \*{binary octet} A **Compressed-Flag** value of 1 indicates that the binary octet sequence of **Message** is compressed using the mechanism declared by the **Message-Encoding** header. A value of 0 indicates that no encoding of **Message** bytes has occurred. Compression contexts are NOT maintained over message boundaries, implementations must create a new context for each message in the stream. If the **Message-Encoding** header is omitted then the **Compressed-Flag** must be 0. @@ -69,10 +69,10 @@ For requests, **EOS** (end-of-stream) is indicated by the presence of the END_ST ###Responses -* **Response** → (Response-Headers *Delimited-Message Trailers) / Trailers-Only -* **Response-Headers** → HTTP-Status [Message-Encoding] [Message-Accept-Encoding] Content-Type *Custom-Metadata +* **Response** → (Response-Headers \*Delimited-Message Trailers) / Trailers-Only +* **Response-Headers** → HTTP-Status [Message-Encoding] [Message-Accept-Encoding] Content-Type \*Custom-Metadata * **Trailers-Only** → HTTP-Status Content-Type Trailers -* **Trailers** → Status [Status-Message] *Custom-Metadata +* **Trailers** → Status [Status-Message] \*Custom-Metadata * **HTTP-Status** → “:status 200” * **Status** → “grpc-status” * **Status-Message** → “grpc-message” From 82cfe9028caaf271a7b67a833cdd217202e3dbff Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Wed, 4 Nov 2015 15:43:37 -0800 Subject: [PATCH 087/103] Replace curly quotes with plain ASCII quotes The pretty quotes were automatically converted from ASCII quotes when the documented was a Google Doc. Now they just make modifying the document harder. --- doc/PROTOCOL-HTTP2.md | 54 +++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/doc/PROTOCOL-HTTP2.md b/doc/PROTOCOL-HTTP2.md index c449df0e940..dfcfa0b50e5 100644 --- a/doc/PROTOCOL-HTTP2.md +++ b/doc/PROTOCOL-HTTP2.md @@ -22,39 +22,39 @@ Request-Headers are delivered as HTTP2 headers in HEADERS + CONTINUATION frames. * **Request-Headers** → Call-Definition \*Custom-Metadata * **Call-Definition** → Method Scheme Path TE [Authority] [Timeout] [Content-Type] [Message-Type] [Message-Encoding] [Message-Accept-Encoding] [User-Agent] -* **Method** → “:method POST” -* **Scheme** → “:scheme ” (“http” / “https”) -* **Path** → “:path” {_path identifying method within exposed API_} -* **Authority** → “:authority” {_virtual host name of authority_} -* **TE** → “te” “trailers” # Used to detect incompatible proxies -* **Timeout** → “grpc-timeout” TimeoutValue TimeoutUnit +* **Method** → ":method POST" +* **Scheme** → ":scheme " ("http" / "https") +* **Path** → ":path" {_path identifying method within exposed API_} +* **Authority** → ":authority" {_virtual host name of authority_} +* **TE** → "te" "trailers" # Used to detect incompatible proxies +* **Timeout** → "grpc-timeout" TimeoutValue TimeoutUnit * **TimeoutValue** → {_positive integer as ASCII string of at most 8 digits_} * **TimeoutUnit** → Hour / Minute / Second / Millisecond / Microsecond / Nanosecond -* **Hour** → “H” -* **Minute** → “M” -* **Second** → “S” -* **Millisecond** → “m” -* **Microsecond** → “u” -* **Nanosecond** → “n” -* **Content-Type** → “content-type” “application/grpc” [(“+proto” / “+json” / {_custom_})] -* **Content-Coding** → “gzip” / “deflate” / “snappy” / {_custom_} -* **Message-Encoding** → “grpc-encoding” Content-Coding -* **Message-Accept-Encoding** → “grpc-accept-encoding” Content-Coding \*("," Content-Coding) -* **User-Agent** → “user-agent” {_structured user-agent string_} -* **Message-Type** → “grpc-message-type” {_type name for message schema_} +* **Hour** → "H" +* **Minute** → "M" +* **Second** → "S" +* **Millisecond** → "m" +* **Microsecond** → "u" +* **Nanosecond** → "n" +* **Content-Type** → "content-type" "application/grpc" [("+proto" / "+json" / {_custom_})] +* **Content-Coding** → "gzip" / "deflate" / "snappy" / {_custom_} +* **Message-Encoding** → "grpc-encoding" Content-Coding +* **Message-Accept-Encoding** → "grpc-accept-encoding" Content-Coding \*("," Content-Coding) +* **User-Agent** → "user-agent" {_structured user-agent string_} +* **Message-Type** → "grpc-message-type" {_type name for message schema_} * **Custom-Metadata** → Binary-Header / ASCII-Header -* **Binary-Header** → {Header-Name “-bin” } {_base64 encoded value_} +* **Binary-Header** → {Header-Name "-bin" } {_base64 encoded value_} * **ASCII-Header** → Header-Name {_value_} -* **Header-Name** → 1\*( %x30-39 / %x61-7A / “\_” / “-”) ; 0-9 a-z +* **Header-Name** → 1\*( %x30-39 / %x61-7A / "\_" / "-") ; 0-9 a-z -HTTP2 requires that reserved headers, ones starting with “:” appear before all other headers. Additionally implementations should send **Timeout** immediately after the reserved headers and they should send the **Call-Definition** headers before sending **Custom-Metadata**. +HTTP2 requires that reserved headers, ones starting with ":" appear before all other headers. Additionally implementations should send **Timeout** immediately after the reserved headers and they should send the **Call-Definition** headers before sending **Custom-Metadata**. If **Timeout** is omitted a server should assume an infinite timeout. Client implementations are free to send a default minimum timeout based on their deployment requirements. -**Custom-Metadata** is an arbitrary set of key-value pairs defined by the application layer. Aside from transport limits on the total length of HTTP2 HEADERS the only other constraint is that header names starting with “grpc-” are reserved for future use. +**Custom-Metadata** is an arbitrary set of key-value pairs defined by the application layer. Aside from transport limits on the total length of HTTP2 HEADERS the only other constraint is that header names starting with "grpc-" are reserved for future use. -Note that HTTP2 does not allow arbitrary octet sequences for header values so binary header values must be encoded using Base64 as per https://tools.ietf.org/html/rfc4648#section-4. Implementations MUST accept padded and un-padded values and should emit un-padded values. Applications define binary headers by having their names end with “-bin”. Runtime libraries use this suffix to detect binary headers and properly apply base64 encoding & decoding as headers are sent and received. +Note that HTTP2 does not allow arbitrary octet sequences for header values so binary header values must be encoded using Base64 as per https://tools.ietf.org/html/rfc4648#section-4. Implementations MUST accept padded and un-padded values and should emit un-padded values. Applications define binary headers by having their names end with "-bin". Runtime libraries use this suffix to detect binary headers and properly apply base64 encoding & decoding as headers are sent and received. The repeated sequence of **Delimited-Message** items is delivered in DATA frames @@ -73,9 +73,9 @@ For requests, **EOS** (end-of-stream) is indicated by the presence of the END_ST * **Response-Headers** → HTTP-Status [Message-Encoding] [Message-Accept-Encoding] Content-Type \*Custom-Metadata * **Trailers-Only** → HTTP-Status Content-Type Trailers * **Trailers** → Status [Status-Message] \*Custom-Metadata -* **HTTP-Status** → “:status 200” -* **Status** → “grpc-status” -* **Status-Message** → “grpc-message” +* **HTTP-Status** → ":status 200" +* **Status** → "grpc-status" +* **Status-Message** → "grpc-message" **Response-Headers** & **Trailers-Only** are each delivered in a single HTTP2 HEADERS frame block. Most responses are expected to have both headers and trailers but **Trailers-Only** is permitted for calls that produce an immediate error. Status must be sent in **Trailers** even if the status code is OK. @@ -120,7 +120,7 @@ trace-proto-bin = jher831yy13JHy3hc While the protocol does not require a user-agent to function it is recommended that clients provide a structured user-agent string that provides a basic description of the calling library, version & platform to facilitate issue diagnosis in heterogeneous environments. The following structure is recommended to library developers ``` -User-Agent → “grpc-” Language ?(“-” Variant) “/” Version ?( “ (“ *(AdditionalProperty “;”) “)” ) +User-Agent → "grpc-" Language ?("-" Variant) "/" Version ?( " (" *(AdditionalProperty ";") ")" ) ``` E.g. From 21f37347a25b18a866143f1348a54a97ce209d20 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Wed, 4 Nov 2015 15:46:47 -0800 Subject: [PATCH 088/103] Rename Delimited-Message to Length-Prefixed-Message This fixes grpc/grpc-common#205 --- doc/PROTOCOL-HTTP2.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/PROTOCOL-HTTP2.md b/doc/PROTOCOL-HTTP2.md index dfcfa0b50e5..510d3cadbde 100644 --- a/doc/PROTOCOL-HTTP2.md +++ b/doc/PROTOCOL-HTTP2.md @@ -10,13 +10,13 @@ Production rules are using ABNF syn The following is the general sequence of message atoms in a GRPC request & response message stream -* Request → Request-Headers \*Delimited-Message EOS -* Response → (Response-Headers \*Delimited-Message Trailers) / Trailers-Only +* Request → Request-Headers \*Length-Prefixed-Message EOS +* Response → (Response-Headers \*Length-Prefixed-Message Trailers) / Trailers-Only ### Requests -* Request → Request-Headers \*Delimited-Message EOS +* Request → Request-Headers \*Length-Prefixed-Message EOS Request-Headers are delivered as HTTP2 headers in HEADERS + CONTINUATION frames. @@ -56,9 +56,9 @@ If **Timeout** is omitted a server should assume an infinite timeout. Client imp Note that HTTP2 does not allow arbitrary octet sequences for header values so binary header values must be encoded using Base64 as per https://tools.ietf.org/html/rfc4648#section-4. Implementations MUST accept padded and un-padded values and should emit un-padded values. Applications define binary headers by having their names end with "-bin". Runtime libraries use this suffix to detect binary headers and properly apply base64 encoding & decoding as headers are sent and received. -The repeated sequence of **Delimited-Message** items is delivered in DATA frames +The repeated sequence of **Length-Prefixed-Message** items is delivered in DATA frames -* **Delimited-Message** → Compressed-Flag Message-Length Message +* **Length-Prefixed-Message** → Compressed-Flag Message-Length Message * **Compressed-Flag** → 0 / 1 # encoded as 1 byte unsigned integer * **Message-Length** → {_length of Message_} # encoded as 4 byte unsigned integer * **Message** → \*{binary octet} @@ -69,7 +69,7 @@ For requests, **EOS** (end-of-stream) is indicated by the presence of the END_ST ###Responses -* **Response** → (Response-Headers \*Delimited-Message Trailers) / Trailers-Only +* **Response** → (Response-Headers \*Length-Prefixed-Message Trailers) / Trailers-Only * **Response-Headers** → HTTP-Status [Message-Encoding] [Message-Accept-Encoding] Content-Type \*Custom-Metadata * **Trailers-Only** → HTTP-Status Content-Type Trailers * **Trailers** → Status [Status-Message] \*Custom-Metadata @@ -101,7 +101,7 @@ grpc-encoding = gzip authorization = Bearer y235.wef315yfh138vh31hv93hv8h3v DATA (flags = END_STREAM) - + ``` **Response** ``` @@ -110,7 +110,7 @@ HEADERS (flags = END_HEADERS) grpc-encoding = gzip DATA - + HEADERS (flags = END_STREAM, END_HEADERS) grpc-status = 0 # OK @@ -136,7 +136,7 @@ grpc-java-android/0.9.1 (gingerbread/1.2.4; nexus5; tmobile) All GRPC calls need to specify an internal ID. We will use HTTP2 stream-ids as call identifiers in this scheme. NOTE: These id’s are contextual to an open HTTP2 session and will not be unique within a given process that is handling more than one HTTP2 session nor can they be used as GUIDs. #####Data Frames -DATA frame boundaries have no relation to **Delimited-Message** boundaries and implementations should make no assumptions about their alignment. +DATA frame boundaries have no relation to **Length-Prefixed-Message** boundaries and implementations should make no assumptions about their alignment. #####Errors From 981201fc5edc34a518d5c57f3cb3ccd873615f91 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Wed, 4 Nov 2015 15:47:54 -0800 Subject: [PATCH 089/103] Content-type is required for requests This fixes grpc/grpc-common#185 --- doc/PROTOCOL-HTTP2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/PROTOCOL-HTTP2.md b/doc/PROTOCOL-HTTP2.md index 510d3cadbde..80754143d5b 100644 --- a/doc/PROTOCOL-HTTP2.md +++ b/doc/PROTOCOL-HTTP2.md @@ -21,7 +21,7 @@ The following is the general sequence of message atoms in a GRPC request & respo Request-Headers are delivered as HTTP2 headers in HEADERS + CONTINUATION frames. * **Request-Headers** → Call-Definition \*Custom-Metadata -* **Call-Definition** → Method Scheme Path TE [Authority] [Timeout] [Content-Type] [Message-Type] [Message-Encoding] [Message-Accept-Encoding] [User-Agent] +* **Call-Definition** → Method Scheme Path TE [Authority] [Timeout] Content-Type [Message-Type] [Message-Encoding] [Message-Accept-Encoding] [User-Agent] * **Method** → ":method POST" * **Scheme** → ":scheme " ("http" / "https") * **Path** → ":path" {_path identifying method within exposed API_} From 2e18fd6493e58a791fcbe89bdaf040912a56e3e4 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Wed, 4 Nov 2015 15:50:40 -0800 Subject: [PATCH 090/103] Add "identity" as a content encoding Fixes grpc/grpc-common#257 --- doc/PROTOCOL-HTTP2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/PROTOCOL-HTTP2.md b/doc/PROTOCOL-HTTP2.md index 80754143d5b..d4f1d0ead0b 100644 --- a/doc/PROTOCOL-HTTP2.md +++ b/doc/PROTOCOL-HTTP2.md @@ -37,7 +37,7 @@ Request-Headers are delivered as HTTP2 headers in HEADERS + CONTINUATION frames. * **Microsecond** → "u" * **Nanosecond** → "n" * **Content-Type** → "content-type" "application/grpc" [("+proto" / "+json" / {_custom_})] -* **Content-Coding** → "gzip" / "deflate" / "snappy" / {_custom_} +* **Content-Coding** → "identity" / "gzip" / "deflate" / "snappy" / {_custom_} * **Message-Encoding** → "grpc-encoding" Content-Coding * **Message-Accept-Encoding** → "grpc-accept-encoding" Content-Coding \*("," Content-Coding) * **User-Agent** → "user-agent" {_structured user-agent string_} From 60078bb26de847265e45f0687ae374ef3bcedd6d Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Wed, 4 Nov 2015 16:39:54 -0800 Subject: [PATCH 091/103] Potential fix for failing to start binaries on mac --- tools/run_tests/jobset.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py index 0c4d1b8143c..88d95027e28 100755 --- a/tools/run_tests/jobset.py +++ b/tools/run_tests/jobset.py @@ -203,12 +203,23 @@ class Job(object): env.update(self._spec.environ) env.update(self._add_env) self._start = time.time() - self._process = subprocess.Popen(args=self._spec.cmdline, - stderr=subprocess.STDOUT, - stdout=self._tempfile, - cwd=self._spec.cwd, - shell=self._spec.shell, - env=env) + try_start = lambda: subprocess.Popen(args=self._spec.cmdline, + stderr=subprocess.STDOUT, + stdout=self._tempfile, + cwd=self._spec.cwd, + shell=self._spec.shell, + env=env) + delay = 0.3 + for i in range(0, 4): + try: + self._process = try_start() + break + except OSError: + message('WARNING', 'Failed to start %s, retrying in %f seconds' % (self._spec.shortname, delay)) + time.sleep(delay) + delay *= 2 + else: + self._process = try_start() self._state = _RUNNING def state(self, update_cache): From 5554738645ffe7796917df06ba517671bfe3c2be Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Wed, 4 Nov 2015 16:09:24 -0800 Subject: [PATCH 092/103] Define limit on metadata size Fixes grpc/grpc-common#273 --- doc/PROTOCOL-HTTP2.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/doc/PROTOCOL-HTTP2.md b/doc/PROTOCOL-HTTP2.md index d4f1d0ead0b..615507188b4 100644 --- a/doc/PROTOCOL-HTTP2.md +++ b/doc/PROTOCOL-HTTP2.md @@ -52,10 +52,16 @@ HTTP2 requires that reserved headers, ones starting with ":" appear before all o If **Timeout** is omitted a server should assume an infinite timeout. Client implementations are free to send a default minimum timeout based on their deployment requirements. -**Custom-Metadata** is an arbitrary set of key-value pairs defined by the application layer. Aside from transport limits on the total length of HTTP2 HEADERS the only other constraint is that header names starting with "grpc-" are reserved for future use. +**Custom-Metadata** is an arbitrary set of key-value pairs defined by the application layer. Header names starting with "grpc-" but not listed here are reserved for future GRPC use and should not be used by applications as **Custom-Metadata**. Note that HTTP2 does not allow arbitrary octet sequences for header values so binary header values must be encoded using Base64 as per https://tools.ietf.org/html/rfc4648#section-4. Implementations MUST accept padded and un-padded values and should emit un-padded values. Applications define binary headers by having their names end with "-bin". Runtime libraries use this suffix to detect binary headers and properly apply base64 encoding & decoding as headers are sent and received. +Servers may limit the size of **Request-Headers**, with a default of 8 KiB +suggested. Implementations are encouraged to compute total header size like +HTTP/2's `SETTINGS_MAX_HEADER_LIST_SIZE`: the sum of all header fields, for each +field the sum of the uncompressed field name and value lengths plus 32, with +binary values' lengths being post-Base64. + The repeated sequence of **Length-Prefixed-Message** items is delivered in DATA frames * **Length-Prefixed-Message** → Compressed-Flag Message-Length Message @@ -83,6 +89,9 @@ For responses end-of-stream is indicated by the presence of the END_STREAM flag Implementations should expect broken deployments to send non-200 HTTP status codes in responses as well as a variety of non-GRPC content-types and to omit **Status** & **Status-Message**. Implementations must synthesize a **Status** & **Status-Message** to propagate to the application layer when this occurs. +Clients may limit the size of **Response-Headers**, **Trailers**, and +**Trailers-Only**, with a default of 8 KiB each suggested. + ####Example Sample unary-call showing HTTP2 framing sequence From 8e79b822737de6edfcb4d43c97e2d2343e0fa516 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Wed, 4 Nov 2015 16:18:54 -0800 Subject: [PATCH 093/103] Add missing characters in BNF comment --- doc/PROTOCOL-HTTP2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/PROTOCOL-HTTP2.md b/doc/PROTOCOL-HTTP2.md index 615507188b4..7f7055bb4df 100644 --- a/doc/PROTOCOL-HTTP2.md +++ b/doc/PROTOCOL-HTTP2.md @@ -45,7 +45,7 @@ Request-Headers are delivered as HTTP2 headers in HEADERS + CONTINUATION frames. * **Custom-Metadata** → Binary-Header / ASCII-Header * **Binary-Header** → {Header-Name "-bin" } {_base64 encoded value_} * **ASCII-Header** → Header-Name {_value_} -* **Header-Name** → 1\*( %x30-39 / %x61-7A / "\_" / "-") ; 0-9 a-z +* **Header-Name** → 1\*( %x30-39 / %x61-7A / "\_" / "-") ; 0-9 a-z \_ - HTTP2 requires that reserved headers, ones starting with ":" appear before all other headers. Additionally implementations should send **Timeout** immediately after the reserved headers and they should send the **Call-Definition** headers before sending **Custom-Metadata**. From c76ff107b6003086f9280241dc7f77491a4b0740 Mon Sep 17 00:00:00 2001 From: David Garcia Quintas Date: Wed, 4 Nov 2015 19:22:44 -0800 Subject: [PATCH 094/103] Removed consts to make MSVC happy --- test/core/surface/byte_buffer_reader_test.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/core/surface/byte_buffer_reader_test.c b/test/core/surface/byte_buffer_reader_test.c index c654f80f71c..7f9cd6b62b0 100644 --- a/test/core/surface/byte_buffer_reader_test.c +++ b/test/core/surface/byte_buffer_reader_test.c @@ -185,8 +185,8 @@ static void test_byte_buffer_from_reader(void) { } static void test_readall(void) { - const char* lotsa_as[512]; - const char* lotsa_bs[1024]; + char* lotsa_as[512]; + char* lotsa_bs[1024]; gpr_slice slices[2]; grpc_byte_buffer *buffer; grpc_byte_buffer_reader reader; From 48961e53d5f8589fa66859575105afd008af4959 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Thu, 5 Nov 2015 12:56:37 -0800 Subject: [PATCH 095/103] Fix for TSAN build failing repeatedly --- tools/jenkins/build_docker_and_run_tests.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/jenkins/build_docker_and_run_tests.sh b/tools/jenkins/build_docker_and_run_tests.sh index 5bb2b6b1886..8aa769dd1c9 100755 --- a/tools/jenkins/build_docker_and_run_tests.sh +++ b/tools/jenkins/build_docker_and_run_tests.sh @@ -63,6 +63,7 @@ docker run \ -e "arch=$arch" \ -e CCACHE_DIR=/tmp/ccache \ -e XDG_CACHE_HOME=/tmp/xdg-cache-home \ + -e THIS_IS_REALLY_NEEDED=' ' \ -i $TTY_FLAG \ -v "$git_root:/var/local/jenkins/grpc" \ -v /tmp/ccache:/tmp/ccache \ From 2dfd2de4bb1aa57a853c7189f7ee4070ad64b9f8 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Thu, 5 Nov 2015 13:14:39 -0800 Subject: [PATCH 096/103] Make code self-documenting --- tools/jenkins/build_docker_and_run_tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/jenkins/build_docker_and_run_tests.sh b/tools/jenkins/build_docker_and_run_tests.sh index 8aa769dd1c9..b44c3805330 100755 --- a/tools/jenkins/build_docker_and_run_tests.sh +++ b/tools/jenkins/build_docker_and_run_tests.sh @@ -63,7 +63,7 @@ docker run \ -e "arch=$arch" \ -e CCACHE_DIR=/tmp/ccache \ -e XDG_CACHE_HOME=/tmp/xdg-cache-home \ - -e THIS_IS_REALLY_NEEDED=' ' \ + -e THIS_IS_REALLY_NEEDED='see https://github.com/docker/docker/issues/14203 for why docker is awful' \ -i $TTY_FLAG \ -v "$git_root:/var/local/jenkins/grpc" \ -v /tmp/ccache:/tmp/ccache \ From 3bd0827935b26b1e82af145846168a5275586361 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Wed, 4 Nov 2015 19:24:37 -0800 Subject: [PATCH 097/103] put cwd of port server elsewhere --- tools/run_tests/port_server.py | 2 +- tools/run_tests/run_tests.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/tools/run_tests/port_server.py b/tools/run_tests/port_server.py index 3b85486ebfe..14e82b601ea 100755 --- a/tools/run_tests/port_server.py +++ b/tools/run_tests/port_server.py @@ -42,7 +42,7 @@ import time # increment this number whenever making a change to ensure that # the changes are picked up by running CI servers # note that all changes must be backwards compatible -_MY_VERSION = 5 +_MY_VERSION = 7 if len(sys.argv) == 2 and sys.argv[1] == 'dump_version': diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index c78a120fc65..b8017e6fe94 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -744,7 +744,8 @@ def _start_port_server(port_server_port): running = False if running: current_version = int(subprocess.check_output( - [sys.executable, 'tools/run_tests/port_server.py', 'dump_version'])) + [sys.executable, os.path.abspath('tools/run_tests/port_server.py'), + 'dump_version'])) print 'my port server is version %d' % current_version running = (version >= current_version) if not running: @@ -755,13 +756,18 @@ def _start_port_server(port_server_port): fd, logfile = tempfile.mkstemp() os.close(fd) print 'starting port_server, with log file %s' % logfile - args = [sys.executable, 'tools/run_tests/port_server.py', '-p', '%d' % port_server_port, '-l', logfile] + args = [sys.executable, os.path.abspath('tools/run_tests/port_server.py'), + '-p', '%d' % port_server_port, '-l', logfile] env = dict(os.environ) env['BUILD_ID'] = 'pleaseDontKillMeJenkins' if platform.system() == 'Windows': + # Working directory of port server needs to be outside of Jenkins + # workspace to prevent file lock issues. + tempdir = tempfile.mkdtemp() port_server = subprocess.Popen( args, env=env, + cwd=tempdir, creationflags = 0x00000008, # detached process close_fds=True) else: From 862a4d707e8784468b3e03833dadd3ddefb621dc Mon Sep 17 00:00:00 2001 From: Adele Zhou Date: Thu, 5 Nov 2015 17:14:05 -0800 Subject: [PATCH 098/103] Port #4061 to interop tests. --- tools/jenkins/build_interop_image.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/jenkins/build_interop_image.sh b/tools/jenkins/build_interop_image.sh index 5dfa2425134..d0c5470ed6b 100755 --- a/tools/jenkins/build_interop_image.sh +++ b/tools/jenkins/build_interop_image.sh @@ -84,6 +84,7 @@ CONTAINER_NAME="build_${BASE_NAME}_$(uuidgen)" # Prepare image for interop tests, commit it on success. (docker run \ -e CCACHE_DIR=/tmp/ccache \ + -e THIS_IS_REALLY_NEEDED='see https://github.com/docker/docker/issues/14203 for why docker is awful' \ -i $TTY_FLAG \ $MOUNT_ARGS \ $BUILD_INTEROP_DOCKER_EXTRA_ARGS \ From 1099ace8f77504decd6e4576f1a995ff5fdb1eb8 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Fri, 6 Nov 2015 10:25:06 -0800 Subject: [PATCH 099/103] Ensure application and Node library user agent strings are together at the beginning --- src/node/src/client.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/node/src/client.js b/src/node/src/client.js index 3cdd5507524..d57826781d3 100644 --- a/src/node/src/client.js +++ b/src/node/src/client.js @@ -612,7 +612,15 @@ exports.makeClientConstructor = function(methods, serviceName) { if (!options) { options = {}; } - options['grpc.primary_user_agent'] = 'grpc-node/' + version; + /* Append the grpc-node user agent string after the application user agent + * string, and put the combination at the beginning of the user agent string + */ + if (options['grpc.primary_user_agent']) { + options['grpc.primary_user_agent'] += ' '; + } else { + options['grpc.primary_user_agent'] = ''; + } + options['grpc.primary_user_agent'] += 'grpc-node/' + version; /* Private fields use $ as a prefix instead of _ because it is an invalid * prefix of a method name */ this.$channel = new grpc.Channel(address, credentials, options); From de4491076f861f41d1d86f6611f93f14d4536cd4 Mon Sep 17 00:00:00 2001 From: Carl Mastrangelo Date: Wed, 28 Oct 2015 11:05:49 -0700 Subject: [PATCH 100/103] Add HTTP/2 Interop tests to be run --- tools/http2_interop/http2_interop.test | Bin 0 -> 6210464 bytes tools/http2_interop/http2interop.go | 137 ++++++++++++------ tools/http2_interop/http2interop_test.go | 95 ++++++++++-- tools/jenkins/grpc_interop_http2/Dockerfile | 36 +++++ .../grpc_interop_http2/build_interop.sh | 42 ++++++ tools/run_tests/report_utils.py | 28 +++- tools/run_tests/run_interop_tests.py | 57 +++++++- 7 files changed, 339 insertions(+), 56 deletions(-) create mode 100755 tools/http2_interop/http2_interop.test create mode 100644 tools/jenkins/grpc_interop_http2/Dockerfile create mode 100755 tools/jenkins/grpc_interop_http2/build_interop.sh diff --git a/tools/http2_interop/http2_interop.test b/tools/http2_interop/http2_interop.test new file mode 100755 index 0000000000000000000000000000000000000000..0700763dc3386b03bbbf19ef4c241702ccf187ad GIT binary patch literal 6210464 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

@S*JhVA+X507`k=4nS$P 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 LWQZr%Sc)*#NCMR3f&Plot-blR-f?_wkgM-6AH z>8O$h#nGSihhBAW1lmQ48b>&gpT`&QAvrt6I^+ayabTiJX!A^U=2n26T0kqQS+u$+ zS~#Ee7?%n2vUn233+s!Z)(jA>*u8}*!9yC62OUhvcF5v3>2kWw}=U+bj73piJu3cov357Itp9E zP-_l&#jQ0|NIV?Bx_Pa+;@Rf3W(ul1wWe9bp#fl=osYcU&DxA%yJ^HVo?Fe1RuHTW8w> zhv^GeWpH7(nwX2xe!|2^co@5WdZCA~)DTe~H4>>$G}C2tM*XgPp7>Y;3vrwW)#q<3 z!|LOUGCD^;-JJUPf)Pfi>>O&6ZfXIB<2p-_pb5iGwz)y8Q3$z+T}BX7ofd2msTfx& z#uJy2By-aJEFuY7s3%Otkow!%)%Z-BS!p_EpQ6>6Y!DFy7fO}vRcqaYnS3Dh!+#k< zweE!#AM(LmE#k>KY>eo~ED(=snM$Q>kf1KyPj;>`<;mpNmoM=pdd{W%Q$+g(Z7*Pz znVV5T5Gb^SNBhj;4a6k`VLx6as7{ZQ^h}X+dK`MOueIYHqbdR#4FVy_ftr{|T9JEn z5xP_5zT%{nF;_@q{Xr4kPzlzcX`;4? zjqzG1eap7gnaY7yHJh{Y*lya=v$ajNFf>yG(5Go~6cgj*JPosIo&P9|P{j`F3tL49 z&Ra*JMcUiZ{cQITdg)~|k;Uta z7ycF8MmlHlsM`h)t4-snuVlO!ZfNj^!_;b6A8lY|GL0h6UWFt{Xg?ba$+zogrd>a= zVbP@D`=Cbwc->+9vy2x*$=#V($o;H#&aGtYr z+>^eXcRVxY^>-tL2VZLPsU{z4^4`PX!CrP-NDhSQ4`SmjRt-6ysv9@{pSWorOc`*; z(t%PjiF&YxEG01aQ<+0r$|iY&P1%^zo=b`o!p!qoWG$+z8b5Qm(z4p5R6f?mNIMek ze1VH$?|Syi>O`J+s;8stjWdS;C#hmPhB9tQVF^PqUQ_3(xs*2;tAQCTMFw2kM|qi} zkOJ)+w)c^i$nsR}#P~B?ju{3SMGhOX39@jHnWBZdeU#6ShEZ$-J#3cEBGOQrT+rqx zA!3!e7awQgCdq2@bALlK5QN4{cQC^|>-%>)2%I4Zgg5bsMqnio06UVHf{P92KE>Qy za<6W|MtP>kb5UhsRZ3JA)67>hOghV?bC?EEI#X$gU)%#%%c{i1K(i~?*?240z#~(> zNWW&8?bw93a&vX4PM1Bo952K%^4PbXFmY@>m|@|vBKOU0sKTD=43^7t?t|%jy>7!c zn~JyqZ+?V^A_j0}9qe8l;8!Z}c?e$!a9a)i$}nZNwx$Qp@*)q7F~y2=poHB*F0C_p zpGDen19KO4yRxj`enYE{eIZRNZRM;|98B9I2HzUISeCc^e4^w=rRHz(K@autf=_~ z=FQETJ?Zd*E5*Cdnp78S(&Spa2<fm0t{==2J*nH?&2+rM{M_%!{(!2K2+YSX($zJXUYjl6jp_~pUM>Ml=os9t|H*p zO~V;>T+n8}tNI={lh``6L&#de;#A$)KZ{-XSkMu>@Z)0JE`){bg1uTIa51o(GYx|j zez6T7xGa$CSkut7DIKi0O#=)S^xMX~Wz(?!7j^jS37O5v8T>MSIe4L3#DZ|6YQ!pp z8?T^-!q~(lSx-?EcwB45DLRjPw|G%O`pu5fBzFa|HppNR72aJfV9rFPO11gjkLrci z3w@qDN3%h*I~#cL-_!Vjs*cJfCb&ruHK#F7Trv;0bvVjBrNGbT6BftX{sElsAgW&E z<1hL6U_3^o;y$>`k#CpsZSMBy$ItQc+t^GVADxZ_G@tndyaXVN%Z>j&MC8UsCF9pV zDnsj(2hpe1UlAggvo!lXxn@^jAHG$zo4g z)vfCq*j+HzuZSGMjhD4c)D1VV`!n^($zb}Sw`jM@N?NX%rGW8l8A{MHU(`;?U}fVH31eF;RIr94aV%luzACAi+JdnuPqeTeO?IVzW}_PuEztyZEHXV zD&$6{hP{9Xb4hqKmr&g4rhQt)MzB;G!E5EM9Wdxh#Y7`CkbQsY$Y2Ke*O(Q~e{p0}>ZvcJ51ZK!Ms&HOIy(15+xLorf#9c8iwu&5fA7Wb1j@1#CCG08cT{&>X~I`kTAllp(itNu&x&)gui9nqZm@tVmlk zbR~>Rom!$iYAot26r)KDIL2rW#gRs%I)JbXlCX>7u6nAQR7O8W4rm0dJ@Yi)kGg9P z8UzSbVkj!*g&Qv!Sxg%AOW4wz`{_q1%qNB%`2@mB`3QVsTDfCiPxaFbPvT>>_bOU> zYeYNxMfV(A&Z4j$$K(qcs6|D(fZrNu`<3^nF;GYdf8bgnp?;&&HTMNV8V*G07Vk$$ zLv2XdlhafE8)PCv_Ed8-3!afgSOu_9bCB|QEP)ry?KO{}7HTkmS#1j6@&GJJaTqdF zoaI)tlx|o~lV{3*7^pPS`k{ z*C@t8&lD1$>LJHjGrSN5atzPy@nIXE$|BC%mutdhMedgG1il;{t$n#%7w*EqNccxI z2j9y|6$Aesg?|P)ukb&!$7jJ<5lAHbH|~ndo60)0qH*A#sPJ`ar0{3_b77yeLdcEa z{bkL;&x;FxO^A*0RjnCjYnm7I+5YB%EEX!6h+!Vl_&c^}j&YNwz_DlyMq0U1cqVJl zA|GGE$B)D6MLs@_k9)*CK8}z7gIWgv>jWg&*Sw11&5tf&%n5g+aVITB$d6#Bby*Gk zf)Jc2(4;>aLl`+#Ep5q~On#$)E=CHw_ePo53U8beFtqbBg+JxOh&@Da{S&d*si zYP|3IbyA^|*ZYEfGpx*4=w9G$U4BmOs3O-}|HtN&zRtr9)^7`#9d9K2;o&#FVDAiT z9p6q|LilyoH&J(Sy173>B~f{2>Xf_824<(8zw zQ=B}Sk0)*_Io$Rt8!!%MwMBbHuX4emc#E_asrqeGkx^O&ejq_hOY-1gLz8YZd1LY4 zvJdgcSPL7ROq{830{pnMzULqUGc&e=KdIKm@5UL1$1yTefW}g^FnF2b`^pP^scfo= zD2Dt0PiGTNyy(eJ8P^pTunsoj#h{pA6efl=d5`z<0os&O-Urj$U*`ujCD*yl|}nfn_aA zAYSqY_$YqJDfptnX38EqX7sXmLus%XMD+$1(AX4n!Fm}T=-so-3G^yH#HB=Wc=lTd zhkU^S9)Mtpkc;rh-~eZV&IyK8-@^nqx=j=zj!((?(G#@Y7D}0RPo=w}0P9RDH+3du zX6i=RZm3yE#<9n?*Ml=hNkgD0)u)g3cDiwPFqW;4XGkubNUFJUEP?=$+g*!@PYq}1 zQAGqVmUJhLDZ`r8*8pOdOq%V#BQW=kYUa2!;PHoTbMSP?aEX+ch{r}D?6kik{s*2;3A*s1{8 z6pAsx2LIPfGi~aDwmEF1SZy|%)G{eX+vWK-lO~C|04*j>WeRna@1>p$B|@g2poi$x z6S)r8lT1fSb|{a0bOhzcR?@C!-eF}N4QsPOg!GP=n2N*v?i02K#H}Yi5I`bMfmX1SBb9E+5OMK%loOu->u$Dv(hvsWyd4o9_s zJ#GZtRLRx(Ldb@u7D_AkqO{n1!ckhlaFkZA!%Dlw>4`}+IznSV#%9!UWE{^X7Je!` ze<+>UYJ99Yp1-o%9YvBllpxQ){fs=fc|k^0)*>{v$l+GaYKbc~FYlcZLk?sG*=W3F zFqg(_qLhMaX4=WyZ=g;%ay}v1kuyh)AZ!V##i!O$09l_@W3)h210IbLycvAx`W<6p z;ZXyzmNl#4n6n|D2V~KZFI%)4zWEm4vlKR;(Zcz}@qrFrdnj>hp8Tgi^SacXM^?p> zKk3uocd2g8k>(r47~PV4(XHpn8ep!{0r!d=dAY8);cPZ%_< zu7;u*dtN8Vi?t2Hi`9Z-%e;7Jf?M|X;c-c#gDso7(obw&Of|fiW_Tg@!i#)9X`L6< z&KPVQUi?Nij%sFxV87`Ed9mVS;l)g;3@!8G`vcs1u{RVjQN6f&t<8(Eh8Gov7jiGW zIFJ~$&Wl@Yw>nM|{|;Ize76`bc=}=0%C& zMXBM1+zT&0J2)X;+-N({@pus=4C;k9>=N|FzSjxz;y)h>FR}=w6<*wz`bT+D@UhK{ zBEySf!wb0=Ud%oyAzobZRM;_!v6>eW26>Sg=0z6vpiYn%Pk$i1*bdX*8ZR#LxOu^` zjzsH7-bXese1;c=h8J=#yts)Nv|dNfw_WOZdT|tCkQZ5DUSwc@>jZi6&>G>z5(I)< z(UEa=|t;Dr!_V&(hM)Wh8J=#ym%h~6W~R!$6Bx#69|KK z#24m85;nk2kQcYC6kZ%nD6R0~nbBSsFLtLZmAcyIMT+4?s^Nv)3ojmkq9wqK&X2ah zi+sW$FABrF_!+xJC&-H%-xpqN!eDJ{yjWlE<^{}D!g|qemCcK7;>RG~Vt66~)Oc*R)ckhb#gctMCEVRapf0ub(dSQ>cCE|B(d*9~8 z0`XGO%Qb1eNmnvuua~LtCY=}=-k_r-*9>XOb+~7;^WheFvjS^|g*U}v-n?6uu%4W@ zLU>b3D6BKV^gCNBt*>2LNw~Dj;+NK3IA_hfQsO!|vaLzuiBVpcG+=BK*328;v!yY^ zaDSFb=a_UJQ%FPJi!}aDj9Qn*$cI{x#!s9gPfaZi^XG4}_9-DveR;X?=3YWkX(YE) z+7)(bW5cDb#7ek0HljIcoTeov*(Jhti60yYrvG}A_YX?r(|2uYj5XY^FzHm2PBYSw z_acq!WPX2@1Z`WW8=wEP1!){Y7!x6l3aMOn_x)e88a*L_ba_Vv@^XqJkkXb4tYkhG zC?gL}NU(4G0-KY`3vWxIN7{w9Ad|nBx@EFE_R6>1mWgF-cN0_82)P#-+{X!erbe_7 zIl1(~7G!X`O!5OurbWo0D|XM0qo(o9_ha?Kj&JP60WGlOyb*tt9XapV>}W9T*l5@x z_ri`#i9ze^IO~BH*s(8RP($WKu;Vanrkx-=?pY@6_?HY!v>Z98YUB2PId3abkFVR? zHaqGKJ60NY$i1*5gBY~Vj(*-2*zo}(s=|)i2zKm^y|oi$N7Y-xjxqvj#p$~@+0BmK z=?olRZ?j{8VMncDhujN08rvqsj(PXBz>a?s2DPJ>KCELue#gGk39_Snsj%Zz0&0aF zqm$h1*quJ}KFe%&%rWekXV@Y4!j6B#XeXc@kB)1B9ajK5wb?Pluw#~ChujN0ZejGh^~!ShZ7r~)D`Aiwt0LI3{)U9v zabcaX<82bx3Oly#bPs&&PG$Lii4J_^feD<}VU=NGdAkhjg41>3K#?#B0{}}8;sZw6 z;p;ZA=YSi`1H&k&+?a>BmpMAH`|=$3(-@AQxTFM0)WU*CpTJ}^p5tM!wB^>Nn3z@( zGi_}Qb2f6?npu;3w@zUjgd}p_+hFGWHzu*!IfwGPZD>CvkvWfH&Ra0a&CcoNb=%N~ zF|+Z0dmK6Q@Yv4ztuA1gi6j!{`^>o~-x@rh!-@sKyb4KV&L^4kJxr{#bKZpO$SjkX z?7=G=_g`!=w9a2*M(53>}xvb5oK+tABDN9Wv|IS;^N8`y#^ z(OIm=kOjNVI9ZP6b=%OVKSk$!gE>#eV;k7#I1>dqF+V;E!RgG2o#~vM&o)WUVkD8I z+`yd6e+cI+=XKjqHzbic^O*DA@54F!@w#p3=grYM4`$BG@z}<5FJ89|y|F1e=cY%I zvnw9kIoC8w&Z$TuOJB^KTQK%!=X{9QZA0fGiOe~JIbRQjb6&^mwxLc)B6E&l&M8(n zXD?p24Sn-%bk2dyc@7@irSJGga?V2%3G*=KJe+Th(k}g4a^8w0GG`N3iH5%ZDxC9P zUbhXMfh02LTg+Mbg}hz)dGy;keEY`6Fq|839SNYCS&nyQ`EWyYmMfX%!I;Nq^6@cv z48&%w#~juNdvRuEB=|1OH1xA*kRCq%`qSvg+pvf=G$Q8l=Y0I*y6D{R@bRs93qbxODc_Y#uQ18>(K*(b@Fxe>xo5I&pDSo$HHb zuiIawJ72utfG?t!I=%l%%=E@_kGqyS`Ph|%A@|ad7n&Q4R?o~Rl1^UwaRbd#r-Nig z3)-`UmO7QP*}$wv0mKUQXAl#{%pZ@;L(*(gq08C7I4+ z)Bwd%J^ZQ}#h9V#<(h713lo$8>}Ay!_LH?b_oNp4a)DI4acvr(_O03ovNn7aQ{QVI zi6sXmWt(N$*&%M$Y>mDIj9di2D^mX*VAXV~Pi1WfpxS#;462_$9B1aW@R`%D4VwYmtc7o`0M5C7kUTGv3D+x$Gbk2J zO>M!g)VNY0^6WtF&;!JS=}AwAXI8%i+oNOzWr>ijp@5cTO(}-y!ShUC{2g*CSSDe@ z50>zf$Qw7)=R+sK##NND!`cJVr zKa!eC#ADWH(4Jj|y5NnG9KXpV$MOoGxmn!FBqNvS3>|nb$S?)mzcJ4#{ zgiUBaN^AnEtCiow>^65Wfd$g9M`oFmUd}1~|BS5Kkk+AZ(%b=9MQ)q<(y6K=NPl`3 zKJ?5_KMDzz<~)4;`Vj642FcMdbV4>oR5&W;-fO-3D*H^%F{UsAFvR8r(>&^F$uz4= zF6K*Ba=*-F+~G87YWl)bPzY+S#+~)@7m5)KhvzR))uo8yL7r0(3OHxekL`plFCTW$~R=~YpieLE5 zdZ~_8TsY%iFJ-@tSTCgyH&|a+GP`@dlzAiTrIzvS#3g)GXI;=mYWCTh_%!LS$tf3r z@@Cdc;VcR+%z#yqU8B7?-iS-Nat2>tOTgS;DsX8E_sq}C_t$d`*dc?jf19rcC)Z;; z;uP*5qzk0hbQToe)nw`Uurc?5X%YI;jK4Mm9aG9dDzNd_st6#$UxPg6p_ZsTmT`b- z;-;0r1d}5%O?Doxm@Y7Btx4-mD$NYuH&BpBH=5K!N*jVDN|ICeSJEf4WDIX)H5}3` zJZwQCAM4IjBu|=0j!KaA%bX=kwUhv2Ta9Jy%*IqRzDBQ# z8&j>4fvfP6rP*j}oFz*S@+y3p~Fp)zzFd*`#*;0e)_eMQ4N8p=?&`9`KWoz_ca;)YZ$|a9NSt=Q(N2OI?Fa%4BuCR6V3!O8;h| z7vHk2ML}uy91?}h?k}W8oS6lV&`h&i5}EMs^Ew@$%1%qbW*DAQv8*`RE+ZN2f8iT1 za&WDeRtsHmvV!9-*KbZGY&uhGwc^i{vfxLXwAQ5cOoL|rwQ#iB4BQYq^!*%;%5|8d zdyFz11)ru0pQv1Bl|>)I;6S&lB|CozJI@KR`MtTq<_3GzCYV0s=5XX&OCy&}X-_bp zBhJmT_fZwItHt{-q*S)S)c83vxZj zVJhK)StTnSe;4*q*@OxAB_buX+LB^PqDhO9>WYgZd16*v6w1v?YD?sbiy49|Dp}-; zi;W^Tm<^^-0=X9@IF^{9Dp3jW&rt%o4lBXL@!@J!8da^XIX7W>uYX45{ZED(%)mo) zG8puzTLutX!ZIkIs{;?pi)L3`1k;~*jYZ7Vt(L%pG{Xa}NGn++-Zn4=&*WZs_95~m zz_Y<)ZJwDTpgXQ=a@;uyvu*a%!nV^{Zi{SlX(@CoY}UD7Q&`_c+WXPrJ8^2e8)v&D{CJ)(NcT8buv>P*ML?BUY*GP|R+ak}S}SiYJ) zcJL|IvH$^XT=%zc>AzS9_0R#NX+)3@s&;gMa@fuw8^I$p?FD>$t_})e(w`H`?t$yboIRNH31DwWy9;q0nPo3#ImngeO^*HG za55xT!Qpg6BR^=sV$#rf9TeKBdsLMVbwa%zO2VPuv!1mBw^yG<%|c@o8mwQm{mcpV zHe46};?vpo7biGh+`kpfj|%mEwIs$PyemkLP~2V!irmJHm(^vexq%HrOoBJT^a012 zP;a*i#VoNl*ny|tnh8tSdbbw%#=l0ieg*i;}Y z)H_C&qN>jo8m6yZq240bYZL12iA+|~VbW!IARir+ju_EGNv{3^{QYqMYXVKI_P^BM zUmz%&U2Xz@Pf>f5MP7kt*^*XeR7frin078y-&7yatqHX63Yu6qux;u0G^Wsgcsphz zFu!_&vjhOE1@;k)u%;*>j!%|5n|3p*Lx_5qX%I_6s%;Tl3RYvp7^a*32VHH^1?DY0 z7t;`#%FK2HSkl7@w7>32D&Ih?2~;wg2wgfe${tLdB>q8-2d4t#wM%#wh1U6h&cfpy_R#!fP%@A!s#bs<3Iwf7~`r_vce!rh{D?S_?yr&sNnqpY7rL>;UJpV)=|Va3k!rb;W6@ zr7e~gJBKYH+FJqsVXQQg; zQQb|%QDzopg)t*;)o`CY3!jOHQ!qxM8nII1edKw0ID-Q_V&~MCt!kVuoe3I%Uwf+h;a~Pn#08i##bZk@NCC833vevZ;=u_fDeU^7-iEo|K;kg-m*z z^&SpCq?jU=593caxo1|H0k`9yPy^v*&P+57NmkV+Py*&~=!A?p$cN3<1GG5Y!hIl^ zz#VaL{Li;mS0X&bARL8nU5og_X0U)T#%I;XV*E~N9E_iQ){QY~vsO1oVvGYju%$V+ z@t5-&5bURgTI0)EF{+ERZF@L_M1VE;%aIh>?x*koRx!}{AM3QggGMiCjH2%j8sf@L zC5WPUebwvA_T>l(b{9MqJMa0AA$7V-smP;rSuAy%M#iD;>}&Ze$Z6?tEl z?4l4&n2&Z2&B03<75Ie2;sgntyj%GRZ|$w%yR)?`1XogcQKSN8`^WshP>-{GIq!KY zA9j6&z4pPN?0kPMH9n8qz{lM%|GC%HE3=*yr;5r0!;!^dmY5Cmi|h^aQ8G`|08$mX z=R8Em37B!i{1SxIp}oK|#kv~nSFvIK>#5@6%-7_3P3A}fk98C5xAkBiM0Gx{fWO=S z!FZ5oGF#Dv>rd^{Sb6mw5l3Eo8c#;+kH~9aNae-Th8J`Qq%uBd;QGaiP~!~@!TzYZKL{s zWv}164^jfNy^I3?L3`cpZ=m`wvDbxlvHCXC96Ya)JY%mXJnXi9Vy{2=#A9i4t5C<)(%jtJZ+1(JF?Af*KSn*o{db+hsMaSW!`(h@e&3f?X79aoXXd=moH;XB3aFq_K%u?= zP+*v!1n;DOKKm*9C*0B*owE zn1(@Lh&}k;DtZ<6(szi^X8&n^TLKR>*K^J#_A<1WVCDcRU^Zvld!GtKYc@xdBZvntz1NQqk&h)Grs884{>h-WEACsT&48YAMAxH(>0I=>MKLFz1e1kP~I%HKO-7XA@n2}ujpIbOJ zb2EBifD35C;iqyU2M4YKG{bjzCKUnL{nfVoxAbXvt}}Qqh5Ymp|2!Ui{%${bLZ7|{ zyxs6OpDyf@KG0v`j`}OyQGZ#y;nQEd_UQBK%FY1n)fE7bbvF3tVL@HLsV9BNWTOlH zMIA!@r6EYa{>tIdxUxy8g=Xd=O18h z@Vcz87pJbTb7?*L8o%lk>|%A@r?4jPA*iU70t)M1`{I)TdA27Gsru@M-@$U(Ra?mlH^5PM>|jr*xVydG1iT`wwFuCU2OS0&F-Ej7-Qjxxx8yr@it-jIYu+ zJ}LxEaTwUH`5~?97go)8X;mX)2gQyoN=`i~c1dPzLMDD49awrvc3|m*>~LYSY7eIF z@r3eA;C4^Q;Zm`=B{_ZkjyoPldnA`f_eefQt>FC;o@@nH7Qm{q5`#AEaH7k}ue*4D zz{|epDgNsXzo9R#T2u5^nLV&4PZ`HV8xaEZ!+by}s}RG#RRR7)J*Mc;;IJ&e_MuXMOda1I_P}1>?p$r3g}TX)SRwWK zuQ2{HyFB2G+07ZlaHnRWpEAh^(#VG!I}q<*;1Kq}{0FlfKv1q(kjcmFw~j}Db2|4| zgc#6}1}`3TxcruQ(1%&%<#k#6;8wc*@$m=%h3@%w=en#k+(5*qhD|=6I{v`Sd(j7Z z8tpdSuI(aiG1w@-dk6?fbem<`uE*_kJIb~{s?ScdPkVMx#x|Ev=9ftU1LF*X(4zgX z>g+T^1W1F=oPo3>{Kn_duE+anQ}@HozvAY)tU_G(5LU-Y?)R`>l)0whFuMx-Qj_o5 zFCPaYSw14A;6E@^X2CUE%^_|PLc@4JO1kyaFo!w^1HAAQX8||Z`!rwn);YpF_O!2c zhT|k`ZbzKxuWTx|kJ?P0ipaS#X9@inUykr;)SS6qvu4U_>5VwBca$SrOPCkp52K!$ zhq}blFOAL6z%Lf@(LyPw-LekF7^^UPJoxl1)rR@RX909}n%)0dUD^O6=^7Lf8g@Vh z2B)mX$H+^8C;Q$Zz}Q=^%aww!8%_ePb5-8*344J|e(Evohw+AQ*pA>8pzU1nKN?Lg zAt0&kjq>Do3fr5;abb|k&ln(;1#W@a!3_3qAJ<(~xmq_K-10J$Q4u6TH#lGU{Q`7z zAG>k?Qu+(b96}>$@|&HEQj<)IZh%bf8Mrh(%dm3nZy#XK=W~Fw^CD=SVQZN@Lw`aF zCt(V>LULWws_-&r?a>n?^Z+0be;^--*kb5VM|Qt+*q%RI86aYgkB4QdbdDdUF=D)B z28sdVZ8KU;7W~nEime~(XG8Ii_G8aF7CiBU@WlTJpKDM0-{N!as2_v#!=XP4=WfvL zbJ^&(E4tnMd zgRxYm5-H+hK~v-(V3sCt|21KTA#6=gKkUq_Rz?@T{AF}}=E@)b{>B@G zxSW;S{_*Rw;pONOD=ot-q=XO`VpS{gJ9k}9!j)(c+-(>Yoyvru6fz2t$fkTD zANkQvtE-pwd z7P)XOK|u5)>s+{AZl1TX#C5Z|wpqr5ci-S9_Wj~)FR|~%*=9M&ikq&Wb95gI-b=H8 zIYb#Y-{k-xtAH0F!d<O~uulTAzzX&vp$F#0BBvV2*DzzW3K1qe@oeYqSZ z&Vs~IM;CDO2vt6SqRoQyoRNIZz73rvISX_DJpBiGov-pL-*Btms_dYjdQ-WTnH&gK zMuMS~Nn30A!amfL^^-#2xC0m{9ubBz>Mq z5t^r8%Mpz}MZlYlI8a$ZRcR?#V>Cy=&l1boglI=|puWcvw_|Gr6|T@4%j$vJEW!~xw*Uu! z3rjeJhu7w*79q7LX;2C*fo~irTi`@`-ILA-=GMLwsQirKw>H z6*$8da|Iwy3=EIQ#+dJaf-S1Z7L&U0>rh$Ax5SXo`T88bu^=O=RpM2zA>HXd{}Wtd zulSd+%>_q*Z8l2JFqpL(|4ZR6zlFo$|4AK6wluEkO`U zWC)7D-tsHc~1##8~jGMrTUvC0RZO$KdW~DC~OIQ+} z14Lt8agomp;dgvruKR|by^0N;kAVXzA%mV3Mt3ezTaA1yX$T0MLV!d`L#0r98tsfC5-kpgNP0l&TN$KTVibE$Gv{-X2IX*_73rCa>$bGWwvq!x<+ zVRT$7>@&e{MTCBLu^yd7ir@Gx=I4RB_t;|;Tu8Zc^4jDczVL{fQzFF+wB}uU7qpQD zWM;VG>jcPu<70kEil2gH>O?GSb;Nj~RY7tj?i+c5J{S3^UPFPRLp1+f*ZT+#^&FyV zv>+DB-v0>W5G9wS?vWmLnLa2?*5g60_aVr`od=0?VH{MHCP6^@xcB#_(YWMLi2a_f zbAs`B^3VN*L)0Jf<_~bnw6V@^2xC-;o$Q4slTV{1{Yz;tF!MnKJJDvP>Jec<;3Z8I zlyT=EQiTP0nfwo3M{WX2p&3*igs~LidOtNg`UdJOw#m2hcm0-8qNdHb;ZSIHa7UM# z-RqV~FtIUVb-K9VSP+=?BDG?CaPqDpfQTRZeVjL1TV(7}+o!70P8neUTTY9eVW8kjz;jN@v z&DILlhnvYU;G8y73UfmZR#FX4AybDPH3$YDH*bd}Me z07`WzFms8SMuq5+bWy5d1REno{i54dXzYLej>Bba^mF zJlHxQxxh6}F6IixFRc~>B&FX12OW%Nca*QJpNMf z*X{WKxWSD7zH_=5{|Ccm{OO&>e<_B+)oZ(|yYUCT@xOk&H~u5s@xL@Mb^K!wNF6`= ztWvidtUI020gw?H_eI-hjK;J4aYf%w9RXBkK6xB8eQ}l)!97rDrGu>R*0xz^y3 zJ57qd!>lt)cwj@e|4j5#a=&l~x?sFib+b~e3O>T85ZRiMDdcxlA)kA8KIj_?ku zUpfKw5|wno#E zbDV9H+&X8Uwl6^Ac{6;jf1Z7hV=E~hsmM)(P(b8ln20S&*c0x^)Qds;=rE>B7_SyP z$7pTx@E;yMHq_ZA<~Y3^ErV+8&Az=Kj5XLPx6|ispW04W9xXKe+Jxj_u>dE{)=lU8 zLUAGofH%Yuh#cS|pBHK54aCC)h0d74Z((7rc@m1|UcuRBolcgE<|sQN+X`N(96%Kp z5=UQQMKUM7ut4o)Yy`Hto?xWWBtv&s@Sid(ZdUXlB9-<>$RQ`cS6b0e?Z4r|{*Jpp zRfbj=0pDUj$ZD|_CWt003r4JQ&PB~u_B-+20xSJ}woa{JPnI{#n7~UFR!xhu`$z^p zn_e3QO!>*>M4r0hvQQu4L{kSdeAOfio?2*IV$1nPAo+2rlL;ruhQ$iLM7 zrlLQSFBYc2TKuO>bv7Y9*NWAU#jMyJ4J^<)MiQGVzZtbdFS!E#e)cLJh7yC8z?=wb z1d_t1X!d+I>*SaL0}Jhu7*XOnk$b8k?i7a4JrI8FT(bB$cD*;Q=F1h-QqJme6x#F* zy>-0|cZF&d_%R!CO*`T&WSV$atXwygfj%)DzbT=}{n$cm zvR>VuC0FKI-6l304_+VVNob7mVfd9tn6|~?q4ORO?)wtAf+AIF`*58yWs_elD!xht zy1_z-fk%pOucWkJ!}z&A&e}fSnWYUPbuAv#(1!N;N2f(7>`XMO*APrjJug2~`@_!* zNA;JnF)d&rS`+Hp`vjb++kCNh;Du~^=+E`0m5dnh(*w0H(Hh0d3rN0XpmrrM#ocJ) zulS{%?a7_@&{Q(00R9z;x#f87CfoV4RkSuxbG5uT@W{Z@10y?*nF_&PZSCA(6|D}; zI-8H+BSOdg_GJpw6yjkTMt*L8CkxLUToIcHvB#k4xHJkfB#Pm=ak=)&otj5$zG5HC zr^9+EeYiHf&;|7!{6XoVV<>U_m_~dNcgrpdD(*;QF0JBwnGFO~rnnLsF|o>Kw%*L) z7m}`p+|?c*D3(xk#5c0FZeyV40^V!+SoXQb2luaF2S-`0XJoVWj`OeOa!=Ha7p&$n zs0W#WX@EoqcD)SDTWOeWqFH8}cRbjmU$^LVoMO>weso^*1JP+Fg|PK9An>Gv-a)&K zUSa`GpM#s(AJGeh@uW~nxcgMBN`kM>2*Kir-*yAYrVHKOlg)l_vlz0BWQ+Z}{IrjH zTY{8p^g++WDA+Z!8$ChvVWE%kPwV3*Z7MAZH+Co(qzojMBRf-7i-wU@24vo#Zi;B; zsr!;=BLXXDCXdn2H_-8kinN(^7?!ltvtdOBN)#0@n!gl%XW|1`{t4R` zGiYk*Z2B_38#@oUK3j1O0o*KAv1fFSS$thf3<&+X=k#ZMW#Z=*vH{!;fAo@uu*JyP zN!*mzEbSPc1XZaL$(MndZ&9|o+v{RqHzNa2VO6N2Fe>B5)=P7>c@dUm5=5XnGV1_( zdS>nYAU?8GgS%3n@x!6c{$_wfWw96L{6(L11T%|oDaK!0)Us$ub$bI9_8-N)Gw zTFbS+eNj`4u_#D)IKii}-*1NXvtre4QY^4p0I@XYdZvZ45oe`9avR@?ZluUzgD$>k z%})uCRuu#@P>bGyIoF~5Il<`yNYA&vD)=YsnDV=l% zj%O&rZNxu@uYAox|QUo7i z0mml-`VJ8$fQ^$?RYVHNA!Sz4motv$5^ALtL)>*b2plU1Bp*tYuj&A+W*xrx-Rjhx z{wCys0IY^Lmp=|l;VdiGZ_)l7U~sV%eI924%f559RkY#8{utX`yb~XII^Mwx7M=B$r=~M|n7C&C)+;FeR^nHbmH6N-{RskVlm0oVooFOGj_U!Y zIt0H`=No~UKO+&`{RMM@AfmmIXm2(c=W)Oyh4=?*gH#ZC{Fs$N{4i9W{IKK)Y8A=> zLc9wn5wk{0X{7j9mk8PQ&eDNrvW^^Re^sTauZ`FL>X=)=$q7@KTX zf(nXoa8;Nk^Dq~`N1^bTs4F)Sc;`IPm)v%m`jUmoKO&m~C#_@xaeVMM z=YilAV%`_%wGT-L5?2t3zCR!@dqiL<96S75nuk-f=ud(HLc;mFNN~9*>Tw7uTG1~8 zODogE^;LO$gzG2e^&C-ueqQE?`qI2CsvK~#1k*FE=sSU>2L+ZMiTzAd_s8a@bZl-) z=S43}G78cmvf2J6h5LCIl*C;`b$AGf`Sax2na`U1STLgrOBIMebAoI@(?b(N%0ps% zoK;5<%y2s1q`~0|5@wI9~;l--|uof7lU5Lp1}ujLzPesU_tOAe&k1r z2acge2|6Ju~Myzti}xZx#KE zG!92RUlRu_(AFt{R=lzdqYsrrB!O+x0roPD?%mOOcE+g+38WuHyAqWvP#K<=ukxh> zI3!el%YbcR_Cw49m-4GZP#3QZBb1X(RzYQI0G!u?%=;90MJ1#q@3O!94rtrtn28Sf zlKBU63@F8HRL(iY0H;@|b(coPqE^r zE~mNNo>_>n#d;!OMkCO^I2i&2#3qbs!NJl>@W8`~Fp|Zf*%y!B$q$R*J`7riMBKwa zkXh^AFG|r?V4s%)0{(3v`@V$cvbS8f(_>g=<@Hcy)jy}kWPwb59?MQJK_JzjX zV&98qyU#Z~3H(?J=EqrUS5QDPhXIvpwx`eNR~o&7S_S?=DR_k^-xtCgjBb#?&W1qE zKQX?N_|XFe*U|Sag!p&95?Gp)qawbwYQEhW{i5ZEgYg9bD*KY?yXq(gZsS?+B{-*J z=Y}E8rA3=(l!XIJ-?s*#?f2xZWXq0&Vb4uhxL>s4`dhr7Hd%*!UlQF|a>(Y=A#3@9 z6-`=)AON!k0SL4=eX$k&#%lR6Q*OS4Up=ftFfDz@dhJ8}Xx`D2Zsj36Fr2_rObuSP z2EA8W^!bf_4ZzSA0x-_8K<3Gc^+K@=q)41iLY3&P)7wF>zjjZrcx_%8p6ZlfFMO2_ zA9FcOi=C31&*oZdy$0iH4NvKhTiif**z%_x|DQMi=In!jeqft_4n~etQ z#E4Q>?{-~n9wYEO8LONxouqUFP0yv@5B;4>S3mTTu0j&@LGv;(j`l`ZO=ew%{^Nyv zeYF!zEtbt$=rU2tfJ$HIxNxECGBWveUV>oQ6ZWJcQ!H`)idf<%hbbtX zvwZ@!$1>&%<~E8DQxE`|t|9dBOe6J}lhim~E1}W0`v*x=@#s#wRJ1}#n+*zGjpW(J+ z@J^DWCvcw$HzH~e#h7i+;MWZiKvX2pQC0-9WhMc*lns>_B}ke_oMP7R+0CGrO9t^& z2IcHg@!qhyO?sLS`ltl0xDBQpWl3}$HFBW#mw2zFW?i^MHZN)7Osx!EOpO7(q_tHq zafX1+S$U0R6&{t8jTd!okPcKINZ`H?t9=bdruw!jD{R0GcuFTnKfm`$P4tR$_rfA zDV_&*5w=w(7wwLm+1pl$E>B1?92>({FpiX#c$9IZH}v5oDG*#*&7{{$oU0kQqWfZ^ zsVK9FsCaPpUd*EVG3}J*;M;yFliF#85%^TW@wC&=shwI|gpol=!A#MsyQxlUe#j2o znl3FsS)*rd1`$;m1prsZwhW*+w9r*KYpU68$zsRI}h55d;Jf z5BoQV&?uV(I#E1-V539_n3P(%q;(Zl2~v-wph~X!J|l1|bNxzV8AyHtI5KjDU={a$ zDiBKy5Gvlpr>c{66#tGu5Kg|z!IwrivdT96998t%jEquleRkA`=E2#75sJyc@q}?M zrpaw*pOIl)!?D7bv5T-@q|{hSo~b4zc2|Sw|3jn~6Qn_i>Dy{+ChS#zdT$kpW`TB| zg#FKidn3tN=djz>7A3sUpW|0(p^^wX;pO}yhd`?Glzm-rIb_U6C6R^I4F~=gn~Q={ zSZhoR90nar-6|{fSZ$Fyk_N39qh&8AClRBhas^+^mJ1bKg9ynOmmvK-g9Xv8V;Olv zbd@iFGa`f+4b=PKX6wzorl+=hW*_Jf+Mp$Jm7_&O*lBCiVW!8z#vaf&EiF-xtQX{6 z@q}eN|2gV0D6XrhztR({pqxFsYzWp)WBS&&v+@T$~jnl+YMQ;aY&6Y>lDIq0-){bzJ=fJEm z!Sck|PeEuZ4rBwCv1k}D$;_-mVIZuy&pM3nJCZi&y^=wjT|ejmEBfWA=;~3?7v(r> zhU(EJx}uN>GQs8{>O2+f>71?@bfcQMtzC>rID3glTBuG5Z7{7Zmr@s_X{r|UIv%{`@=n>5 zM;*llEaylcBnFfsMF4b_g{(<%|IuorwDz_&D9La`(T2b*<_A*&NPnFaz!HIu06mEZR7=zNW3xi)(~R34{u>!NP`}t>M<2Cf6PJ~ zCDAY7@?{|+gQ(2edaB12^2UB89ZvPo)TuBB5xWrjcQR&?57cuU-A^Rhn+yv~31-nr zq3h(RmIS+UBDtBYsT0W+GAZN~Gt8MN{T$9jEpke;T*ySSR_0%1igH@6jq*e`Yicrq zMrBP_N^DGsixP7Tc8v3*T9->VP*CFhi0Y4xfpcl>ShO#g$~ZwzIN%z7Hqgbip5Wo3 zaBX1LeyC6y0}AbwFF6nZg;P$!Xp<4oHUJt&A4AkpIo1n(qn_vhsjm!Bs;6MA=Ph@a zJTh;jD&;^?vS=;|YHWF=_~|g_vVpoodvO4ZgxD_F z{y5%uNGk0%j#p-eT`uKpHJMIUV(r_~;W^-r$*>USTmTa~OA}}&!8sh*zRedpo6mPZ zl*Ph*!9|C9p|f^*MAeOf>ic840${up@L{ff?7x_m(xe6(_~yVEI=Kd2J5~6~ zw6DJ7Xux=z8Gs3NwF8nHeuj1!r_Nspp*|SCNJmmgM9P82I9gAA3NoI-N zfQ!IJ<>*0^z=Mw3c+X&2nwH5NSC@p&I{#E6%w<(aP}gE1#S{7_GdoRSOFC5E>HOkK zVAd5JiiFU{;8$s^SJ%<#N}!a6Xo{4xO*jdwDAb;(Lwo*QwddZ_$i5x5Cq=&iuaW~I z7$P-Rm`%}4zCpzdelBDMoG)^d2|CQ|{}s0B07!P+h_~oI2WscBI`~%Xg%fmG2h##L zn3gw{&udn}Z1AdrS0>1!K?kx#%6LCOffwoD4z!Gt|osA-izqJ*} zm0|1fCE`E`h)qJka=Db4rlO=%yIx8U0zyb?aOC1gtk6(p(ckDwv{Q5H!29NT0FlvP zXmac`atH*prwnk8&I7>SN?XSV`a**Tm3xKjr}W1DG6lDV@3bnRTGtA_FkS^kVg<+( zl|jLg<}e76>K!mmg9hatF;N<6iBsX-V9I_sC+R&BwJ5k_YAi~7oYb)|)uLPq zRVvG+Ba;mr5B52Aca)00M5S`|HXM^|K41{2m4H4*-|QQ`)HS-;M5REbav}zvkR>Ip z1f)(ZAVuZ2-?M?D7Xz~%q09hnN*f_QG7$xrW_8_krsc$pzC#%=)Obe+QxK*YkuztLG(i16hKu*?jJ z$<)Biif~aV;LBsKJL3+R#R*HnUzDD(${{t3B{SS1fJyjfwHv{?kXY;BXLj-~i_w_4 zM$MhhjN8UX;8;<2?Q$VeGcTSd*cNykhf>GL*(DH=&w=8JL1J+7$ zhf2tEK}c?>srf8KnG z`D#Dc{1=I$N_1fYPV-LOGQ<*R9jeqm8n1G43Wh-iwe>AGV)5_;TjY@H?xtJ0KnAjKH;v|&1vD5haW^K^v7v8k*l!Xs&1i6~k>Binkd z4dwK9oH3paV}9Iu&RiNOQ5*99ft*WMad0CzEkf=AC$P}poQp!5!~6$x65|Zf@%yd+ zLl(epIV)GP9&%otgArvFjn2Pleb?~bz9(&#<5^*{?j%v69|ZMdk}vei32^nDPY?k% z%DGVSA8~Q)pldjg`UI3gbKTR?a9S+|POiEteLp3d~x|AN+dW#*#r;Z#7@f+gHNn zMyp8pKvW6>nLe~y4)!J2xC=IRHu_Pn2aKoI2+1Nx-VLNBWx+IdC&0& zijunkg@+!?lCBebQ%vab%it%RKXTHeBH+hrvHmTf`cI1L4)}cou!28<4e*H*Dw@li zRNpLP;}M~8j_QP$%XLjTsxx&)N;U+SW3DSNIl+Dy0-_ATmepCL`vOf5BGDdm%EQ;r0D`lJ|t0MHcDuRItpe6LAB%LXqMxhmgIGDvip! zJl&0IirK>eJk6fRoh*1c$M`W_Ce3gu2SZS0ygy70Z1w>~i8 z?erS*p)h`DXkp%e0{7?IcfN^{P3erkQk6&H7m!=$T@ef&QNiCL6mPT}tO9)q{s~!B zD56-rmJRSABY2$x6T1jlruamA=egX^upiKG;~S}hOH@-o*|Vr%#AncW7oias8G%~y z!uUNNXR{0geY?+%-7wXpeV3;OJ^IJtIG_7kZPE{BPT7p%uXE6Mrx%Iolo4!=UHtWHkw+`G9G;B0A|L+ z>eCqmK{um36OUBIR`4#KRvVK!)8*k%6D@?dxTt4ms9jqS|-8$xsHgU1A_uK@^Bs$meB8s^TK?DVPHD zpDV;*JwS-4tCCYkl9J|>hiH%k%#`Vty^p9KWe&Cu2ZcvsT!K20;=;j#@MHNxbe7;J zwn)*`MZP8L zNmZEi5cL(v-;`I02{~y~!BWBvCxSPWnu~>AIIEClJXmtPnd7N(U`#EJ5S~I*cF>evk4Sj;9Sp(ygX2`m@9-3A)lzfZR7~#|Nt!(DD=Chs*1@(j*aIHg}m% z2WIv{<-pQotmtRlG;+%D$ann%b!#!w$aj%IovM%CqCU>D|8fY?*uDA??H3RJX_}tW z(M%D9`dE*05U``zXy9Gob}q|!@LzGGKHkgdLVfU6M}4rlNb!Utg_}F8kC%ZxG3ni@ z5A7IJQE9Uq^-)0@kwaL5@&b~pK5~R+sy?{YG*bNTAkyq7sE@bA#h9HZO#zo|##J8+ z_Hfn5{d;@r<7>c7yO?8_V^t}X0+VaSrikAw3)M3-cys4!Y#llf ziND|!aK8JzM_}gPbMd@pZ4XqqI?dV>hIxy$G0n8G6KR!?OP$pjP8(SAjTK^7F{+#i z*2M;W;k)k{LsQmk&!l!$)|;d~WV#(}4lEsgoS3a!NTa~A(KvFhDsL!GKnv7P6tX$2 zcrc7yDl3lQ^DL1<^st%I7+5wIF9UJIl=ZTygFxIIQ&Ls&I>Zu+M4p4#fm((U$hz$q zKiZYwX{aT?@y0g76%Q7*n~7N*eTe7ct@Z|AC8=b7ATu=c5~RIBkg^vMF&950#ee*n z@bneJd+=D|!M1;!hQWfOIq4N~%WO6VSHOBT(DDUdZ;M{(vNs+!)>V&r+T*JPEh;@e z_9=x{Re1I=-bdF0CK-jak7Ss)PF@Z@kGRCvqWv7hATyB z(vV6~wjkinBYaYXfT%RSDz6SD6*c7b_N|hpSA07~7SE63xAS%hs!vRxTVhwC+ zYLzotB}$8%k=T<(TH+}L9_ja6R&kmI^>`cgA^lW(QT^>d4b)DBFd|_0^LbVqu?C_p zXBivIKp3``C`KXzGxP~du$o*8t6ju*4Xfd&%WCr5W3^Wj9;=mgV6`V+>XP_f5&o#d zh1Gn7Kk+&r;RnmmcaQLYAJm!fGHJ)4Edm9?3o2Z~Zxgmq!nfmhqZ$!`2hsLZ|YX^ zxuG$q0P*0>&-*ZU0v?mpX8wn14TWQQerFst6F0!odchH=LN0=uefDL&*q56R`-up; zAxjY?O#uKlqX+_H4}~O*tNtM^Cs4Bw-36TM@ekwpiDQQ}u^9Xh_k$Jov`yfwIA#7v z96w=qNqeUsHslL54nH(R1qde(v2KA3nxCb}%mV`c;FJD#9A=RA)L*DCEYrimhwvu+ zV(6X0LGwG;-f%G4+_VMI*p?H)$00(otW#Ju*5_0dDs}4rx$a}HL5}-q2Eu8%H#&yE zA)5LU!FUJIcjZn_p%9b1jZjZRxhr>4fCj}yui-sK#_qY3@~#2es1n0J^(XU`IOjA+5kN5>!A0 zl)I++dFnvjpG3CXbyoBgHy9Z~HYrn>R@KwTexW~m*T&cm8pDK!9MUMH_D?j!94S?u z8Sz~9A#jai2Y4qe@0<+|gDJ!BNbz3}7FfUMt|Di`Db1jQX-081iSgTsVrlh;_d6vL z(j=Rox=0e4owpG^O16uXPy{GTs@v1TG-$JgY#J8mZ@=CT;{mbYE5Nb~LpYR^3%?pX zi*JHoWLQ~kf>@JrA=&B&OUomWeiaKNR`u*b0`bSFhqzftMSml%BE^mRs7acztW<4# zJMU`q=uF2nCodbrQ6Ufq4Wn&mcN79l@8MZ-xKRrj$GNBY9VtGQozOoo^G)yPq)gD?2Q29K+*vb?mN+m%}_^FXP}lNs`dkGJTW1ufgi}se?3*W zr&S2$sr7il{sq>NJkdjt)W|WG!@;-|p~cc3(vamEi}biwW)O!M@DvJfj^#Quvhbz) zL<|KP2lyQ+K6aq+;wi$RT(p3$mr59qya|nNuC*oAToQW;)K&{NR+s}=wFFLx3aeVv z9_2S$71_Xew(%LRr4*DdlsmdbK!dsW97qPeQG>Y{5G$Z+6~5Z5DQJ=68>Pw#8q(dF zR&|6GTV%6dw8@y1MbZN<{b8$U&*WQhb$!v_G2C=()LU{1LRR;tMuAW9Jx^Rirp`$G zf`xIOc~%8lG(m|;pjx*7jfG@tQ*{%U^3CrX#hpe*p1`IhFt?tUz#MP$KPODt%RYS{ zT)AqvD_+bz*Vt$aWUx7$c0W08!6?3V%@r%gk4 zsHY|Ez|&$I4ndO7gK_S``s=CWhUgojl4jmdq2xAUoN5Py%X0~3dji9daxRNP8|!!0 z%i^PrM4<#*YzVfTB{ex9Kwgpvxw z0@DsG2;1;MkR}jZ1qd*F=urX)J$fY0WriYs%s+ardUZBa3M(ML2FKqXiD6tP7!_I8LCjF3SLLQMSFoEpQCllq#c{nxy zR?y*6K!I`h2-KY-9I;*9oFjNq-J(pU>C-N?GWd+tI*LKRQ=!Ed9c+%#{}s|=EG$>T zK$wPJMbAT;<&gMUA8-%(Y~5EGANn}jm zI+y~6E@L}{PT#?co4zokP78xYEQF*dVo}0~|Xt9CsQ7emd6}Zxc z@U}?TrhbMu&l4|0U)M~X#8cb-s)H`Z8~;}6l6D|nY{Ma~N*7ReNtM|x84up^orlTa zf}aGF_NWye?`TNyPzt20@F@l3r6)yg;vZDc8HuM@^h_Ly!d_4>>ry=vZ-|OE+G!1; zRe1%Yi3w$72jcd_(MTu9 zvGxmrZG~=JsL>KKwSl)`e>b9RlPWqNxWb(8>$kfFA|12y3Q-yn5nTfjVF}{06}l{1 zQ|&BkM~av4OMpuqJF69RzcOEBC7Lm(p)%93Gg+4VcKwd>vk)Pi}-iy2QS#ma^y#fRemgs+svRc--Q64bl>uvGWO9tBFO= z#0VB2mf-NSxfu9O_Bm1w3)dW1Zl`uowYPJ z7b!j{0D5+{6kiQO?{Y0oJI0nnX|tQPv=BSS=<;O%X7>a&qb$X@$*UR+wq-cC?@jjl z32SM;6JG@x&uj{~WHTD;1TrpmmbBx+Uw-2m&_@8X8qnTPDUv!a#h)OpcCnUbj9{7l zkT9s9c7GsLK0e7XAEBM@Fv<7moV6BMG_+g9@xTcd4xlNQR_17zxK+FQL1;ne-v_3{lppx3@2jHW3Nj?K7)dpO~Qq=R>VX|EAYBJjmDajgRUU-oW-s7>AMk)w&k{qF9x~ z0wd;1Qa^gJ^>TwQMzqOfUr%Dl(fM!>G9~Oofu6upY?NT9Z1Zg)jE+k~YR$rc5h2`& zJPXmxkzlH~_cLC7~YRgG8wIFbZ43p76Xg)rGuNd@VhRI>u1o)Wp%6p=P(pC!dBPg_Cs4bW46qby9?`SIWZDQpD!#LqF!NjN zF?t3p4qrf%WeDoW!CZ!)Yxx{Yjd;ct7=BD;PF_S_632ZkQ(7hbGZu?)WY}{FS0y?F z;OFz}t4FaX>KJ8JC8s%$pn6Rs+VZ9QkX4V^s+g-JC{vOzV)DBXSb4tEbzNQlgMmk)%8w+nB4al_Q$@yfstu9`T8ajO%$UFadk}malhWK0P&T-W!-lA1W*X zzBuOSBp%{!@V`iokV!I@B_bptH`oU>e9iON3RXARdpkdkZB5Q}jO;}~oc-lOKsx}x z6juK0!5gp53*nK9bSZuL>a7(RvYX|K-&DPgETNbiQ1XxNXr(-JG15ccHW>NKCW3%W zWY*C+@^nUT%pExzVXHV>r9d!HXIa%d(!yzJx9myTu=tZd%Gen+z*$DAG~<%vSL=Afy#&vY94Bd%+$q_5!p>Z)S*C>Ovq1C^8#ji30!&5fh0u!antKjBf7g zu15Dj_AW;U4CSKRH2X!F;yNQ^cGlj4KD;jI!?{O8F$(Dw37&H7R=UX`-FqXX4k8OW z$oL%WFd&u7{$p6>90|lsmi+s`%>VSHl5LW$P~rMPNFKSS0NcXH@uW#6=kt3T8d=$Z znpW&!D|U`~eS3Of<|5w2`OeX`<61t~1IGL{kWe#|HELG(;F)1~{^s7TLTcj`} znZ|xy1pwbo#-ScA)1AsVPTf^asQkOCy&tW)U?#BZXnU(LH&$hR3N#Bb7BFBoJga446OD>5XEoj^*95bd| zkKMIg6y~!-2!hd;0CFyYX4JIy0*VCOw@UZUP~ORk@EYMmY7RRu zz5fJGQE7B!NLzaiSNQ(9KKd&z7&PTMY7CLcx>zl5Isivq9W8rR9jmo;0g(b@r0cgJ zVxx@4KW;e?&$P3yhOSxD* zT11>N)*X8q@9v>@RD)x{CT4pkDjV=0p$p5QsS}QP(WOA|sK9!Woj|k^B~3SL(9xwtv9G3*$DX zAoR(sIKH3+Nz;uWuj47%vyx+|NPG{^2>tw>MOtE|_(^6RiU(UcOHxhZcW?)2J<(E> zxUqn{Kd13R&xnLjR%Pk|kqN3J*5h_&R!LmI?SHw~OTafH@fI@1o#Eew-}VpJ$&((5 z0&Km&*;svL2gWu0WU(Arx=_e?CP;ZT=!R&5&=4eINo`P9Ej9XVdYlV9S#PmG-wjf) zH*}1XYaxQ=SO_?ko{fMv;u#7~e2V5VNGJB&%p(fB)I@bR0E9#@4q3jin5^T+xJQA0 z_7MV?{rt5O`dO~U<68Vh3ZVWNM3?P(&ecDFDPUlX7EgJx!Nk`Hp4n9o!u7lzzW|y4 zFU9}l*W}dyJb}p`)mv@QfQ-5gr8;u$yaVc{LI3ETY*Bji%=u0&sun-*!}nVXME8w{ zS{t2<&AuQ?W+1NnBm2tSV0u@5!1#0cZXcW>6Ck|Pag*7<<>Z)sx;pkm*;(Cn zvh`f_&vLz#W+8Gh50{aJNMtpGw>Dvc56;&gcpKTwl55=ZaW)c~@r>NI9B-ozd@tSN z9+-Kl)h8iqPZ$2#@=`-sE(}qAxc;PIx(eXDZEVF-uEvN={&^3ynjq<8V ziAAG2Pn}G96cC>>RmGYRe&hRxJCIg570LPdBA^`Q)Gk$&XFL+trl2=9xH|4VRg}^= z$jOFfr&k=h=1kCy5+m09GEDfpV6KRg!8}WdftE!z)1!$mO+0uC`c3U*7^R^J{YEP2B#NTav!9G*+S; zMNh_Tu(YT(FzXoph=EJnO9pLsH;SHu)9BzjkK#8yu`AKpocLYZE!YV?yb=sA{7S1v zr8i$-LMDk^VhO7JV5zOz zrGy?s2@iwnR+s4LKyVCJx=qe( zk{4NRa*Okls3w#5vVSG1vP1*@5hb%$L!KzB19(hhF!vQ5Q6a;k>!faXqG@ps$eS$fM$EveB~bavL+c16e1c9B?4S8NpRb)CnA*AA z?bvw>y}WoZ_cXWjt9_ln{VxajtGv!#Mcu*Rlsg8em%Zm!(khjinmH(Rzg`CC_~F7# zVIMPD_#G+k{q29vOy9nx%p{G2nb>fO!2uHY5+v?8)*$hNmz9Y`@ET>DS+`*%J_^d+ zj!2viuMbH4=0q2X`AaEB&1}Xy-Sjb}n~2cD|F|W<2=T zaJTb?PkEi6>~{X=d;FdE3DliH*DxNu?`wV0{z!IjOsCp0v$xq8#gJxX+}QRW&qIUJ zp591be;aT)DzI#L!MNeo?HL*2z#VJD_1q3GbBV0W|LNdt0M$mN$Rr_xveG3 zgTIL4?@6@e!=K#kh`*aKa{(F}3f-|B?i>mx}^)+h2I5cBz3m`2rsrnCB|YkA9T`v)t_n za~&pT82-=`+|GyiI=>PvC>I~)c21bj2-H2J?Ej$y_XKYMaw0+2c(-?fds-*Bdui9z zr?_1&ecXflNVn_7e{|utNBml*p7%)sr+Y3^CG2DMX1*4OXz?4TN^eXY?A~`^p7|(F zf(2&y=bK-S$TQzNJwPI|Tg4t@AtMCYmp8b^t7}w4YxMfQ*OXQjr$o;uW7SOs# zWZf=Sc-%FVnSUZDDh^%Wv^L7u&{eL})vbRNKfg(H*IU=&J^)rHb$tE-{2(j5wIX zzX<>NGTKj)jkM0f*AnR?`KYAYrc0`=OCij6JoJ^ZLwv`3=gSPxW%G)k6Ur#r*(|ih z4b0Na6AVyj3=pIR7tf%Gyb6#3i&KjZwL>dB3EBI8NIV<-mKpr=%o0Oq6%l?s3e#Q1 z=A66;FM$A>VMQ&}y6isW{Nz@7ibNhMiQXj=;)@h-|BUDzZbh#Z^rE{-h~;vb%|kO< z^3V*e>7cm;!MDz6uEM0f0&`oN59x&lb*N{js}V|P}mbL5zYB)DdfXvc(Mm9 zXM_DEf^|;IP8@TwFQ$15W1267((k^=D*v^=B6v)vq8yo;1=ND#BhOnO(-L ziP{9IAU2*NmYbZ??cHD>;RD1aIi5|$vtAvZIb9enyUb|WHUMXDIkX!sTjyw5R`ay% zFV1tcY~H0nrC-aQi8qG4t}FC4$ThfqyeQkd^PwW>k0hsFg-<_=4&dVG7*|i&MNj(` zfUNaTqLSdzkXYlu5&(4aQz^RDWgJH*_nYETRvGy*)%DV0Y=Np91j7Li8=WSN{)nP) zp6qKhR!vA47of253k)KSCQ(Xd1G++7p-PN?1dk@?nFf|FqwbIK$SGlV%E`=Rd)iS3 zV;W^}$d5ARX1R|uH>AXYSehip7!KiK*({|d(qh?@RcOve;j?ef5n1`{Vm)r^DOtwO zd264aJP0MNvc{rN0NbJ(!I6N_GfNO)hdmc4axQ>#V18blYZbi_n0+9T zhU3($SG92nvB#w%&Swbg>hM2B0HEt}R33KzwR{4-0Y9B6j-D0L#o|U>MT#HMM^*B| zb@F9I)79@ohQ~e&)Ryouh$91rLx^_6FZo;yNnSr^~5OOXH`T^)71SGh00eLDP_WBu2{=^_mdFYPw`~u+$>0)takA zkvIYsu~d?UA~6jA*vq5`sOhssOD(Eudls2sEJJFtmk^4@1Yl~2Ht01Pbn7t!cmHW zF;t4BdFA4FK7zW&Kdkzhqwdn|d)^^Wpc4BA?aev?#7x`}e0vUF%Xn_7=Yl-6V4=h* zFXU=R6GGE;3cF6;zwr1YMAGCj zoRm8n>`m@v=HW!7CYqVwNz&-anZP#>Mc`xauLHhcR(x{-P{ENj8ySF$kge62iB#qp+62geJ+D@0#da4g$0#SI+9w_@jp5JU$`CIKbDL#_xI@IqO`O=OED z#|z+v*vBNUdzG94X%K_w8+^}mm_0Ouq_gK_vw4Pj(YN?CVTrF^#J17ldFT%miWKks z2R)wxEXm|6=4rAKPvpUQlgMxrWq9c6GN&hG2fmN>mwfNorcYL5b3!xjKPa7#JT$$_ z&at~Qwewr0b9}Y??EGYPYLj=MN!f~wR@Xz+HiDE5_Is5E8;+dulM>GF3rY89YeDz^ zF5NwP$4BHf>tbatb$s>KW^jcS*PS9mnk5i*A<_$}ztsG=9PqBo0T&NY2Sh9Q1g)tH zCfN9MhY23}6`5d;v@3itnbk3)$u%8sL8f0|=@=#v4q(aHdhHRc6j(L}=L69@j^87_ z#>p$pbQ=X6Ge$lt8*dE9n+FD#-a{K~)qInV%L2Z8I^P{=#mC?*4(e^kcUvE0S#gv2+u>DHg%EIFdXj}@rRo;?1fn9& zLQ*m2@k}(40xpD%0`_e&Z^KAP-8iRdhL-m0i@yb{JTVS9uU^xPYOA3%mNwXp{yRoj zSU&zafc$gwt>B+^h??U){CWH%`dQ9L>G-{CU>GRDoW+W|EK`qntr{xkBXd=0;Hk?m zRln}2lpnSnUir=WnqGRMHc4^BUT7S232}soPAuaOsMd+l^iZ}9_6t{vOyKL-8OgUA z>}T9d1u;3tk&j8Vj`vmrz9aBU!1KWe`B<;=F;blAtwb#KqFKg8*+!rs9?dL0SodOm zfpysaDjr(F1vgOpcY3!S?9k&Q9gt_8NAXbaP{iW_RENH!J`2=|BNGokaU(a0&|k&0 zf7zb7u+tpWqK6O|IHeX6!- zNG?%TOtlG}=eQkC+=%uJH$}jp#$e^tw`#C0MsTXv5MTJHcJPI#-PHc)TD&mIzUV<% zz@CP0KXH7y$vIS)BxAPyr|0x$equa`W0buM{I~fEdTVc%)7Vo?yQ`;HgI-fNglvV4sa}o)7q!mb<{W zG<(4JLk|l4&9`;|{3DW`3rYy^@X4iDI=6NIVgK>qlAq}op$ISGE>gaZ#ed2JkO}%l z@nC$IK||G&R32zDP9@nur&W>S%y+v&#sr|~$B=>k98O@Iz(vNe%Tti?{4y6AOP=?T zk&PY{8P`;IfsDH)A=pI*K2{YgfoiQ0&|?clv$*;XnSa0n7oaW7rKlTkxWtNqt&h(0 z3>l~C5ZjHc2}I@Cd)(Rsf(#B+_uM771C+z_4u_As%!A7wJ&OKygMF^=rlVqV;Sf8& z6Lfozo&j~k+$;3WKTn^=kyeHKs&ZBbF|_KfZO|lK0_1;K@S`R~_^O=_R>c=JY)<6JK?!a8K{S@E1VEgg!m@e|F+e3!`;^N%H?8zo=VgGaBs~7NI+Wbx<6Ih5C349# zys2F#Yli$w&_OY(Jyni#8)aFs83=A&44#FT11-xC$cnsXs%LP)a+XEk&8X0r#7-QW zSsF`+i<(^uK(@heV!2TOZjxik$ordlExmlo1I4PpC$R&!zrzb8)*xRzT|UQN(~`rP zV9|He8?9>b&;qv^a%_4;cacTd6vZ25$R$Ss?_$7(EV2Lo6hn^N&GwUQ56zHssa&aY zj^B~ufq(0Q95tX3naQpKIh+rwIpmnrksRMX>5}8KXFYNZLnBI#hi7y_j#roa$x#v; zF6?U~QG&-(2A0j`OnjWo`XAIg^W_c@9l?zX4l;V}6dLAA z`F-v*GKTI*-+z-Rig)&BrQwyd0)nC_reF9i7>bUEUxf@|yc{Y1ik!dG0>WCLNHQS(VZj`?B>sG*uoLCtL+ zE63Y);=(y5%SqYtVHx(#PQyXtWO0Z;LQbSOm__EgA`XSZ1K7aI68__tK54=@0V-&>tgAYiHlEAV-%;h9Q zjf0A~1#8%U4KRpy;$u<-7qI{?B4`HRQi4oOGaXD}S@hM6L#-#c1!`JStQ=o+oQ^5@9VtF(BRH_5({bNxKgG%g{_0w}%%?mnSB^&1$~||3 z4kg9uNIcG)j?)1y9nH@-XJlM=G7h$Uv(IsG%oem0U9rKh=#@Yk8@w1-k>Xok70LNk z4mdn23m*^;@_8fPQOq<7u3*zx(!&$x8;CcoSe>Y;*nJy?AST~beZB{A3qD^}FIXO6 ze7>LzUMEZ8i97jA)z$F&1=@ndGXu5DdAy+$)5IdIi~v40DA_Ed7%kuXa`^=J(?r%d zpTi2M{HCMmHw_Tl9DBm$Y*~D7a0(k#@MOw{QA$su$DHI@WltHluqPLDXm0p9Z6e7N z0YpK(~XkmkgjPs9VHJtYm{^D{`tas+~4t5W+f!uNUi1w`)NiXi3Ve_Wv<{V?* zI*0M#yK-%uC~yo24&?HO9eI*MikwTG1%W1T1&pl`r))g>po*^$YMvJ+u`1>F*%ql> zj^B~ul`jbcA1;;8fK%j|DMwGH^O;Xit|#N60is&<gbgwUaYzhH}j{34qIyCyymJ903r~chhU#en-*%h!I-KrbhR4at!iCJul2mf%4 z(U&(p+=afJE0uLtz$PQbdu-@JUtSGb?*6Rc{YPDW`Q{=|U*@9`)t9$j+l9V-y2-CE zOQXH>>~&WW=|WpsPZsT9*vQbJzr%3iws>4gkHuw6crNxkEk0X~m+g|5ctfovV_?up z>;!ym6DcYHRa8aTK5Y1*!tg_t*fpJ_E=ipfVP+Ra5Qt602jAHrxnfiy|3PX#_YsSH z>(cO0ocu^*&(k1!*=INFXy&sDaY}&`uKog-x=45vV1ww>$JQw^11JFIqUc1by@D^M|8%*w4jyPLqj-#pVK~Wb0kY z0RkT!x{1}m!N6L}&4Idc%(8J5XABd;*u^1*tW=)h(|e@-yT4|&PNL3n2z7K_w+~-I zNIm42dN_cNEfN8Cj1jbjeZq%aax`2|2s+CjX$bzcKt<2L zmG!fh6TxEP7W3Na%B(B3w&?N_6_DC>%G<6Ge#etUBLZxzd4qVdA4vS{G3;uC|OR zW`u{5fm-TCs|O%G#B^hjS}SfCzd2k#aX70A2^{q|QTkA-U`$6cdN3D*!h9irTy)~; zYSaDUUPr>Pto1rFic7dsmzFpVg%t&-Jp=`71j%q(xj|3aZlTAKIGZ20No^?CG?cR& z4f#1u4)FAG+Ti~QrwtmV;|m#6hm#`A_zHGod>*IS6(t=3on{)E@{=0s%(632XUko& z>|E1BgXtkqdl`2mbz@pU-Wc z|KO2VmL=xkd9+9JV{Bqy#2pOA?>NhTW0|viccTmmtC}ofh~!%Q{obS(qR$qL2!6`% zGUqp(lrW7;JedD`4Y!Fnuo~n9saVtHyEQ9#11p``a#Bsa{W{cuF(9(s34d$i{=ujrG}VJOGlNca2BHp{fPP6OL6a`QdAK$C4xC0)c%l z9>CGC4|xbl9KUlAU5JnmkoY;sF|KIi4H)7^6Ln4O%l!eZt1{4AVmmgD^FDvC!tWuk z4{1*H;BN9g5?Au$%G^6?CyvEW?pFUda{ke4q4o+a*$W>;p2vFJMrSw;3E#v{PvlA2 zBe5?^IFr)RYuF=zrZ=H5=hP%>`MajM2O?LAWAK}=;!C>BtR2oH6w%+`aUvpSiQ9lW z?Go;oy|H@pBP=BTp%Uy3DY9$kq|ZZ=((2-yQYv(qTYq3PX`;^1>+sXZB% zlpRi`@sVYU4D@av)wpdJ-8m`ZFyClCaSWNFXEL7Jg#7^VsUuAEND3Zb{7jLzFG@su zX?;DKFOwHEOr3Ztftu-wDik>AveB(bO5KKvi33>ybZD|!V|d6TVja>1t;ln1yPYNW?;UKWr|;aU$^e9S)&`r*X$CqyWpnuc>549< zr?0I1Dbv&N-R|`C#0S0UX%vl!yJ3HMxzS7hHN*k;^QIHd1IoTbB0llI66L7)a3i}= zdG?psv`QAGRZmpo@o(6NGJ9(35-2 z(%C`xZ5dT7+$VS~RJzcx5mB}{ zg_x!5plR!nGqzg2hC{*u5i+^8STR0$+JCT@i<8?=j>a_-l$`l3oLkUpD16LOd=kSd zkwhj>lX|`L?Aspa?bL~$0|2LD>g;E-x;o%EDhIGLO%CjV_>WwOdjqQ^7XZi}`8Rd; z**g+}LSV1H_c$trIFLZ&gN=--n6<%Ny2H2tBIf;n%AVxfYS0#{d_HjIx%WPIIrrSN-E;5bzUt}r1_vm|UGpR{ zc=3KLdm<1wyad$`Afow&99U=Q(*Sj2nmfaRP-{KoGJv_3R2D>%=L^$MvG{8CQTuce zRr_5;GhmV!qulIHu=wkB{NVk#=ei-!EUi`>W*OJ$cNIrDx0IA(qiuSQAr0YlW2or2 zS88#MhUT1yK)i#?NXHyp`vwc*@?&Y4r7}gVo$^H+1-*J#x*JW^!Ric5prLsEsfnLl5 ztBjTJwK$W5Sh+sa9?s$*O2tIjBAA)I2$KE3o*8nGk8ewJkYiAZagg7Q%)vp{>KJRY zt}N+nB36z1EM$m^e+g&~pA?QXeKLSU+ocoV|5$|HMp{-gA&y(#9ObaEC}?SMbYpua zkxly*6-kU%6PdU;E6PJxaiL+$gE3CiyLLEV;DiCGg`gb#F2c_u5)ppG@<&(sknBIK z&gpoV+d^_OO|t({%pbvwZ8>79@raC$asDfS;Cs?}ay-R$`wslZ+-l6VfNHIwxJ?fW(t5nt*_Tj|)B}bsFyV!eCp-q#$(! zISmi`K(N%3=hTr3>eDued5s8Pz~o|B(m!XaJQPLFzSDVx~O zMA*%GXi=9E$=T|e-<+bsfH8<~fe#0>N0VfixM^QtInZEdqXbY?)cASqJF5?fv~1i1 z4I~FW@dMoGhHageAFvIRrIeu^%*Ir55^(!^jBVo4XkcEedt|3$<&_T!IoI-)_$3oq z&a{Gy5iD|6JtMuE=Zi!REe)c7AYR5`-FwIPe@{2K?O#qe_+oco5U)^=0 zwhWHBpBmiQI@o9}64`5zy>}es75&s7|onJ5TotyhQO*Bw- zP6ift=Dm;$+*j(Lbr93OA2sel{ix+ba?qc@=H!16X?b%uJkvm43Iy2g)%S94F%^RW zO`OYnfI*na?yU6$xHseTehT+75Rp_)t^8rvx z-2G{D)7rwwl!aOfbr=a}A_1L&I|(GTE*xP?bqaiN3~9`rodX>X;Dd0$?%}r~=L~I$ zL)YTaF-wDqJcwS;fig62#QFOTp&$Q-v+Xz=%5IWt;jQ485AubE|JHJbzo(wFhQF1~ zrGF-*3=!QW2i^9Oo8nIq@sXZl&TI^C>7w#|Kn?EI{Ae7m$sM020yd}i-^?2QgbwY) z>NlUD2_s9XMwqRcdm(4H4Pkeh*vi|ag3-|JwrH%1Yl_h z&UKanE>>$(pCKdE=dVHe=dvkiBh}zt!Hri_4{`6I&9y8J5zI^$S`Rb@^(YiuVt9zO zT#WcEJP8|-ma`eHg$k_xWwq>hR%dv7vG13M>HbZtb&*b9vIbkpF!--gTbi`@h5|XDtX!gF>w8H2Z~+s4$^Kt`_U%N+!6R7B=0u0_tpPG(u=*VwN|@|F z`3YxnQbWeHn}*CE!9LfUu>VvB z6rI)^wcs7=Nfi}%Fjl=N-x&-?Jzy_9*bgQR$U*Bk(!8Ic>9Tj6>2y{zWsR-)khQm> zkakTQer&4rX9`-&G>KnF3jCJEPJ*%3V2Qy^cX2SAV*r!b%zwfF zj>lG3Ry+IWZpRZZciiEH^met|G^`M-siL`)b}Ezvci&}vSTA$`5?mj$$h%u;uuEKY zlM?gvAwx+C36UIvL8m~^ty6-$eD*R7aW*BxwKxb)0>jHK-90L9#hmr~WtreK#YQHYuPRSi(=I)#doP zRpkaIe z!E=x`dXZzg7no>mQxvK8f9WTj`?`SUwk{k{$>X z*tJ-XXYd;qgOT}#E1ikn>fqGdxpzTgTg$frI|!5RS?2r0d=t9JEO1ctSijr+Z_bZ~ zK?KPXN&*w8X9h~RooX)5`YAYRlk`ffNo!*K!7B-T2! zvBITJ=ZRQdA~F{%6K21|al3m~ItPO~m4==c1_Lo$=xAtWZb6bn36)L`I(=7~oABPA zU1;fgGi`Rh4AsJQ9BwB#52$J=wC-Uk9V1Jk@pq%~*MrW>NU95*x<%FHIxC>qySgp} zW-#3{>HucQdW7>-@FB=N0`k} zrgQMaw{QLC{E&O8k>*8Qt;y5Fdz*J`|u&LwX(TAaxH)V9hM zseRUSW`k%wU`}jcm|4;po;5biI28y!`!N=|=QiMsq~B`W3~z!SibI1INK>og<_1mXR|SdLNhjcP9O8Ve~SJ*~@!&Ftp!n6i(jTFevY5JZkb@Yl`h$ox2?^7UYNOo39+q(xb?!Z@zNy zYd2WEoOW@9>Knv`)8_(lRX5q|-GjLQ2KNBWIzE^fiEAz>bPf_#a;s?~MFKszIF~^W zF3)A)1_6F;BmGvPz4aLgPG8@~TcC=ZZv`*m?gV1HhGbJqvZ>?D8Xsoczhy1q$P>mh zJbg47%kU&J_)d_>`17Li8^mgSJs`RoE!-u7c@1UJCd7Fm31hW9y2ufv6dxVMKV87$ zSOwnAWDzbvqVrGKt!5kPt@Mr<0w|_IBpy$ZSYV%4C`hefL`(0zP!!QE*t38g;r6hh z9tLypQtF3D#tUEQW*me@YBhLHfrtM!Gm3ZtwhIViP0Vgm6PVg#el5{M1kIANHd`hfReB0rNJtAlH1`aqhs zu3H_d*9FvwTHfJ|^`y*@0dTdTX7LSBI)58K0YeIkkEc0B8w&&>!Zd}&`=1pqGarq{ z$`8Mt)9u4$A`fIJJ0sZ#)cZ}8oqyf+O_ZJNaG8HzrEr;o)OMI{M5ZjoGy~j^;22E7 zOnf>4vveRqzf{DYYH=whyHqX2V=+O}tWr0d4K}s+2EQNhN57W~olW5(!3&c!_HtKq znI@b$wbng=Wg=Kw57>wyglC_bFuNgy^Hvs!xo76!gHFF^Pv8=PD^wj>`c+XyD*|q_ ztH7rPCacS?6u$2iUHX-M|0%m9KJ)am?2-kpKItt3Tg4{7wF z)Af7@=(KksW8Aa7k3r!%g{zMcD1~J}79HF&5rp*!h-U~0D;WMAT@Uz=Z3JF3@S=fd z1UzqvA@qqOt>PeyXv8%u6Fkz>RRRct`eXw zW`eqAqdiAmnK_`YsqBe97Y1_igq2wagmos%kf1WY3g$ZDngC4=wn7E`{1^C@`T<%b zY$7S~8Z45M)!hRr(Z%XW$y^{lz93CXLY+uSie)03l#KAwq$Gmufs{;Shop4y#YRdt zH*?*Adm|+c!;umP5Gx-&i=>1J1S!E(&~UN2BM43bn3{-iwKU0$x&kEg97v{;BvXu= zbt78^4{jy!TLbqPxXr+g0-ka%XQW$!0^MNA_2QG0SB(f*3+hxDXB?hLjYM=8-H-Ic zl5#c(LZ7Gc0^%8r=OO^#fxB|@qbk&8%mA)Gt=T1xBiQKzu4S8`nWYuXNAIHS6-~L8f1m~D z_u*$nL+^3(eRzr{W=VnDFF*p5SQ$LBaPo7nnW0eMua7eoYYzbrI8j@OcZm9 zUbqq}?{H``*zS(cEnSU{@TBjw(pBoRU4*C`7xer&(XpNw;$dGo4^Wm1%0gzoM3%dN z0bw&h$4uR&N?h26!CV(2G|h#|JSo)ceZ~YVVAaW*T3KgXL(C2bYoq^E)+rQJ))Ylo z=-0&RpX4~6ai*x|KQ{hbiUY+d|F?SEzTVyeP!xp>O%I_76hMtP35T|bq_%3{K5H z0K)3y7uhgOcsql!^Lhb)K9t0Fn?r?WQ9>Ci#uk$zllCx1nqNUDIKA1b&-8?)t`$u~ zf#3h^FHj6R3u!-KEqK5*fmrka`cT!T;Y?7Pxj{4uRB_S=jKABlJ5~xSgEdz)kZqs` zs?}R#s#Vrlvj5A|cTw>HEIt@j<7rwLegrwx>~0VkR$39VlBM z4zeb*d^d2iFqAyz;QaGv77G;Ybg`*t7&MrX2m$e7dfmd0SY@pIH#d-p)wxShtX!XM zZv0QekFKr{!;cy!q;23;Gky5c{y(;^WSvJoZ9EgLYn@FD3Wh6-I@wKc10axbPeAO4 zRYY1g;4WvVyWBgvA?tMTYPV8{0M6MlA-#%dPF%A15shX#O-R%f{EL6 z=XVpgMZe@ExLcu3wH-z(YycH%d*lXGwK9L}D6afz+5q`EkyTTEzToAjav(L&V2-3F zv!sbB3$n7zvI<(ai^lP)zhvN3^3qupA^5UpWU@ltn@mzxQWJ8Q4|LVPOlYno9ds3% z;YZk zUu7o`mG!@0u*+0ZAg9r+tz53-7fE$JSzDN(Vxl-5=hMdGKF%k>hve-_BdusQWOk5| zCHw#TM-~Sce9WOF`&T70OsuGC`er894Ku%qiN)o4F?E|s0@YyohwuPw{a*T<1>zQx2^ZSznSdFCL zCW3}U&)-Ksg3&_|(S69XKBD`)XkzQVHegPoNw7Xlip6vPfIj!eb#hz)lNF&5iApZO z4(>w*!tlVsd^dC2;D$$HVxnHKaXsfo#paWGzb;#q^k z^K2EynsNE_-Lo`MRwT0c&@S-T-enZEAm~f;{%pXy`Y<1bS>(hYYFjO4d}aCs5GcGg4R`58Y{o4mHNqv z(YSR}mAG!Qf>`-@71$L4+I6{@$w-o_1|2h#sf~SaO=a0jlemj0Z3QV?>;~c9s1vtgkLK|IPb2YG_6u2W0kfFdkBG z@K(%%)a7)`7o?5=2)5rBVs#z_DabGLFD+kn->`0%Yg&iZ2P+PKiZ+xL_iVTlhy-Uk zOF{MxxOLyeUBlVfZ$a@9hDq(vRFR)?i-tQ=PKY)fsB+ksDegfe2ERCtcT&T)$NdIT z+`T@O7Ysjvf476rM)Nw?1;-D>AdUrjrALtNe{xvqYEuqQqX5QXFO(u-Qi2(Qhq6jJ z=wuzEw@*;?_8UwCF>n)X%V39z)HwQ&-JRMe#V%~#j5~nA5zfT^5$=BtoRQk#4yHhe zQ_V@}4q%$6V|WMfmMvV17e(XX)5`ACFvT0Ddr>vUh##O@RYGxj4@z}wI{HyWp3f=l+1QIOIa$jVv5@A`uf!+}?(Q+E=^tvBPmwQl#ZmBviz>Ip4`Fhphp@yH^NX z?W^ceaH4{EB{02LjTj=bvUa)AO-vDafYKcs@AOf8TcJ5U)|Idb3Xe857-|R7W%Dy=;*LZ%2xr*3E4F41Mh_MUVqfh-( zqo4e^jXuUPVDznkIB4faU%}Dy;^Z^laic%t%&w#78{o!3{oK+Re#gq6o!oWwhoaB_ z;pp!_I~@HT7oM;7V-gcuOc1G9H^9?`xHvEp2Ki}AO^oOC(|KaH8j0{KLHYz>(Pk>n){pka8jK1aE zaP*k*hBLGx;Hv-{xL%UC8>P~$(OE+rkVL#@<0|yqg=|uQB>P`{yfbG@g-)44jw8K~ z`zzOS%v@}$`WjVz)&w$6S1(looI$S5s&we3=IRNaQ7^rYz6<<=*p{Wuwixy5mKm`& zeY7KSe;XT9L+kk~c~(iT+d{v8hpYV3%*qpU(r;^fJPAPn-iB@xDbrD5Rq`l!BD9)q z>>r)&Y8sHcriN3|hw8AFh9j$zEnM_jm5dqVDtQZMhuu=o&%w>zVu!8XxtRamORN1t zhzi2v94rL%>|zsj@>58J2~j0m5e(_JltM#hGd>t;v(`Vmi%~4{@&PNgv=6HMtidkV2?Vc zIn<_^N^P49E^Z$@1`^GEHUJOB!Jl?zHClDf`Cuq9uZl-WrEG|+;EJkD)?loPzPtGN zPd8SkeFSy6eFVX)*w7IM*-@CyF+$vMO+Adde5=wIIP-gfyI~Iz(#Wq&;J^|+a(!W# z(go)NdKyZL&=G}=0{yvM6T#cR+ZxqVsA>~wg$zWKxJGZq!qjc<#Pe;=41(X6%T>-; zbB?H-j^xaBhbMSWXRa%s_6a#MT*=`y^#(-%&(?;sUQ5)Vn*ph$nt`ovp#uYF8ifzY z1wnU40yEmGXK$Xla|WopLe+U22<}`xPqR>lOn0u*&7B+7@6eq)q}m_oU+gMtCv@w; zJHL3vgbV;pR0SBCVj{M`#rTf=X#B4zSo(9i(-Bv!l8O`=Mnr_}^r5JJW&ZZKnFB;b zmpZ)T{n=#GGDRhrd%T1xakblFQTEMbB94&piSn1Wu;>9%n@GI4Hkjlj9Z z+2L6EZdXufL#5j+xBhzX|5|x;m@$qh6&B(Yve^+Ti z)+D!%@={k|>qySfS0TzhjTYc{aKbK-J4r8h&>Q__**}2^pHs+A8rO+;g1NV$pfLsG zu~>Xaq1u7(6wJU+C<)_t&QYRqIjexg00oVqCktWTW2ovw@Ow$2FuJsusA8z@FnBRT z0by<8gcjTMHBvy}Yg5>j7_-z#hgoD{8RuDX-3&wn>`eL4EI4t?VA5DNk367!2ww%0 zsW%#{qCZro=b5P4WC4vdv7tW{+k2QwCkU)xZnndI;ke(A=Mg#NA`-4910D5~m`xtP zMluj11TDlkHh-9|RS%NOE|wYyDGmx|f)OVBFL~0!Y=a}KJ!xWu?&NwSD^;XD3|{kW zT_AFkRyBqi<)ABPk}+W>o;{5fnB$hCaxWZ!7pm}Bfs4-S;PS33u1XwUY`31(?HoqON`oNI^eWez4edIF~b4KO;gUGMWsrHo$n!F9^&)uGw%Pt*Hz zNM&Ia4VNLX4L1U1ygua|_xe{g9F)U0nrk?k#D)(at{TrJy1ToBzGq_XcBRiFr^03R z47>;n@ox&;A>8f(C^N7dL0;-fXl?-46BMK-5V*~e9r0TW@}ek$urCkTNniS<+mRmyrzU&co|21IOG1$?Rp!z$*%r{moL1d^ErrV-IPbD&?xC4D+@o$ zCcHxX5tCSngGuAKa|5J_vkiBs@id)8n$Kosz{YCk#E&fD_*da~tUNgmq!Ve`Q3ZxW zDmpn4Z(`Y4`Nfw18ddgqg75euk%e>BQbp^WwJy1h5NsegH_mdTVX4gMp=#DdBHyuz ziLBJvM0%ni9Mcm8Z7V%d#lfr7sV}*Kv7IklbGFm&`avqdk-K!|s4rc47b-a5qBIpS zYRbEf-5C=+w`#JXt~xl&!8XEVy8L1`FSYpwYW2x_;QQU6Y#20!&FjnqZsi!E)3K6J zN5xQ zg!iYUG(}kDoFc5Ubaz5=vhrSG4JS6Bxbljywc)pM)R0qz^|mBX!L>GMV$K%aTGyiv z2LnRiGe%;$o~fMcnaaAJS$R*)K71dvV-GqLO6y1p2=)^?oIQjRtN09b z6)QbG7yRO8c66dK7q_*6d8yzVp=LhQ*=jD(Rkb!?v4HCr1vi6E3E z*Y^fe^n9V9qQq(Blat*v@&isWjoeD+(8zy+`nqc5C2T57BNtLlBNu|Ck^hseX9uhZ zuU$3rLR9B8@*>s@k`e9z2kZGuJ8or4`PHD#j96h6Xf|W38w#-nseCHsCO}-I8BuuB zk*1W}&=DWZ?mDI1W*M8yPQz3R7!!-+{Hx=qYYC)vczX0MDjej8J1g9as2NeihbQ%UQu>%0%t0*!?E&D#)PwS zE7X396*HCk;Xp!aDw4dZw6H_dalC=3fE^E~n;#+|c>XxN(u=PYq@JYdke3>jVL?oQ z-2l~S7236(J1ELQ8{a8X4o{l1DkjH~OvRFg$xBxQrdDF>2vy%|;AjKe0R(@ZshxF!hr=E-dDsXXK9r^E7JK|R@hdfkCGBTQ$7sKMvjyBMN zA0<(DTx8N&;w z+M69-agKq{=*28R_jw+rI0L0s#m8VXiLts1l~qM0oR`XdrOYAG#NnVkd>x#D3KQ7R z7&FQqAK$?K)lelT(*Tkul13Y7p259D?A7zX;^2`37-@@s(rAD;mW83wK;1%PRJTf? zCvvMrwiE(Q*#P(v*Cu?aq-t{R#Q@8qP4>k#G_77w<6d25Q+rV*F8=WNn#M2ddJT(V zVx+UY%l2W27}luj*M;J?d|Vs(zK!76*SHqomHjvBp~*ZQFgR!%P~k=}C{~v7m)6g< zzqv&E*g6c6c4Kl-a-K6kZ)FCCJi$fA;hXF*KY2DO#@aw>wIEC4FM;bMwgzP$2YiYo zj}t}Wzmq_grpj)q(`v_}1W&6Si#&Wq=sH9;5w#%pVWoB2>68jy%%&rY;PB&@1NdQ- znM-xgi-O%nQ}0p_qHmJkKsMeruG-GjKCEImQ)|7*={el0doQB#m(<=kzOMGpvG&l@ zO}2NCwdY5jv%Oyp?lx-Q-Uo^kWZd{`{FST$`E9bjc`9}~{01@@a<=!>J*X-h%f7t} z!}b(to~*%SZnC|7tvzg9_1qrUPY><=1KMR|;VcqRWZ`cKDu#xWtJ4)i_B<4;O2oL{ z#YUou`7`j_rZj=fXyT7z23W%t(Zn^%#45(>#uAN|{Wa1ul2wR-OUIgMOtLt5eZQ`q zEAhxEwa$_GpmPKnoy)UKMgt&|AS3ftslJ@Hr}!(WAc4(b@>Z3+wGB0G3Ypj5&CzBp z5#QgRg{@XttK>MFX*FW4s^li7aKoUkSQ_kG<=6i(g{#pP5J8ZEh`W(#>*YHBO6rS6 zo9R-mO4?_$H_@f@d+ySXVXJ+u)%BZ4#0xBvyj3MP(dzN{5~VrO&mBG>g4!++K@cLM zVGNOgTmO@@q$+J{O*Md5+^SNW=tkjPY=nUzx0S}&b249Cvc5c?*Lkbw$epPnPjoiM zd!?`!Ms4R~NC6xe!tNRFV^7_JCnVNc;&KDWFtJzaJ*vBTsfPjZ!VZ>rwk7UwiPsp| z#y|@G9+X_csG44>u>^UkV=ZyMfq|Cy3>C1v6i#>Yh0plZD|M_T?qZ3TTH*@R(QXDn z$@lrxD^+2M+gf6sfsde|nF9(xf~vldbNk>I@WQ{ed`m)q!C1`y^m#GR*0`>X6arOl zHlP_?^O*vrW3hwnDlw4iSOZRf;X}T2oipk}NH5%SsQe2d!ElI-zZ;jc(q&bN(<-2} z)j$KOuWVYjC;s({u6esMzq4}Vvda8r2wsPSp`o-kvhbD|`bj0C09SzFk-UbFTjQpH zJ}Sej!4mh+K)TezouY|b>|t3S_bFGXjkQ*4wlB2{O6g(ETRNFw-+WCMZ1)9=QBV&! z*^pHTeOZk{>2~;KGDv-Fpgop)#X8{gT_}dJnVEd5e%AT2Ywn+or$cxvutx6mL-O}z# z_n$7Sg7UWttq>9|ri>=>`OM134WyRH^ccUTxp8GxzUyPtWB5MqsqR@RX zA@E63)r1=c+U%5$9iU6*;VwI9ke}lm$`g3*at?(#IEONuIbF`7Fbg|vQ!LA!LuvZF zcVx;KOX>~9YHabSrSIFh6_y9xO_QA-nNnee`lt{O568cxeycfY+PHUQa0)UVEca5j3MO571gw!q`j`$X+{bOkDOMs-xZ_Pxg^ zjP&e2XSj;js3m?01+o&&@rnb4G^s#(m_kxG%mr?k=It$1 z`W@ankcn0Cr;rW;{De29fnBV58z`$x46h!6LzXB}JEXm;Y}KR@pcQb+_ec?I-Ub=; zsw#US(zJ+gC3iUh=chtqTNz#R4)|O_RoRP?rs-DTM>r~lkDg-9p|Xh&VL&xeV=Pti z7r37DFticzj;i>*@}gChJr|i;#dmE)@z1>hmL6O*owyX zimxDJkOIIZHu*zdqPFp==*Fi<#8)xkwu4m6=`N@QH{R@Qb22OCqrDw9RVGfX1Dfj5 z1z4e;7W@q-?&8@D7m7_Ury7SoMHV4NUnzS*TylwH8)w&ZE8<$nI9w>yqfWo~Z zldoZFQ)e%%lwOtb_Hdmn z9X7F|fHQD-EBK?jUFG|?hS{J5ln^J&$VDgS>g8p6xob9L!4%8x&8+mgaDf=>g`Lm) zL?+j$SZ5y~xsRW)aBh`CdS#B$@NF(~!qd8^eaG&SI;8_gmb{IhY=Z$L?`&mj(0>bM zD}h3f5t)3sk~_D+L~W6|8n*Z*t6_Gy8m=Js5!2ia6=tr6LN>tFuq9T5UJxh8`gRMV zV=Eg#$THFk;!l2P^B7UF6& z2C?EkKCT&kv@jc$zrnMpdQWt<1LZ?JwlF6*e?QlJbMHpl0k@ z-upI^av(zT*hk)*;lWC!tNG}c39yfdLh|Bze)BZly8N zg$h?9*>|sy4X}G~+c=4dsqKVQw+AHM=Ju-RDwv3CcYs!wdl_=*K709F$RW%<_rVb2 z#@N&v)C1ZmV)cnd8cbqdi5fHi2fiTBz?2zE!hQ?wp;kOp#b4wWQe7p#_f)G~+%KUS z;^~ynq19GlYbJ3SJR{uP5@O`4rmMW76_&Oe4Y=*2)PZwwTd^%N5_fNtsa)Q4HQkQJ z5(Ov>Np^HGy8wOPcWD)$%U+)ZX}Laa-fR!;Y)NUm%7#|$j6KPsxUc5;R3)tT9xR>S z8sE3JbQ(&Bj)<>;sHn`x%|@IJIAw@E?)m{)E3rk_9^!Xe8y$&IEkyv5bSP6{%A!WGO)EJ{@R}IFmSVh83L(W`0_vW8&%~o zhQR6%F0pcT27YefbOWybDm~%7>k)AfxcYx&MFtxfXkZTm-#5@;U>gH{1yIYIxFIp9 zvBZ!5Bs{!l;4K5M8hF9LUk&VIFSOg!!v=nDV2*)%4SXelhWg;jz2HMjY&Fnm;0god z4E)8w`36QBIMqP4f%^>{Vc;hQW*Qh|U~dCg3mlHPjWa$#^Yxaxg@JPneEFzG{fUA1 z4ZLIErz(Q2_948MZHT?_r1C%u2jgzGU>8gLgT3&8f%^=!8Mwv3^#TZiE}OBNI3~4K zhVrikgo_m>asR`L?YLYt>BA$=gq6(esgR!+?Do-zh%Y>o2J%)}`{2P*_)aT=0(zxh z$E94sKJS0BG4*$RG_%Y8$cAu#HasHKx(Bq7E(w^qWOVANHE}MVB5|Ak5 z$d&OcU`m*?xiWsbT*~!GkCopLRo8YvVf3}c`UZdSSKJ7IKRB{*KYq-$>8p~+^p}{1 zxP1A9pNmX?!aXA>CrS>;0b3^gZogIqbQu3izr4eERmf%cv3@qF7ITiEZx!ATjP698 zPtv*?9HXulqdfA4(y^-+snWo=3+nvsf3u>eYSLq%ckS9o{}X zvT!F(2SgYJ`7Di!DqWmaZ(QLf1rE^Y(l38XH#&MS@Hu>cH$R#WfGhi&k7H51+{TyH z!Cuj_ry|o2Q9AZY_~HtSu^IRpF}!92i2JT{yKIkO1E0?A3kUH7yif!96<*Z|bwC}1 zXVWN?w~)XwRKnd8+cRl?YQLtVHiQXM+HmU>AIe#gqMJ6dS{xeEWHn(phh zk>n#J=xpEhP?mu2+LJ4+(8@I(@cb8yC|ezA+7{WzCV$Y+6RiYs^QZFi{{mj6pP}<; zmqlMEmZ^ZXUHGa7aST(A(@b$4{{Wbw zXJk+bR0*kTTY@kHRsFo@l!ve;8)G>go6}ec? z8*;8t1e8n}j6r0qP!z?=+@2%LSeb8N%>gy6Co*|GB!f34Y@jZQc|)nTLD;t+(O%J9`w+CSpFPt9s99wa$Ju>+YwbNMu4{Sl^ zmM9)l&P-IN%0BMi6T3HJC)7Y;qcI{}Yid5L1n<^J{e_%(rYLmh$ox?Y1Z(oun5w8k zyylgcaFf6bhHRN|H<1G*%@AxfU}unHSU` z-S*Q0IPz-a>0-Gu!v#`v(6Uilc$1<2X8*a z!qNC^T(@PfUp^!{@YBkH>nmZW`aN5GT@|cbR3YTWpY+yu>O&Yj!5yk1xY@v90|O20 zVc<#w+Z))%z$gK&jFx}O*5x{aSLLd~TooEV%wFOq@3QZaF7!RSnaf%gy^{J9t*E8H zXa9%1()k`L+A`Ae8=W)?4pBIn-21JX(mWbkZ>-W!-`*J4y9G@`16MnWc3 ztcm* zc@ELhYc92@JH7r2Z#bI)`VT!-CVq0T>SX_CPwPTzMZwj3kjfMQB*uk%k4PD03!q~N zWcxhQ^6|X*7og7 z;87uCeTj#xz9#h`F=v$;F_#djgFTS6a$6Fx#K@s(kx5xakzy6GYcndjTZ_m8>g7c$ zXQ2-pRBgCr5yL?S&)QRG(9>dHy9yRPU~E;Rw8`h0kB(h%exn~~1?5(fBORb}nB8q6 zE#Jrces+6BrnRS;6Zi&^-SRsnbz@4?H_4PP;!9af$tVb`w`^GsI!N=Mu9E|s2z)X! z`ManwJu}_8fIkZf&H;20`?H9)WdD!$??zy|me7=f6~&U2V=Ng8%N%Siso8MXPsFdY z3Gs(18}pQFcL>JHk17+v4N&5P>rpk#DT@n~Rdqi+S!Nf#qGlgvk!a#URhqb8m6ffJ zG<7gJxyvyYf<%5ryF(!hxn2R|8>%LkIH&vqbJnw}sjezmvkY9iY@C~#iq_G(x6v^6 z9P)ZyTJ4!smYPhLGq`LUD?&?rVMKgsh-I_7l7GcVMl`gRy-05Py5lb>nJc#S@En2P z8<=C@UIFkcA|cJM2JO7Q#|cXP&iL0DlJat^<}3rJ2y|s?AoOh`Q|~s-wkXo_bE@AIqV5lRl;xlc>_ zr}nhgp4JFx(X~AKF-99YXk_e*`X$BNklD3nytZegWjg01d`&pkYw1OEd0i+AKs^&g z8@F`uHPD*L*!u%KX8A_u9O!VO3)NB(0>p`}CE6gItcP~Un5?hqjsLlgr*UJ$f#di0 zd?PQ1uP5wq3=O9q!@HvzH|B4Qv@F6;|6)Gt=psxn+YihITgl_MOAng*LFy{J*cC&; zFMcDWKWX4x17{jI*}!oI?lVwfpv=Ja0=O)$&Io~n{?qnkx6ZZ99Y5j|QN!NHCYNYZoLwL!qIn|DR1y(v$`wP~s_Irh(hXtzQ+~cjn$SXHh&#UjEQ&XSE z{=_->m9;-HtaP@!zlYHbjqAj~FnJ_*996t~k~^xnKeNHp)-(O_cJvmD11G_7UXgyT z4S1%Xi?2gNch{jM5-}!YwZWS|N59Kb(${jA*Ft`jaRiAI!9LvEb6QymRw9=!H|jmZ z0|q;_SmpwM_ui$n#bknYMV+UqCgPR(y4`It0GO0Q^Jpar8t`Zx;vKk9i80d z+0Nt9MIP-uz9{(HXP?;3v|P(MaLn<6^ePb5jZez7hr^$iPoaQy*TJ@XJUEJDrMMYX zM+|c|UxVhkYB6&@f*6OR6r!Tz-NoO&&X1(xzgYK0Er% zzjAd1!9hAcdTQ9@(bnY9%`{nTO>Xk|=$V^r@)<5w48I!xT~wWMbaoyxA`5Fyh%CJ5 zgz%smKA>yKCnEX8jO1~wM#wsczmhdIo9Vgk|4yD><7N#yK^VnrXa&(6aS^KOHftVP zouCMGupT|B&*;h1N}fep#W6dAjLiEj^E%5U$jF?GM~ppDfo8?eRq;GHxEHmR8vX~$A4Y!?&xqgrky&w^o1usxkvC=nTxOugz>fh?@=b;`Usb!2!tu>vuh%ouAvl6lf-Sq+LLMOCXv+Tqj%#&_VYnb5xncSl|-Z z$0&cSsmlD_xSW;Z{M@LD%BJOe4{3MtQ8hz0@{oQ-WZ_8O%!C`Z$w-dFzS_~XI4D#% zD)7-NbYeY*Lf9cV(`oB7?d(JT-`uf$ygw0Dj>V*Y5zU9! z{UlrxmcNGKKs9K!o~_yuy*o&F8IL42K5m5oA{AHP9%w_doTgVs8^6lKs3x8T4fynW z+ummaxA&>=U}F@^s{h#=oN}B50-24&V;S4~6>ECh-XHY`&aG`v7gXgxMaK=^twBEw zZBU{gh`H`Wt{oLY-HGESR3)Y;G4TLJhGFmw!{DJP0t`kIr-9A?0zP)zP$8^P&z#Z( z;WS^*3!F>P1*0-pGam=V-Y}m37?JyH9UYqpjh=gwS-s>sf{veYnhyCk1eJZOGX826 zPyC!mfu_@R*B|XI3HW;Weo^q#2<-Dq*K_)4F?JB*ceIZYSSi`WDa^fAN!1Ds0~OlVX^?^u%L!AR+TKoej^OLHm{R860t)e)-^t^uC@yO;?Zl zU4Zli^>(f^aoiR}9PWKC_aj(Om(z6f^+I}>v-#{#g@9^Xl}|sT?PFxz9aM~Ax_|?) z00tl0K+nc+yBvo$Sk{;x-ipg*nqj7!9j$#Z#-vWU2IU}&FRA7!0vtiZi8>4c9{7ux z0U~4`TwRt95**HSkl?V$!edUzJY#^Jw*kttowrP4!Phnpt7 zH;)-b;ZDcDpEY7VSk2Qc%E&J?m{-;V`h=Xx2)XL`^*kx=etGfu757Z$+TH-F zB-QEw?yK$)LJ;8`v18PWo%dM;DH zZHrDvi8No!nHII3tX82`xutiQZ#5mYU#cdv520;gX<^hpxdNj0JMD~tP6qljIy@TP zXY*?=F;C>DsC~sCsC&FQaV2r+x;K#xxTt+-XJcUfHa!Mj=eWcvYCos2);&Dn56jQkUh}w5*?&R8r0ON3ymmt|z)bm4yC zio>anHgyilSohO~+7{v(cL6%K#vq98Mc}c}r*dP(C2lavn z_8(y~&N5-SJg3N=FCfS7WMU}CGh)L?xF$ewjL^%Dw9FvQQclzeVtM#G3zkwO)v;DU zQ8eD3t>?A$D^1|fjN@rs9NvRfuiqgd&V)&wCPa69q&qEQR~7q6&j2w!(;|3<(Xfk@ zv6;f58%MlYDa5Q35ADTHJP7^M8fo%6tuGqC1nBnLjdt*10J_m-F;h1LF;h6@byto7@mJ-$uj!Vaq$g zz;FY@43rx<#J~XtS_SYr@8Joqu*B^QY;B;Afv>MsCq6T<-ayL05mw|CdwSl$(*{-= z*v*P8wxFzMnGE!S^J0 z){KB2sD17Xk7Dp&lmSdTwR;RcBYRL-U6S|tZWabl2-xZPl`t@1r0e&%!P2eqJ67J? zI(wW7<7=YoEey&-)Kqpj{h*EOLh&)IIX-$QO+&*!^pbRB{_e~+ z%{87CnIFJ7u^7#gtSObb_zxJiqq+tBK2CEtBU&pxM{u)eqWxwR)X7x_-!}0r7sZMA zhZCUHSd=g<$y(**v?SMtRmMMH9Q0^>{mj~6c=KrZLPyu)UtKyCW$M#U$ipthoEUHg zAn_Nzk9)(Z2xk_aBOh#hP8-u9>$IIf%rJ=3h~39Wcfl89TCame+%4{QyiDu#$psx* zP-rn^;Lps4?slHnT^Zyg2L+;*AG)sPSoWOuhO)chGez=?xCYZH7DL^wyshaasucZS z0!tUcd5U;cmWy~~n~>r+(Gbp{rPl7v0S;akp zguBEfFn3!AI~}e$gfpB#ML_-SW+&P)Mb0G`C>OWNr6&oTvJ&#%H6K!3aB3^LKDvq^ zn)~r;*tixtHIQkp7phQ^^%zOcWzF#LQ&GAbnd*9njA$B>DYdhlv<4f-lkk^XD%}Ia zpmKdcd`6}`ixOyW038WsojEAi*9M2fovcj`2TioR4HpCTz-Yv5r6Cm0xR;9ddIS<7l@N!_RHU$7HG+V)ds5&hZ3CloG4 z>26c@YnmEer_4`FBQu?L9j+NzFmp}Y1QpH~4%{8`IcHhkqkEyHVRPV|0_X3>alb;m ziOmD}WYI`oaLk5(Vt{UY7|V4rb8&qfM0Nvb!NrmKS%@^hPP+s$cr^>gABqV~GjCEn zAtnuJy$Z>(^0D8Qd~4P#S7Pom4jDAJX=2@hl`d!_Lp}y?bv+>R1J;y*HSSSEgte;^ z5Sly=q3Em7G+CXAKZmcbcm$Q%uz4OY7tbLDq#NR*z0oaNKM#R=U}BzJqJz(#dbQ1O zVl3e>6krt5vZo_c7wSbPPym8I&|M#0b~(&v<$dC2NTaFXbJ2;2({Z4~}qvTSVh0 zPDt_kP29?kb6Z^2Xe~I52UcO+*D*YxHuYy);B$g^CToGeVPJxRUkIctfIlSoYCS8+ zru>xlKnqger*U+fy?d~M{S8bN0CU)L{2|5|FqUs1cBHMO8gaYmsPcvb5w1l__5|Xi zpr{}@*%XS0vsG}W$s6M}px+ssVR%Jjg7!sJ+4t9uv}J__v@71!DV?lHMlBEL6}H8Z zj%0j+@51`jDrO|(awT9Ble|Z5GLrE=50fa?tOFyP&n#NzP!eHDSaW@7LcFpD(I~ z7O}hnHa?@EdW?|*dHFb@EpuJ2f6%k(5G{V4oR#6Cp@xysLzS~2 zEJ%^=;XKQZA)|s@7uOQis>kuZoloN59U4RDI^EIC@c3Z%T;S;~5I4r0%m2|tuebR> z7;i|N4SB`FOH9A^W{3GBDiixkKfpz#`;x`6Ol9JtLjESv;5W9^oLS?H$RW>GCXOhs zOk7%m+yVH6McGG_PBP!>*HEeCTb)pdZvg6a;VN{L=0XgRZj9A}E-c(LRiul>iS zoQxi>?1x#vr*n9E>o7dSxl6sn2QV-PwqSqe$W87%!u#1vFap1%NaCIdx)#7K%s1c} zdd-rtCz4$m9OV|Rk1MB@W!tcP3mYT1*js(+U;dbiWwt5#HFilZQ4zmOvVmySWHK;_ z+eH0zmjGf`ww!y9JWDWCMNYuU@@S{M2eEn{;fK|Y3;EN~|RgaO?%GL;m~ub)(R z7qxJ!qquzPc%v!~hq{aN#EAk0dxoxbVSn0WtoTse#K&QExiu+IWxqa@`ylF{gpMBR zs?_p!d>3Ll2v$#!{CUE_IR?%!aFPH#_=Ujus@*u}sO2EHSJ zTE3)bJa0Dm)EW2%B>2B9ezo5GwZAidCG`ZldK=1e`)xL1(}sRJ_Drpw{#q82zjhX% z<3|b$Hd*x7=Jy5`A}vE%qx08pz^dGx&+ykmYA<~Y%nUA9xJ{-MD0xL69>87tcHtJC zmV*WPcP;!CeVMaGXZ*GJviJv0EBZO(ze{IuqdhvqKrvchSgW_|ZNFC2M2j^FVuNz) z)+kgL9L2$65?flq5#hXkj`4D>O{qYwumv>$o*f70+M5lTDd_so3@j!c!gtO}*Z&l* zwJqx$N9Ryh|Km@QSb5RIYF+fOoQ%eKTGJ<`cXB#ewIf(`9p_mP6|UC@zK)CDIf$u0 zfq;Vk_vyzGOaN^q&>#OB%KwUj*8)@hz<)CR8=6e|37UV()_p57N(g2cLdgKWXdUe)lT?t(Rq0M6-@F$LMuKlhU?*Q z-9TjOzAE%3m>LazxHcd;c;vs`@l(ghk@7OfM4adffXC&8YW@eFs}lH-R^r@{bBn#u z4=tzA3q()_Z}pC`Y}wxENPmuq~p-;ag~PCn(nSjpgLDJ!%dgpa(7>=R9XL>d3EK+_-CpffTI>`%{2>jK+;|AIdJbWj}X#rL=2H17I=_GX1x&h=PU?z-; ziR0U4U3%U5C3+ocxrrFUNltvbV-hXHYG7{p0B92$BWCUM-j|N0?uBXSzE=aL?1F9@ zjv}KihVUujJmA041GJ?He{!t+DmI4erQ)ND*#-{7qm4AHA_}Iy1{C}quJ}d4p&Fy{ z9A=F{mIjkLndo`+4vf7Jzc_aOb>TPP6OE=e4quBShWg+kv{L%}N&P^j{i($zi2V|CIgLxK8T| zDgyeq@EwCjQe`7<4qWp<4sNyvNn;X|3W2B<`l-XNn|;;tH?W4Q~jVpPn^{O=*u7PUMEzCrc_p5-nh$_&eA4tQ33 z&pgX6BT}TF>VfXuY^8NSe$#udekjl9TRP0yblg81fcAW(Wg)g99T>>0e$d1%s~qyyxbh-_KO0zV z;6VewHE@rC+YH<&01CS8mqtOsk*itxnWcsJ*89h&@>}mXEIjBv{TiK*pB?rSw^9vy z(SG9out9&ZpS`&`Hna~Bi60gE0sWdwgEkCIDFoCXRg8f8)Zehgf*o$fVr#>dP3iR| zeMq~#;?M4rpWqj?ZR1CHCe14@hyP3b`E=3-uDFD4mc^g7i+6}JX}EzV_Yf7WfIW9H z26j;~Ln(Ow9)EaWp_bVS+$9-LBD@f<}w(6X`2wV`>>MD^2@LZLAn|| zjKH)_*tDV$7GZZ$LNl=N((^Lu*voYgHh3Kb$e9!%r=!0TAQufz3y|_podCJ0BvXK7 z9wk2dZxSHAAV9vX6RFHJkTfvGz|{f>09%GRipIBxIR>^H6yk02ZoeOe2}w=mEFM1# zv&hqNz=8WC2^HaV@Oc#yEaSh+gktApZH3l^FR^ug=1X^xPnTVU@AJA(^J31W7I14P z*?)&^9i!uBEUa+bjOCBuk1vzqr5PRf380i+w&Tit2vv%CtUWE)YKYds%Ys`j5C*Ql z`IC*EG3y?KFJ=xa9k8scyfmFFEibqE$^Vgl{>dZ%WBvRF-#}VA_T)dVy9v{r%YXd; zm44o@sGHbZuy*tMIpnO9b^m|R&mUXy4fON;kH|azU+L%XJ)5bY-*%oB*TDw%H?WU^ z5(7KU1UdDfpEFViJOE;t#*J7%_y;619e2*O0RLYv{=bb_{8nV~-8nWins>-2{Pl{M zdipa#@+i;d~Y;um3hVu#pjz^024oS z47_Ixpan-!odxjYbA{pO&Jp;FffWMLI6Y`&*(dYpYKX(sOXSvfT@SoZ%i`8u_%DuG z8vZND7QuH1mH+7fh~M>I^grfz_blvY4fMqCCR~?`-$_4t)bKNb{^l5H#qX1ut&Pxq z(hoF$$$mH>NDUxnh;65JI?dl~hdL0YQ<9pNPk>^AkOLi?{((6z8e#nMC!hpI-DLCjL5vF(5p z3Q~-zJxfp4!Hc*$bt;UF3%G(ks8bB%=xAab2#a1S+DZ(AI>{VY*pkGx z5#=<@Kxd>XIxxrpNm`&kcWnenj@L%i&a(!1ZA6UYX~K7$;f3b!yv~o{Uzv@6*M%u> z$T_erN$LC~@U|LMlcpE=17_HM)GY3*G_G5ZTF4hR0GdBQ+!Wj(YZu*d1@8|~8OIfD zhtRl!b_pAovr=OWgf^zFuJ>Yn*0&ST3#<{UOaf40N(4mlBy3>B)W^h@M) zc#dL@n$5QD!JLL!mOD8H-el&YcvBk(Ah+j^DwV~X#68oziSEoPDNycFt(bU!rq3~4 z-F&`+WUcru+xp*D4LYX!c)D&xOW0u#ciIzX%#$Job&YHVpagMu?nY|OVm4G(YbatK*2uKZA6ET zhc}?Zb5T?f_285-6y+usxumv}|EvVA+Afh>Rlqh&v3nCJr6`DENPzza|5Mi*%rCY& zmOLzcMZf0yd)3}$#Dz3CHhG9fdB|jp9+HdgWF!{ zN>93erz!0(IBRbwKSek|%m2#1zI;wvct)CkK^nsLR8)}y&1dj2IkKc@hdRnavhoU( z0lw@eV$V+XjX{JQig(^8Nu-;Trz|-V`?Njz@6*lQ%U4-;6V0tH;r6=BKs47inr`Uk zn^82K57$GVx<}K!y}N6oCvOP8FT@QNfIR?kebYF5S_6_m;vE1;{E*-Y{OC_g8QcO& zdBsx-28zEl|4BBNPCy-|LcEWoIZz>}0B|)?_r_%01>UmukB`NUsWF^q)@S^jFQbZ%wj zHGCHVR_H}VbWI0};-yuggP(`SrJL;bwT}u3BliBX(ySm0qUuRKnbC))&^DoZ@=HAD zR!?e}lUqGG#ImTK$fBW11z&QpCEJIaWm4J9NNo|q87nmTJvb-f7jV}zU~tnkOX1!G z_Cd5^OZ~!aPjm>8T~rF0S2wY;tR0HEw%Lv8Sf#hT-r()51x|0EQrt~%xDT3kRpMTe z8865=n*cvV8AS6VdJyrPh+a?8h~7 za?g#x7X<NbPs?f~l(wKUnyAP;-aXiL~{8|9BaUZ61Zigz2 zza2#__{Zz?p&C7FetJ1jdySzeQG=_0sY-DP+`zX%XSLn68pUPSxiB}(isCYBX)x6| znaJqml_9RD&4g_5Yps$BFCVzz_yEpp>^xR}{wq|ex2}x;pcEle;^9^CQl}#~JPI8- z2nHQ5WoK^#e?Cr6ivc_>;sJl?xB^>@ZMKBl*J?r+*=dBp$j*IUmbUs!z8l9qG}t3#C?hE! zl`UswVBWY#jeFl!EG18I7%d4$@c~SAj^d1PNm#Dmu^hRH5ia>sd>K5zWl!m(XO0#i zHC`xWU5qH*kGG^_lC7)U`h&EXr))1RR)^~WQo>4-gf(z-l;(OC_o5h|db{>)CM5fR z@GmbgZt zAroXV{SH^|>p0oKAw_A7AY>`m3;@*~c#Bd^&GIl-Z}gQCO&A^cbmhQRl|En*XN3Yz z4{=i!hh%#qvhXaEYukx6yTh03k)I|cMSLH{OL6cm@Dc>2cPR{a^lPIN4Gl zIN2|cf;v8oQ(qKZf%{fCnV8Y=>s@fD)=^`xr^YZL3T7~acm+Ke^XRJ%=@*mnCmDz>(R?I(Zz177s7ZB)?s?} zzE(MKZMb?7cJ7ut`b^p-4OpK|Q0NkkYB+Xk@UK?XbnOLFMtYvagV0{LNz`T0>2*B{ zxI9`K6x=wZp^sFlR~9og9AX`KrQZZ&&lv2{xz{c6aJ2j^(nPLDz0^xEKkm#aM$Flv zgopu#Tsd(fEO3l7F}#*M%^eDTj72njSZVy2g+DlLGiO^anr-LbW1X?`wa-!+8BgC= z*r9s%1AeK_%TJ+hRM%ZM3KaVNgwQWIX!dIcyWx;VrQ=v(_ zVy;>M2hNpTbIJaXE%UO@iv!BKVg<+qM~SEz3IaWDFsW*2h!^tD;r@66(IRXRNhdM9 z{ev|eDa62u)rwVu3#r-^N3;|C`yq>ksU?wCrxs#N*fV%Axc4ZjUbh=K#J~XtS`9QB z*xA5#2F4iZW8mvys^v2S>jikr|NA&mJ|gRL0}bfM=J<5#cD%;d&*OpgUe?5~tnQfx z-WPy7>m*q}!r})J{l7?wdHg+f{iA9<(ZsHE^VXLk%1(U=v5Qt@u6BmaV&` zF5vxATQxur?2BKRaQvn9Klx{?wTjaIv=KWvf7<@cz_k9a{AmpcZR#Gc8fj*%VAq({ zNb~iUx)ZF-ox(^~#F$S7KXVK=4wR)1NtFTia9Pu~y)Ysv)3X>IKki zFzZsF{098W!gq35X@}|C`%(fmu4_X!k2A~$^vVB7FE)T4AjPm#MaDEhTxZHDVBRb9BcUru2ZnO)RPpG453ZnpiwrHyRW2Wn z-`z^3VQHsIxBq8^fP>t`Wo5rhA0@O^A;?dZ%Hnz^-#d=pz8Q z3mEA;XI?}M+43`W$IF)X&{{A@1RJn=74`_FMwj>k->&A~e4Q>1Y}Y(RrWvJg2HXz; za`bb&hQXyZkao^fMP?iFTTxsppB))f9lxDQHZGVF42< z5)XxH;BNabG`-;KHm*W{X2AQrOhyUsPDT;UvGRldLe33wu^$9T87*Xf^Prfh!D*Gw>G!=NlMl;8X+E1}ZPXa$4Yan7Z(<<3v;IVAV^( z3XQM$(S;_N;$vZ}Uip-?;*Fe__;*0JeHG6%6tl3r2!o*K5gO}So43pWR9LCHYBJkO zWuOzR)LU5|r}$g|>dR)OS{#$FTjG&~!7vbgZ6bq!GYEIB2zRL`+*9!a2$x6Hq=%1% z;>A|c%ZPfZ>%S^m$L=hh$W9qf);>XQ)z;OIDtcv&UClgzx$J6J-GDTwzVqf6e)Slb zQbU)HOH*&A;#KygLb&|UL7^5{i_2YLJ;X#2G$PcHd7H! zW*qH=B)2NxpQFf&z6h+nyIeH&69WesNE+DNz-|U682GM%Ee#Y1M5P~duj&TW+=Xh) zjq~ytklT%ZSD_2N(cg#oxeD6DjNiI_TPH97*Y_O^L(G%}5`Fvsi~A1Vn$b<-^%TFg zcr-ASD_(Vj$+t7PC>z&F;e|;{_T}ZiY ztNvfF_xt^PKIf#Tlx_dtp?N-+=lZ@s@8|tIABeOTOR4*M?kJNyw%8*1Y_Uc1;-lgy zq7fUW->|Jgwg|}~1QqXYrpz|{UMFBqnK>m!1!qd^H$dy^UVVK@;O~mh+)4py;C99P z-u6SZ5X3>b&_=LVBNrYneFSOyg?~&hh0S)MnG#%Czhb+xro)7@Y`X%q38rr{)cWr2 zLo@zP0M&OP2>-+FW&cI9MsYaNvAryFU_NJ&V-WnNAi!^!{FwF-50Yw&%pGZ!1YWf& zDc>=~-JrrK7UW~vq63=>{2DQF6y(S*4CfcnATlB_R=UmVG;N_s^R>lp3q)J=QEky) zBAk7JCZjbuQ{{;k-Or~A^~hM zKz4fxko74fjWV`2K=!!G70xnGmJHJPu;FCQ7QTj)BmQg!0=VjD@OJsTedSCz zEZ-ue2Z4eYs*M{T2s<+f6s(1Di%#UR+9?0zdq*L}gUT#IWj5F+3`|y*=gFsrtdq^> z!I;Fnn4_e1P{(M(V94GNk01hZH1Y8?I`_L61huROK?U@L`Iqgdki{{#-`P!V+yQl~ z#rNBR7U_NF_yx2ryazzoy0gg%T|)~7SnMB@02m`87w5CAkj%9I1;$TH9X-E>7q|i$ zB87?|lIg??EOlD)04R*yMLIEr>}`{(SD=|ICvU|U?fM}~%b5>y1Z|H2ii=;SAw9lm zSE?9bcDjuO9^R6}4DLe-_xmma+_~t6JU#sj4eX}!@Hp}?mcc7Z-t>7gjfczQpW=J# z(-3NjDSU;*D}5YVJfT;4d_xqg(j{xJECN?!wg!d!QE2hRUc-w&nX-FX@yAnk2HB9c zQGDuhWo;D^UdZ~{wb1L!PW}YlWhc{qY4m{*K@37onAP-9PhYnb8bCu$+o=m+xO6ZD zL$pa6MbL{8PIAZvJNH5s@L3cr)E|e498TQTS#Ux|0}Id1Y(V&fuIq2E+F^%Nn}&S}iGE87Pr2tZFFsL&^P!O}mn01=gds_t zUdKLReGpn#I z56+AJEh94y6Pz8?1BWsL{*Q6^_K!0l4ZPNHh}GX=h@o?O4sn4HkLk;A9%34-HYbBA zM*2oz0)_~Yw^e^FlMH z?v9a6Uspph0sfhc)J@r9d#^YG&{71!_zY#YKQ;1D1I1PtO)U!&syihE6d+&&a?4J${r{H04f4>>59DR(k zkMX|HxUKfdzeyayJo~H#ITJTB65-I%qgj>nH2J+puN6`VTISf?XfS$!%6gqRkE??d zA*($slp&(Hp&g$}#G^acqPtvq4mB*+C%@wp`QZC=mi1=K`d2^e4VINpkac{?`cVBS zJfkameEhT`#Ev$KFVo;~k~idmuQ#bcsF7i#Ura%ZaxWc_2@XEwn1^BDCFCS1#a)9C zayh(Yct(?LZ14vMzaa=BH(HN%M+{^o%hm(@*q#ifg}WSYE%Lq`#V0NX-&^b9XMIxdHlm;6`5hosL!`oW=OEnq6JTo`TG3bkQw&b#WyKkg9920Vti=} z>(Mxb4X(+}vC>Z$9R`}7ELNh+*Y8{qhR^_aGR~3G0huC~&^1>6nL4SG46lGV5Qa#G zm)2Xq7~B@KsBDG9Pn1~C#E0|HmBPb?zs z7UMcr`uf8FOQ`X+5Hp_@5!N8Q={83tkMVhewF11YdcGs-$t4b%q46fkFra1pFl6fY zYbIz@Xe|yy9C_Q=busFE_H^Sug@u#&JPRV^!IdMC5Ao|G(bQ?c+(_7Er{#HHRCWVy zIIt~HBHZx>3W72;-H0XySDe7?6O9iPx~lXZyYFkxVe2r`0Dp-pgZe6b=cNLly+U~J z0uBhD5V@Hdkzw@-XCNi{h&oo zn=7S-hZ7z0{#Jc|o4mi3(gnl6b2wb|9)I$32!sl2jk|*Y8AS8N&A!O67*=l-#pKwXe zZ;|2oHStq0sHrfcrhV?QK0T7Prn9srVT7PhM`=xE88r=j&T5({HStV2z>EZ5C!)ps z$4NAMntj~{R>6FQ#4kjTn~2W|;_Y|}-&%>4<}4JH-HDrMe7c|npi@4Qp2Wb zr&W5%d$Tdi1h`4(-$4|kNO?4IpVT7&E@8#Vv1JvB;d$jEE%wEe@?;IVOfJJov<||kc-+V8{xjIo5Eg4AKH z6(Q{bo5Jr0oAJO32rX~=S10}S#AiZ{7x%+B(2~F?IpnAuPzS=$8!u(JD4q*c1DME8 z6+9N*=3p~%e_sdyZ{C?CM8LU5+%zQA{Y~okQWy%&J6&OVT;Hs>@pfC91684K+U!ZY zr5#KY6N@IGkahmpKr@&Y2%^VBim_BSG zfd}AWrzIOr{DenR5yLs?Dh+&!n?i3Nd^!R2ykw%*?g=nR{HhtveM+6TVx_hBWx>SjK+ku#zE7O#W8z0Q1(>)Al_@4Z zKP?L;_D%G_gtH5EcroD*vnHLTzoxAZI5O47Sts}LZCak1Oc&3IIjQ6M3uV2)`@bh24QdaU$kza4X=P?qLQ*gvkwXW!sd$VnZI=@&u<@4{{!xD}Qo5_I|os;4Q3Kt12R zVMkTZ@)) zX`Gw!=JS~xjD4;i_9{s`wIl25le%5M6LSF)P6uHO#86hWU4P^tNmOI9Tq#qKn>I)` z%r||*MLy_M%}HDBk+5psoof#$PgX(Mi^VVrjF22Mb}{W{7#5@0(?6gpz^-d8 zLb6vQ?)fHuWCmlKq92<%T$2az#TfazgO{3uOTgebB$&HIf`RXf;iU%hEsDR6kI7#UV18<2;KEB);WgVm4(a%k_N(BXZ0E?79aDFF zfO^*~7x^61>t2-A<+u(UiJ*M%Ak-@E@znV#8S6<%hPBb9jX~nt8+Q`dC%tc4pY-?Z z&66cX+pnkFE}{waZ3GsY6E!prf35T&&h@pprsIK>w*p%8lBaDd^x$>uR4qiVcqxw) zJ5sB|*GFK#nbHU~>@Bb6vnI;>7}Lb#os!I_ZuQM0tcNQdyO045Z$`u{XPc85+tkGT zy}D`g;njdgY0L#TjxFMK#JP9MYQ`K(YQg{tN%2LbTWCV@ z$jGb}3+tyO2O~Ocu;`hX^iybiDz?P*xr$4!vL(jC(cq=izIDmx0U|Vn5m2lSlQE24 zfWnd}Ui`^5la(G2tl3xdPrmo#4+$Cj4k0vigm!2l&OA6-VY~{mKUTV~1u`Jk#;zsKERH4+WEon5<#D&RARi{o zSX(~}`+d{T3_~6s+mlYR$gd-4Kbrj7Tdzfay^F{?gyF)~?>9|RrST^p6U6m>)!{l@x+&7jMQexvbJ7}Bc&9vy z0&WO&&>NE+B!E|TO!eQ8nGJ}4%|r4yH$5Y8FgYP;dYDga6(F~#htI77JW$5&x(a0hKw@y*w#?>&7^~p|0J_p_N6MIE zYx+u3JA%p35l+R91G(l_Bx7??B*PUOUurbkIqhRxtj*vGs|eOl*D{z*aHwzUy3Z|A zPNN9udm!q}k>iwLxIRjL?UTA%lQ0t6zi-(zktY%0?Y&66zn6ku+2%(f>fq zGvFp^D5wNWEB_vO5XL!u9rqbS;)4OAFcG|8A_9-_;X&of&OE7{#zB;60`v(z1?(wC zz}>C7{H|6kAt6@mO9wLdf_B_PkQRwtz3ET#Fx`&D{zzRo=|DzVJ#4rInL>;2{54C~ ze}-^@n!F}mJ@I8o4YHtMnheR$!rcuEQG?^|cG^GjH@$KMzLPaLKIv4$Kz7QwTXUre zo6hyd-Mdd!?v`>eGj#Z(A#$edOQTZwy{&-NZjs-69hsE}rP6@kFPBP;--#8PED#u2 zR+k&&_bRy|zmI+ddEB5JzrQkRYuftq0CxC0wDl2XX3w@JWN#}Jf}>_0?CnaC|JHSUfl70I&9^_rzk z#*n97%i3Hp2*mb|H*F1=7VrNZ!L$a_D5ITwlUdvOULe}@CQ8LtC1MG`8#`IJPCf;Z z3?Dp(aWNR&&6gYOR+r^V;Ej^+{R%&>ZoRS}`k92`0~pe!1IS^HM`*(q=hEY!9yZAB zdW}Mkxuo*G^RkYp2Qk;Mf$u_K$%hnjemnE-%G%ENf?OvKcP3h-a9|MlpoDni;`N?f zqfjB3t}@LiklD4#HkbmiSz*H90)=^|*d#8a!COVuAIEwtgk=@46QjjJ#%-4{a*Lt~ zTX~)=8Ji1gm{Rc^>-W%jr_d`-Xul;7gs})^j6=(saGt)B!hD7KayL+b0;{xlRg&|| z?3CpBmdf-9Az)&Cy%c5_F_tJ8tqiHjNOZx>kb9WJVN&Zdv7{B6Skg%s#nK82V1O~` zL8lCLUV&%ndZw-iReNpLgUxWP6>y#a2x~1eUx1rgs^lE=-`JZ#?no2Sy+X}D;(KVh zYDi7!yZSYr_YlJBqDd?ji6F&zN!iJ8>z79HXHFu;V~qHSN7rZjV`2YbT)izsc{5xQ>ePkSD#Jr4M9nXESFyteQ_*5`87ido^D7Z1FmhOn_ z1;J%E2=bRthQwnE7`W=Z z+ioVCbHD&3@CVygvd|}x5E#=&d^rwPq8{@|=10^>mGOtZ#1 zC5QZ?13Hy~tc46xU9%h{09>fyL2tkf>7Ap&v%Oc}$Q}ZnDpy9a28iD}84<)P1Vl`( zWe^ye+)(XeoH7__ntZSIhdNLY3v~xdsYwp{NFPAFZ-FA%pw9T20ua4<2qJam4w`xQWK4fxYd09p18@a z4MymTm#4&7Es9Z zFMdBJnKgK8m_+HUP&gY)n3fhZbympHdAtD&ZqW`Jz#L9HXh4t8mh}|2JQ@2y3^q= zT`I$}IK4KxF|uiwn@QLU0@8|-w3Luqjga8lI5KJh=Y`&~7(qKv-;oSSR=C$P5L@YF z7Fu$7rjw0cbx3FN)K+jDI5k&{i6M)XWVrM z2C1gFtYJrm2c^wY)&g>^ga(Vo6D=mgb@HiS_Jw}nEHzfTU0lqV^#hpoRysCVmtZAv ze~h=Zn{RrW@7)XNW^bdIpS~5v)&y6egdTb+JKy%uOY9HJCx_HNOXm6@)OZ@3R7X1p zQwYvECaVJKeS`8AbAY!FV+BB9oueZZ-WmmT$e^v`t)_WmAtCuAz+*?&gc`nN2xI(d z>;%LK7%A-g+q0=zGxjeiYigCuJWCc9b+~O6En2SdB*M$=8oU@@YS;PRN9c@1<#EE> z_&)KF3~xBVqJKD0=#>tnN8pw6dljEz+|>$(<_}D-Tv=_iV=*5161s#%;iDD3(vEAy zKhDacSAN>`UG&Op7x{YSxru>Z*&mgtUTGSVMXx+u!-u|Jfsj;n0QDspgx6Hk{?J2k zn#wh_q<8eOTmVIGVbo=s3$B0W!0yWifjBF!!2@uLA6Iz4#QzOBbrVm-_&C&fFazQs zNxBK;HBSN>IWZh#+fa{uSmNmuY8XmMk_=z-_lQ8)Bk%zK^+W241+n=$cW7}f1rv&jqhOfAe!hc&Md09#!JEE z!`fsbc+>H$I>AqkM)Snw-T1?_w*`31v$V0yNWp+~t)-nv%Q??&=*IZUlaoR0?|Xkd zlY81tZ6M5y*VG+YZl6$|oGVHf@!FH+`vseSl3@P_*_lN)DqH)HLx!_aSo^bu`7i^P zd$-7hy;XAGpi6$>dHAUWh?50w>9APKSCqm#>m&xGN(Un(;Z(Q@lE1Un?|sdbisnA-oTNF=tp?0Px?Dw95DNM)U2fc%t4OX z=LK~C%ao-3FZ5qeoO05Qq4n+8&(>smvVX@7)02ZTBv%;e7z$~!n z5<5c$Uy85@EtaG0`ooCB-KNwN1p@Lk@p| z@rF>_)j}JKB;d?E6_|X58g@WFsO?^%2BXK`=PM4nIaJ^v2L*rV(_@nW0727Cli{=8 zG8`OpP8J-nsKWuPi0kp+@|lYA;hL?q=?4sj&%i57`Y zxh7E=z?qh=RBDeFg#wuhizBQ1;n)=vU_CWN>UqRm#<%HOJ{+sj?@FKv$OVn^H|(j@ zJZd&j5alF)!(L3ih+s<&X6tO$S>jkh=o#q$IFxhG5vYub6TYzO{ok> zTF%d*zUY&B6CsUQ3QDsB|)s?AedIEjT#%dOq0ts`4N-82O@V)>U~B(Lj8KUkq=ekx`WsH z!OGgX<`mZDH4M(%4*{SYt>l6w4ut}(&6qZG3f~G4ukHn9W9J)AC7!b$%_$!+%KnuW z24>;Z&fp_*3xwL`Yb*mrGNaM_}Qe0hF2bnTpi9Jv-tkMP>*$GUp2 z5XO;ZG7tpDW8x+wvBNIe@mT4}*H8jQqH!F%3W{Q0(4&+Ab1{D^jIdPYn@N~B9S?h~ z>m`IzltU_epRZfbuVf`PnW@PQn$$_c5X;ow3{mZsIuHS-sqOK{QNx`GA(afTGC1^P zDS)7j#Rw2}S&qZCH$>kU4fT6p0#DP9Q~v#E(B6{wPzv$2ND!7>xmi_iL znUdsVO*~EBlEjhMX>Tjy*K^#7GB84eehNwD(L1+phWMMuDB|0t#1`eze;e`D0wa+} zHN4ys;;ZCk55#YUJQ4u>FXYj5>=>ZHQwX;f=s*4<;m>~zGB^917?-&g!=^06kKBo6V-Z-Vg=(0Kq;6D-I64c9rTx8D$%@Dvk! zv+?!dx{=qtQYB3Kq~86jBsU`&_Im0HB&iDg@vhw+L1y>7mhC*6C~X5dk7h8PNz>P* ztACwuN5xdM6)w2l!Fw|I4K2B}hwC_)0fK$9Su24zc?q|DTJRrCo2>rfz?(cHEqB?L zb3;BbcybaQ%2m7pzfYoLS#DrmO)9AI#@3U&%qN!^!wC6ct7aW<#JmQT#K={+7h4(k zO?JP4niu!8?S7%%t67MX#Boo5UJKrHGQWWN;Pqc9Y1&ESR<4cD(N4SF3peAwL+)K@ zJEp}_-VVh=`<|6sYvqKhQBLMpcu(Vw^?G=(sH|a5Jell2DYPd={*x+uQtdy9OCN@D?-X4@XC;mk282%=N=@1CV4lxk`yo-*Rj&mFNc&3H6AW6 zDy!IOsVH7kEd!8DgEf;`%2uq zuIBO`x>_fxc9oUJO7Fdl3gOIXT)QciST|Wgth7-w;3Sfonk=$&`br8{9JgIo6BvZo zS3+mJh-X!SHFyc0afs|m*KN=O`@p`Bd1sH(WAEjz{7ZpUDy*$;uZZ72at4|!CRuR`xbPfaqp;|nFraqlnOXQBun+i zd32}?A8MnB#p7E$l#nnJ1ZZgLnG%}HZ#}0s>b-I)TfiKKE4FB1j?J58os=uZXj9+@ z)JItOo7;?caiHuw=Kd*!M#)(L{EAsL{zBSnDV3^QEp-4OShn|GzJMJvFL5$_59P}Fhw{ZtnBTL;DuA?y0^SgW)fvCL~V=$IB54aQ91$a4} z#!7u(-Tu)cSg@s!1#%sz1 z;f~RX#XQ^wTSoRDNg56a#oKQZcaz(}jv2TUNeX&F6NWn#je%VK26|E4iMf#+^5KJq zy93$j4BRc)BJT356?e=5AK`thwon5rnDsssFZ95tM~WWnKoRE9mbZ*Dq;^_iYDGeCn6i3n{EVeRO3CqL>!R-fNfwU zF+M})`r_?FMBm+Zwrv(K#4x5lpCOo`u(`0*kts7;z1$rCuie z#PT?pEvnbx-Bt_BN)x;)Q&w{rLc1U%DeFurDeSn1+KvwNeDCKC?Aao-U3Dd&B)Hc4 zCsYnNDZDUyl0KLg0LEjI4>q!-h(=_ZHj8hO=jvRVEZ4qsY0=T2Tg+jnyf8`XPFl6u z(om?*D7BFw3X^J`OyAzH*<^aeNKU4gS0&gqy4OIQsS#063cf%PX4CN1l{GJ&>0x2 ztp-PP{zLL99D`3MH%Tp7;W!DLK$Izjj7;ns12O`e6tlyz(*L`dHW29Pkkm3+Ii;k9 zR`4D<85YTXcog3@bw2%Z<6hJG?^>PzN|G*}D8&oC9mjx$li{B(j9`?uxf71*wHV_e z_@~s~hAX~pXPOLOiz7Vg1@taJuvBx;?E18@r|*sEiuGcS~>%$Mv(98Pq8jwej5AW%moRX*qq zuxz7DNco^Uv)UHK9N(MGC!ki_0xg<8k=}?^A>E-#(S1D!=IZ|Q9a-ugqucArh1lz5 zwE?778>~gEE#i$n*F|?{kdKYQk?1&?q?~|_T+XZgehbAvZu%&+ z&?i6W8=;kWAB`Wb_B6FYMCux$c5I>CNW>#N5pn~Y$QxHh<3iif)ki7-qLY%4Y1C4c zl8bC2yvPFA7Mb~JpZgUfq)iMv4W_v4P{`fDWws>?03V$BF&e~CxGZ-ilQooaT_ZI{|PH0?T|)n%h7o> zW7MpWe6o$IRrA^hgEYU*>jJXfl_i~7p>0UapliqsJ1H$@Me$TNmENZqvk1(b92s=0`EkCA)(7^` z4OtO*po&5mggEi*{^t3zXksXe4aw>hfWLox`nhuG&>=`CY?duV=!J#-Ij zlhloA_Ry#fF@!#RUXu4Dak7){1+r)h#~C2zlWR6Z%rB4suUM(=0#HGWaNU-y)Hdep zi5TM95TmlD)#QvJCJif@R;r?Jp8D>9c0sHE#l&>1I9m6u{nfA+$V@Hl5Ue~MfG*vr z+|V^Ub~sl0@6kS1E``M<8dR**P${r78jqZn`lsgv9p`9LDG8QrO^ZP}dT$(qBCn{O z#?Q~fiYr0l6@2~KrqppT*3e@5FGHWrB~6GvLu8+rWHyysk5u_JPiBYnWSgfxiP)3E zK;X8Z1r9q$UM*N^x4C-TX1Cp_G*-IlT#@jIYy;0MSSat{2Vz$24=&k^q)sg(Nm1y5 z)7r=|xPkU?D-z}l@4y@FUlsGXW84)bt3vh1vv-G!DFzX)?U? zA8nqsp(x8dD@TfJ+DA&FP+9SE`4oCZWQ%1eSPs z*2u&Cnb+~h1T(K+pjw@I{d?m_7$}g~^{Z&y?eY3SNig$DT}HKsw%a%?;7=&1-afk& zP+;@*WLA)5i{!hs*p3wH6KZ~qaV4f&RX6~;>M&>Zj3OvnBU zpg7Lm^jz+N+Y3jwVXik9Lxlj~_m=wZNBNxr+d4vNp@7C#mvO%o_v9WVxNEbw0yEsV z^B(-XfN3)P!mm`Ac~wK*m=Z(oUb;W>Y&HwfT@EC)4ygoUO9uEG^dOEu4S>LPbbR&*VL)f;|FwgdTz?CBR(2huXI`2GN_0+XwmWbd@MZArW zX(B3cM(;@WaRF~=(VEOecVx^Y7*S;Ru4D$6(Q?(d<>D;Aw92MF%z?DY0G0{$!gM=; zqu@fr;DTtGSMNp*^e1i!a0A>q<@0c65B=~Zz zXR|HML#ndKlPWDRBpKcVUxX1}$rHB0>L*Q)vDm@vmuM%8+v$8!Dq+zyA%E2I$b!sFB^+LGF!%! zF4&$Rt;*TI`7+LVY9DV-Mn5NUgN(T6py67%Nw!FJjY7S^P@UA!A0!KPE!Q-tPTh`O zTvni&ZJ`zOCgy;`^0zm&v9jclNq?3=(okcFZD`mvgF}DK*PzWpsTgsHlG<7?$TY%x zpr~D*KM-Sf+;-?~liiXxVx`Yi5`o7?-D4sLxPE+|NPRKL?7#MXPK;$iYl9oEG z@11am(`9)+Gm=j@#X=q`Z*R8b*}U>^LRuqvK=D=!>iiJ4PAY}@n0JCy=FO7?>+BHm z&b(+BgGl`osa}`^pj&UjMH?6(_onAqhF8cjUvf}_lMNc!5TmZWzb==N^-ArGJDg8O zr5v<1hWX&5hyV8z%s6r4ZD<|?ZL*oiC+kx#dvgEC4r^z{g!%MoRlni?jUv}9yQ3R8B*9a19>)a0s zN|d}X4XYqU@Ye2wFA%*RYFvWeMB|^*%==) z`hVb~qBsQi+R);kM6k|Wi|x?zxVJnWg~$8x@v`y5r*G`j=gJ-Jbzi=oaxdrmwTHw? z!z0PAIL6|fd^W%jl@=nd;^Z{n<3X@;y55d&+w}tKJV2JT>7eYo7q|P%?OD9N9WD^+ z%+wD^VyCYMfLlRV0d$4oVVM>35y^;)a`;oc!sQ9z52g&xTYQuTVsPGKAs9iauvl0E zMuMeL|4pSmsbb2-L!8hst!&GsfRUeX;s#u|{ugetTd5&9{th;o`7u~4u0>+-SUg;> z$3TEeT{*`&HaXZQ`YxX(D#60hNCi%3l&xbk{|@mNTD+%xJy}Au^d;?>TDq4|+(Tby4DNor?J+p(AP%#bQG~WC z5>a^GKkQvz@8KWf9^g{K$4YI`>?;S%fS69C3fvA37f@Ww6yLAePB;8*D=fi$0s$7T4Z zU5w$1Z$)n_ER^#P@GX=P+&+(mLdmJ-$!uI>{i~epGF9eflBr+Ssm?YzigQGZ zR?0@1Q2KRyRHNF#@uJ1Ibnac#Ci0Z zUPY`0VsA1_z;d(IDJ=X1fg!4}q&bL2_KcK5VO@xi7an*Q)Hi_9X3ro6n#~JUK?xhU zmU+F9xy+#D=a>_dD0WA2RcQpnQ!8LflQ<9k2JYSxAKYsa#xn)g*{4E_T_yRkP_>RE{ zsHDg`@REM4>`vxL?CkhT#e{9T<=4y_FOv*MJkw2Gzw5J1G^AlEx>kYjkOSatxI|AN zYfG4$Vw|!T=V{`l5WSlaL*&+y>gZ!1MQp*9OX-`3UWvIuSdsOK98pjrYC)wDZ^PSP zimg~gY!|cYo>HLpSOsl1pmSqeH7e$h9IN2B-LlhH7UC7Gkp>?=CU-8Nq6*}W2wIem zu@;d#M@WVNtzQy8{eI5`tEJV^I43xitM~&NHqD;6zXc^LlKm=f-%-4UjjvIGB<|Ot z!2RgU2?2mFKt%Rn($04ArqJtZaKS);SUVp>d;uzMc}|vjO|5`jAZIFQ-u(}NmJI*> z2HOk&-rnRJadnNMK=ZfG^#+BPT(Fsw`Mp7;>}CGeITR7UYb_=1C`edw_dX!>;O25a zi%_;HS)2|jqQny`-RA@dh*0DCl6g3^J$K8N^Dc2ZI0nTM6HwvTus#M$o{iDv8^J9H zM-w>9DR|#2G_xPyZ(32-bTrC<(T1ZOEs6JtyF_^wOM+aWH2fUZ6DgQv&0aFiWrbiq z#Z#c{*9$t~z~}q8$8{%R8kIf7P8F$yypTl@87Fwl9#Q$P$&V$$o)Ub%7ju!}X$v7QiK&r>!W7Pe;`S3b zbTIQ7jOc$d0PLp}(NB?^x9%g%+3eF4&oPEJCpDLItCOXfX#7oL7kKSAO> zw@7-kMw7O8Ad#=bY70Q)erfV}M8QH8#&XL3^mQG`qa#&tyM;qtd*vGe$rvzgGQ8+{ zbBOM>r`ZW>di6Ts#GgJMzyH~f;}iNm{`DJ=&5cjUT{FD@Rih5gdwl&{FRqABfIohC z6}y78T2jaWX!U+mhMSJUcV&eJgbCC26rclqh@cR$Q9;wiZR>FR{oJy%ayp%cfyn`$ zcY#VBqAPj8UGipj2GvGIN;QanPC&R!hAg5-wt~tP`za+GTzQhZ7-M&iwyd+cFveQO zML0up5|xk`PIT4b&amPkzWbBwU?Oi}%QhW2l>wO?)oM9K{B2bVp|2d|%w@ibz()i{yDA?NQ%piLTc)_;{3 znz26`<6?t!s=f<{xO|9z7AXNXotM!KY9Q$z>JpsB$+XVbATu9_T#DxhAz8_U;7(fA zVCg~vKxyUa&YO@OMD6O%npHsXgk_Th}Ca7 z3GpiR(K&BILcHB$zLOl`;wi_`*wuK-(BjsDPuK;BZlMS)EGocM`K$hMAj=n8nJ4Cf zzF~ifHbD>FE)0i}*hMEn;6It2Vy5WkW0Pa050r?x z)x=ukkYJLf->v|quIrva>Z#iDxM`15knl%!rVwaW2)IDVWO&?e{`~FSeS-Ph?|30~A=_tLIcr7nUfPXnI!@{iFRh#P7U0-AlyCq>S+Ud(37DY(rf zvSDnidJee-#XPXUtDm(U8YG&4-WaRLjj*VI&Zn1vMO6-}2SUZ{S{4I@%P1C=&pLE| zOjUooy{%ML-;1P_sp_MFiLl6~5H426nE)ncMbzlYBhDBQRqyt>s^HLJIE7zHD8kP0 z6@Hm0{0Z3=e%6|@t9=E2vndv}rU^X&)|3!zH}z2ZyyL=8b5h;V@%R`;pDESE11%mQ zMInyLlz5%XTTQedB2bu|~WNM7+$TYM52jw`I?^J*8H`ebx{~F{FgT#@|ei`;| zx7xe=QNd1M=jf^hS(X1(rrJaRv-&CgBrYYU1aLbamA#+7k`-VsY+T_B+YU#;SOWkt zLKsL0i5RR@k|iHZ8%;2S6gc&21|5bL!x!-p4vmEC7YtF>R9i5Ve+E;C{ZM8+UA!DZ z`AOa@EA9$4yp4+}-LspXB$cz~srN!M<#$BD1{75gT{Z4#NL#f)7&`A0gjbs&kk%)o=zY=PG)Ee9N&|F)AanA-LT1k*s& z#6IFYiPxQAY7GR_J-cbg%DNiLnhr0(5kx#N^XFFtqC8>O6y>w*I^TQzRmPA|rjXa% z(V4Xe@oF&6>LfC=;M%&I`h!l%uvu@DH{&lLrpL|fMKS#a^d$bgyYUqMJox}9d`(0( zKjekU`S|+o-KXsDjcM)=DFYt|#3=a6+;6s1yMATf3gpX2zL&Qm-yXH;5FU95D@F!EQe@R!Ti@2f){iw*Wg3mRUEPV>ha z6$kL2b3h_iq)b{aVaq*1 z+X8s2(FM@jL1bA$JEtdTw;AAr_N##bXir0h3ff0r%>vraohZc8Kx?B=25;hrDS z>WDrP65^g6AW797WR-XJwUjEE{sd=0sG2l4X^iEuDJ9CeW`_(w^okozI$a#det<3* z_kj&R(xgUyVB-W02|SOL{(Pv=$ZH{HIx|1Y}P7ILgPID;WHZ ztS8&xQCdbqox`eRB)G}eaRY5P`kwmEAMrJ+9}s!FJlJbozRODRK(4q)nTtgicAVE zuIi2SQh+Vrrf@fbyznW*-epaLLAP+X5%02o+%y1J$zQG~{W085hxldtI9@a1QiAVX+L$9TGy$H;V4#JEU2 zlEQ3H;R?3#HQXLM1{&^CR4BOhUV1)@hWmQ^tQxM^U|(iwl&R4Xj>PYc=_dB& zpUsHqI2F`r`PRELGr$UGU&m-a7-ferPY~^AR@v3V^=RQrLIr@WLVAD?*fs(bfNfX6 z-k31J{;XFPz_O?VEUSx^e*J?ifV~*d{(h#z(|vuww)GDHI}jBrV6S~H3t;aNGbhb- z$YLnuGI%^N6qd?JFkfXVhQfoXCdeLxusNEJaA6RlSyTQgN`z(6Tzlr*Y^o|k> zH_|j(6-6wfff9pnL^R+g!W$6{xPdMPHl+gftF%ei&yz3AnPDO%hta?=fpivnGs8rQ zPuy;@aJ0E52sNA~m6H^!GD$JmK2l#nn&SYtVzD1-3lb_vD4dEO5RUULom9~PF48PQ5Wc%3HN*^%d0(rnbXSIG;W=9*rGetUsWPXLWhL@{{mnG@DZrKE`T zk`z96sbQY&=mO5=9z;X^<1cM!v+8@pGPdNY1)0H>kmn8PhP{ER1p=_1T-6*?1-ej? zIJK~%q%Ab-F%Uro&YmqF)K)%dIZt)2?K?6#uy;j#c}4us74Z&EK?&?MP*-VSB55hK zcv8V6?*8U1WCND=$B@7_t>E)Z<#>*#qw!bp3ak4+;wwLP1$L3GryyqKH7rPTLk1mN zGk0JOL0Sle=ulgT8Vr5`Q+$85!35P#|H>k$SkwtBRu?P%Wh9HB>bL**6;u;9 zQaXv(qq<)ps21(#1l68vvIwdZ#mGw2uYlZF@cLmqqd(KZ&$hwOMY^9q_#8gP;B%QK z!$azA@B?i-3HUaU(k$u*&+1~Ozuq^?;B(Q}?`K?G_HTdi7xfJWzXTvwDIH#&W$;lk zgwh6&V8(wUL|(us>p}-1M+))sJY=OolM^-BiODvppW*ayuk98g?{hUdLz7cA86gRB zUcO!k+QR=y&`%-4molvb5J~mNYc%pQCJV@XBIgX`W-o=vLdLs%iZiRh4}}`hkJ*xU zBZ{XU@$Om<$LK$Cd^J#v-#9pH?fc;)3Kpm{^ax$QT#MH1Z%IrhoTPI3y-VTyQu-OyC!wtb7`87#t39x#?Ls%=YmFH1Aw)VO3V)AyKfqC&N&!AC-E(PTKs&5$@_raX7ouGU%q576Q`puhE`&=(r0$#daDol4^rfmoaQ8@P&^(bXv9a>Q{&Q#51Pjnb4muEH-T@lWTQj%# zFjfF()fI89e90EashnOcGf$&iOSM?nw7`Zo>4W->M6I9}Py{WY9X_VYwODCkI2#HF zDvXDF9m5tG(8$mW-6U}ieI%|4p?AHx+|ws@IkYN-&nkv8tV=S>Hxm50&t?$U8Frga zT;7RNjd$$h5H9znFG!}z7pQS+9Epb>p9dsNUndqLon&AU?ZaF$3r5-^Oe4Em`c69t zZ1<06v=@>g5q`sNCExUwtO#tUdr(Boz#!@-1;Wbmn1cLie67cIXl5t8rVu}|udsVX z4unmH&rGQr6om&HfS^AJXwq)A2*P|D;Gn6d1_wZ1Q+x>WK%KD0q|q7>orZ75O6TWO z2VQ8)ipbP&+dZ8E43jqNM2E`2n|0uBK*{jbFMN&nvyHo82xJb^mL>82IqLyPy4%{lQ^*ti3R$G71VCqnV)YDP5vEa9cF z>xQk1P$hxgFT~xtsyE7CniJiwYdm@G6`pAiSCJUB7!rmLVixHIr`lO$#~Kb$1mZ~6 zK=~}7(rF1zhgj(qyUSE$fMk#bl(XPoG7LTVzG6sp4KP%QA_0cl3`6Zqli`MI4MP)c zTSxz|rwOdaNT@0M5i2@8sKsw9^!4Lu?mt{ZOp8qPq&;h7HZIbxo zSunJyTOSfbjHhqdnGWB?XyD;^Nasr+74ZqanP1QmibHZji{UBn!t)4cgY_%=LUvtG zws_{L47ONhw;6o|f+1Qk`&reuB5^$CPpd++Zj*}fG20mlTva4aVem3GKY92EMayka zeW_^`Yg}d-BR<*l(K%=aTG_VDLLo^isc@Q>WI{!OU|=OB)wFM4Oic^pn&1P86jI8; zg+h-E-8T)N!#No%y?j?8fp&4vMvL^7oKBLMRDk%R)Aaoed0$fu@)oV#HHFalQ+oz9 zme_3uG!m5tx7x$7J}F#QfBr;i=oAPAjjGMBF+cf0Wh2^@5O?l z#h3L)ct$P3aBOC)M`dYMR&p@2=B|)CS&=`p26)mYyE3z04uPTLd1rOTc>ZR$>EqE3 zABQ^8VU=vp;u$1ffppm4RY=Du+45N}t$C`1KZX zZp(7Y*|wZ=4yZ$xQ-tHwms7OwV*brDFCuME^o~QPNXYko^C~rpdP``ZMJQ)F*gOom zLK<0XP5Mgn1EMP(9=!B&48d^KNFu;mB37N=IQH7ChUMFsx)+oj6;T7VU7 z%z5}C+n95;JdQ6AWD!2HEz@+=vt6pAikJy#Ek=4UvZxgyo;esdG$f&;IxS>jymLvKu6tx8dOKUyEu!E$}{7JI*JmXMyg5q zsq_HXs@u9n`f6@#WdaIzz>}Q7`is3)XLDDQzt+_Q6PZ>|7DLc*BnO@1^XBI8If3)k zghS93P5HWW>HvA1jvyN6)!aO5So*EmdS&b%uoOi))W=dMu>&l5ilrZ2VOZMF>xm_n zb68?svC;>3?1`nlfVZv0((EoDOO2leSb8nwuyoubS+I18892mJGF)-0d7rO*pLuDC z$;<@UP&~nNglmT;Xg^y);p77wSDUe#P8NyD(75ReY}X_=;6ZQfpNU6KbrhMS$Yyqk zAxceV#vaJ+VK5~i60p$(qCV6}=Q1TD6wOU%uxMg9)v>+ZEA6d(@B#KhHD`DnK!L*OM4n&JhFaik05ozb7&52=drUVyI8~#8CH1Kn%|eaKv!v!&!)7 z>__?##E@FV=(c3|M;At9e0hWm#+Q$D82YDd7L#7vj1uQ(U2fw$-1fu-B8lbP_*hr0 zbma~`$2Szc+sg6%#`DKFcYQFvb%2?Qq%-6=D^Orp+Qep>?aIaYdVWXqCHjihwVPUl z>z?m#OM4&3wFnai@dHL@zo}xo(qL4DbUzNW6EaiEHzEO|I6YLz4-bT&T$(HCZGH&N(R#&K~LPV#8|Tr!Inn75>bV zkRVr)=7Ko#9!t*^)?EFVY$KTo6>Ku?aWP zcp)voI(QTw+0GG_?60WXa_8Bbc65?I3VI!eEfQlP2d@}h*%uM9B5RZ34eJ8Z8;N$5 z^dA0$Qdxdi+Wv|+&5)^+{S~Bzxu}nwv0%RwWQiW|f;kEEOr$D0AySrVpmBG}uBD)1- zf1uJQ zI!1PHjmA=glAmE>Eak|73asnDo%h# zguu5-SP0R_ZZH)b0m=#?w`b1a0{9TkEEkp3;|QvG>EjSV6!K~yh}@mEUQ6)N$NpPv zbs&cnN*0@^;J(Q2momk@k|hFjEvP{-wDU1?tjF#(@s(|$dm;G}vP;mNiFWM=(P`FN)zZWC% zp1TLSZBY8D!sF7{^K8Gn9L28t-8rg=bX(16@&ri={OERUni-uVxk$2)M##Ic{z*&_ zTMi3WD$g5|A2ZVW{F)H!%XMdvJfZ|8aJIe z+U!P{Lu50elFIN9J#(AkDacD!gpyU{$DTDy?37jN#@oi?(i!wz1%9?p$^P}N8+6ZB zw|>ye3OZ#l7zE{`!kY3CBgUcTuQ42`*{=nKD&o(RjTXqI>S40qT)Btv77<#@6|PYQH58sP zykUvil7jJSVSki-G);p^mf6bGF+lq$E`|AG^YE8-S*whju8O0*x(ImO^dNx$3{C%4 z0_#av%?mhzu+s&+MOTo`Q&)p^z3Bge3+utJfJqwvVFwPjm*{%ep;Y|S*NIq5hHt-s zht6{7$?!zGt|I%)ChpMi0;a&YM1JkD_h#~a^*bux!9ilz(3=i1r`)VlSc*jDVN-9A z-%V1zExe$)xx5Ff6-nA)BGdG)AF#E^8Z?qP~|2u*Gg*nzA4oSD9Ze*CxGd>?V(0P%$u$D>s0$R0UDQ zMk$Ob14R4_DnY(Q=}M!RH#t_DFg7edNOkWL##n(Oq}gQn)IBz%=I*yh&6#nGXj9}? zoC;iHA*e}mqo50sc2wjPA9ZX6d|)8~xQXzl2_5E}@6zE)?eL?RC0BqDocxrIn;hll zz)n_;l-(HCR#CEc+F;$!T2az|Wl?!@@7`Fg<8_$V(P3XOo)B>>o0xa%%Mc-z0MiO@ zr_01r*j|&1G#R7GS(ItuoBLu<(E`kQw-n(sF>-(|*H&n8EH4s-J+TQIaH<_Ul&-7qav-UH>|1dM?{GIU&$XxTy1D ztoUIzxkG5yUaSV)s1c7xgPaY$W;xblQL@#nOHOM6=|U%6$io!t?2<5RmWIsEQc-2% z$;m1)E}g9UmI|7z(OeE_w%-Ge&ThV;f-ELPR;Z*~s%;!PL=jlc>`2@c@uoxGSlEbx zwMCvOSe;=0*3m9tq09;lTy65kDrmPG0hcuHgyWVf;F1j3rIHJJq#^2Vil-<(vN21K zlWA7FV9=^^#9Gr8!tf|;+;0{11`4}baGw=`Sz7OLv;(*EW4;$*)98W_4lt%P;}pvr zi>@&}j~?U;Mq5oK1eQ-H0pVLPBe+W8%p)~p)(WJ2Gv>CZXbcE1F*B&U685z68AA?x zFj(`i=v&7pn$i3UZ$XW?Dsimz=XmVhA-CS4l0X9P@iYH)nafsjK2KyN!xw&Ws9fiH zHFv4V%}=dScl4|){1V5cl_>K|9O;+%iqpU~w?j=_h^ut_Q}*lcP59KWE5_nZcFBt+ppMahBh^eB_ zV*4je!6$_yI9R;RW5wP_cVeV?4hGB&BJl>^Kp3LY-hFBlNc!}d@=KxtxEKpH^^aV7 zvT6%a{}pGmzwjx20zFN(gQTG;&ECU{tG!3Q<6XX|HqQrbrTM((UjTG#V8ye4_yzin z`gJg17ZKPMGR%psfv?e|HwQ&{o5$N?KrFJtD??pff6{u~-=Mzah=Qd$8R+H&b^1Co zt12X+c8Ci{?IbIVAa;!j{@=>plVxgNQH8=MS{9mhAM2qTj5<*KixPgdW_cNECc!V1 z)P*D3`AU$)!j7fG2J-+`Suat*ka_#fb>8o`r zkRvqr6*~AYT+#Dd9bL1kjG1Bn(#zZMnq*9NUB@*lkWd%Yft(-Ih1dzx+mR{yt6s~b#S@UF> z6i^C-=|ZAL2C;2X(rivV7R}{JW;1lx+f5izBdyEC$sMpk#}c zoGm4E1(Izxv8j>|uAbVn)X0)2udb$(V}X@eC@HiE(sGnIree@5BV9YECHwEh5)qbY zvl8uAVkuIXg_K+?yqnLL`TdQW)N3+TlPQ{9rpZq=sn+CNP0rBdR7oIOe+3~bABCok zd4zkq3>KsJ1I^l&glN5A%s_NNe}Q}zdr;8L^Vr*{{i^w=CbSs#|1rH`>(PV)kJ}U; zZ>gi|abWr}eeEp`C$;d?-}bY&G`}``3(>gyXAH5SorD(3_Vsg#_AEk%S1Zha@%WQ! z3JaG;bg~aCjm|k$Qb~Ss|&4h1YE3%yczDc;ae1FKTs=^|qhtLx9s3I1W z@CWSc*LdDei$1e&u(n8logt&1xAD_A@Y5P!Lq*`SPoGfzXS|H}FQ8UYzM>u4ACVIj zJ7R~z2Ht9OM=~ExIDwh!*N-k+QZ3g?rTx zra*DO(B6y0puJUy0rKnLc^oJP0AeziaB`8lfehZ>q3rhbl|;r0B~O?;T$xUW|2D;Z zKO@?R{Qtx|1)1FMm+$*Npq;5KQDJeE(n~teX*LCs+*Ifxm||0@r|fjsm!-0$<3H`o z&Ou*BiEirA7ua$^UnF3J3o?L96mV(0(%>?9tNN17Ck7+5-}UeL@c5;mNzSGT;DPpn zKG;Vhs@aDc^r4sQ!-79;4Q{s7hkw26_d#e5I4P2))b?odh-u@}$b0)GByU-fa-EE%C+$ej7KZmAK6>k?>1g%c&5~XA4UF zB(20neu;Da63ggiNrtQXn`Qm0W$3RjP62533LNMntN>}u+jKH1*FZxHE>bI@6!BH- zzj*U!LWD=tRAeB(ML)hsPMN+ghC;dq6bK$lK+0ZWUkR)ErLffw63m1bDivkw=0qap zvX64k-r%7HaSX;pw1RG2u8L>Yd4kl5!^092^ZDj`S88iNp(RyS;!X+Gx5xmZ5k%NR zQTzv0r^A4!c_Oq3%#N>`{wI~XwW^vjbt``)y`2mo)kU#i2a>ZEQUSqG;6d@|ck`x- zw!WwznEm1h!NNH7-}NVhZaTkaEHft6C@ST1StO77fC;EZZ=a_)3t*jcWEm)`NHqhl zig{JdNrtL7){z{Hul@mh83RR4dETf;C_6aCM^RMgdewywS6zJ(7jjWXNGE;*DB#pe z+BTK3(pV==nxWWJfss10QSGOC(&;@Rzv(Mu01H-ZPACgjY$m{F>Uz@Kf0WF&`=of9 zC&D`ygWZsv$GP{t^&tD5aFu4S2)*Nz#+cHrtJbzU2y^hvT1z{bQrEWOLa6A9^Ek*F zS_hL=l>(+_eF#h;(fbN@gBmob%#S@n89>+K)gbq^6^q`eUs+8fZOBGL8Qm~wRNXKI zxbR+FwfQO`CN2U~fLj@56xmBWQru?@L<8I0`i4K~9+yXi`D%gP#Q8m3(Ci+_0E5Hq zhPC`>RejS)y)aA!;{{grop@B$s$47a!Jt9g;phq z#4UhHn5Oe=kP*?T>>b>kzOrWxmSW63SIAL-2aTKSw$OydnymNxi0Z!w3`T$HV9-W? z&VLsM97GL=0~B*iiXQU}{{IELtt2x~0I6iw$!q)c$5xZs7Ai=Fmwe$sd^WA>HBT0@ z`ZeE`%(B;?mCUkaO(!!*5A*#(Y8#nFNoHBfeK#`8QUPs*Wcahs9SlyTiSXZr0S6)a zPRI;GQVbU{WKD)-@7MQ)orDnvU=zaTLZpj$`oWhwLK0DN`~JF@pP=-wrMy5S1N9HM zT-3UpEFqJ9?4uR3lV!XLl>l{=mkapV_jY@nbhPl1ze3=aO4LI-SF-!-8rS?@rv;EG zXiGh#jBHwlY}}bx$z_f7lOyPDVjULN)FPL<2cQCz!8Y7;jtwFbBT&HX%rUq8A)Rbu z&MkB@#&@dfXn(wnT@J(|l%B1O;0Ainlm>39ea$i598~L1HH+a7YAXB&<~A&b5{8`i zNezXS>|J^t^i)+^fN6%l>d^J9u_Vap>nQ9=5cAZjh_uY~Rg@|12z+BjrjZC_yzwTZ(jl*Rdu!> zR^vKxkILw%QG<#G*IfLA_G5C0ad1VQI3tODb*Q628XiHT3aH@~W< zp)2?q8Y;%7W|5T5zlkjdcu&5-(M{gN&{W)XNR7H^ssc9q8IF+i5?{lpD5}c^?nA5F z^eGO4iL)MRZU}s&;**e43a&%=BXbRr2>-`i=eoJo89!2S47cL)BNfySydJXUuBU$e zBh-Af>e;VXM$j+XIOx~PGtf)*OrVQ2&RcVwnP3?Eu!g*{>01=jqF3sM&53yxv7#?K zI2wn~0NpFa1IE5=Cm4=ZbInZ{?L${sVl@kyssEJ7X6ce8l@osE5pUX|^+|u)p+D*s zH_N^11`~wqnx$jsi3sce-fVs?PEJA(G5d2K#)|H{lfZ@yqoIT57qG_-dBxuR!w??F zP`8HGDKx(!?{TEciXFJ3UFkIGYOiFixzo**Oxl7AHP#K+azq-q$N7jcY4>Q<*TX#@ z-Y3+s2kUUcw@!>mV;umNak);UC*Z$=LR(2t)Q*Q=KE{yf>DeBMY*1*f86xVjN~|tc z^wSqXt5DRD7|OHx;ntMIerLyhYkFZYkD>jWx0Mwg>t6mg4?BLj?*ccn0O0C*N==*CzG}+N4|{ zYWBX=n+lUB;5$J?jaVegGlV*UrQX;Hn!Fcyq8O4yrAHsTtL}nJcwbU!TSX7vh0&M2i!?^ABc?57bzJKt{Z9xP|g8 zx4H_v?Fi9QN0RQJByR53PlRoK6oWlJ?*F0*R0EyL_?^lq#>Ke^LX_GO%)&rHn}|2&aLcoMImpwUK8^7L0O_5F(r~OmcSb(D z9L0Q2K0*)Gsjv-glcVV{N`^1aKUgL1yiCZ&U6OxoII=1f#G0oA}mGa(;rjH6b>7Mm-g zrba!p6xAXQz*^5Tm7bO3K6FP~SJM#=W-Z3<9Ir>sN5NDZn)DHxxR;+~LM8lqp?iVm z`X=}AA5`KEZ5z5GnNMHs*sH)#@1*!@ByozrR*Tm)gfg7r^SU*nO<=WiKnhg`svPa8 z-9~eMjw5mw55#|bon!=1bR$r7WdS}4Iqch;$LRWx_YpxUO#lnvgG3d!cj<%+Q#F}( zhI*a}TF%RBA>|-l;xq7!L7qMTCJwF3<@Tjv-%h?Ca+Y}C3@J7CgmAuFh{HE%iU~Ev zABqu^YdWO{LV;=wRUledC7?|i!8m#7sl)XXKscnwd>rT?-p4Kz6qzH~c}m=r{=CgI z+d@xW)i>p{K{z0BHS`n@NR&dpmADG5#0vX|rYzLL{(2;Pplm>B${)3CfV2dL`UkAR4lV#}hO$#;QhFg=KVbN~T;fq)X8 zb`KZJboLNFDw2M7zKW`Rfc5^4?6?WhTCRIIpr5$sc% z*g?_vYj7+lKuOIL(rP92Yu%8ACdjo= zhdPijVF941RaoK8oBKuM9X2$q6TA2plwhoy4hM{wyAGQR=y1e%+h+qk3iO7Fn`48~ z@x`U_71Z>_G#8kK`g6*KunOWjf`s3q=G$IHsb zR!vGYIaQONXmXq+@xIB!Q9qJbpb6buwJcYYT{XGNKDm?&8^`L+ua1)zKGWo5O;&62 zh9)mdg0<#*aS7zo%b;%W4lL{dn)vhet=Q)|s%K*;;dY}YN$v2$1cd9mvv1CU`X>R{ z=NJ+_zGlkhcpc~7rk*ZY!a6rC^UuTGUpW-2>o6995B;-tc_Jmaa62hj*3WkN$1)0RWvuAYXJuUe0ySa$8tg26 z8)~F<*qfoL^LR^^?2eA}q*7feyepMe{l>l-py7#1Q*OXpBMi<xddiU&o4gY} z1p}T6vf@2tEK>@rsF^^a@0y9@lGiP>1 z3onW5(n`Gua|iPGJpvUB52zj)4@gr zm~JmLO9QByJ*4UUoq%_L14FDGlEn=xlqLKXdQt)oVhYc$dN zaf%Hv$WbvPlKk$}>{a~`w{P$S8{oK75=?4WvX)QWD=WN%G!G}&I0zM5<} zN;Lm}HTm>nsP)2tTKDz2gPBxPK+cn&pz%(ISJZFr#1&PYL`aajUddWh(#;ed=#V_Z z6XVTNY8YI*>{!AS95mvNc(>4mG=cDmBk~{n+dHk|@aC%X@1Z{|ez1fAI9FZYofEq4 z9}JnAVQUWg6V(+<^UY?=N;?w?-F7=4tnY$)g}%eS$Nmu4oRZ~>^`&?5?QC(vx*~LN z;73%V67I)9eO0WFhg6)#I?Qax{Kqp8HFP0woY7^uGWKJa1uxFQmIu{v|f>b@!wMoH7~p z&f}fs%Y{J8mq`NoE)YbT*W&lky;b1F+`mbiB!#JwbfKQk75MJxG`WAA z3>j+W+8Z*g#3ltoj47Trj1sxqa#w*(nP>ST%XqWpJq>bc`%(vxEd>Z9xSKA?2015^ zK4v>6kP;!owUhE_C7*l_(`KW{CaNsWj*@yf%-`%s=H59w0)p5;4W|ZJ)mlj@KOm)! zA~2qGfBU|Q71|_k;K2^_U=<(ilnmldWDOah>D13n`SS+Awh9OcQl8f#xznF*y?@#iunpx z-0V-S096ygfEWMGI0u$P4~1Y;^ST=|{gCdeG>RD52^Fd}GxuQT2F%1CaGZ;G5sCqxSfyA? z0;p9=d=BA0DdD12;7L3qs3l%cBbv-XXfu^Kz_WLQa&sxUcNF);!V8 z)M!3;yL@pWvXU(@nC`cSnVidoK7Es;XrLS9W|X6QH(3mW8^>`5*+|`gN{PEflZBd` zcLD5j6{4jn_IQS8kGp7m>edi0o~J5MK_6yG#9+Ff`3`46piEp_7@Gg*d(d$?mU+6^ zzVC}e&A*YW^)Q?_@(PBN%&PiJZ65Jj&Nd_@0j@5QSJDh8->miC#1LBEFv1XDC)^+Z ziib4~TNj$TiKfij%@P_L^EsfoqRz=Gg{Xk`GM^Ozd@&lwoJOM|HpQ-H5pgjh3r3gk zh!#Si@tj#X1RO*Kng%^}1C_5vo&gj)RZvRz-$v43qS}f|*i}?8_Y<3lk{kf=69SKY zPaIOXGw~@i>bf#jcnI0^HlxDjZj5CPHKYt#zRO@DI>~X0UFA(;U$wQziqb=TRa#19 zjkWnqFw|8>)0T$Rm=(td4)q1Hf*XHL}KwP0Q|v^=9d!4 z$mAsXu2wNC1QO)jJK~Oq-qjCcbrU`<5N}`CtDBC=Sa1pS3s)(B%v`E|kt5dj+QU~d zwl6RfeqThzw41)1t zsu(eGo1cEtN0mJKXr}2WkSkwW(+3Mo%VJLoeK2qqkz~Xn!+2LR+*AqBXGjJH-(A0Y z2caB7NgMi9Z-HKBwWBEau@rvKDLI|FG*VbbQl~@_WSkO<`yBVGi->!F_$^L|7#Zk6 zG7DvhDMfb+;K6zk3@B}We?t@j>Be<2=pFRQpKxU)vtlj z7DOZuRVW}1hy5_8n__$~gs74S$PXY_t;vXeh?z{pz5S+i!>-Lz>)+W-y-8d3l%KEHKzjY(kv~Chc134J&$#KWG1rj{=-END+zjaf9!)+kmpOlqMO4h0nj2WUcB-h{;=X0r(;0*Va6 z2bWH_$bCX9u^`bZ1a;=E3Tm5_t9}#?kx>a6=#T;lRe#QMuUx#U}D_VpYLBu{JKEY)S80O z{P5lnA47+!Iv3YF%5~qG0bs9!CGIx|u(sz0tb6E~tUm734|Z>IUm2I3<=*-*{+zKG ze~$kb{uI27KRf;he_ne7?!rso;A-Lq{CRNu?X%p24#uDG^XoUc3r2sl$vy4v9kSfp z-$PY{zr&wBF8gki8@dq%`+nUY^}UDEmJRqb=b0U|-1&dmDa);U7Jr&w#h=%A**VKS z_4flfPv3Q}nWyKHX!g;Yqvu5~@3>^m%e?3xiHH6F<}NriKTw42@@O{OowTbCx$-#^T;IL-zmN)VJxgKx!4ZOLR|K_do zCMKi8+vDbQ15QD{uaFT(IDXBqx5keI*P>@`3>#y+-p1`0Q*K|$+xYg&kh1dN(`Vy$ z@rIxgeS_I6Xxm72yf=YJPkAB;GhE{=_mwXdX6}5%G!7giY$k|f zS-pGGVLEPsji7>}0*MdoTJ2s}0;G=?q@x1+^Z5t%YPH&{1ckG1O$(l}d<218sJb}7 zN;5qt$!cx!QJ`dJ<5i!xI$!VE&ym+>=;tpV4)&8==&t!f`)TG+Wyb0Q0*3DX=?2yH zVoT6j@qeg)*>i}188;w<0g0WY6{YQ)fhbF?84#lGXG~x>E4r1GSD4@;sqx*T9JLw zire=y#XO~zb0kNx?qdFdjEct$M+}EJyv$gf%)yG|%hidZ}%lGSTsAInnhBcjOG|1@*CvI$Q30VOkt5(4Bi+&3@x>~_CQ-TwYh!EWcW+dF=0 zyNv-1x((`y!%5fG_?y|h5`QxX%c8J=;|g+|TXzlvPt|0%iPU|Z>IdZu8G|k600AAD zn-?RvP&6W4*6lZrI1m@b?lv5Sblzz|TnCsS4PWwkf_koh4EPgOL3~*mP^C{ut9-<~ z^HNX5d@?=*KMd%Jm@m65VnAR9d%j^$P`@Zy=@!IHm4=P8Ds|M&!GM+g7zce zG*srkmh>x+#xpawd&l|Y=*iTkn`P_CT&S`QyzRI*76WOo7^D#Zke7ezCu6`;Js^4E zYu%gT{SP5FyRe|GM|nwSpgc`J{*9O5D#e%>5fRfRY?)%ZQq%`9-6F3T1>?ElkG#+m z+1sBGM7HcYb;A80;)Ap`bi>7TEpipvCM-;^a5&whe%HV&eB~LU*565uc{Ojw1KcV~ z&2q0@Xdz!o5$w1o6!g2o>_^N%rC%#@e zHUqw1ysQVlnm@{nuNNk4J-!N;{z!biK0GtN%y?wD@>dJd927F4rN>{`Y)C>N;jTzk zYn^-r{I;5@p}x;&#VdQ_ZRRl<@OJuGwIIr82ca_eTk1wf5SIo|ryn zXa-DgtP9$ZTvXzI^1j71>!d`78lK`6Fr9xT=b#J=XYeQ6Ep6h167Ld68|R!`+xLpSnC1SI!2OC^-`8I<9=HvSsei%s zd1$a4>l8!t^ZCK}9iD@Gg;E~RnfMjFrjnd!q6}$q4&ux;#WdS+${4eia1f(IaOBZ7 znesOv=DP8VbYd~WXsA@mO&ifAe)aAHg@A8-2Kbs3zI<_nG3yEh&3f}# zq9MYM`(Q2nqPBj~XP&+Ej%Ox(el~V6Jk}}G6vQq)@t=56MYtRRbpC2l`wn_v-=Y z1n|W~GDikLAIVDr^kZ6*L^_}Z5YmPTQUzE~=OG>JY!oBI7^AjGe>y0vSQC*9IV3VM zQXWm9*P?O^iQ*hW1Q!NeE=_Zn&S_AB6Cxb@iv9+1o1_|UOhJpH+;OmU{gHgb8H6Pm zN(pz`>4cu~YM?%sOxGD@SwciEJe;B zd~Jm5zvI}hBpqQd>f5rp1JIr9ONtMxY zkdrZw(gQH#Bgpw|AeJ5%ielr82st+BU~M4Ev)u6~fEOK!#bIgoPT&uS3o+PfCJNt~0yFKbbavZZCbGP31r+{T6;k_(}t4sQkw{s+y z@59E@fKl(Tr?83g65sI2&-x~}k~lg&k3&Lr%YeOM0X#E8g^%yo4f|JUs(knQuaJx*c4WnKnw<%_$i8(Re5oLA;S$=u{Jivp_&r=6QG{twKDQ4C3QA`;@ z&j5#kGngP)I55B+w@{fc!rq|&W_`FP$VQPOFEZzZpFi1Gd)h^-_Dn1sC`8pZAWr3X zVI)PTj3H#yDW?G_f-zkc9Ntl_Z+%}CzLlY=U$B?hLBp+Nc3fwV4lsMP1aU?zo$z6s z12Vv97}om(#$0!gui!^z#N_k3A3$j3kS5i%6$*vsZ3l)l2 z1)Xy!G!%4>Lzm1MvbwRCTKZ+E<#p9uvzQD_ZiK#y#_8+9+PUvf#B}RZyoLDPRd!8A z8h8@{-oul6fal3G-N-Y=*`$Tz*C#39lw}04V@2ouh7rZ>v70C-S%9Xn#{=u=`vU^B z~{raEt(AB0l1ZqquV370_NT!(6N8U>J|#K_e=9H$B`Lv9<15@3_;@f2VmWD zHZQBBzj9B;6VMqkR7Je!xFg=<_tqhid=enbFiJ)jGKP{th(1s4?aE?>3fY2*06tg$ zVi5u=5FK2GQ2;Jz0Qu><#;2tf=xE%+6#tOR-{k;tB2)oAc7A)#z3pclMI)Xq3y8Rs zw4q)qyf8Q{{c72_WJ7Xl-_;SxA>3F>Ps{SFRB zxY)AsU9u4hDg`Tq%q_w>1qOG0lF!oK_38RUay~Dzk`da+{f-0~rr-u(!!Hg0JTr>; z*Tbg;;Y1$PQVb7kV>}re{^5<5$HdnHD%{p<$XViw7~BgLYIzU92kQ`%cE40fi*crL zfe^RG$O1hqof*jE{*rS4Y`M6<7Au^3#_iMo(zV zE#(>|np`0i)+gMr^5#Bx6*-l71cE{QMeuIgXfD~v3ohG%s9GmiG4cQzJoCaKvS1xyt*tiM7M{(Inii5Fl#p7 zm4Udu$mNB5+JAJQ9U-A+@EIrk>{h(DWAHukRh{s5XPJF2*ZhKrrpQQq3 zV?`Sq#SduaO&okBPt=+xSYfQ_Eq!97JW(mfVN}AfRsubhfEPo!XkyQUmL3fT9dNKD z;XEej$uwXH=gv>Z6UZ2QE+D)}*8*;Q0uw4=#!9{>(W3ZV zGy81^0DC|!*p**Y#g$hKz?)PKxLwGKp%nqEU2{!&h9?r061pW|UGTac4H`cIK-BzP zxLP=gN}lq7N?~bSo+vMcv7)~>P%DS9g6H+)z*-3GqGC+r3~6UJPPd%wxA+Py(|OOE zW(E6K%4%5k>jewV>&ZZgJ)c@Es9YdP_-Q8FfXXL{!W2~AEG|*+sH86&jVmg}(-y1t z$dyE;^m@9kH2_|L%DHCkyFq0^4^*}rAljG$mDPv$-gAx}Eb0&wI18{e%PLqhk6o%y ze;QP*WNW^E9dgc-8}xsKbEXP3UU$p+j;^?vYeH<;!XogIHpatCTqI}Yl!D3-7}yo- z_1fqq6&dWE;)Ve+C;ZsWv_e!R5bOwA6{wX-Wzl7W;Z*n`?sbnrJ3F$rB-Q4)3oZ@t zYncFV__bUz2FVqY3G%CsI{f9%p~l}325RC=Jez~{sn$4FUrH?ZVP9b%bdZr_#+V#r zgqr!Go7iMfBGfQK*b=qIiaP2nvwt!)h1uU?)?@ZpFD0`>b7v*5!^=n}(`m{|9xiT6 z@Poq-<5BVk2LQ=?;HluLIwa9J9UIDXQ}Btg`a}_3niun64{l0vX`rTseD&RZZv7eA zp=K`-YW}H_0HIDsOWbJLN6OwjAXqk3%AD}Xei~R-((Z2F=qqoyzX`tab5qt&%1R@_ zvJ*{N|C+ggqBW(Z<5?E4Urs|_Erme#vpz@Vr{}?Fz$%}_hZ0apn`ty5d=IrtwJeLF z#;7w>c`nVdaZhXME0SDEYJ=oP)ry(~!$78OFiV^_8w)r4{x}+JXcsl|a1PA?Zq!tJ zLgIv{pQ}?I8e`^CNe>c?Yv5jh=l$WK6TYum@taT4DL4$zyFZs>WGEm2MfwZ4ioH&o z!zZ}aC-Jvzu}{AfP!e-;#W3mNBiKj}kya_?p&oI&d#R|UeLnC#t50=K0J z9Hny;B%H^`RAa?56lf=)Vmh0>K|QNY+A67k>WAnOYM$G50_QJO1{9AGL3t_YPy7+U~NmfoN^QU2hv(I7t+rt*_JUmz0i+-IG#bk<4Eqbll~ z%n^0=upS+>G3%C+sPm^z@itNwvo{z3JbM^;R38Y9zIcHCq@_`EcM5OfH&r4ex78v^ zX3=RqJOU-PC)6JLkm4_n%$uRYev=Bji((aawID{2o#P9ir)+UDWclJDc!+LDv1g0K zm0u~X&NKlUj(zr*4m~5_;N*#DG?5@oL^k4y9KL)Ld?zudle{ZYpErU9Qhl4;Np$d$ zM7=zjn6p}#-8x=|IUxp?y+c!Olh-gkO~zZEzWLjL90WCs>JOt?6zif{%tAZ} zJ%zzu zxU<*DND?R8!v_&ZB>AaEa^8Yiy755}P;6%q0R;m%;nQ=83X51V;%Hrd{&*esngel z7eX@uVyN*Y7;1DdVp_{bs;&K8Tcd|DB9Z7og2py}b9WCL#%F^jFEH3#8Tr@JbEAc@uSdtbaU z-rjiI-0+@w0yjz$cU2OlWYOk(a6=qf*0`zNmJM4Ha<;C^sEJ)J|HSL^&KLPz-si^N zyZqbm)^s_8_#0$wnIr&@@GVGs@LheO58sWoy~Fp#psj&V`E(FaSen>P&%sNak*$F| z@Np$2E=D-`{dbwsoeZ5l?AuWD2Xc31bnpfqQ!@+`DJywrFwXnxkhq|H+&zlz*^Q5) zfS&XWNja`Fr#*q$Av2G&{$NMkv>G=5dz0+~4^595pX* zV{6Iv7!{9z0elcCif(1N$`nm9Mf+>fB805byNH5NTKzh4xss9s($3mJbI!!g$n_mnODx@#GHsoHXQOB@wO8l zae^+h#^v?r`{=s2#zU8^4Ng%*8}}iutWVwx5HK$aF6;|AB$+gRfPJw zf>0xq?-qT-L5fU^nSr+S9-=AOfcGvF&>k)-`6iU@E$4c4Vr#a}o>P|Y9IQz){;Ulo zNb8weQ2NlXX__f!9SI#>Aest^2v=9Z4C;_CF!$*ragSLsQcPLYFJJ49I|&m&PI!m? zjC*WRLTK5BXTJCjGr8^y{|p4(V?-l#YAwF z=C+JD>Yao$1pQ{1k5*btzJ*OAKilNR7hpN>gXA?wM;&e`Ner3x5~om(AQo6?vA`D; z3$}7IE02W&d`>DyiU{toFK#}b>mL|3ig2fQD;lLiSRjorRK;Lr&@6Wt_Qm9t@+|6* zXIUq#QJYEW9}iu@5`w{VHOl!oUD#4AA4*JQv~I@uAzoqJix&CLbHGXejW`N-Bb0}fHhh+kB}`U6R{{@NxoaWudegZ6HulT zEUXM7D)^kB0=}H+NF0A4D}zE)_ZH}_3SH?f);K#LsGXWh_zdTlyH&K{z zu{M<(V~XYN3v^16R5VhB z;D~BIxA*vmpR>f6gEgUV@gmq@KLcWO-epGjY-!2N+GRh}e~^C5nPJj|k_; zO9&uJ;U@YsATM>Al@Yt-PN(L$v(~FO0Ws@Ait(=^5&;4LFfYssgy*xnloDcJ*t*SR zgcR+_P;GH6%#pYnxCWiK1dJrbD1OqZSX&T7ax(*B^EiV*;cdDUyQ%pXA`nF+3aDty@iigA6Zn`VqLy5_ITwrb3Gc~O>O-NHOEt3UtJ$31CxhDtGihz&yaF$jQ-qz6CaI~I z5r~l~aPK`sEshkUgjIXz6%K0))jvceID;@|nJex`tmxRw#Ngj7$cDi;@PN7%gbSij zDXB$>dZhu{_!DQqx8473W@i*boSgwMm4=@A?v5BOYRncmDJ1QS$wpBkRX7HjGG>&G z%#f{$)<>CVx}09f=4u6bIR8`91|c_T(#^aR9vaHTPmWA>lj|M0)AA-g`}B%%w&SNqp#@YN>4lX4H16724f zAj_Vb!x@tkg@1feZV_mDigK&mA4`Wo$0#bttBo9sWkAVV$-|KIagpQo#g>+y98Wzx zlN>+(XJ3wsrNc&!qmnUlTqYSK#{#UCV`=wArnQV3 zIc@>?v7!kTBFABAO5|AJ0s9Ilcv+#aOU->ZO3`54DTt0mM?0&+`$9mE)>wxngfxSV z8!jYnm9}XEjWz*A2O3gWTn8Epa6eY`%r5|M4Fu$fKH7_`t`J#ZwG+t;=}veJUCxH+xVz81EQ~l$5*}iD8$O`w-rpBq zdIb*nPVvwE`J3H2g`o2{z9^$bbg$Ie`R)rb8LiPXa-Gp(6=wQyp_wPgA zJCRa>wIMCx*GBBzqX`?p^J@N`%ss3s9gK=!m4mx)9FY8;!5$=?Ya-(a*dHINf7yFk}A=;CF(mgNqZ!nFjVv}c<2 zJ7(k%VYMhJpls$#1~ST&%x~KT(pmG@=l7_2P9tkJb8fbU0#hmU`%JS!(zH-4C1&_B z?73=w+n@>e7$L1d3U8y?0BFEL4dp0c$$|jM7RVP zH|7#}_i`-4pwk8iMW3~^Wz|RXb{YMaC>A1P30xb8ECO;fProw#=eHb8|7Xe=jVip5 z9gP30bl9RvSK>n&{b@DLZnk0VHTe4I=3w+XDl03SO)ueSxeE{QcTa{ID|`Sv0=RGd zOQy5?B>xV5mrfpczZX~3Y+>~sGfd>-h7to*Hc}((=y1F$@ctDME3$Dmn6n#uYo`_|JW(W*Etzbr^ z4w*^~xPmM!5RS%8>X2-8xhKk5mLMaj6rsRX?^^fmMt~D)Em&qr79upDI220-N)mhA-(3_>J15TzX59Qb3nKw5>G$dP#gm>9CHQPrz4` zi(?x{Tz3%uUUb7C%c1TkYJLLWx!qmkH~u=wpw4zsX}{ zr~Q;u@M38G0kI8ZYD)M~wN02A{3=v`AnS7m9WAqN<7$qI;@Is?EA_l>8Y0XG<4Ag5 z;Vx_thMCx}!3{9)MB|@x92f)C(fDu(yPeR3OYUBM16Q>HeMA=gaYJc~xmI~;VO|SU zE}3X}i*SR~BDx&RHY}Dqcj}75`m_~=RJa-l6Fm$C1I{sPQgj6}GzDVJ&r3rb_liyU zrPK+as=!woV}^pmA>Q)XJmVPHB@O5lAQHj~<0GShb5w)37RXx?)|{tC9gD#tG|}x+ zG7+)m>EnqA?J0E|W6ah2W}sEwQW6zvoWMe;p!K|Hu=J(*IBLvnt^? zkX6he?G0o=I)XUt@4(iW>O2t%5m_wIs(6bDB2wMcI5~<6fKfUq$}SvE;0<90ENG)| zAxlMG3U*YuWP#kdQ?IKB?f>0d#-u+C$@m!VRv|h0Bq1A^9EB&9~w>ciNc@8_nf}(Q?nBkz>d|3H+Ap823g5sJT>`E zwpB2C*v3f*qO)Dm<^8}Nn@TpVfD!>kXuH?`*uympX32#q`%8Ocm6uC z&P(v~0{r5P%v+$w{YvVcx;5><2sRr%Jnd*C1LjB)p34N zR)Hc|4{9TJWOq0=sdxT$ z2ibowHWQ2>9;lg{uUkqqiMfngm5B39?wNdgCjuza+M#*2uJ(AK_QpW%bzbck^sF6XWNK$mkkOp` z@3p|@Qx=;&@cAnF68NP5;)Q9p(EE~RzxSieHG4n8T<5z_Js#+N*v+1^V^%algF#CR zmKG_g*eXj8O9G8u z9BAw!ud%As#(vdHV=43_3%l=s2Ey;+6P_%AUts()GOtth+t0}ab!%p$7#g#Kk5ND= zmHa{H&5wf$i2+YZ5?;V$%Q{adyFH!vfm8*_rH@|*oyYC4VoGg5a54?1IUNk<7XFyA zuP~L+b#@6P=C!0M>-DQHTflp&2TUXnnJw$GogNDk)YE0`yTJt`8AMI0PK%`IG@0x+ zk3o+y>t6CH2*8sQ@UH&@p`7rE=SB>y5Z0VBlrFJP`1FCkyZ$`NCOwhjUOoX|4F#y$ z8iy%ETmK9)b{25VZ^T1ezqzYMND7*$AB8uTulaIQ*YBmtl=ebXhNyo8Zp0*phx>d>=9#IBEfV4N-I|s5>y{EUIXnbi?w{u#H(kGs1eDvQm4pw{ zfIFBLG#Q~ox5+?XH)xO=H4t$!R!v-3ylIu%pKQJltz$^0LswPL`lxL1r2_IET5H~ldiwG()eJX(H(7j2n;ZV32%Geeju)GD&7b!bc6x*fa=uqQ$M#-EZ z^?%2j6MQ7P@e!P3%fVN9bonAYnFaKP8ivb5;qT+BRNTvDuL5U?MKpksEP+8glP%YR zDqV0y*@3MYaPhr6qi%op0vNN?^ql!VD~rAfWzBYbw!qATJaDIw)LS5TWL1ES5~rJK zkp^9pz=*EULD_4%vX@8Rx%!buSw{92ItOEO)pYKLoT@ipBiWU9$R8C`F62-z@^dAomxOk*Jup8P;jCO-r z`;!K!6JB+IcV>6{VZQzzgc^j4+}n~=oCw-<%_GNZI7iRJLu2@W3kHac6|%35{8k!5 z;~ZSwex6`(1OTV8Ov-YG7_MBGV|T9s(rTs zhES0g+ecHH&X8R%b?w{ zfB8Ps#l3rUk?+|qvaVRsgT?7x+;!`_I3?_L@z;m=U3?K}(=Hy5W2<{~vEm@Fi=p|s z3;^#06%37!qxxac?Ea6XxK1zsU7&mlu8aQKar9N5u6cbL)BttOP=@iLYbrA6nkO2J zuK6~XU>IFfMaJ7IUGuv?_o{2&$H%2uD=IWIA=AiKh^_j%rbX@qbxpajo>?!kMO`z4 zPX~3)Eqf??WU&D3k&TpR6)1aj2+{4qjp1GIHSE#7ce(`dJD9Q7742V?j%nh4D|OAreLPHmd7zK! zpP~lE^jw@a-2>CF%VtQ$w6AN1zNyRY^mu@%U5w$1U2I~C^AGMeU7WLLdKdYg z?IP=n75!v*dKd3Ur?;|;`}$oB1-f`CYS1pOkQ1iT4A+0fp^z@7>ymBOH9!63sOLkC z4@k#{oO!#^H46nH9YIY~FSlSjp#tFc8Q-o=@L_CRyUB=;Z4Dj_omE2A9mrUZ2f72E zgmHfg-TiM@uM4FQ; zIelXzTF9S;wNY;NqYUIC*B28sbfgg(o0V+Ck|nspUw@j?+~+16Y!2@YkoT~X zJ1g15_v*U`${nn2&q`jeceV>PT#l=*hf%uyt-IlGcJ=Rg9cmcO`@G(vI)=YHRzHEi zJ5~Q9`D=8-z4UDiA6~%Z1}Y2u{PBatGiA3*{hBH}Xb^4&SBn5+0y&0Pb^hfeUOBVG zaB@Hsn1As`)$Yl%^^Wd0h+W2IEPe&Ev;x)eA7i4}ZQl_eu6XN@B%wGr=aSZD-G8mB zET3;oRXXI%6lkD_RL(!}24x;j&LxmZkdb+XECAT zBU0quX*YK|m;!UHOy%s>Q~9!UF;F6C`|S=u+kG>LHZziGl2@#mHJJiYz>>j8Q7Y^1 z6KZ^1M;hneYOMc;oPhPOqcB`NpJnjLed}K+cf|U0Gz{T&MHzTQRUAUr6ImSIv`af!?#~q8LO>#m^$M7m*`x13 z6AxMuoew&R;xY!yOoM@KvkDSzWBC<^*c- zn`HQ5pBwP+6Rjf0c4nRI-G)9m;o-Y`25jhlz5#1QwWLFi+x2g2!0wL5?XYAoap4q* z31T&oRNx=exp-y5zx zddCc0$yY5`vbtE&!l4P{GNUa>4q9N?up!brr8Gd5!aRHyB<%dBoYnvsfMO!G&q|cJM{qJw7E%NQK7EDqjSLvjM&^p|fq{i!_~wzA0aDPo~k^ z<6_DeGL{Bka0Kl01tS?`S#i=3|G3le#opUz;0wNL`GVEOital)17GY2X8AFEF<~c< zFDmx%`C?vy<%@k^%fJ_-kT*2rk@u01IIfTW>qZsV! z>Eq5@wn`s6oB%!2=;T+#=V{1`q3*7~LMQ)E)Zs!%TRtyPE?*A9G~>B+G#pw8`_%2h zr;ea6ot4~yPkFk3V(^I%;aua1Wt_%<|J7f4yMUMkZx8Ez_s8(|9ou`n-LR|A+nu0_TH=#eW#H{A#fu8? zcDnUz2w1;bT&I`+G*Et0hVtw{`FB_y41y-#?&)tEhzKO{0Y6O{;|ERilL88OHZFtAy|P zIAE8HrTO51qD<}t?Q%C+3H7aIO8MDFyBuYWLAyNe*UF<+tPng}i`4gTpqpNrEdGt6`t33Lrjto4yOgxDIk8&^v zI;MXvnREPDcj+GTZ}1O%M}%=O{G;h?m+nC)F{Ns2G$!oLO&U2YV*yZDjx+*d z6m}{KuWmLdJhyKK6!KMzLRJ?mdM`f%3Zua5j}i0P13VP|d1oJmUktV=yx_$QD7;Pl zkRS@71c|L|-%T|^uxVs7$b$sIW|&OGt*GU6oqvF|1Vga8O8VmAbB9`G$yOo*_*{VW zC=Z`Gf})u^d*+1034_o6eKO#auUdSvx>(U~56ghhZXo%`;Iq8HhtJVF`S`pC)hbJF z_d*7I9wSan5T8!?(L&t<>K>ovbq6s{8cE^1cs?)5im{^S4n+YrE#dz_y^! zd<|qGW|7bF3hQ7JD`7NIj$MNGRpV7-vVoVnHMzhXLxcK{{S{vcX_J)jP9?6GR++TcD=9N~%1v6~l@yvg z#U_n1b;76M19>vCyF#`SKvc9lGR{F0DgLeX?jur%&Tr()wZxeb0+x)1s|Nf=y?fEj z*1K1ig5jzY-lJjR*2#qN?xjiSGCy1;PBq4X#e62p9uo&#BPKZEf?|FPiYP-c3cKRT zT0FS7;Zm<(%2vw%8ogJJ5d?owV+4V8=Fmc@DUVc zsPJ|&5pZ$Tp@t#OlQkC9ogjNT6{rx%_!IJ;^(TZ*#-G@wsaLX}@~)B{6{e8gY+F$f z&AJFBKi3PUlHaTf0igrr=MItjjfl1$$bNVyYM0BBDd_*;f*_5aW1-x8Wr00p?Ig8@ zszWl(W>byX#DySQg)pGq4Gu0aMe&t->{O0ya7;aRiWSF-o<5L#6Xq#lLA>A5L|5E$ z2(inxUhY%yUy@_QOCNIAvAt{yzhwvAh6lAv970+Oxk*`1a8fm3q1N6cWeZ#VMnreG zJ#cGLHUF$Fp-MCix>n3ufhy533JSj8H=3xDqAjE9_6Si0#ycWePRH8A$~|yNlB0Ob z8Pa%6FIcJEz89=06c)f{8M-7dry{Q3xLv66L;C6znfi_WLyhZ%5mcD6q-QEj*?OH% z!OD^AX4T8UfaqmlKt#&J06q_DRkmT4T*E9V{QIQjB;NA*B1%{jMWyx=lp+bP#_P_q&gn#{a zYFRrs!_PyAH!3MM>{1ALzcAX6PFSws`i)w+tzlSC(+w}A>80_lYJ>F4X} zt5JjM>Qzgv&lFg$^!+Bi30e2$qVCkvmyc}X*G&-_=po;_nHpna5=lL z-{1#O9MWLavFEJQZ^b-V1n*_JM?S|EjW&%5D;jMYG(PUKHaH-985uSD_ z^JV8^Q4jo&3aph=z-wjI91zdc3IG0d69XPDClfJf4f|NhLRk;86W<5f+5nS!dh1T$ z9huab$hC4qcKbs4)LkJ+f+Hhu)10;OSqI0rL433Z-u(;i;^cBTbb(r)Uu$Zq?@`M{ zsbx-uAR$;$sa8~wQc=CF=%gMM?Wq-s3QK|LtK$WtXi7zY8fGB+LY$~zzy5*eqs|;P zCqam2X+;$&75&^+G+QddSrUREexLi7Qqind8LG&nMOry?27-{3p%$izhg5MK zi8T)f^P-FDC*!!+P{TLJ;+cA|Pj0l1Oa#_&|M?zkUubGKodo`J4D>`NHzG*&MzEwU z*&jWNH3FmhNtHWV2qG{V!7OjAXw^P~!l*nmbvDcBrXES}vkJuIk9CW10bZ#VT@fL} z`3ZOg3w?iD=m$pMMujG*>U_<&v48PU9nZ_S6&1IDDF&fPu~R540%Ob63IBPrQJ4*1 zdI}Ta9uX1juaJk~J3*FN9pazt0X|%VfgF0J&kd;E*Q(7UNfx=A(j#ybSruqW>4_75 z=POT(uG+X8o}it;_d!viYEkD|t3~gR#_iB+!Ft}*=9AT8kGM7cpD-@b#5LGmhHdYU zwW7P*|#pF&fidG>Ujz|qt zM$vGNU66q`gKjbw>yr4HVV3Zx$}F9vG%8t*)L)=CgXo|rDO##-GR$&;>|royvCP6( zt$}5Av7!(5%D^mVf*NXL!7S#xVi}>Ip3W?fuk)DYfek*htl!%*OU2(aFiWC4oms#+ zLgy64bNSJL-kGJUc=M!uq_$U5-tuyQlvy&;3I;@T9Bv>`~!v%8d( z<%X0MDWsfjNZG2Syua3vviUQ`8Q9;-^IUTfsLDO7ixus&X9iNnK;Ium%8$PANcq;c zJ}Hkzg(~;IehaAXfojI9-CKZpX<)egL;)OC!l>!BWXUCp`@cNXFmd|s$nk~tD9kAs-7-g>w~xtMjc zuLatmO!6Jn?qZ905XW4yC|IGJeUy;g_Jk*qQ<{i!e{xP}K88DqstES%!3KN|Q{?&S zrKqzLbuw*{6o=!Pbhe~emuk{hq{U4O^VXVl0a9-E>o#edq|gssV}SbFB|kSWTk;q} zGjFMxxYN}>uazXx%_Q#H&v)OA8G&egjuhhSXZWu7gii}Ox^iIRq+XgGjI8N~?zozM zHb{0VzBr8oV5+4Vf{*wKhI~Z_vteu!5&(cq0|+}rU0EdvY|g7-3Ir0FmADQ~*_B`< z_CYlmU4MPh)>MO`pjT5Lzoxdqta}OU@_wjoK&Wx{HrLkIuWf?X2LFb&g+q-OZF6ln zvB36nFTPyA1UzyCT>ss%u1EGXZ48C(7)9FEZ`>u+C?Az^!nYn}jPSruDDFZ98%?pH z6B{arhzO=Pr<CITe)IW&j&{Yk+W3;mAVz{Ydy^?6Gjg|7}5z)#Ig}{|0($bIsaZ&_n}r3ySTb zfRx@tC;WYvr{~wL^Y#4cXi)Y1BTrgA-{|{yo#I{?Juj2mXt7-MvpK&&#+2{lPN~yK z(`ghXr*E9_;3ExJ#o)b#=3`C(j3Z&u2hnvLc2y08&m$Rv|)&R?*8ae#UH&oS^vd3{O#AI*ja+?ktY(QnBAXfD5PVCZ7(YW9& z*@dVjtQ+yCb169W#Qj*D5PgG=J*!ME!jt&^`X6})CAXJCbA-%C_nh$k8}!&4_j$8Z zLwLVXq-aZ;g5wM7_{}=x3)**p#WSlGAocltwng+o(3@+OJL1hvq-MZzRKf@N@Fmk; z9P_!UngHf)wrB!wl{Sv~$Z@I(YANdwz8KPcphfB1&5i=7ES5Uq*RL^};2$4k@aFic zb<9~^tmw=gGk9}PfKWfoo6B`QDc^amFXiJ=p-TDk$E}nHMsZ)R;mv?IH}q>9(_X)R z`;gOxj*d=T4i335F9zWqofwCiH%#!z^?8`3!-7>@mn5zRvtn$DYZ=xwzk)ZT!(I*D zz7iKD@s5&3-KUf+a*Im(@DgU~_2{Bar$p;N-j3fv?Xw|T|NeIT0Mqg|*d`o|*~#Mw zQF|?FWb2iZLbQ;M9@aUj>P%-)e;mTb(-yJxf6~~OyQ1-AX#QKM2nM=SsD4lsr)%Pq zPWbTq@+F`YVJn_AB)aN-JR9A92@hq%$?oiGvz!#*$?#uSgFeY9j@lafR@aO8-{Kx| zvuti?>$;E5NT1{pJcp}(Gt*)+6;eX3N7a>5A{k#@K;sI}Hs`hTop{2^N{3|Y^(ZiWP6F9j z(Zktds?L&E%%NeXF36=o8lTfGP2f}1Qp21q5l5&;si9J9kN`bgzaTUWX6P$9<`wBi zTt9=0Qua4ibg0(w2huM-M~}Bd_gPa$qc0`Ei8YBWd=mL|qu<5~{ln5~j`LJ_Lc0Xx zR&zk$ra;M?J17SX#_3wgJp6$kC0PEP^xfDZn>-%@5tOjYen}%s_;qxYP&@g$cLGah ziLOnKQ#HGLsBxN1ql7O$gNhPSlFL^I6pPFYI9p&msHMoIy*gq)UqVMrkHRJ2h?*@H zk_6{@%j8Z_%@zx0u^^49S*Pm%vYln9N$gHKrZv|^D>z%c}Zd2Bh z>MUz@^kA*kJy?s7%UFi#HnCP`I%_RHPg$#yd_ngaDS}MKf-ex&1{snLhxh!YVXg1X zc9LvDVOfi>TGnE9v7>46L=b{|{xY^H+PUb*AgH*4?O3E%<dOb zmMm4t>i0tBQ{;2=qI3>`{}$k$KO(l6_mJx3048}QZ`Oza))qcTJHZrR5^$cx#yxgo zEpJH3X8>u!!-_F83x`4M1JYb!pt*UXwBvL0BEm>Kl3+Go-7;F5pYzbN=p!F3pF)*v z7A;XB&X&<)!RN<}&9&{Tt_WxWh{^A01kjUi(~~R_5^H_$%$KZw7B-P6WX_I!ZYYJJ zERZ`U%3>EhNF8R>!+Np)mz#QY7XMO4@Z)xH@)mZ>>M8^${OoSMj8E=OZtM6&K{GJx zXd_m1iU7j#344|tq1KbvzKuLxcJS&O-uPs1JSpRoe#!sRT2jq5mdjcF;Rn8^<%8WE z@!D33iIs@Li<_S>NQ<~L z^u)S?_HxMGs?@s4{Sc}wRCxlpMu#Px>>yZcwRALGe2GzNhncM=DN2p6TBXM7Vny@5 z$9ziq#aMd_cLhN4}B3fzMGGbpt&;_0L)HTZDs5auHj_<*>4 zyJ~J;0aOM*D}@71j528j9vH8SNWPu=LvHc=QZ=8G$DiZlE+2zw2{p_h5}k#4GqN%5 zc*u)iir9(Dad56aZnCfg0~0r!g--afEVKOTwbxV;0--a#RY+w9`vro1tjJ=xZF7^T zWMh3WeB&j(vfIN?E4vl5ttJu;oEBwfnqv6s;=jnE{x-PwSl3= zhlwG(NDH$x(lO`aUKeW}cSK+XlBg~~nNKK1_dw6JvDU<$#UdVaqLL)an0WdNE4H-2 zMr}5)zp}q0uO4V3H9}LkvO>H8?QCh&;^g|2xGHxN8(HTE~jtsn6GdF^YpU%gExO4Dk6tX9iPj#sS~!7=*8k`tcxrO|2^yb@qP zo&B6?R&*gcY1prgV$d7=>4V{mPU)5Xj(94d?G_La5LQO7Z6;GlDz}@AaOvzIm$n)% zm75v4R7wI|DsS}QQg9I45aVycwFlg#+Ay0(AV=1RtjE}San<8y=^pdstEd?1=WJ)5oWf?-XoWt?q`LyXANVQy`47C!5uF zY6I=W0_`+OZPxdc)$ve}rirLL2nA{KWhSpLAqvjCgZ{|U0 zv+XnHc|63JE^Wf6FW^GD*ImWH6{ELYJ&6VKAK)&OkV0tJa;$-Cki1Ca4hM%CC#bAE zcY%?WPh}^EnHZWT$c5bz+RilR1Z>Hlf}zXj3s_(M^IkR0BAlX2rWDp|qO2n$nr52G zh^CogGR5q9KE)P~MVTp(jJcUn)5zm^(#oN{fqbexL=V|UP}9`>k7}CPMz~v%7J%aF zcew^3Yqg*4ZB&@>h#bb4`qTyd{M$_E=bw*92&0(~}=F&8c1;zGI zo=NYa6aMfePt&~lhOcRkLWAm?O}{IHrg>J}o)k@kXdR)j_MKQi6ihY^q)3@P-$RBH znAV-}IvDPw55;$X4Nm(Zp~k;_0_P0h$NSWnx7vRN%v*)2UQ%=zO*?bIvzRchd7pxfG`3tCs0lU94#Nmz!a_!~dI+>9o0KZ7z-JEGU-g z1f=vHI^n7pJ*K<-b)V^;UT2x^fIntnx--PtNntun7YbL1JyG+;D1b3gW`JOg7uBlT z6Y&m#Xn6zRtv2>V?hk`KIZI;ora&mMhE(IJAeSSX#0oqKIdJNFX*Di2Qa1CZnYcOKj zAt-B!J4JmZ<`fDGCW@JOzVt~j)KVbdBF2mtsuOS7c27;mYTky57F!F`v4*Aq^Lrmz zpFzHgkUBFt`;Be&kp+;rfzbNMqt=20#Ybj8lIN(8%xm9A9{n;oBF#r0Ym=?} zk(?uf)>p27kM#}e#i@_5A)uYEin0+@Q>X-9)6*#1I{CESWj=n+I6 zGwZ(ju|atL5T4gXMofgCFxL@WKWeV?-OJ7~2X2BpZvc1R!0|LB4ZO4B1Ea@VmlG)C zJTw{Bl@!94y|sE=9}KS>+N&OKcsQWPbB(qZ=OJP;qQ~=1rkMVMOEv*~QD)Xk#@x)P z$K`Q6X|TzujXGO8OG(B!Xu|1S$(tC*g4=X%9{^yr`J^sa~R*zqB zX9hifn>a&hdc28HsK4GRq)|P-TCZhX;PM)PQcLqksh4s9W=9C}E^%neRnyy%0^-Lt zZ&S141GIcV4iWo+^hSKAit(Ly{?7Q$Jjw884sWjDO*B@(I1U0M)mSiVny6n=AtVbn zry*RnoV*c&M=@hHy$r#_M<4Es*%9VC0x>(xT<5zR&+^6WdWhNe5VI?Ua{cqr5_*6Y zlWYa&z`>YcaaPaIgZy!ytqje~77>`!DoJ7i6VIG5v@8WyiEchLbM+^l;#`@cIAick zk_%LEUiMutiu3eU+p0JfGy}6$oF62ufnm>VXqnf(;#?!&Sxz%BHnhAoG(0okr{U@5 znlwDkT<5#Pe%6zQPcXJ)Lu^|?!&mp-N*YS6IWebQY1q+&hElL)8b0KDG~AA$#;x&N zh%Kc`Iw-K9(0Mk@W3Xxz>S*?$bGYL?LrTvmGVGk3Y{T-8j$uXMz zM3erSe6T{w9?`_nU-)wED?c^si5v)SRBGBzW{x)frqw8_E)as@`$=MGLVJ+FM~u5ZF5g}>`N>J zQ<}Hp7O^5uod3w~c!bD^qL@EUmgma_B6>0o2C)m}T`YegBgJ>ZIKrIh4Qge(gC*3m zP)p5p3;LN;w_ZP(@E5V~L(U$H$){nThZ;{NtoS~zN+G|6UB@TbFw`Pk6`ry1OL0AL zOuk)4$-@ih%I*p`dj!u>nXacoB@hWzmIXcpK1@5Bv_Mi5zr**e8z;$7bq~CuRhbZ_ z9Ui(byt@V(1EFMD?mLQ48{EK&L!05752Cd+G5JLJdXp_Df)e3tO}0X^kQk=)#d(kf zX@lK&X6qd8Vr*vajvD#_PI|b9ZzuM=SCa5wOkG@p!tEDkof9x$$zBb6DdgNM)&D=* zz6Cz2;%q+=0#SsGC>qh#MWO~ZGze&-rbY?4(M8ijZB)QmFAW!Ilmt_Yx-ki6yID*v z{Y0fURa&W{rCtyfZ7^KDVy%i&6}7f!4O-NqL8|#b&->1tb2b;$e*bTOkaL@PXXd@n zJ2#F5E~Y(+?KDgnf6Ju?!C-dA z$aih`LDphJFcBnRwa{*n0ZWlYaLJQye;~2mlm2(!vHgLwZqgd09364>)A}->M@Q(6 zj^TvaL?nSBNkIV|+R4DgIbhz&5d3qpaK(R>HyOoke1&L81b_J*#maJn6>3|%?awrB zgv9+FBPYr5o3Q{Ap)I|AS$uW>zi{yz&uUWG31UqD561!vCIXd%~Hfp~tQ6-cZr6 zhWrE+EqeT|?hVaBHNRm)Z+pUR=%RM7q3;5D+R$)gFAbg7<~9^3R?3ltl*u9NI&pNq zaSpsTSnJDiaWa~h6BCO)T)GDT>R&n>?+5oBIM6QWQ1SckgpbMm#0MOnR zT5-l3`H!|r@eLCufH!YK55^sdggPGm| zEbNs0B`nJ-F8XBnLhY6OHRkW40&lK%dG{}E9`7Clz{)X`iwkwdJluD)LEG+uSLjO~Y|u)!MhXxQKp^C*@P z-p6)8Kv27WqvI_7y?P)HUWt{360M~2L_CAZ!m+oV-234N-HS@n8f_KK;GWzoG>l5a%q@qt6Et>U4cT)Xzn~zjn#o>}_u}dnH zWl1%aF0dM!v~J^TRq_%F7A$2CV2(T33?CV_=Taam(|gQE0je&P$|tz(`l!04d%h)6}zbU-GV!EF;~Fdwy-w%fMS>t{ZROn%C{#GR|9 zO0t>A_~qD4dqSc0`RZOnigZ<35y10@-ob;%tvu9l49_~16lh~1baW3zEzK`uO(#x{i$<4^kO z2viwr3FvWdx(Ap6_ol(ArVRm2$;I8C+SfCaKSgoLW4yel1em zvYe=V$I=h^uG8IQiL*ST11ss9#hWexU6)9DXcGC3iN|;*g=*0rvioxL95v4?&2y7^ zX5h0l{s4>RWa_}8=}@amME3FsLYz}vshyiJ8fjjO+QsWC^IXeoJlJ%Qs&>g857wDS z^>BmNnn%LYQu0mq0&^|KwKQ=j@xmq3@|mIDUOeMOaL`FA#iW1&qGoZq`h*1#nS_k& z00NlbJv9EPza!XyOlmu-*~P~0rkHbiF7yB#a5=ve4miXomvR9W-V3+0Pp0zA)d_-G z^oQgM2I3V*tRqxj_;TQ;KguH*P_ECWE(}*xv+fvlS6O6y1etgqJRyr-cSXa-IVhkvxzUXDwhojnFpa_E*_Ni z()b#mGtD(ilG%1FwM)E@xm6=x!1%U@Jk5OGt41>u{n=7+A`#3N5|w(SL4PiXD^T)V zIEH=$CY^2sgL0%j?bGn@{v)*)Q6%ZmlnV0z)&o?j7@^`p8Ug<##0NHlW&zBpc93}I zeORz|QEu1E5jcs(j3I?1;Nmi}ayco{R zUHX0#)P-N~)!qF`7o!8jEw8!K9xPdq3S+_mo+Ge=#5J!4^8MxT+V`+t65$R$V*jyU z+YlSZpd<{F!r4=6`{L}gx0ACGPonh$+CYqOoFRpHHEDndnv{nKnq1MRlq;eXa)qDB ztCi|R-ZPuv*g_5&Z-j7)G3D|`(!ohQ#yGjR*_CW~C<2d`sGM6hpz0yn5B>H?M!(k4usI**zbvDt4W@)ZWR67RoCntS2W_U&9|^vD zBdi4Ov!g}FquyyXm*M3re3=N&zmk5O$;tWtPPH%R5-;b+FEHnU$Qj4W4H*yOc^^Rv zG-xf;3FW{#&L=A|ANozazAEMQHok6l#$636+~AL#k{UheAydWccjSlT7lgu%+o}gs zvJ1k6r`CXXM^dLS7==G!Hm!gWg^rquXwl++j4GQJft}gPtYwGe9kBrfWgnt1XTQKL zTqxss$>IAnXVY*v!!S(MJWDur2X1FggkGB$Af~{BN5jBDe!DZ{DzvH)J|V#9@3L@w z|D(|{f}fA`z2}p+SX1ao)Qwx(RA0bn2#OWAOk{L^a1_K1q6B$LNjx%K-(RHyIY4FS zxj*kfLZL9)FO)DNA02@mH{KGpNQ2T}h8YsU+0XT)e|DerS1$$RcP>3g8Np~g zwBFAMKllk6l#d2=!}n@!Pd6SwfSB)l;e*Mc-uYlgcRqNyjeJ05naVIHFd>wup@w>D z!eXBsNzk-(V7*k%dDe2yZFUr`0!?wEbJ3{dNhR;st$lZE`@m0AUHdn@H+~9(kE&4F zGjaVs_-RwkC9EWvhpvcp;ALi5ge*pJ1G5RoWjmWU`l4OfPj?PWnvUQ)xVJQp-HTFr zmu%L9;U2jXO)2h4pA}mFZ_jTzU1XzFeUtWpU*8NP=tOYO<{tc3ez3=H=%G~~gM;Us z!{7xt9~o@}ei7WHFd0rQf7RJB2Msydqe(Y<-0^ko0R#B7=8Ug;w&L0uLA1u<_SN-n#>DS+`{&#-a zv;JS)>!$+y-l$g1rXE!I%Ry3q>>OEOD}V8iVHP*GVQo`S~& zf9J5?^^~X|@#558(a2_r`k5y=_O5<@S~LOwM)5;1UY;4B$@EydT#ocJCB5Jy zyM>r?2bAsle zKA2&kYRgTFn{p;YgKY*^*P|&$*8|U-b3kk01f_fw==7@u?q;Omjy3n_nLwlmpEaJE zU=OBlhjfn-!wN|kO^-OjP(}4rsDN8$t2alWI$<~*JF8XU5oeHUUyj2EctoO&;NEW+nzx&|K5L_4`qcn!fYmd~Ml)-(}Z zzs>>zcM%m?&L@9x0dcZ}g%XvF28sj;(O&5ro6xBAT?rLMwjwclnG9kvn_}Ed(EumG zl)|^hMD=D#PnS>z`wI~1z;T4(_)kH(tH4y>0}f`Q5r$6KSy=~0cx@BNYfRLAjhQ%s zo&V&$nIeg9VVabI9R=n63Z1ZvFx_@OC+woIR7~p#E#0rn*lCQTm(Qp*c;^jX4-Lm& z=XE%D>Os$ZIY32#)Rj`imyyDaf%?nQ3&#F{{jfh^(}7Lrq&H32hZ8sRSsO$*1^=-< z99gL!D@nIuI`>=M`vIOGxD5>7cO8UMb8_-oizsVTxIR$-SC-Yi3da8~hB)VjyV_h@ zG*@#HNg{aQ1!fY^~|t z*u;P&B^CP(KW#(z<9=)mQpXCM>w+D-32hDlU38az2zNyB0i0_;oM}HKPk|c2H{VGz z$GG1PPiD2iGJ(R`z-?_?SX-<^ctiBL(;31a)Tlggr{QNEj90I$x0g-hfmq$C7c z*Zr0yA&83P)JSv4s0V8|R0}iGLhEkT7{h*n40kHNbtVA&5W1pi2 za-sRq(YOktr5@SN&T0MdDBH8sdq)M~1W_ZPDOEZN;SJ`1v4AbzB0HQl@c2WGYg90C zB|{n?1R6?M%lL2!a0Gs}Hi|h|jf1)+rE#jjZ1;&{+Ms8u`-kIKW=0YjKb>%h=$*#D zNc9kEcSnoQRsH^;d{9PVHwp;C;Wc=P<)VT51aD-?DCYA~&LEYf<=P7kemiB=urvab zA;gKA;=FhDKBzEhsLD(z+k6bg2V{=|COJwt8_&X(c;3nPcy2M@J9({Jw+R>5p<3pA z{vFC0BfL2s~_H3crFLzw`H$#+mL=45vK9jC~*@qVA=t(4gN z1(Nf7z5M24$mlFcD~dBePd+6+DErUV?|@&oCO1%IE;$Qb;Bc<^qy6(1=08*`sUj)0~$PEm+=m8^KK6A2I@hI5K(XbMnR zm^X#Efm0}KPtYcJrkgvV7@o%Z4)Ejklmd!xZ1HhtfxVaJ- zAadCRB)Hx0Zr$( z!~TW~^o3&aQB{+=DD8MA3tM`Ejfp=T$Ci@Ok0nSku_U>Pr7++ZLqAL`CYnG}K~uIt zQ%KNsGV=7c#=PZxDhv!(ZM@^dE)F#-rwjm3=!dgHtHV{9ZOdi=m zs?O%;x0fwj7Ky<&p&9Q4>YtMj;&_%c9auuwbILxb8^(&tK?piX<)BQN+}rvIkEpBI zNBxkcRXbzRPFV7hXT9AfLAT3TuO7h zlQ>R1nuU6~K`*s>xk@jy^m3_QrpX2K>TaZ_2eHXsna=xgEc&8&axyjXNX>t^UWVyq zh=s-@R-H6`xqFn<=@Y$l$OQ%7!TEJ>UH~;#?(?!d{hcVuX;FRkiR!DJBnY@rIwCj_ zB$I?i=Sggi?7aW9=qI&uw3>>9YBf<+@eA_-wgBZr#I^i`6#`{4f<3)W&Xo!UwKQIRN=_;V zF^MtMhQh_FY*2-yfXr5B#%VK)oLdFxg%E->!R50c?^=aM%}K67p9`~Jd?~&Z*zkQQ zwVGlpQh?9T1}n~j*zSr@y^r;$0Ka1R^i1&U_k~|YD@9`M)H2~PD^35R@U=kwF4ag1 z_>EFd)IPWr-XCbQnlm&QQ@wM2sGJL zE(|wSwU?@AJp!v{>=Rfub00zr23B2&he|&52G31d?N8Yo%nQ;1CLLhr_fjqQ<2?J( z#flp@b3dgvhaoi=q?;>(mFQc6)Ck6VIGJX<+(Wdvi>@ONm!Vre{oZu2vTG3;kh z8ULyz=XCmYZAd9v0r$e{V*l_UypD$~XLw&A+UUBRUeF$Be3wv=X}J%Yu)l>y*h@?%XaS9(xUk#I7lCaXB(QCRa-EpK zX6PP>$;Z&y^_C_s;_>o2`_e^ucXoEtjuyqYJ4f}OUOM#hcfGu+msj=jqFmtXo=n}i zb}Dq^4oo>jo!wuGe(Y5JIF*X9ZbuUm!D0R2v(bXfD%}6W+}Gm%UAZ@|Jm$xba(m>J zk9j@v%N}v3Y;c~ZkO5t#5G&yP8cCn-K;lN_OgJ>E#P_QV&;qwX!R*y1MpA*Xmlb* z*4qP1$$XqJfHAPAolzr*1S~k@Mw!lG^5h)!J+!`;{#dv6kEE#9?|?koJ~exSwm*%o zn=|_bZH_Qmh0ujeQpqNU$aqyg2~^P#IiOTPb5~Cf$Iz*dm&^24_63mzNH$!HC{M8P zXI{)4Qphwm7~%w{f^ia}dj~1L5q==Poe2eOH9G8B5{+M+tD{_H%!~bvNT%T1*Y*v$ zeM(=DlP3#g1i3|r*RQK>ch;W=bh6{$4Sy32{xsf28-nSUv>v!T#!A2+jLKC{Eg){y zG5~SxR7*caIzm&aP__`kpfOI`*}!aY!jS}{>+F!cB!JK%XK(r=3a4~2nWC(?sXC{e zf5H^l3;3thQ%xwfZyU5+3IdLupFEW=-F+^Pt3HlIDrS&{&7$oLo3?2Pz%-EPQJo^% zrM@joj-fEEXl5*w?ZmWQKxxA22E7P!m=~URF8TJ-bAe&*Gmh`RUpIXJMDY!cEp;Qa zqF%~0xD)otat^^>@~mVwm-#i0VV=FF|NKt!IOQJ7Q6e0g^K(=LsK*h>|KMHh1Somh z46mg7f9ualNyz5c5dXk)L6mJVV{J{5oRh((y#R=ys!}wAD<`LvUp+F6-XG$N^AE&~ zR30i&|6Tww8;ql^D`kEHs5 zl(y7!uo5RZ1Qv0yqO^W@X5hvn$xs{H;Ff_qy6|G4yjZI*I@7Mlus7s&VG;=ft6(|6 z1`D|iP`d#&^GfTVhTm&61N$h?BSZStQ^Q@)hPz-Gzi04&@30Y^!CA@K?R&RIO{7I+>gA?SM zv4K@sgO;S`i9NfegPpNhJFhqe`o)6RYf!eFg8?-VMGF-2qr(OAO1=C+FL&u>k6!*Q z7qP!i)7fC4cJ#mjAVr?%kAdw$C^-1Q{d9#uT+AaKGy=D@JimR9M+OIH{Z0MHY?PhV z?wkr>9n>EBOMw?ycqjXW^*hR)aYJzvhvfkWg-Lm+Oqo*4*mFEMOn{yP7o+6&a4`an z7f8lVoV*q09c`9~dLr-Ibqv)r!UoI2>Ah*rHJGzuJSxDXrU`}Pd26?gPHUQ;9xdAW zI|2DAJDT;K{m|dwoe$(8Yy2QlUYe5wkQPv_0K%|h-dx;qZW5i3>qofzab#@Rk4QqJ zoE4xhnXPdi%fR~4fxdZbI9V&rId1v@QHCL?j+2q%-XYynY<*?7cxONiEiKBz0v!eS z{65_i-`7jxZK7fG+TIwAlBVw?T6ZJfVMCac0c#CECxU;f;Y1n`8FAe)e@jwV7|~GxLGI z%$Tbd58lFz_Kbz&(Z2N0$Q1@Z2-~MQ7k@><$UF#|6G%ldm0KSxJat`pd&dKC2xawOzvO7>bBst~sd#_oYUh8j;x(CsO6R5(xafG5{aVYfas4_E z7ZmjVR)1w%oJSB!lX6;|d+qI*ZOPMR+ZZ|1COH=Oc=aBJL(DNZ$=5iLdF>=0KHW_Fga_J4M`*eVsDI+0ag-^$_7ddY>~(% zgQ@W^NT)M3+?K!sTb%g_IwFq5>cFrciWD^$VMatQq^Fb*=ThCrOVRXZGafM^i$Os8 zP*5oYYt9PC(D^VLs`FvLI^mjF=anmbb7tMb@dbtN&h-kXKUyKJqGes`9ft|~pEb?- zs-6O>Nbd?XuGk;N?=8pC&U2|ba73o$5QK|(T_SJj#rNK{K;w0yfW77=Wv-f4z|y?W zF87)jXoxTa0Y^Q)0Qp8gWZ3aQvutLIIZ=U|FCpC6r|Kz8mO@Tq8RD9A z1yucR94(n8gc=9Bt2a$ufLRN9`6={Aa2NEyj26lQFq34!oMa#|GgM&>f0n9#0i!4L zJVDtl`X=4Z?8Z?LIKu+2idz#~HflsJq@C1S-14}e3#At4p%%6@57CN_dB^w=?Gwco z=K|jsCo+_-hLs*dZE*^G30zzVhB{e&L>O(IzIv=jou0rv3iirKCR?}v&zNX^ut%vA zQK~J?!-Oh>nFz~SWndeM%Auj>`Mx-39^l7>a_eYcg4C=B`Mx*#EOH#`5$Kqj83QC%6vb0= zXpX=srLG%=e(v+(!e;|FjpdtBZMFJ zQVkUiu-VQVml#yThdqsFUt6^XuNfngl@ua`cWzn(O+vYq7k#xDW_h?Yf);@OAEu3^ zIj{X3E;@(`2{wTt@0L%kB!mxdTw zgWrlbo}gztFOAk9T1fqrT{43Wqb^VnGTMUW=!A?sZE{^<#z%pI?$ghli7(KzkT1GL z5t);IO$}y0j230rcsMb|ajZrevb1dxExwy2$fmPcaaq56V9gI*B_S%ot2Y(Y&CmD+ zLNxfeirxeQP=Ug71n?|tx+p}k)i+3yo;LCjRKGhTRU0i!aj}VVXDw!D^pru>M(-nP z<`!wRkxJ*YzAumu&c4MZ4Htu`?hJ6dF9WRTxHSAZiGNNuv$2*CcVN6$Ucr$ zdEdz^c&!*$B((bvNYr_S&UgW*l+i91vpb8q1=vAy0I7vnWy&401dqoLorA$eI1llk zWrIsX1V{gvT#}C~1**VY)x4}RGxXNT^gj*;h9$k7CTJ&KHtTq2{qFq&jdb|-M*o3f z_9CnW-w(}l#$mn))o>cK!Z2mxYKaqQxEfFBJdB5pnk)&VUG2GazD&cpouweakA-F) zVTX+4(yFnrV}%GGe5!t6?Cxax^hl55$Z-;iT8N5CmxYXG=!4^v!P@|(R67Cc#7q|v zX-(wa{g9uxh0)5V_r_>w2Y7pduUMpb}<_A-(n>6^x)AmNpQUQ37G0H%!G8#219tT}(WL z%tOeTI!je-E_IUYNoi{e{B`ceLu>>0V6j@1#ilBwPyW<{VE0_)BiLz_SIkv*82}3K zXYAMDjc_YOSC|3MX6b-wy!#n1&zj? zoG$Aayq1|(5#SkqfU|l6+<4($=+jsMnc*l7EKX%O_DncY^yq5VX^qaR+lZB%Y^7{@ zVq)Tj&n%dWEy}L>ku}IJk_$K2l&W=(&?+yW5kpYaDM1xPz7b(!%#w=($E7EalHQ@$ z5o>WSLKMp5aOgmgc&Afu$H5iW7;PMBNJwl8;2niGXH{8 z+ss%&z9o5q_`1Mm*744H^H~6wO{0JU7L}`^*80w_>iNtYLWJ|0%gtiAagdD?I0yIx z7h*W~A7La5n$=j9YsN81nh$r(^TlL#n^Ks5i)cYDhyd!>Rkk~w10+27v0OZNTuP7x z*PH}&-vYJ+0#V&eU`_|vAnEbBU>l4c#OG$=f|kt9=5qlmh0t9IF&9C3p>TWv5#C<9 z`k}?I9^(ueeLy(2vGj9?5Rd>c?A=2&42^|_jRf@@k!VHK_@i0Sr1auvVfNBJo zb+#h3vYOH6oL09C`tt;-u?^05jh&DKm|z1CoGc0PfPKJC1+E~xJGr&%)i0oy$?w43 z4X5ciQw!ih+xiPa0PC_zoIz_U9uH18k6xkB=1o$Qop7MK%sJb)g+JfJqnzt@r!5|T z&2?Gfy03T>NXTS7>~RV4C?`*Xx(ld1Um$wcqATxb%bj1tmb?6HiNt$h%bnfXa=}R$ zZWETI3YNB;b9SJ=ThXAN^n#F!qAbcmXN072kfu%{%>o3dptQT+IiMYddcSV`_8vQ3^*gG(O{!Xv))GeR zs$?+Zq#$-}IHtj=s3gVE0JYsI&M&T`w&O?=MJ+K1t_XDml1Jzys$#~s{tM3G-$3JM zWcJwpqV>R2Y)B$+Y@6TyO4wpGCb|$3fXIjunU3Og^CKcHo&5wL;`*`>r#rw;dfML~ z_XSW+p{noPr)EKqdi^p53|&Mg4bwlodRcF|x|kAyRvQKeBP*f|24SHn3;Zd5TXAPG z4qm9@_*OqI$M1%j5h*ng&*XZ{spwgQKqGraL}5bzwh1e$FD#s02Et$Y!}PC z+5$*8y{xEIkW!uqF0IokB)EO)DsLy3qF?x?1yzWCAOnVwGtDU<&yF(36hXiIUYN>< z5=u=gGBLU;nrJTwNqeeCQ?A4`i{2126H?O$TKD^N4=Bg>0c9ki7_@?aUzJCt5>Z?G zq#u&7?we(P)V>FaO}1)PTq%&we0N$mrZi1JJ(yA{QpiYwOhbS`^};eArS!T5%sHr0 zZx}j@-g56ycJ^#nMjuep3B|+E!}921=z*S)p1@2FkNLQ?DtUe1Re7=}fNKGuw+79p zD~plhUeL0!(%=8hB#(~k14=%jmpg7f>=OR=;|C*lwf?C4OAU*;NxMp!`+!9^Ikuni7Ki=p}ioXp@WdXDh1+2 z+QJcS)$=a`VCdG~rMKAqCy;(%BsO0JNv7PJ@B5+msNzIWITI#mG^cpGxwZ;$| zoJ{8(Y&S+w@G0O#Dnnb3z-j?_Zq;T-gzj~JKkU330(xgTMo^GYW7im=8P zeInkkCPj1pp(m8DFcrh2^)HzhZ3IDk(VRb8;A+lW=Xjd4U-Mox=Mnk;OU>#0=L_P+ z`PFf77}C%a^Xxx*H!F31=&eu;7>wKEQck=5OHE{IsYIrf2#ih9Ru%IK)8HVFP!#t& z<(@MIZsiV~a9p?Z4G@BElJ)c$Sir+d`NF;v*hswRDoPo~fic(QL@legT9CuE4vV!8 zb?aDdm`o1H)C*MXM8zw-RtglQ^rk!g^cOW)a*jv2>T}�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%0DDcU*?O`8=hPEnAC5v`Frh{66GBM% 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

2?O@)wXGTU#s7JwEPl7$12#&NUs`8wRN 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⋙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�mNCHtl7i5kjZ75!;G zjrf;7-u(63dlxO5l)r||U-7w<^OwJT^7YpO^2%G%Q2r_oXMJ4`|2;L7zx*C(kHf3L zOGEif_7mEbhVqv?0{#rHfPHBwe>I1JPd*D?8p>btKO!#;^Oa+tpvokIp z#a_%`_kbT#L-|YgbJ~}N@>flN26w@}G?c%JW0=3b06w9H@|XON$Vo%_D>{z(YZ>gv z)KLCPGv+UHDK(V8R6awNk2I9OqCH_hmtAToe>JnrU*sxjAb(ZNcMZ9*2J)B6vtk@b zL;0&=`MA4Lp3+eMQvEiJ2WcpOslGDWmxl6}KNj^H-3foBq5P%#DrjFC%3l@htEPQv zD1W7_uZZU>4dt(j@mY|UhVqyEAJBhkD1V7>$V)@{OMJ=mm4@<{_?Yn{4dpMzPfA`I z%3ms?gD<4dpL?68y=(1pCrZ{&Mucr9aY8{*wPSd1)wrRVTxrA^nkt@|S-* z$|tJfzciG;R6ZrkM;gjsZg1F6XkQx2U-fawU!J_Q3goZiSmrzO6*YAKQ03`ap3+eM ziWonQ>{3JdOZ8i^{H3A%rTU8RNBK)b`72`m)+~Q%D1WKGQree>@>k9JD!vGRq@n!f zSYI`HX()fCIpQ;A`A9?gOaABdUmD6^;w$pfQ2r91(SKhK-_~E

gp(kS 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
(Es)CR#)tlwKS=4EMnSd` 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®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%0A!7lJndX9BkVe+HLg<2$u~ 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 |Tcc6(=?eLx zMjz;RWzeI+c;NUR0xik)yG(eG*^Q^J-?g-g#)Ojl9qN8#N?nK;J<2;K#e-1FHgmd+ z8}Z^iroeJ`{EJMsUi12}{2?ECF1w&V555ST9FK;-yY_YOP7XQ$G@kq27SjbOxQ4UF zk8uLZpg^^c(`I&~{2^cOn}hY9f-VQ6fa5z3TGIRKecgJwtv+Q7*9$hwT$0XInj=@? zcLO>)2F3^tIyS8GzK~xV`MGw!3i<|cGjRNFhdv;`&@UkU3m-3=TUV`RW;L!}hBE#W zkN7A>{sWQyG8=6DzDd4reEBD||1I|O!0}B%OB$|U@4y^mfMdg0bb=$iYnUM3gX1`{ zO&F`q8nG?pw?gtKKQsPAp9d}kj^E|bl7>6a7RNd*t6Eyc8KSA(I%+oo%SP`vxNFJN zrICb$`kriZp?`*apCMmYzrTR)18;=9gyZ|#F|61635!v~V0^slJlLhYYpKNvWYiPp zTmNkC7z3Gy+!5xadiX z9!sKL#;DB6{`9b1nT@vnc9XxW&u>Hj5d0K4{!LF=`Sv|v=l40Ex9{%x$mTy40cv}K zOY)x#R8R2FI8t<#a*R8HkT?;2ST1@?|15pDK98kY31;eVieu$}X*D7`F`BB*J@IlC z$0@^wsx~(sdlAiCKqOHa+kzTOkYBfhOvLk4=5tUtPES25n3W%tl-ET{5}YHc zl7ff$hjBsy#^{+ZM{ulpm*Rl$#K^5Wepc)*KbOtcA$p-+SNMibE=$}Ik@nkW>the) zb?y9p=oi6W;Oe6fT9R9LWseuq+KXGaO4OKvNB3Gfmsm^e_XM?De)ZoOe0~-{9|@KM z$8R~bq~V?)*T0t81CeyYG#;TOwcg~t!4c*-xvV8OU7A9Eo#f}rcOUfq;7cJ7;q-s? z<3%m)TcwlPp4`v7P0eBc`^d}9t3^+92MkmLSDx|ElHB?=yZ&5x789o8m`!H8ls2lx zJj&GO{RhqKOr0m@796LLPjAR~Bl)^=T?~C0*ctK?j>EN=%x{BzxQ&uEnaaB+B5|&` zp&Q9hvNiNF+iiR89m41L(EGr@fh*sb@7nUYI2=8peT#cugkPwbEj2D}AD0V_3*gxk z@owjGumrHk=j4g-zZe*d)s1>wdp^;}Z7q-pbGk&$6DITio^&Io>`$K+nzBjnvS_-`uYyytorO=X^!hY4+ zxc_)8{P0t?PR3#Eh1MB6p)0j{n`2&!5TKW{K!!zbpy`SJY@7j%i+@D+6OoA$25Yw7 zpuepYzAvcPkJ)ZLaem$*IkGhZQh^gI}1d6VV`E! ztsl4i8lN4k_miMkgAKs(I~Q7#TR&#oZ3(|^ZEM$UZeJxe(XIB`tI#rTVdU{1tzO6D z{V3irL}5NlpUHvsE9{#(EdL(z&yc^&%RhmB4g3~3{_jFda{7Smajb2PnUlk3D&2G% zTZCM54sk6?U+;>5_=wR_dVG*4*Y3~IGfZxt*L-nU{_hW#{{-k}unsu>7eY&N<$LL}Fm*NXs235BHAC;Ydr&+>RAO`F1M}h{7KXUbG2D*TwwL=+3 z@^x(v=2hZ<=ve(%<#kGlUXF6NdluVEZYL{u{@3Q?+&Go)-xsl#+_E49q@DVTm^jt zxEVNkx}YUxpC=l5Xr!&}C$cjz8?Vq`#0{zed)IWFKANBcDm60%=dK~YH_4Cj!}N=N z!si9*062bm(2}y}r;uN3+W@=FNP0veWp6|gmnMKaqvF7J%j*vLtsp-)AGJZB4?YSU zzpJ1n4d+j3Ln|lv?Mx6S@IaW|Lc=5mh6ebyd3VFNo_U}WFYpYBm|b|8tHSFV05;eQvt4tGixIgHJ6XILQ>rPpaT-6so2mZ zBbb7C-UNMx@8so z!)g~tP*?;?nZ$!NzSW18s61AJ)oOr-jjN#vk-Lf5sEA6cmV^aty55#=2lBiA zay9gA;7;Jm_g!d71LINF`drF)Hh0*ir!-YCVgFhD7fu8z=`AQwS)=2Ei_`8Ju5d5J z^hEkgE}skXXa$V<@(bt)^YxE0T~>#L;(6USSoz9+JSg8}=y~8!;N;s5JygDIyNhj` z*0*mT7&MqxuQy}nm5g+%JL3H^Qb|jcQ}3y;bAHm34rKVVkn{Tx8K7%~2K3|1?3;Y>4d5?YZ|CV=c>v=6Fy3XCH&Nk=I z*ZN3|l|u(BG3-h|IM~sUC8aq^=0VCz!Sig>uG37*?OcQetwprMxvWIzd|xk z{0J3NTDIJ5_RT-{GPhWMshG3s0>|%RXi3BEi%keB=0o!&_>B*#Lz8%`>`~soxUnxrk|k;Z)-w3b6q}DPOSUGZ zcG>cJKON*>3|$W<1IK?Gw4}b!KL3$(_ut1XH&gM}Rcp+av`;@2yef8{_bc<3MwZSP z=cZGm<@sfPCbyDyX5Wcdqf+*va?1$IOx=cU&xXS4N{*Fett(MLbwxQ|f=hzj*i=SK zy>%1|u0{GCrEk(4v>p=dR&km3yspoL{Xdjb#><~WzYX32t{fM4`2MJFAdL zw`jkL^D_CqD&YY-oruk`YNm^c`aeN3lW2;Mjm?O@jqf+bsgHN3t%qL9>DC>uLl^DE z#}9Dza3{1R=Rdh$ZkLkW{4dLmfqLjyk0==Qvj#VB|F&Q|z&f4hb_u%XiCIDRK)5i>V?$mB{>}=L8fmGK0~fl7F4&pJ2Y_ zWKVC@^XL&1^%6bL9~D~|B-O$Z5`iw2Dk1NX$4VSZm4k@P{;_iApfr#6A=v9hKdW%P z6WJ5hV`Zr%X}7JXebj>+SMq*_?{`oKTs_T)mgMH2?De{N?xeEpL2_m$i^7w@bWl!R z^s{xrR<_>E`}LGj{HBV$1*Oc7E4cGxHP`*2JUij%hkYNnzy^+B3jz( zh!F~npb?A=+=HnnhGHRNO5nHxbRI|W-!WK%VB=}*JjEey0^|J{_hpuw;>^|~c@)pU zyx~v|x{7ply#zp?T_jt3KDbSjnx8dj|!k8TKx9Q_qvy@_zD~7r| z@JJP}iK&IL#VR(+xS5PCOtaa=QDr{x#o)hIpYOjD=$Dj!L`65`H72?JL}1EUk-3SR zRBm<7SdPNgJQGgG>wVbPn`@w8n zRz9iYS)tDd(&c)T_lC z=hOYHp%cwaT-<1u`HLCj=vN2nRgz!kE0%v7`Mdek{1KD0pr9O`c|KtZj+EBwa3a`|BFGr z#(e0dpb0p+*FsAgPOo9xudU5Gmd2dn$JQso%cm-P0aQd$L2}Tm8?KS7%oHMk?ZAOS@@5RIj zJzws_9b@;-l23ogxBi!dQ=vq39xe7_1UsV}ti%GP%d<$L0))tlFipJKxUvN_58 zSE22?R++b(?Av?Ve7Z`irwH-F`Q)sxfN)QU70X0Yh9K)=VQsRc` zFlL-GDlwt*l*AG&BaCxF3GtugG-ADe+^3Ku*tahed7B=$^%{S5P@g*T=`Cb zmef3q-|z#JPmU0HNIRu(@^V*_K_r6DTP_MT=)xdboG8dmatB%EL{b5VetYrah(B#B z&o216dHiwcr@^zp$@3#XJO;!h?Y+!a?4d!%x@^Ss{V z9M%FAOp6k)OdiTI+Hs9UC1XgBS1}D7s^3-m;F=L?#-x~xM%<(v;@zH8;&gB-4XUWEPycnvr? z_d!boNKqXO4Fnpn-O!8NU6M^=9IDBkFa=~gq6LKNp7l~jx|di`G#^dzBVYw zsnF}d*}%zhF0>>!pJeM(%xH9E>y}kJL|MVwK`epKxK1ptQ^?Vwyx-@f^$H$i6DVZ8 zvtVg_#@0hmn7@pNd!gR|zXOi{yW#In&wN1svTiaP8O#10!#w)8c0kovy+QF3H@;6OD5KVERD)V_CMq4?hQFC<1LNXVHN>Iq0 zzRll4|NCB8{xE+j|4*S`1+N3g|BvDCuKe!ZJ*T$*4<9If(>QbZaU=Wi&fGL-FUH;Q zROfEk^PaVQ=e%LdC47&CJ{g<_9N)F!?~b2)&*FPTt35g%!gkjI**1lIyTg2i@3YW9 z1}_1}_gCTXj-Pwa;=5czLdw=vT6_reu59LAA>aC650-Z!^wD4$aC}#UzdL^J{Q!Iq zQ0Cp)Y`y-FZ&#SFl=thkRpJlCN7I-Ut0K*aIBjr=ZRAG>m>W98V7C9I0JY z671#AGn;sMoV$ou!o{L(?s3Kl&ppo#Kd|La{dTb2W1**k*}(BXJpA32_kiQck*xz& z-Kn;k(WJt%e};0m81_uK7wOSnZ^(CNn6I?+ZP53C&jZKz;qZ6I*S+sw->r+xl4EF( z?%ltpGtb#_?hEr1e)(^rBLE|T<2MFclH=pvv-mB?alqQFXK3&K98ES}TgbO9%vbpC zguWi!1RUQx!rvV~_nyVKiCylNw(O_3@BN&6LcVX3uUk+38#?+s?tuZvw;Wp1oMFx- z!+zC7j0;oTwG5N8d+oqZ8?NHXa}paKrsTuS&7j8TZ9O-Wuj|j}L0<}X0>}48Xi4te zX_)>*bli}0r&?<|R2j_KZM_HcX49eAx3uV5lNm3)A^*NGf2r?%!uR)_djZG409ul( zXZM~}-^Fbi3e`xFB%`kuA|8MBTTiVM9j(-KTr2ol( z8BwE-Jp2I6A9)}1zL4*VFkj)@3Vji{IQ&jHI(`j@A3$%knoVlxi>9{6zcT)$uX_9u z9J}_!y>n}m)7TZv2liE{`R22u=3{&xpUOZ>%KX&ULqELTIFR@ww!WYixOzAlTGEat zD^F+hFmerC-Dd-PuidkbG+Wl!l?WK|x|R5A7ZrC7YAewZ^IDc94orMv@wE6T@mZ3K z%1RXA#d3H#ktg_z%3q~#RI17d!AsvuR_@)%wSv!5k553q3|<9J?s0Ehxr-kS<^IzC za&JHbC+cmfQW~(f*Z)=Ug0Fi0&OGyWi8gO<79f1b81FA?0*dS!1h1&9@#n>xh%F-8 zxZH{aVx#It|2Br}|JB-81-bcbA&c3hi3aTyHZ#S(M57szACDJdPP&epyyyFiqQ!CI znQ+Z}bt+n%)rYP5uA&EVi+v}6-6(&@ED(ewiB);G=|vnLe(Nxp)D8?F1n#4DW0 zamIN9*IP z1YD#znn)^X3XKWu_+&7OQ>>iW+;m}VB?_b(ikKhN#bR|52ze=DeJ8@weQ!ix86@$< z@w8G;shr)~{}oOsa8nhX9o!u8x5VyI{v}GirwM2|TkVLP9EjPZ*Zlji{b^sF6x5Dlv{iCU7Pl z*N5VBJ640zY!Z8=r3km$pBgz{F=d(5^{4Rphku4|+G>3fml5ahqh3{L?e+T~oj&J2(EZ<|o`?+o$-f!NQ!D6bkK{x%t zpk#_U(8!Co&=zMCCC7v#DG1VZ`i$;~NTDSC+1A5G_&IsbhrR-Q0yuf@fR@yMjO`CS zq5jv&vxe12=qja`3nnj!ceQ+k=~douPa7dOBe-UF?288_IB>x8T zm-_ezbo8&R|A6D4hL+?HQy&|K2+*z0H#{aGoJH-}#gJf$`-@BH78~MBS*j3Osf=>g- z|0QTiZatQ5FFIfswQ=C=t@-}QN+tefsSb_+Q16#U@!YQ`ri!ur;6ypv!enwZr#*EH z-9ZUq%s3%rXp0Bsa#%10M<6k*c7l;CSTh>4z7>k=c^6{mj2!!{-1YAc%DoW!IB+6x za_@webWM0pUjNbk$F+fRqqQAZYy75Z)t4itAu&f|#Sr!GPL}F<=1_A4GhMzOkFm-L zdYhV3%URt>uJ0uelJ84{%F!bOeL{Ji!T^#%@Fabm(wC_q8NFU{qt3|T{maVThg@zQ z9=yjnC#VBX?)#u6b%ggY`@=ZquD#D)yRCJltie{U-`cumC3mbgF^8;Nx6wGt%y_%)G3(L;KROnLWFZucCd|3=IsFcr9ZX@ZvIp3m(2 zmZn}r!@rXIJli(4G7rkMT5*Ti4ZLc7PZpaGbEyrKX#Sf zrUSn~w0fP&XDnmYXyw}lf7fo0KtBVX15Q5dq>X&;ob3Ox_a^XlR@MIZ^E_wB&?G%= z+9n-n4rS;7lypuh!f7c`rV^k)p~$2bBlU-o;kdy0bha)h<{-}^q3!K9w3wYwU-)b3j34WJFE z-CsqPwA1zfy>eOzN$sY9xd*#fbOpVUM*^0v6Ij_1^1Coz{kG$XzpN`9Yn?z z29*^vljACQddFCf&CO3xfy#n8Qa%pMUx+C`4j4tA#B+;>``qf;8+ZBd?2!JT=r6Q` zU@TBO4@Q=x>#zgY|C`t&JY6<#OaE9}a~3Vo!Cna$^MQr>-SoxS9sfzKMigI%6q%}T>11>{qD!h=2MoiCcv8z-X9f=XK>%|c1thi zczc~*;oT#Af92jspu8iIC1uU$On+wyZ)yP%-rt+q;{B=M0J;yG*9<(Tlh@LunAGL? zYn*=J-->)CxCSWyHut&utFMFlJzMyb`?1AjxcL2o*(lNfzScg+yW8m%-am`{H|9Qo z@{T~3l+EuJY1OzXfV-z9!^7;ZK87*xSaH9zcnaraS@*dYb1v>DyqW@=-^-nTli$cU zfNenezu-Ps{(2F`wKZLDwQQR*uQda$i081u&vuRx4^rr;7 z*pAN)3hV(Y7%us64QE;S)J~ha3$0y!j#um&{$JF2updynrXovHy9U<#0d|Gvq&j`d zMY%VdR{RFGsBPv7DHg+yscgh=7xgA}46}A@bv$CneaJh&*MQpbi2Gd2gT89H7+{CS zCvA@wli4Zn!5|gh_}t_8_c;B+Kj!b;_YI~1kM) zfZ(4PjW9ELV}ww|yuU{l1SjTKvHiAy8=1-uj#V5U99|GBWUmD~^@HK;)|YKtU5|C{?<| z?{FKBZpSC~yoUT6@D5OW{@^~>IOwa!$DG~Vx-K&)m9yz^k|57p+~VC-P|i4RKRKvB%JKX(|G^?59AV>A z4ZmLJtVV7C7dV@w1ZBJbLVMQfGOkE?ixb{!vQ6DfIK5p?hxq+{{AN(u8l>`y6YIL>gIt#n1~YmGHv!AVgrj3!2= ziI1epk=D;t5c;_c`Fv0V)SmUolJ?>6Oyh59Vt>lrcyBR_&k43>)4A|GQ`zx)kWs>~ zcE`KZ>6JJr@pnOft0IJ}fS7)&El|6=3GRAvq> zbFbsAjD+QW5%Ni3DNx?!?sMhS*8#j{B;lSu!9!`T8d1hW24f>AG4}BjUZT{-x6|np zKOaSY5_ALQd(VBY?exI@%K0fHhqB7Q_>|t^Ccn3jIE)+~#xyS7l#JT)i`b$%EEs9u zDU|J(@=oj+TH!^}ulYVElPX79yDFoR^!3wHW(H$9{$Xx zZaE8VY?Mnmo+)0+bw`4|XYxRDR-}e8rN1z526IuLh;{|RDM4SrMCF2rZNFQ}Z5-RN zU#~;&M1BxF4Aj48kR?5Rj`gd{y=r-ClLy$!F1~c*&8Eng%)KUKWM^cFcU%XvEb%45 zg^^(Ru)@OqF|Q_iOu&v3o7%@(yUOEXIiHEV02~F>t|jjCtmUq` zO|~4cy(4W{X|jTPR_ra|lm(s$%wu&UOj1pV9w^M+j<*B7+HQUgc_(-hDDNMTCGBzN zbe7A7ElK0iB`FW7IB8BQNS@$b*zTS zUUD|x`vnDgrA2as^l8zDgW%xE0 zY=GI`Qm%LYmVZ3;_#DQFhcKO1!qY=0aI@_cc|7%_el!)F=#TIzEs~Np9`86lv4>5E z-Y`%C)Shx=Ng5A*)qF7XmjiOa%{45o_MT=A8Ve$f6Wo+Twd1XEdWH8Q}k?R$ICdYz7Ux6>=Ue?tB*`FmK%TZo*?U%9p8l=>za7`BDfi4lxX zhIyw~df%t9XL4C?%Hx0>=D!?owbLuS>yS5ri-7ujwfj6*Wc&N^%jP@&a ztz27{ddpdD*yc|TE`*ruoy?WxD&qy?qWx_?_c;B+|8K}2fDeK4k14W#>v_jh+&rAd z+bnChupct*G?#QgwtLkN_s*p+>F|%HCuEB*Hw4O(3$0V0*-$;= z9h0nGYaOrHbv5!$;AWt9-RVBp{MXlhcD2@T+|-&e+2yk1+)DE_@67D*x*cz?(<{7x z7P&a$MS$`aBj+jytDDW^vC`2ftvrA+RDpMHie^l1wO~s(=QRbcwlQL~{w{ZVg?Byj zCa@JK@0IRz^;2Kf-zE;N3rXFa&*~JfiZ%+o1XT;@l};red6D#$jiYBpnUc2bM;GK)j!s8sA1v6 zfnIy#;td0ubYpjyKh4&fcm%(nJyuWszE1$k9Z(VI$1LLKQo5EUMmbzc6*BEaN zQ#UtpVBZyH>W10dLjoR(ZBzS!HeV};hkl=kd-tugXgcYMvZ&5d+5c>(eExtokLHdl>DlVea9b z3F8BfT01o>aV8$j)N&wZ}^`kLDg$%e8_J9bR0 z2(}GoNBb0ON7aZh9%m!hfI6UdG`r80UtiO9FniBhhh)Z@+P019Xp|V`H^yDBfa)`;7j;S^tOGbwAI1hO(SP#^mi{0ni z?+v`Ki~0SAbP!lbTW{9R4mD=nKj{E&?u*G?urkIxIJ!ZfR^xf8X_kMN(=YLO1Nj~B zE>Qmebf0TJ=&R-jH^=nr^>l9s`S1+%2iYFiZtW1qI~{MTH1zvS)LS1%3;Z|3BR4>aV`4 z-{Ert($UwcqPz#i|$$g&9Zz=dJF{DY$`grCJtBHMh zXm)k<<m%;E{0XcM zclj^I&C5f+cbC8D=%-@ktEVK79$g+QyGoYRMt#dK+LZp88O%H(dF1FK?i$@2a;)xb zhUT}${I=k3F~_8iN^5rucIoy0r;t0qZ9whbjx0&{Uub^GeEan2YirxqPG2$e{52c^ zx^b4Rua{C?CwOtHYZS2QVv&45HN*1lMxXNiJ8~cRqvMdab>KXW<*C20KTC}lukoTa z{C}s@TQw%sdn)pBa2`-UYLF!j!4GqaX<7B)epJu2esrQw{dgRCC-`T_F(f|>OXx?J z)9aOmb#cOmftH6`Ntz41f~MzKMXmOe~|L1rmRdqNH+C38Bopg;=L3~;2p)uo|djsF~~h z9~;^+9{C_J6{sDDAxqNu=kniNJ4vpm?iK&1d4u?$n&BjWZ6q9N${>slQht-w197%J*4hNkfRUc{rI6 zrq<%%fnFT0sPN4VF5o^x>)&qlDPN!PjE{IRpnL_$lJ*&2Wh+Y^BjI#mC2zGxFACWE z!$IPfw;H_~*GA-4umvdZCCHMp$F(I_Tua1HiEF3h>qejQ{Q~(-@LQmK?;_{sYs$r! zP`=ax>tE%Bkncp~Gr)47eCHwO=4+61FV|%&I3tzNXkonTcz2*z^Ydxs=Rprp-j|Ri z4W<0F)YmoEntNGNbIDH{2iv*L1+2C(Bwny3)P4?p5xD9B9Pc-VdpWgCckA5x3oycDW4+G_Y6j@UCdb4HKrZw40 z)u>MNNVW02qb=Va^l6;SDk5GI90-(e3bLdj#CZ$r#Bkdkk%Kl$=;?I4E$CI=&mi9m z?gz^I0J5Zg##67UJ*zD@8}8;k$?J3cyV0-w zA0ZbUfZss*M<7cYg5S%y^kNaYzEyTwrU%%SU9y;7<)y2doiFP<&iRji<-ZL1e((TL z{s)mIssCBWw}Z2H_}_|{k*yu&jxcgr#_xl?cz4u`0@}UjBVOeR)~-Hy)vow~5pOss z1!`9rvZNewSuywg@L4m}S8(|`HXIFI7#wZB-|P5l(5HMGkv|1)1j=_avZSnW=*QOO zKW49L3LcS*_Hkakj}`|oLlB%HdU{T@e(pxE^1hG!XYf~`ydNP;%H`+$A^6#TlI2@+ zP{?;4ax-WH%C`ksQg%Nx+4k*c%gL6v8@=l1YskL=?*Qd}7ggnte(pf8`uRQNXTgg=d0#@7Gz34_ zLY<=pGitobrIt52Ipm#(d@`s8%DW6%(mwr7vks~G_EM)>{!a9(-%lVv4R!(Le-2sF zQ2f@Xp5?ea^^(<=w|q*-TZw!uH~}c{Daexc?RT2>6q;?lJe3an053fpT*OKKHuXCG z?dVs(zlr=^@B^Uy|AH)O2!5|>+_;%X^_U5nY{N6J{WR-${?w57K;+3_8j!@uV&DE| zve7fAJbM6Jx6|K}q5m_;w}U%@`gJ$5q#^iaw*A<$T)Ov#jM3tG$t{7Om8S`LGq?z-pO+#_8iJp?Roi&DSBGS@cwUR+?MAQi{wwn9;8%`oNd9H8WmH?Q z%jutTSU6979C9@{6R2P3AWOmNYP)+Nn>O7V>W3_y)syn{XZoXOHhq0NzEx*+vW3YiC>D z^66X?^PbEP&OtsJEC$NE1X)t{a|T1+HO;MCYFk$u>aPj)eo*)N-b4U(gXl>tx4a$b z)p>vikskx!2Fm*#WJ%fQ0YYAy;xn*`KDC#`N`rD3P-M4Wc@>jvbKzScUmNb-d#XbHR z#F+)_z%E0~Ci?1gE$<%mDsQrqJ`NlXly?^L$L3wyykVhvKAnmBT^e<~K3F|ZuCV-D z(XaV@2l5xd13>v7M3yv^d~R&3Ze}jp9*J6G3b#x{cl+KHU^Bbd@%Eut>(huC5pO(5 z0_8mrS<+DI6RUBK*cP)}#o;wDv(7M0)*7}1cZyy~edk%fThOokpGCe0+z*uh0c1%- z;csj^W^H}lx~8zOeL*akhXsAUcPPMui;Oz2_k7FWhklLwsF@LOA~*mj|72uILy0@( zZJ+@+ivhCaMBt|b8+`P2e$x4m{v>}(yRr>=JGciZ{}+%Y4W(U?HC);5Yf9S}g?Tj0 zl(b4MZS)T-E$=(%O`=zLhtFaR044(EorElDsJv;%2Q^@3+JIDzIKF1Nkm+ zA5i`;B1;+ye;udqw&pfK?m{E>=Xi-)=Rf+j+{I>d-49BE@|Ph?8d&b^dYf5y)-I)~ z&YUG96X<2BFUSaJUU(gT6g!BFqE(i+2EEFA3G!`VJ5b)cktOYO{MC9H4g0N0yYsemZbNg>wS_o zUswnH$E@Nx^8xjx0E_@L$Ux>!fwwtY&G{N$vfjomIXAR#HSz|~3e>*M$dYozZN=Pq zGLiBR#ICIRD%p(00!2F42a?~M`fnAu;zZ%LKwE$?phDsLb1!Sfm80Og&I zENP#9hpaMjQwh!k*GaQ?@&GL1?|DF4qxE1FEmFQ01+2sTh`Y&1sTOPBR`}JvCy{>$ zb^*2TS!78$;*zdY$0gko?t)}pa+($syAZb^*~YD%b?a-}+L9S<(q5NSozAYr5ushD zBd-K?K<#QkmXtMa{~fEcPbYZE3vJxG;MchM3nE@2Cj9XiBS{S%C#uPSg z$!Y1xu32B(&}ITXYo=@1_X;As?at2S*r9fQ1^F?s6R4d}B1`&Mar}p@%n?*Epw-4T z|H#nZ$;dOn9H92jN0yW$uIYkj9(62322)vYlB#m3mtLls!?O~&?sB~C=+!vggZw1u z2Fm+1vLuaD)^!s5a9CyS;KZbi^%1*DGRnNeI$;le9bjeTm%<|{xzWZU@rlr$!;t5K zBY@g-6tbit#DR$_v(woO0tVTtV)S%7-s{n;arh$gV_+vx-Y1bIX&kc7t7ov5rH&`` z(ke-dG~G*2PaS9XK#9K2O)meB3i%I0J{-&f%0CZT(op=CLrLsHLiU|d?VBxcJ9^dc z&m%tub^_&n5?Ru|{mx`P9e-u2x!L(H{%5QYA0PZe^h@g8;`~24v|~DQ6*v;89Vui< zL-2pE8_P{K_=8k~{>y2E+ zbpg-ytZ&_1pIp`4yq>-#qnmcUjoh)yA)T&=S&)=_-j+2lVaSu5X1~PnXLb0!^fsym zNuDV(==&Q)M{*k7zUi>aQa1!-|I%=*&&8U=Qd0M&HZF-pVcd5i{|5XU(760NvZSo> z|9@Xpq;5!KAs3YLs{1MydGT)Q2B2sy}~04vvd>aiIPbB1_6q z-UiE;y)&VzaX3B+q(6P*w*3N3|P&@BK?gEbiwR0!3q>mN%f56IpZP)E` z_U^%+B=*R>+xjytEW!qc42e8a*BD#lvkCae|J1< z(W!CiLH-5!CD6G13R%*}%s=)WCa0~i(@hJK4fGY-sx;8))P-G9TT3W2d*J$^4Poz) zWo5kMDx0rUmW1|iL%t7u5vcuNL6-Ef^7Vht`h8`$m%7^e(TAOy4>L~STnlhCP(O}A zmNb-nI72&osVnw~0(*rxclLs$9I2pxx$ZaDxF>myweNcP)xLj0eg-`6Y|7cbr)&4e zv#Q#QS9{TFuf_2vP7L|aME)dL1vEZukoOUv6?12V^L-!BnzC%$$#~AXjn5AFH9qem z{~r9&*_1Or{|&3!nP~!Mzjmjyqw1v4jx&*0f;ymaYCzscoV2FuF$1Rme^&bcPwd_Q zcVB1y??SKo|19!5;60$ceaMos*26(rWe6nKi4(wdpqB_ociw9TL0 z=vCf7AV-$6-vcP`Fl6)p?m0SH=MzHKoNa9C2FqKGUgiBP^4;J*puG1ZOUmKzU^&6< zxefjLHnR;$Mu__;Af3*xci>gKrk={Y4mbj+T}L5H`dH;-h*sq)D9Iab+^&aT?Ry9L z58wl!_I-#fX((}PtK*?O8yoA^r7tGUJ6qOrdCAC5dM9`5dH;X1x1)#u=DMvxFG*52 zxptsBwEK4CJHg#RQqJ}`oy-5D)}}9MI-PyJ8TNgE{1J$p7REIXSyGO;uBaTsKH%!l zxblxa&BxWqTfiki^YIE~Nm|bKn$PUVw(otwscn{b7kZWVE#&t=A5h*uAxp~Pr?xYz zS2dhfYwqYvW!qiH{H^0nogVU@gWL)>1LeIKSyEPi_hRL|nXC7nyJdBkC2eybAnUQ|P0>K4nt6aDJ<&yZgSZvy3i8(C5gzgNsSUxS}^J?r?Z&+%3+3wcjMUJlL! z%3FghDXZUuvevW8J06sUE4{0OlSNPGt=8Wi=v9B8Mt%YO6e#a2$dYpStIn=%`@Z2`$D2GWj628RIUI~-Y3R)71k?YqCK+-`Zd zqF4RghI|M3JW$^IkR|2vbJh_2>~(zapilY!hCKWn_CEpTD?^r)-Oo(6ef!ySr}eW2 zy~?{8`3i6~P~J}=OUmWv>>>EsewXFzL7(#d8u`!QuR!@eLY9=>&rG&```Pk&%e&;< zkoS|w4PYHm-ezP;x%`|n1V58^TfUv>Q$L?WegnJ(l<&95lCt}m$+mAl6Zcr&$`v8+ zsmSMm^MUf#B1_8Qr?wF0NJX77%(hb6=XiIZSN;7V@+;s~puDdmOHzNcjyDFd>Yzie z`1d~4fd2Ph>-UuNLjIGH&jRNH<^LqIq>tsdc@TW=5m)tf$$gbN7KbbN0!9DtYG|<5Nl5fW%qQ9ln+EaCYXwP!wT2K$voc=|defW{SqL<_S!o9I_ zpeaie{bq0E@B#)XW`2Un2zd~9{c5u&k#(l;%P#-1L;VkG>Bm7SP&>$N+3Yp_S{y&U;^a1&5_JCG&iC?DEim;<#}*KVxM)ne8>VB@qKy~_J1Km<^4VKAHkm;SMGW;I9ms603ZrXYT04^OVx!uS0djCZU*Y# zXOSi4@Go5=&2*-0IFz~X4fcsgri#dno!!hKpU#~_&sb0Dadun}r`qvFu!cx9+j5ffwih3cXw0$u(d1M z5ZYCXyaBWVwQDo7q^$AzZ&;P1d+~aleckYD+zwjH`GsI6Q2XX0OUe_=I`uv?5hPw0!caZHywlZ|KEvLC+BbiIio7^s4Z9R z#6siqedK4si$KfOOUROjRIUaYcgqcFTC_IT+Wn|*05Rw)a+k9!u|Bk`8u<)x7LYW= zeEWFTq_0Q}g_rn-jZbHW9p6KK20RZmK0U~ia>PgL0k@&o)i=~h?^ur$gU@}pINtK6 z(EoYJi@_40yeA_|%G&N{WzE&9GY{?fx1(Rn#mmUQ1iu2x{~KgUIs8u7pjIaP(-mFk z;oZH8vu5_YS8?#U2YA{av-wfEA++lP&qIdq{?qu`|?{t`=%hz0CRxaHy>G2 zuDH#elfF(1S3k0ZrPuMcqgUf{FY?#H<3M@8jVwvyve$gpiosdC{2ykX6viY@JH7+& zVLv#X`wVtkzr71X{!Pf2gDZjZUxO?uhu`TEy`gzyeY&2>A9T32ZR?UNW|=xBS9M!z zIj4YIgu{1Q>+3dW{%xA4bd%kX^O#o7DFMrX`m-EalEyRp z{K)?u-ehkJyPZFs*sK1Ww=v?a0T%%EX9KdNq2$kC^HTEOsarPGv+GP-YDgPn+MeLcwG118k*RF@9EdhV7)b+p>6dSo*~m+<_)>7 zmn}GL_AR$J$Gmea_jIKHZmJ*f4^8zMpUbFFCezXmm??fneE8ACk#2*1ux8Wx_1s&M zao)XNAL-i<(w7uh*rh!6py89B$ix0lfG~L-{E-V{*}j(cY-I~d-8wUscmSMqZ1O| zy*#6R5(fY!-1pzH|JyF#--8^zIN}umP5S-Tjg>1KWbg44K_W=Rhx^0#^E&uZp~Qp7|@ze@6H?!qW=_-iz=b=-_#r@>d|QAeLXu z=knb={=Xo|i$|i-sLwOWqI?5B`@=VU{wKz7KhASk1D@6Cwfw-<3+IdY_Y36LK<^;_ z)wVUcN5UlVE8%S;R+8GCp2Q^?=Vc)u044)X8mETlw%X10#3_XuU`(_D%9r5qDA{Ph zGnBfW-nAKeHzQvJE*n&@iGDR&tG#Zt5(0TFt%Qvq3B1uC@H9F}iKm_a8Tx;Y{5p7Z z5dEAMv0m=ZJtI*td=w-t-tTz+vluHmYe>vrlH245kk5SnlD~c4k*E_d$D6v;#zx|P z9`Z_1=iZb5(|EBFd1JlI9oMZ}*|w$8o{DF);8A&;WQWt&!FTn%vM(cl6+E0OO0;RMS=2`zJv-W@FlSthBSH5^DWiLv2eVz*|-o~&$^+Oxq zDVK$QE_$4*vWHBycbMih@hRsqh`%3&tEnXm(O@FGyd|Q@)=KE z^?Drt4$Ecg@Ar{^2!5Q4f8~bex{c->KpW-zV?j{D^^nuICqrM!<*XTk(Lhr=-z3Kt z)wZ@anq${0@u<>!EJh{e2P32TQOPbZ@gp0jYNtcW!zYnzL4Bs)`ZcmCbGj>r*0x{A zY$Zfb(&_2sJ4yZ)J&z-Q8$9LoNZZ(bGy57zY9~i6ie9I-H-eq~`dus8uH=aD7VIR6LZG5ZTj+x?AK`0c)9dOyu%zV4-dZ2c;4 z5Ba7d&jkyB@}-a^rE>T+V`deleO!C6-T%n<+i4*>h@ARWBIN}UlM)d z-<`-0fUg1N>q3^)m4lBJ0r)D~qwq!i_Nchn<9mOQ`66#waH)L1$MNk!Uy{Ftui(mv zHwKIc%9lizRGA~5b7sthZ&G_ce0hF*{%FhhC&PEPJ$bM5S?k|g^d-?Jd>12s3fu&g z?-pc9i5&jTsGK?55GEiT?zbl#;RhLnEzeoL-RMiAPxyX^{AchtpnU#SmaiiR-^|L{ zl7W-jlkipe?McVCCxb8byyaVhKIJezrd&=>B zn8BBL!Sd}ypYlC}{0s0pP`-G`7$(e4i?3wwR`6N&clZwuVb@f=@@@qogLy#AM6j0t{ zktMa{i0|Avb7o0~!Yfro>PUOOrkg_IKF9kGdX@LTkQ1L`TmzJM9I~WjjyTVr zF@N@~N|(X5Dw(>Ju1woP-kw*izcuJp-c88YgUR_`#SP} zfDeH3{uNnLdk)^Y^JY{MY0Y3$l}ueqSEk$3yw$H--qfc<-m{U{gA0N3Zbp_=lPk`% zX3v~Kq&0_aRkC#{U75D0sg1tMf3^JG=uh&F)Z?Ec|2y~tQ2sw7OX|tNKXY!?>{)YW zo6(a5+*K)Cr_z<`u6_n2UUUB65b~dm+yq*I@^3+wRGlO4^b%F`D(9Qgl;JnMln?0k-jIN9Urn|BoR@i0Tn`uDL zFRlMmZsZ!t@y|i70!IQ(dL6=De$?M2!;7T%Xr8^ImaFHOOa_qpoW8AmcPxL4Kc7Or z0c;ywpDCzT<7puE0}b3GI;)*N?=xXO3`ZUb#sE#~FZtRsBb~E1arNFmA6lHgYQ8&) zFH63D61f)C529}?Cm^KNJzypSWO_xW9iqW7#a^CdiP}LE#5|+gHb?}`Ym=24B!j-39sAfNy+z|eM^x~17{AVr*5s>r)G2Y zW#=ywOUl>d^mXuE^|urGi{L9+^kw+_rt>!@a~zWToW9-+egBEP2mCFIzJY%J9Y4J{ zT>Zb<#zyjW0rF8`k$X@0G+u1Ns=KJMe!XO_b@rM9rlZpHNeQQKE8mrRBKmGdz7^a) zh(24-OgT2?&+5FbKuRC8R9@2Q+r@W_oW5To_kv&N)|a-h6K$Ai=DRALzVeRHzQd7c zg1JDG`kP^&$qsAZLuva`PTyL-D^r%@?h z_Z;$z;H9kkYB#J76+V-xu*T_2+!E&Rp~#1WS?)b4q)P_O=d^5EwZ5^gRvr}>&W>4w zUn?METb$k+bZ9=eB5wj0IlU4~jpGGPE&708+tj~jLMYRK5$QTQoW3sm-FAuNPUL?E z-_6jMo|mqq3##P_6l_c;GmF#)`P)vo+UZaJm)gM$Vs)>rXB}{B{r@uZ zL!isqBZjCQ&WKg^9Ij~Pw8I1A@O8tiv$lPXF-ggkE8lB(`n}JF`X?YC3=RR3Bs5*w z#xK@s;bVPd4Tq5O|Ix%h`@{W&gu0Kp-eJ)R5&>D_h#ci+>?hetW&Dp@&&6MSCt?vM zoh23$o2bbrJMqh3`BEJ*Js$gkpKp9H3ks~kL=$#qvgKDcUftNP^W`rf{{;NZ`6E7Q zym*E~*#6#L94luMT0U=gdh%~GF)-z7B=Tr5*1jkI=E?V0Hq?pNu38o|2TZwi-(TYX zSIXsi$SXlz#`n{9$b2&AmYCzyY)StSn#5n*NCr|G$Oosl6CGNA9!Gu>bPuApfd}m{ z#aiFmVl(Ez;rXUK>@K$DfnY`nJCIhAd0MC6`&_7hG;$Ig2sEYb9-zO1d@mj@*WM|w z&u~bAmeK|v^ZBu$)Tl_lY4d4q2G3>4?ckb0c+!5fwWLG6twc(*?ZPXazMby767Oe_ zp9en~L?7FX%{~*9*=XNYB1T3E#Zak@{;)`tl2GmRCT|bxM-}qX;20oD3QXsA+a3&@ zcV@@2oXNa$b8YMT`VIVVGswnqX-jq=B$t)$?BShP)|1EIbga zg7i-z>#9_GMmPE&gT9*hYGnBjR%Kag9r$iK_VSQD8cE4@wVc+(!Ttx0*6Lk?4lQph zkUt4lW!G!QN>=atMz3@e@)LLKt0||q6CHY;_z3c&;G2W!rT*1lm@dM%j?y68*3R>4 zoW4H3D|JQ6alu`T89@SQQvZ#R>#uaozaB-wGF_?^ z9gU2<%HMnc$W8<vE`)Y^AT@~i_g`_*MS>=CXIhxQ%gEPN!&N*&q22 z|BKXneZ&02k@8!XzX?-OL|@G!y)8~@RT8$S30^dP-P-qWHhx`qhw=L!^3z}!(6s8J zjrDEQPuQ@!e(NH{bd9*X+~&6{R$k(FR-boI*zc4gj{)O=CYuR^X?(Ds#!9EJ+J4uJ zqZ*LcftCz?n!k-=p%|;VB4xGH_r6~)1H`!OS0G&E0nID$gKcGPpy}%Kg3I2GahXzuvqUhJu|9e^g;BP5E#mEUT3TU$NJoZAG0%B>a z>U(2dDbTt^sW5{!`O>>KuFKIOOrm!k@&?eFp;zOurj`hEd4>&6`}O1OAX+>y-54In zy-KII%jz)k{T}kuVAmjeIZ|>{>xN3S+Tm*FIJ5o1OF2DzGV~POM>_}-K+{StFjj7C zZfRa)_N=7KQJ1k!wmw*oYn;9%?z`gea^w|YWrjZWx1qUyYa>G_XV&+}$u=jh?^>Lm z4!$FrMbDRzzXHBCh#q~mz-+nuSe!|AK+ z4DDNtd^|V_Xi`7Z_Q~>%)%RwmzD}pFJwxB;khg=obLiV(Zi}}H-^)$x?{r*=PLNuhFN@CKIlz89O|NCv3 zkbJlRc>`#3@5%pZIgxy*Yi^Ojaz_dIz^~gP5`JK^;eTKMHxB<>9{>ADHk-{-jpGU$x4X?HtN6@ecRFca@P}u*fK(5pK z|Hx)X{_mjJ#RLCSu9Gu={8{=R`mR4--jToj;lj&=3xE5=WQ6VH;YN-YAr zgx8Z_MgAx7DA1JQcT@A`dK_=h^B(Z|wOAaFF}N3{>Tv&8=XMdnDUyjXsb7?^AEB&jXV~4kS4I-c6pNxf^ zhRJ&-8Z84Utjh5BzCQQs^glEw2L5gHN~b!6zf z9r;dhPlmpx+D4gOOQ0j+wUbkBext*EzlZv?b#nxo0XDuxqfnLM&pMe+^X?WG`XP11jXGm4CQANy zJAKz@==(hKz2N?A`eczct@GD==@bKco!(w_=)Bw?kv{+*0!?Zs>l=+58=K4~cWdhh z>A6rdw*8we2bKR6mV<@Ji@_40N%e7;36F{iJ-?1ju|MK{+)Fxr?e@DSjyE8G4&0fc zPi&gLp?QnR`9muF)f5ydI_%EU##`B~Naoz`6d+{Fl7z>QSHLZ-Gne=ckZw z0NV!PZ{5hP<&w{GXEjFHdU`AKLSY=G#19Ls?aBYL`O|~0193*`|J%s_2L63e{VO4m zqk@{HJ+)c>U__PMQqKZt%ITf*NH|Yag}eY94K!)oP`YM|)E}$yskFiF0;$I7+iJgS z^BwsX@VUYDF+b8|YJTPT!+leYo)&-VW{_M87QV9n;Y4IBaRyhF&Rz8KIzNx%78i9(ptM_aXlg{CN=lO`AA~P0Y8d zA26yVy0(zHQp~<4r?=|sVO&l?J{eTo_lyA=m!{g)n=@O$C!EbP?26BOCvkN5eR6Lf#54weR(dlT^m_ z8+ESDX2R~6_|!iWDxKb)8G3gizX)C$OfUV}dfAc}<$*UPrf9wwBV>$uWhklnJJOXJ zuf^#v|3+x{ROCZJrG2lT-OX*`ZXf9|uQM?z@Y>b?3_X`1UkF>_a|1;#>;I%>Y*S9pUUth=Q#LS7?8viB9Ia6kQugmF6 zJQn(WF!EGzn0>FG-x>PsjG;LHScXCu&~B%9ZHC^9kuL*RX4ShJnkSoD#`=0q+>$e%7 zQgyc0*QHJFL$eeviLKqO!S$@udp$aIJaRvB7kC`d)tL45zaUG}`U0(^fTZJVQ=4nmSz`H7Ya7Wqp2Mzcq}rkU>rM2@}i^hIB)d0L~M9ov^ZE=7#o&1Vq9UYATL@JkBz{@vw~OY zS*jy89;t7J{a+38YS0MO?#qxR?e!eJz3pyW+q`N0>a!Z#OlEM;)Ez1;l1Pa@eK^WOK54o(g73oi)r~EY2N%;YFV@(dM;s~Mv0A{7CSMXm=)x$h@Chp5sVl< zXW4e2hMg}S6kQ(7jplvZkA2f0=I3#h9FJDM<(Iq=R5a%0FQbt<@sED&LqG55e(Y_( zAYK@Z2`Y+8f($ryhX$X{RdW7lC(WiV3yy2Xzb=2hhR=7;;4y-TA1 z84JGR`%n16mwf-)AUMYFj0Ma6XKmCeM7*dK6jGp3`mq+;(=h ze3C6;nn`87{_Xx7KDU+~Vt#iA=H({)-d*c2fEU9ye^|$lrY<}}l ztP?h{yGWK<`5zuZaUoB3Y2e%?mfSZS5X_`@j1FRv(Nc}02l*97Z=bWH1D+|oBX&HB z{Li2ps2$HEOX@v#sCJy8`w7abkf;?jMSJAFypICEJ@R#5@+IH9m7ZY( zeZu2G@D1tonEs583MNHsgVAJG;722e4x=(f%7U0b%^%}=(>UoldVKJV@2`n?0E0Wih3l zHD-T8bVRTq7*jYQ80nWtm{JX$At9y6M`~1q$4LZk)KqH^Z=m0tYWm8rN6gEY z^RTOPnD-}tGCj$#AVL395}d@KV-mCJ1;Ho4F?0)43rmAh%SwZaQ;PCeL}#L#AjZH5a73Al!aWHx-OmR32S@6IBMb}k2ve+G*Tbvr zZzu9Ufk%PbHNV^1_1x{&p4;xoW*6sav`{W4b;Nd!ygBA~#70YLE%iDh(-;CA5G*Bj zMX`}ZclyyIhsP3Qz=J+fjs>Ih3xkXDhef~Z2g9SM#%33dik6HSMyZJ=qDQWb)rDD|W(|f|Aul zVjYeC*CWA#Y14k+s3Jf~WoXezBSHv-39=Z^P;C88$AR_+3q`q(Ar; z@=w4kK;yFNdp0hMx7m2y{n>1BsWms&OzMuF_uZ)99j!ONe;P3_yN3~@juGDW=mo?f z5j~3|ZlctpBPp+W3~x>h$_fi9sh3tI78J(LFE1pL;~B^-4yGn!719Xh6;@4%&583~ z)y!B~A>Vtz&p$J`Fq)(}jm1V%4db!Vd7lrWBMI1a5SFSFGCn?g-4wJ@(~J`|@6l5cVa!-SH!-wbJ5^41Vk<#s(+j z*`!G&{GJo7lo8$dpem9#c`7abNzpp_aAa((l(L4B@%EqNv3WI&7@zTjVy@?E<2w;3 zl(nT)$0fllLCHbIxA`Ua`1#|5n}dRbisz4-5IL6d(VW;p#ivFm`}YO$DgM>+OS=!R z=R_Ny)YIX0*ICFdU=z^zd<9w3%V*fQboDQH6t-##TQ$eDG;Wn5*A=`IHQmPJzIi#x z{2t?V`JH**=?m!kC$Ph9EGqsn8V9FFL|o9V=Fw`A6KDazTEVM!`gdpO{{Z z)am9RN%AKNW77LR7iVU)%>FdTv*bsiAN9yxYO7}d~Kd(Zfz zf+RWalclT;eL~i-x*hLM^yZ^i>gOxSzW~2v)p?67n2{ybv4is%^`>Z7pKk3){+R1Nc%*#IMXm;C0=46F z$da}`Zp+z`->|Q)onYaxq5kwu8|u%fH;?3~=#D%d`)-7dD6d7#OR@P~Bf%;3o(Rrh zU{Mqtnm;>wLU3FVD>|7z>+CTjxXhTJ$P3mEFAnAx#R@JB=I6&E^P{nX{f5zyk6Smt zWbCp$s>c0H=mdubCj_g4r~LS4CaG=>f}4EeyfFVTV`t0R)~`L-t??cH4DBD71k|td zkWF&eA-yN{^GoW>hD|N5eITe6y^+`aHzFLaMZ-!ti+T4(CI^i066{DGJt}`Vt#&*f zOy{7wBEN_k(0H_nT^})qRda*y_{FgjnrnYlL8;X6CxYM$K`_BTfpwL0t-U+2N9}zQ z`5EvcPXG-+SD8_aX`N*XBOm3;mkKXRn z%lZ`~OM^q$|8qF=TZc0LSU^hXUT+zY7#AqICZE`PO9tRv26&43Yj8US) zq6N&aG0zqZXJj(Gq=4ZZjaEsdkQ?+%Mlim}E1(xREVwBW|9docNpM{p&M_?k_7 zRodxqF_+b&rE2=#kD{ePo1L|4h|cFea>tu`J}j5Zkk^7HpuE3FmX!ZR%UAV$Ki;O= zb=t{Ni6(XB9r8$?-<9{yF!S<@VUTx}d#^_)MMno^`JXqlGct-jBD!!wEdNIT?|zK= z`~|@xM#;xH z#>UBC(Sq@@1lM!1g8YJtSaN&?TK&A3{parm3==n^{%1bFKJs186*6LN>|G-}SipGuK|$H8-_1uFnVwix>x)HH_!&Qbwuy<0SKY zKl6Kv`8|TNH(P(oUkuCD4CL9M3P_Urn6)3)aesRHv688)O0S2V zY}4h-EmnU!y0o5jAm0h@0UEC_BTLFsPmZzi!j{sS(>de65Rw+}J!bQc_gR}hDqx$v zNiB}=9rWpVDd>rKF;D;`)R&9zykai;A}4WGR2GdDU+GV#n^{itdrGj9 zVZbdx{`VvP1pfekp|OtZ>Ph<`vaWX70t#PX98~{5>l(uDyZx zC2X9?B|3A|*k@-I{UV?7Qf2UwAF$SIQ*x`dry4%BXFYN=Xmd75ImqJ@BN4b!0GQoR}wwakG+8W6Y#SP{aO0SFh8vFrL|3Fk-}Eazq8TRR8Fq{ z9Z&M5kmpF`Q^4s!S{L}Blp^;ue)u8 zyTkE9wc|^^9JYT8kxv1q1NDCevLrpvymR2XbU$8h(N0sAb@`V+BD;#G;eWUEuw}uW zz7+CyKS+sANr{V{-|!^)Tk`vd$S;7GfZFk|$dXbn{<-tP++|0>Ds5TU?6>TX0iALj zZ)vba);8pU>|KsG`LodfqmfSlOM&vPMV6%fKyKbTF2~%ILCdo~)cZl*9(b>i_am5Z zJc{A|oajVZ*JHswD4=&;AKWHfU69nIFH@+EevPSRT(ut^uooq0p(wbEJ@2>&bVvwqm{kJH_hyU@OS&(-LbNu z!}qx`XQ`%2^z}LZ9q3p8e}w!J*bS8b56F_V9OmTDD25&W+xEf7ldzzZc0OiH;u1>Y zaTz6%YPmUh(DxEoxP0Fo#$y?BJ-7gy|8PdVL@z}L0+r`x3~ts2Ynh*M_H@Ii?c&?W{|5fu*|6_&sCHy2h;N7IQ1>~$ z%3p-}aT@Y6upCGdzTD+d`7#Tl>*SQG-Nt!4I+N&=`u;fbPVi&~kCwN=%e(SufwLSR zz>#qJ_n=G5RoScD;|wMON#ci=r`-C(0%aNgu3mUa$5VsOB>KdUcI2zUr!si7ob1J; zyodfwhuC(Q)2mN|I@ecBzz+Zs!`>$F4)vlk+?LVHg?0t#xyx4mFAS3KcW!$&H zTw7FLWqFsNR~jtI-*w1a!DT>sKZ`6W>DG^v#|#)Jso$s9x2)%RGz-_SPdm>F>ksS- ztLZMu)c6c8YF7q@(Yev7kx}teVzB}W@!H@nKRCi)EIeITTf2JURl5p*$$BrC0MxF@ z$dc5qj)D7H_O{EF#L&Es;C27z!0!m87wHJR+w*1wlcNv#G4>_g<4297-Pc%qTHvdM zPvUe3@|VC@f!gyeWJ&FAzO8cK_E^N0!w2q|LA1C$i*QYdYU3G|UFRA2qXqKb2zB zJJQ>U8S;FCanZt{IKPBJO)zq4A)8GKlLaNwFSBJhR&qjN@bAIM`SG#&BZI5`{0Tw9 zg4j_L;_+i*OA^P&mgE&Mm&Ojo1}@_Ait{3ktay}+7#)2pD2Wx1E@L9Jlz{)ykN&|g zIV(70#Do5*vx2J8JwD61_XYW%@r%zZIkfnwqN9fW%+Eh7s3~9?hx6TS9P-}?*O?DO zo(bjwjl-$Pk~&VQA-wmi+mIVKpVUC^)%rYQdag}~hp!qwDJM@N{}{Xg)SlhQnf7!ZmnC1q`sB*3)agF|8Q)Bs zxPjiQ`7?r9(aU3ue7^2Sk4AClE!K`?FXw*qx7e`|c_}yps2%4cOG>(ZVeJF=hwL2} zS5kQ{!1wHP0Y(uUMw{>FpG>uBjE(ZRi7mRssP#H-wRY@)N9*xZ$UWd^K<#)JS<;kG z*f?Zu*LWbRM4-c8c(d{gfC^^>>lnyYu!DgEqxt+0@^``0K<)S`vZNu| zae^GCVvYHlHD;b?Khr5{v~)5 zs6Bnil4|xft_khQh|U)?qhp$?!26Ksh*1^M83k0ytNh?{^ml*W+EexG(4KRVn?Ng2 zd)kpDUAnJvhS+0=S^Kc(wqb+XbGNl;7kpZ7evAB9;r~r&PX)51$5z_<*l}8x_R_>> z)2j4tw)V&izS%1IwTO9HBV{MTc$t6idTG}{dl|mV2PKy-}#UJ|BJRWfzPVA`v0A|_dZ*aCr?O1LJ05>wy=eO zK~NCFDkx}VQQU(N1=%75#XTx2)-CS1N2}Iam(*IdYBjaCMQdwnZL584o3_4|TC1tG zmbO~|-*e|qo+PaPne#hm=FXkv%$Y5r{43yZf$o5;{P>@Y{Fm-B7rnv~Rx9HSQUKd7Z|`j6E9B zw>q>(6MPHwZOGaqf4i|qW7rR@Jgl2Nm`q|HKrmz5q<*V|m)Wi6Ruz1x4X!0(n27TZ zhDqaHUy764(3l+Ib%b7=hU5NKh7a|yzY3Gfc$@<5^{K-v9Unw%$zh!W2M~-bjbN)=7hlWBH z$1HeBn@=?Mom|t+&YAahru}3FxwDn%&_6V*6!*G8ckdVs-tIf^=1kKYgI1z8XeAzy zR$^kyj#Iz@xBQE8uSKa@%{#0l5OwzY`4G#-s0_Iy?2cD zWfd{<@SWgH0MzYSTTeWzaLI2(E=# zr4cXOWECZt&o-CA?6P3HlsBf31<~~!;X{9+_8Eg`4)QFX)8Nm6E`%(eo8To`JiF~D zhj?ru(POwu2YrQ+!Bys0+Lte44Py@VCg(=5b$Fi?pC30GyHMrW5Yo9;o zeb>o{iXn@u0$x&6*iWtQ?&s0H-gh08GlsaHCZCS`$lxj~j{y632&_h@18WH|D*8IS zP&BTOPWrnB*CymzTzA5^K;MQet{=m9#kDtknHNzPt8MOTwPFMAuH1~(=7d%&7H}76 z^RzSWe%|0K{%fW@4~Cx)Er2Y(74VX5d3JR7C)n9;nZ{x__3Xvm&U%&#>)F6eJ#$(O zt`_80BUkGEui)QZ?)eu_-c@E%XJg{l~5C8 z@jU=9$=0`yaNM}N=hBp`Z7QTMzw3H;bIKGg^)9d;^=@F-de{1*!PkL&i?82@v}w?I z$l^O3zAL`H+HaRlD^KmN>fg2yq&&5|sekF049>0KusB=bUx8kOEY92xgLCUe!ur+0eoBUx#|EC+rv=wWFSy<1Nh6nVF3vj&AJVc&N-v2_)zfip67LW_w0AFk zVPv$Qk1zi*xxH8czK+cRdD*?9F5!3GGi0GU9_z<5#C*;pNh#M-pIY$pv!LFd2Y(@SNvMP7`}Ttj{vPA@ZvJx>5?-B^W?hZ5N44_?%cUIP$Vq0T z+E7j#d8YX+&&T`l>TksIg{`;$<8tMSwSK#l0z6x1< zzk`?56z)?^cW;lo_zQJfgZ88{Rj|Y8cpesj$Dtq7 zuJjIKuSG(~+Et8wq?pq;2%C3kIzgt&E2vY;g8-;Hn+)UocT=sgc+6jeXntKT?yL(AOo?G3D`hNFF%X_ zJe4gtVw)a07XC5t6njqjk0_Pv<})RyDT5c;))q^tgumGPL`P24PpN2=_LfIR<`j4b zxYgc2cK(uhzqe>_HG3`+(UIPF84f9Zx61jd_D+jb1b;TvyG6M-tAZ2t{K9eG1G<1; zJf#YI{^AG9OXKtUfhs;;KdA~$j`F$mc=e>}b3-OWoI0J3PfWdS|2X5n8~+D!e4)OO zt+#{WC0#Yy)K_~R`%dqp%si@jC3QZ2tWI2HRwr_4OIx(FIl7RoV6yq(JsjqO+#M&q zBYggmCsUi!J~hKX0zD2{JkP>Q+7kK^rI&Pjjxzm<44!W55uLDj1$}O2b!2P=tgXzz z|3=AP$(xinQ%`Z3rC{CcUj|p~lMJr$@YA6~A&aX9UXsPNDD-#QtDR)FHv_6eU1$9G zh5@RLV?3fY`X7Y5bDSsXxavdoG&fkzBfgfw)r?$gukXXRLBD`3u6N-j)rRXyHM^T< z&Dg6G&46}&h5I{Aw{-$&+Fj?x*a^CiKFRx~a(fd+iNXC=<^5WzYU>q*pwA4hiT}*t zIt6|m)Bssr=fg{~_S(G9<=6?Ys8xNYUQqZ2$c!8%_;zffen-hB!mE`xTTge{gHick zgJ&D^terlD|5UK-$lyu9cg3@5@m}jy_mXQ@x4XZS9qglxtvZ;kzr>aKo$n~UJ}5bH zWllMV26C1l&%WjHPE%lPYz)sIyXr~^H z6TRhDv(m#ndtj~2xd&>t0teP&c=3CSYD6H$srL-7;(upw&451&IvTRLPJ{1?Yj5S( zWqh^=t38;zXR9&Z@(sSHk#FtR4*vo4cgW)F^&f-poeNF9dgHu3*DpK5=ma;QRsY0& zK~t806wBdT{3>IhT3yCgq{n0$X8~b9q;xOvXW~N4SmSu_c2^CJ9IpGh16+9)BsIni z-WA}ncyEHg7y24x@jeAF$(D0l*#FyYId>hmb%MsH?wH5Kr;hzJ!IaLY81%@n8eSlC zben>QW0=zvH@KWnGq@_?CqvU9i>nr1lC@*w#=Y3F+jyuG7}oqv7i%&#)|@(o&c_g} zd7oHwNl$B@=H1=Zn)TTRZwq*=9sda50sRBAc>T}5pdGv6?eSFiwC3xn-B^=y&N29E zLizH3KM{TvbQWasT^|0w9p~74Sk7UvgQD6}97C^ET*S|%&OOr0b_>0}&Wm|;ak{H=XHg#QToB$O%Rtlj$agga#BuHDcuydqeUoVBLD z;p}5pE^k;tXT8#S0(YCFOi2c*Ig~f?zZrSQ!k+-uLXy6qyanuG>6FCbSwU(Gc+diuIkDAl6syF~vH zUG$&A_C2Q~l$U0ss+Bh$ej+p(lC&@7YNXVVeU0PQP@eflk4Eya&%>?ojQV7#*{R3F z@RD}>Ty*Z-8Xj(aE2_Or+Ra`xSS&>q%W~9NT3mgC)Dgp7*+K*-u} z2)v}-`XzRg8*GIus{Mut?uX!Z<&;1OUK!-VI!b}jx1M~h9lrv9BXlcd<=zP|sb~G| z><4s_8*Ys&s(nV}Rv@=gJEahE!|)JJTcMG=oqS{DEBX@U(8-4KAS<^JUea#&OLvuP zw#XILUL$f7#?bw{8@jQ#ky}f?R^Lb9pMsu)tlU<3Nj>%LQcpKDtlzk-A$@Lob~-$X zby9kLU3x@lk_AEYBwy99PV-w1kD8R;uzp#{r_T>+_f=B6M^XLSc%&e<1%PIyUQ(2m_v;JsxGwWv#bnFXk3KtU|dRRmHPFNCksgfzM#GKh^o_krk-^* zVgW{M#fXsXJ(}P+eGSg?SO({5@Ml10LKf#a@RGiu{Wf$yu|!4)Eop5TKDj%+mxK3G zdx)zQxz>K4!S{{Ru0s~rV0cMi$bNfAWh>ySE)~!`sEIBXTrWFiOlmGQcB}`F#d{h2 zwa|@_#k&<=(jM%1{MfLvNyAoiAu;XxAhU&1gPb$8xNkZ&{fxYJ^0V?jhL0v_`yneY z1utp0_UR_AMLnS&lksIdxRxNd1G$id7h6a^)%}g!CFE=0H)p_~3pGMk?yc~W?EA+0 z3lKA~ffk&ArqhR45YTje!=fniKE&C z{dI(-2ZZ_~$Ku!l?`L^V0TZ0gBCX0W5 zyog0QPh8^lOb{jKihQr8*XF^%{%k?_*|jilNz z{~GeL`mTas3$5>xzb$t={_U1ObG39a@HSYtOonMjMjJa}bDYL7{}%GH_yNA_>uTUvI}-1O6IH!o=pE)?oRi6aB>X|p6v&p>N$`^PD2F~14S+7H zd_oZyC;{~`rS&ecfl_)nQST)3W1L-|DMicc@r=jOU z3{qZpe^pO=u3xut?edxH&RRRR5+t>VuXXOj{Ywr3?5|xn!eIf#cO@Dh3j?IoAS16h znUOafemZn0Wc6PPFKLf*7mJCD(nC2Wpad!nDaAb-Bs5nqv9+t1r926kMpzg&K|)?$ z5$?EY-Gs2#5YL0iLxZ6I%E7_TOVG=Z#q$ezNj>9MbgNgCM^GG(NpVO~v@7RbJpalF z)Ko*9Jm*N(w}Wh)=E24e>D){`9uGekIs&qC8{sAGu|BU}$|A@L5lxsz_im+{)iq|{ zUyjrV&-oPB-+1;&!aO8cM0N?{5>3t|u*0yvIqCCs77ll5LNG_5LH_XEtXy2D57FNe z$*ExmXDc|YeSQ!B4zxYQCiTPa%k5b|rq_XN&C>O&Xj^#yRvgje(fBD2t%OVPMv9W8 znowS4DkEqB{|yo`R6;HN;-p)aamAg^wDu<^9J)E!-<@|=fqn~*UPAu>*D zfqx$QK4k0Lzu+Z3ccYnyjfHnx&wG~V!eBszb;~;ZJF`FZ@mgq%VCU9e&Sl=IxVzy( zQ4~2=Uq-wgnxkuV;!j?@zjvi<$myHYU*$1*9CQCA3(I}|m@N1F+>4#5-%v^}`f;tR z)Li#!tp}>dmAhV#Rl@>&9b-+o)%MEha|!%)(9Mw5=WcjO?csXj$Dv>L?(~^ox297i zf+_viL{Yj}s!lTj^Sood?|5!9Sgw9efo)@uJN=s~gQo*|<$Ndhjpln!2{Zt*ct*iX zdOwWAJuzH|wRldk&x=G3z^nwUYjhuzFyV89Yj1!wdd@S%Z%XLTwO1^gu2{N$Lcq{L zYC6#1*o2%kase?*Tl=X72 z;P$&*0W!#W)tiDVK`fGuUjpZsx!H+0F&w_C^l=pY4VpNBS^6Y`gZI*YetGHRN-x&Q z$WZTc6-{N2)t_m-fUuw!yZy>k_3YS?X}AQBjQm{@W;(7fcD=NI%AMp-Ugu9Es78O6 zi73C%c)uzqnsaot){pj0IfQ}o?ov3&xP%vcR}<{%EF2rYsqhV_vF}iNtv-kSgan;t zsncBw%G;E?HhB)dJ(S;nRJtN|{mGiXJoU4e((@Wag z953cCc4-mrRvr$q!>GvNx@*mmM&G7TjRW-{YrLejPobz0(`bIRHcgC zL0NqxRjQ2oaJ;ck3;Nsk`v>qphu(y&eLjPibVs<}`}R5A?L!rwwTW|+RtNj-$~wGn z`5$_8!Cq0$GZJF7q6&|>5fTFVI0Dh~Ud!>KSp!OAaZY>4k4BF3qY{+k58A^sgf2>> zij1TXM>^?~4ZfN_nSR4^_)XCHkj3{1yrd`YHn>Xf=#GyrYKTvYuf=;Z`k1F$yqw_5 z!1fu{6nBoB#%KXoxNOcw=%xQF^{S8VUoeiHg0XSmRFNE=j3(z3WItL5Q)xJUVzHb^bY4E|I}=Dkz~UkQzeEdEXKlD0lyRI-w=X@f;q@$6(GP3SNzjrcksI%GR;eAH@G0kCY<$9cd2m8ML!&Q+#L?0!) zoALizY4m9aubuz+2fXgf90+9fNx@613H@Ojdc5yXUDGggBMO=0z;LH{&p5qTpb<~@ zf8F8wV~&D!oc}7Xmfp|6AUFEktBm|5vif}rFKO>`W-kpIucFG6c)!S4bpR?hE5hQ) zRLdBKXIX9mv7ab|VVZ?NlWJBQJ?E5W+Rszq*Fg=C#jzP)((c=9tFPdwTTbmSs$3c( zDK$vm_DTaJeU#w9<6@L%=aWetA&xfWSbP5k{$pqdWN}3LeGz*c5gf3WpBk2{QiXu1 zaXzNnCPzrLbbky3#!_8nXC4r;xKi+vY+MREuD9=%46b({Lp!S%IhO5-H~g4zfWbOdvb#99`WYn;|l z?i}*9`kn&67TN$=xfjAq+Pl7i+)(3&K;vR$H!J6DWSA`9=(lln#S^%1ADrk4`#t%3sM`jys)s)Q`wW8o#u4EyV)+j`=q{BS`qt`TKz{_Fm0 zK3=1@=K!`T-`Nr?qo-TQc=(TADwey64t$k<%VS1&llPX#WZNb`n|~DQILcVovE8$`F4jU7>Rrf0$XMtUfd8 zix9_j6u-@hCQmHe6w6w|pkq7(C%;#|TRLrWWN3u3;1qQKNDhx$p>rc6bk2BxGEol? z@u%eHmD1}U;mQ`BsN0WW<-DwDR;?Qy!jS7D6(OW?30>@Zb~IhA!dazTb@6Cj)@Oe2 zV{-fHRvkMNrwMOqUf+VU{8_!DMFqV^FtapE^~ow=967)>iyV|=%{9h;&M;#iX+Ki% z2SZaKYriYQ|F`4q!9VD3zfqYxN$)mmSe+o+qs?^~{@2Y}vS#soZkeY5W z_DGdy>@fg-G&Byf_BcQM|E=Nt!-LOsx5v^`3DYK(snNeQ^|{AciCdYlQLP26{!XDb z_{>K7s9lSC!RXp2$ViimLP>8p--csuqOf0WzRcn0JTJ@-94FW4iK6k5-ZfgZQ6N-`VWQh70>~Y)ps_$ zBzu0zmXo^c+px||7|vWNS~DefMld7xJvX>*2(EoFK)dh!lpsC>hW25->lTiz8dNOn zeD`T@i%g-&D_yM3Q*9E?vI{SoxK6 z7)cEVMx%1JWU<;9;qV(AiggyoJVei+FMEGj{v$HwKL~ylR0&zRlf(bF^6Wh$cU^s_ z*z{ml`eKN!c5V}??3DDQ^ja#2loqD?Q0|s6U(xq2_=llyLRRkohX21JtapRM_#jqp z{nGUt>Sok$oVPNFO;P>JCzoWW)JqqTZ%{pPH(|mr-Avkx)M1HNa#VwZCn;d?6 zs7J*~f5XUaC12bAx5Iw`{T;G$U$;8qBwS76WHv9-Feq67VaM$5g@51e_b9UsaL*bnM^PtooFAvG{oZ6IW-& z{P^5xF6&sd3FESuHq4TF1dlDBi1I zpHJIQ>I9Zwa{`qyW!lsov3zXhyGWSs1pz@*&l>FCt$e#7rM{F&kZZEJ{6;2oFYrH9k+-t_LVB)Mk!dgYaub0<~^Y2 zWiO1(gIyT>Gk3WP9rw#v_Ai)v4i13DVEcHFA}6mf+yAC6d_enOctz)uK_zf29kyFJZDGD|l83d!2k?J`{?R30+yCgN**Fd@O}gSQRwk5 z`R>uaGNsvBZbKy-rz6a_gFGx=ZzAsqC<~G#<+ew>l5eI$l&AT9>Qz&J=a7ee-cEvF z3e|PVcaP7T%X<9 z*T3VWe`@5{kiV6`8h#^m4rKMd0AA9b^giGV=-n2|-A2Av?jPX)0sR}Ya{mi2Y4>{X zEOlS>ZhbAR_meX6m&31t)O@Z-d?lW$p6)8$4I+Gv1}NdZ(3jY>&pWCCtD0kWBtn@P|OtA*bo&$eAbWxXlZMp8;4+C%4 ze&fV+fW`TRDYsVgkZyqyt@k+l2wM=hxwq(OOW2T;!PtV|;3_lf`0ZH0x zeUN-J6=F_W{^*w`-$wGV{l=T&Z-wsclJ6ed9m%(AzwxlNlMeHJvrE2zf&T#dXkYW) z(A5s}0=U&-zLhgF?aplYxzKz_lGtI7?T+B>+HX9f(y0&gZ6XibK0FNnZRi!ekd-?HUXpE}cJ4RsEOlSrJE=Fr@+W_*_fO$} z2K^$GDfYB}3btK5dCbNQ>&MVpSh{-5Y3tUVwz_W2igj!1#;je}ux#mizFXNa=Ct+o z%f>XUTeo_{m=z5T_2W(sy3_0GD`X$#`ZMd6v%yrt1yEv@oM~U_l*@t6y*;Lpo$3%* zdRAtAWdr@=6GHkuWJ3BK z_L`hUl@I7){YAb+-jAxn*q}TXTX4e`x7*LO3c?ULwQn1J-$Wm)?*WIhXAfEk zS$)rhmo(~lGv8l)w7Kt3edqVkmK`MzyVuG|4L>p)OTKSz6Hywk?o$rei@bj9)Ol1# zW)X+557A4XT7I;bNFmBxTFh1~?vQMx$9T-WT;&w_dh@|)rbE^zK+`~CHsxj)!n?!Y= z%0WokY~+b~C+pJeNqSghZ2q_$`BYrs=Z{HpXRU6`AX=*R`Vu+Y$}dwlDzC`BQANb9 z$*KO6(YGCatiB@-V+;cw3R!)Rg_rb1cnARs}ecjSEoeHO|zU*+%83tMWhrvtQaiw{F zCtkcCo?{s!&RD&Yh*xslAk#0$tZZ08)kdkg%PB(KJQ@Pej#d@i{%LL(1RrJw*8%9) z5^;V_%{>_X`g@}zXX^gR@hTd*i!D#FrMiFCgg%Ah#dipMGe+u_ZXZr=n&OUe5Af!> zVoM`Zv19rSR8?6Ma>B9_`?vhtl-H8^nSR69;C}?Y z3fb~{7hY0R*v>o=#v}hy&z;oUg)4AD467|=#bWW=&*e;u7mV-Z^X8Tld{-is)N`(K zM^O?%CG|G4^?H^*CNe0$P$3^oN&R@Fe=(_bA%$A(8*4T6I3o+Fid&UoLlY;Aj;5s6>o-A!m zmea!Sqf^R942zW~hw<)Av3W}BUIja;yis~7Jr2Tf_xI8qE!dl*eWsNA!+7zEv)KaK zusREW#UvhPS$C@>#jpFi1N{bfW}qegEIlXSYL3i2r(cJE4SEBzcJXUMyF6m-@#$mx z&o0yIiS@rM*sD~teqF=5W$VO`zpO3xl=oUpwPB#(HYvCc2(BZ7YXb&q%68twK(A=@Yh1SWrTcxaZPF17aNuhn}W5z!9=wHrvGA?}*{>M-o zWbNY|W$g3xO~x)yT)iLc!|}9h>w;5~IFRw1>O+n11m{)B?Jhz|sK%Jn=pD|E$ZQ;m zM@N7jh;);!|M4U{IgIiWc6%=m$W&2@9vjzO{k~5t=4U9ShO0`$w`Md;1kQ1nG$nF z-*)9Z?Tx|3G{SbczEMvOJwHRQ6FfCJ27mE_4E{R!P0;y}#eWsNq;$P0pY3Ptzj6}% zA^0}6{52Wsgva;I0X%Lm+i(>fMuRml@@FL*OvmXBx=DHcRDY*6Y4Ep!F9klSXG0dE z3p5Inw5##?muh#*N7OKk3|^7LD-Nw|FatLPrJWzDv@!30P=cq@kP86PP`!4N-q5>_LI^zs8WO~Sj}y^|GX$7sle!4zBr@r#qc*n zw?kIn2jL~z@#KCQKX)m&a5ULP+ZO$XeoR77w5Z^gg_t#YWF|^sxQr ziN~-$1+9gwo=xzQ_Um|E=I zCawfUI$2I9j4;FvDfO|+u^$sU-3JXX(ZOiR5wyKevZHaPGBD+$L>e!|vKd z@TW?Ry=%a0pQ{%5SD~LlRv+&;qfhar=DFH>#eQiQd+4)^wvqiQx0|gfADFEuJG@{= z%D)v=tU1TotY*?WKI}#&={t1<-`{-i0%D76O_(B2Ply&~m$hP z)OOM zgC2&gK0k&J(*A8Xcdbw7JStI$cHMSvleY6Y^#vPG6sQ?y^esLi(|**$Z-CB%B>f+> zA6;h~dUmB=QE4ae5fj<ctc}Arysl|J5OI;vtQbe?)vPa`54eh*D5#w`L8Otjdos< zso5&ir{W|p+ntItWVYR@W7W3>IH`7|(XSr-R==OX{~G!oWcB+Kyd>Km?3Zy-`H1fN z?c5wRt4B>hz7o`GSI(RX1gw!^(dnG=DXDst!C!fD2LDy?UxOZoEdC$E2Pu61Qxa!} z^d;M~UEOGtFf~Q)&*R}JiYDqfPRmtJ;@vM(jLFKV=s6;Q9DT_oe??`qK{#Zr+rkJR^ zT*nHdgNcPIFRZ!#h@7&BpIgK*p71i9N9M=PN>Vft&A|#&3E9@F^h8~&9@gI3>_sf0 zV;#RwrOwcms$aZ+Y=9aQt#GHQndsYkps~-yrJ4TaweZ(NH$#%7eeAhT`z7naoJEUj z#%0Viykf@cb-~(T3e%*VEyQ-`l|^a`@wI~`#%F0C$DD#66Eq#N<#z(Sr1l$4xxIhg zeki|1JI_NBtM5^^ajRDMaTlnp@m;T`>ArM1Ugb=(M9hDkj)pghlXTd7G@n7(YBsg9 zU3)#Dp$b%*FnbaPlMa)m9>mAfcimJuL^iccArso7+>&9*IspDXyMk(f)N_!J8DYNTGIi76+=B9BbC(YbZ1(Q7-n?R$6Zsh%?%Ivlck zt%R54h4ZejHth$!g5%Mxv(|t{?=NofcDmQx2--<=9%GHHg4G-%0-Qz6wU|2~@u_Tk zpA?r+0K9>pQQij4c;o>6bESXH9z-=OI?U;qVf1PRcMROpzC};tT?G|DR}c{bAb z+@U8s@ZyE+j1ITny)I1|aX-ZNlA7iiJ!{ZI8adJP9{6uSEs)jo33y5S`Mqd8dL(9i z=+aYEdy{O|%V(6@inl!EoUP5`74mE58obWR4BiFsCqPRfi?B$|8(}SLiv!zTLix=yj{*y`BGIX0Ny#jZO?*gQ_Ywd zGG{>npe4jx3m%L2TktPIFGCjZPv9k4zcO3z4PN}U_aoY(>KW{2?+?YHQYV9Yx;`mD zLA^NK*tvLB2KNT|^P!6&i~BNoN&C4T+i`wo=CE4@xl?L%mZ>1gRWbJw*{Qsq0dvyGz*IE6#rW&6LTsmnU#F-Pfa}84K z5vD%0gUi}=!dm9|p^cEmeKx!#Yu}yxI=|HOw+qxw>IY^y@;Y;S)7-kAd{z)l%$aY- z1pE+D(nm?30Brg_ zU*!i#0MMvFz-2Ps31X%uh&t^?{Q}}5X*WmfYzYKXr~5jMA&zaxNh3$zyW8R4hyDgx z93}Mz$BKQl!%`fS*DeJ(foYJ zVHswI)40&srxv*u*IDqFLSKO_uKVC6ExE*$&zoN{_wMC0W8Ip1qJjd4c_{phG~3@d zy8xprb1yDdQT?RG%jYVMSI02-A?3cRWa@Ul_mqxY>FVR%;d;1xydL5X4uo-OKgQs5 z&dBs1)9@A00g%OaD7+*)j;!x?j0%glr5Q&3A}C6hN9nXrVCCvX zMfdg|<(5g@h7mZO5MHCqHEx_v`>_VsR^-}x{Ve=p>)BfiSzI5&OIrOu#$HZ%?{2rQ zxQHtn+K{NwwLvuK2TV}tXT9Ll+iq}UCP@NDFAc882iNW9clVj!g}0~8r@PGUA#-ar zx9^)g9`AO0+T?PP5yNbvh$*BH+a|KcH(d{;f|XFIenM2`6VFdDtMen5h{nUD^Pkjd zzckg`KR)j3WGbO+h9yQsh)tge=yne#yi6*X67o06xA(|plwPN+HQ}d|^An2_OqKIp z=91K}h@3@;ALR~C_V&++`iSU7v7DjGBfT#bC!nWXp2Cy#@uPmD#|({}#BkreG@3os zJxOnI<9&J=Cbv(qFn73xefkS?F_Gs63v-P-u+Io#4j$H+7Rr$d>nO@RIELz}?U9-gP|;A|c@b_PX);`j*tgX4m;8F(L9bfuQ>lAoNE5iAey+0pogX2nhJU&*zn3m9i zuQM&=yo1BRkD0&Hz1@41oCtr92GU|ZILN>0Y=h@Pmv=rG9Yy&PVWEswqHy=-Z{v|r77yJ;4-iQa8Q zC_?Yoh>EW~UFi+beZ1cBT=zaDm2Qj6aDH)cmR-lWM*kM%rjaZ9zXty{^n1wS`Vd~y zuFtL9RXxFB3|#q@M-n0|DFm!WF9h9Ka4F4$f zEy&{gIlQEO$0rekb_wsD?(l}`{=0|gG;KEc(wj2)s^RBC^C63GF}$RGuW$9M*QE#F;KI9 z#5{@Lm-1^OMhiZ1v_J<1ZBRC^XjuUIiN+g$u^tmhVZ3*_!8P&h%zWAs_*0=(kj3>i zcuB3Nn)h?195_wdef=k*SJ1)f(0}kg3|$jxuj9_mgk1eZ@qQZ0NgBt-BHE7~qTOUs z);PL^I&qwKv;0J<%VKp7q3fbaca+45QykI5O83dI>7JntYBs;#f=STI#AI$CzujriQYter&PCWgcH)JY&)IqvUDRyHJm3$WY zwOwW8*OPym&rAyQ?%~SU-Nv0a@xt$>gk?K z%yTFYvU-k&m(&u*{j%}#dg@s(UUT&B*4CZ1AUJTA8dOwyIPK+p1QU+oaSq_~Wc!#d zh{bdw?lIl0JwhzzQVI=Tks1=nX};R%zX`eaJ$4IxGju;>aeWtFl8w{5>v2o@2#afd z-Ns-YC_g=&`N)I8)I`u=CL{;44iSb74qo@33}lv>$w~6ByvE>(otLrGQ21%kY{=rd zA6`;RIB(xNd)M{Z;;G-bVTG8eO}%ZFMpnKiew@GZgWD@S#Hulesozq4s<)ItsIC~U zqEhDoS*u%EX^TcnvI#W!fQnB_91@)#JBSEpc`=uMSzflE6U|Dx*}fN9q9$=nbulY@ z{n9F`OQX?PG9FEo_DjkOlp}=h(z>7eBo=@d{5KkXcc7207yZs>T@0EIS$!{om-J5P zpFi*1J?pz>>Di~$%~-eAyiEr*xdX3tRg-&>AKdOy!EHlu9VWWRoX6?edh|I{kurt_ z2P9tCkrYd?193r45m}MiqmtPJX?#*axeaA-RYbJ4Xf!2ffjf z=`E~6rFQMS&(@`*S%6K^i;03f5oqCM9U^V}4JyKtdWlMlI45jAP4%Vz(JA2*g-X?#^DTJB^iJISE90AmRi@qIr&^ zmBuWi^#PJ!M<~CE{B3zX4F7HD8OX}t1}|w}+pD0nT~u>6u?nXmx=pbSqKI|X9EO}# z(#t-doh?PuK%3NhyD69AM&^q6O3Gy-{3+0Bkj3#`cu8-B=R`Gye)_w!1EI0&f{rE| z11~mvJ-6r&WrN@|=61Oke0tq@LjF?&wk74fd|%}-#t0|4%Xy^{ z-6t}e_C4YDO(fz`KNj%^(CWRcywd^@T+;U&+}purpR?G-oOcfmge>mq@RBOS_h3`? zp4&UN8knYz?TnA;-zl7CHk<8?L&4kOI&W}nOc~GI;o4P^$T*!B$z=o{Ih4SjrQ2C7Jo7 zCGZW<*^tHi7`!Aqf7BM9_tG8jvek7<*G@A7peFqrb**d?{<^unXf_GotN_~>bz1yk z!3lJAST+e4^RAQW5n&1=59mnD??n$0DlFyvEeWMg^mWIXqyOdd7pvSW1R3qu!v?>z zIn$3VgFg_O1X=t|@RGKD-PDIzc<+us(+^?K(dwo3L01Hi(*pt*)1SwK+YjZX-;s3Q z@yh@_+B-#`io0bWeV3~j`BkYreJ4(*%y!Pw(<3;UqQw}t^oj3IGOL&GN5=6U^i^S` zGVUjm(48u9>?u@-MA-;_wEoDA;Fj=&b|2Bn{&{`9A&LHKq)NmWCWpHxMMh^Gz{{sI z-g)H{q5hY8PBr>TJC}y9f)0YL{#RaR^xyHW(SP;7_WWG1TeKlKHm0m2dh&-+q6Pmk z5!~Jzf%a_&IuA!?qJ3qozm78I=K;_|k{tJn9o|;NHPxIq;F)yyg>_!BN{J;qU5HWzKe=EZ?8(3sCHJ(4VK(89%5AP4Hp%+!aNw*yTo0qs$c?ArlPjh?6h`%25qy3>Z%rg(eALl3v zU=U5|T&CSd^cy!TQO>}2zR%&5tJ3~}By=JU`FS)-=koU#DY|m)%>I%?5;{64u(hfh zhpT*YOAcGHGTJ+5RE#Z!S*!f&Qg78@e^3%SkrPN0`X%l4))%Tikt_C)(Li6$n@hSi zW0L;Ja{ox)T(3sUZt#nzsUycfr6wMz4jq51ns^YmuecNcq`CKlD^N)8eY=v zhxw^wBByUMFQ;#Ww`X**<21fz>Ql|-ndj*&_;aB~$kwMD;U(2hG4*KI{h7@3M8mM0 ztpuH`+Ke=U;l_>e5?+ACob=tt8xfB(@}Spnt@tU!Bc+9p6mDex;2F9n%4sr8*iR9J8r%bx!YxuQ7Stj4IYk<(It@zUf+lE z@|rHMFM9gPf>fUft*p!L-^satssyTFWAtXF3kv<-QI%CF?N+7RSDt-0Ix1VgB2%_* zBo!|lPeaUJk89mXKOZ;7A*x6{&VaG?4Wn-x`q=){KjHr)`dyLHw-{cMUGLgQ`!BF# zzQ&*#R?a7J=}IP;H!cqDk!UnKQb>Plg%_v>G`Ckv^Hx;@U)tgJC%m zFjAi7XWyuDjt+LbGtke ze7eSb`dcFS#QeDAe7m__8dSUr=YvEQhlNjJ5_DmrkfReh@rDg;qp60y_%v{~EL@C? zRc%-47j&;5(s>@{6?=Is(j{n`y=l2o&;KW;>h1Y6=;wGx>A|rqPHm~&s{LDZG%wme zK{T1cUgc)(U!tR9=fRI|(G1&V15ysT_}K$AD>8$MQ7_?Ls>_eyu;MAD z_GTZd@spnoE%!&3X`Pj%pTA~^Je1RU zMfOUZvcNwvN(()P+DtEQP#|iPe^zuvLWCaX&y7xs&i22jA_nj$%KwJ}j2V4~v5Qct zkFLB|`S;L1jqonhL=zCri?34tO&B9E)iv6`T1Q7l<0G^`gc`Vyu3d1c9Q@q4vm`u^0+Y+hq-@0it6P@N*U))*=d zix%Fm73YeL!sEPzAOycsJcs!-)_wJ2necI=g;d$0!|7egAy+cOE%D-210& zmvgU%astAL(U>U`Cv1>^h(9x)_K){z#Q8ML?-iGOp$VnJ2gJ*9GvWL8~Ea z=SFx*cKlm;xUqM4JFhe&-x*8m8#b=53y)G~HmN`+lj`I$ST0g;n6Y>;RZ6``5F&=< zVbwR5$Yb*BI4{_k(ehbX{>ZiE{~r7Y(BC18YuI%LS9y5exi3^h(wbG z)D3D7ej9yxoiEW(izNE1&fMVcT%W-+0{#GKB4qK*hL^NwJemG#U^k+3G!Tel_4HsR zD!+0u6JJH3Y*fw@c?0Ny6zlv*ej#|u^%4WaQ3g*F^6dEkQTS(}R>VymC%pMdAD0>$-d6F|mu^p= zVAMhp<|SBXyit|-eR@Gz-o>i7U)T%s@*`efO~jbdi3)!#h5Vt?--{SMDt)8J5^!2Q zE`q-Ux(Bj)?0}c_^kwGx*m2RWo|BASH=MP!zPnkATGc-}ry5_;-@CzWVQ}SqIObv# z&h@=yQUkXb&TpZaNa~p^`kN;xD(#CJ?n?|Q+E$e;kr$bq`yGkYu!CkAPg#;*WT|4A zgm$CJ1c$36`>l@_aAK7gS>=w340H?Bn=1CWiuO(9#h)>i3VoUqq5d~!>eWT?cR=?* zR{uZ42l|KOjpn_KJIwoLD4q-D?m^ z52W*x3_3qA(AY8OT1b=l0;fLFoFtP>0yFeIKqv8Q7FDyCqPq!ZtS7mnx4`68qA z<4V7;)O>xhVxcFJhusFcfpa$s)Fh3*b8gDKU)R9@57Z7>eQ&+l==*9ozy9=I=Gg;% zXKlb~KxVX=xq917SzTvtKQgzQ&2-lD=F`>YHu!fk8&@7&hj-!4_vZxP++cn>KKSsl z`LHnfa1Q3<=%Bmur{YkR%ah?@A6*vfRTk%Q$l(aeQr$luPY#nFm7mOydliqWn~B_% zbmMvDiHdk%*YDjc&+i4f$=>m;%7$j+{*>~cAv{xOxVFpr&jeGLWnMfHXQ@0vfTc3e zFG)m(^~urlQp=BIG2%~AI6}T=v%5Zw-{k0Ck@3+k-^Z)yqA4mUqsSZRJ*scH-q)2X zS8Z{rXKlSrIdxDDHGG!-fAKBEvV|r!jtXPC3{F9kx#4A%K9ZQ32Z-e&n!jtu+$jQ7s zV%|>_E6XuV%=Gy$m4{NnNtA6RVg28V-(!gP4EXDzTOf<~yYNAhpfsdS>-Pb#bPSf; zCVW7v{!G1~Rjd97QJA>>(|j5fd>9Dgwy5*d!VP+ItTsUG>A70sgt4>a5hcx>%#ia| z&Uc)DD32!p7OmI$-w4d^H1{`pq;AdFeLVaOXbxocXn>dWM%X{L`_;SmZ!+z+@uNI+ z{ko0yQaM`Hgt5=S4aGu?BIPA z&8N?EtI}T!%~(6o;B5tuwfkS-%Wfk+9%S)81}|wxIB)ylgZp6j#cNkCV{yIH@-6On z)nhK_-9Kh-@3_II?|8xO13$PuZ2s>?9ekQWc{CR~ulC-cPtmbhobhR#lPedXSj-y? zpR30XE~Y&xi=0h&Wd|pw74$;ynapy|q1~CAnCH*UXkV12rw;W8PA&5fAPAhVm@4*h zm|{7{jSiwAij55V)G=>|Vn{mxIWgL&)h3+JTl2Ep*bmtMd>*V(WRVSnir4v zPs_3pv+{YGbuOkX=`N@wW7Ki7fAu8&YaO~$woEp7SAfTkPcDVO9=Zjxc)toSsb-J< z*`_t=vH)Ly251inhuH0$5#MJL(-u>_DN$f7)fYNVhZyH}H%Q{eYi z{(_}zPYZe_jYR&CaoWjpIYFLy*LlCsw1gWBS}TIp9GRgi^a`j3(Ri}|C8|#{mp8~e zir69|uX3uvw*~nY-`C+^fL?+uz7F_(#V4)+b<4Y;JX7#}+m-7yxg>zvp?Y8GzHh@n+FfWwRM>0CT#BP~})mOBIZqp37?Gsrn&7&^pcFop?9z1wKptTL^zL zv>dW{8{j2fwGZXlSpgfFVikNtz}Kjqk4p|^VW>_eBPA?&Q2lRGdR34sIHnsMt;n%B zeh>dw=p)GD(9Qdf!`N+iXg2rV6`Ix=2FD!aSRALrp9P%Wnp!EFm@sQ+s%CsV@)iJNzWLw)sc8kGO7>p`sF2k{Pj5U`&oom&N8^#k!$PK zf8gWyuxAdkxF*9(+J1y-A0{5Vt9HUXcZ-&uV)h_3x%U{qo)3eWov8C<-=n0{DFg87 zepLbM6FK~w0h`9h@^F=%m5gR{;w*P*0iVVFKyz}an(nmEF*vt?!{U4h{%PpDkj3fV zyYDzd`*nf)^~km2jdZz;joM<)_P$32YmaOfW)zGSXM2&XDm)N)Vskq`M)^9OpUvlm zo)`7=k~v*?mv`zfwD%p&8^OK6yFg71%;;3kH~K6AZzW&J^RWTG5xNwz`g{{!QqMRa z-TP5%gPPD;Bb(IwrcZsIJRqDySvrA=AVJ%Q@czqXddTzqoVd(;MJj1?W<+H+Ch8`m zRE)1`eIoNxM;LrNke^1r;LHE2=M+Juki|C|UeccZ5Z6mfxS?WRT`?aC#5ov z7vtZZifH9DclRoNM39}+e58?IPyW<|K>kLs(Dk8TqGCqb!~E;mVO5SrbPdQ5W;bq>)CJ|*BLmZwl56J9XTKja9j=F1lVvhO|>J{EHZN2$=BAm|HA7B zIP(pXB=v32{&lm&XZpx`{2Lq0{y5%Fzm!*0vx@QbX;ws{$zq*gA6SA#8m=*R!NcpE z(k$)?UjFn-{oL|EAeWlO23I2(tUd06e+YUEvi5imUXqy~jxETs<#aFn{m|D# z*?Vsn%121e7+w*Gu0(RBb2HN_5$33UKRbfQV|6HJ2YIH^NA&Iepy!N$#z39=!b`I2 zwryejkzLze;!UsIL``D1(L4Hci8pscx2wuAn>jQOhWDJYA2QlAP=CWTf@-3A& zB97VvaMaZE`1ID>2A*E99@Sol+* zQz46MExe>Xx39Lm=F9%mPVd!nrppWdA9Zg6UsZAb|DQAGoV#Va$<0CtB$u#-#Sj(& z0U_+5pg~ZnxC9{xijYE3a7|rtsYYupRjaX8YpqMPw%XPuT5GMfn%dScwpL?nty*hS zYn5*Ldp|R0a+8pt-~a#j`oCWP(a*WhO~O3O%$fC>XRuqHbBUMYGHVvKMyT;RJEt+^ z|1kO6_vRJo{{k7ITK-4q(Q1ajZBP1^pQ$h1{OjbHf-0$B!8!98U>KMJ4hE-#L0~$f z;o!H&ORF-rKnn0H$YniF{2+3@!tC6lXgY@?&1L6wXq^2dCM0Z9^B)ZaW??}-GlsAzsI3p0j~qApZ9HJU)wJ9zt7amzPb@RcGLQ% zjiO@XLCl)uQtJ}19?S#hfVrsG={Z;V6$tL*mt~NXT$Mv}#vZySa`-@He(% zbxPJ7{;SE~zPF9g=Yk7><^L^cN&C(+bL6Lg%U%%t@MtO6QqN2_Fu~}$394WY3 z;aMVfkHQ}W_g8fij$=#2#idNGD=Howi7*Ml2@<(GG_;nx)U8@?N73zD?IU8IJQ-aBcs0k(rv1WWQCs7egLk16`go#x9t{iV>^%duwXya}o}lBJScw&)S5#h{Ra$bUnM!3!--BO%pnuY|WNjG;|WNKk~z)J8{Zb6X84=PL!OR4Nh zuUPT#Cj}>@Ji3Jolxk+~>&|uB&NTMvK!01m{tUej{1;gJOuavR?=CR!+uq&%y?1AB z|ae`2L9!K+!m*A0H*mQrsHTktqoNp-+uqi@+RDOvYe8DZhzzsM> zUVcuni+{c|*dbm?EP1NZ*fN6om(~aCvfR9QG?MQJI3qUjyK*%uCeEy-=`vMX6)c7t zf{VQ>9i%9pQdX677~m(=yhy1ZjAqv`C-+u2(&`r8=ms~ri5UrEC>82_s-vaZ#aXx@ zsbeKSzdTy}Hp`fXoYnFA?Lm^47&!(#kf}%2&~w2eVCA?TT2f6YNB`#>8oDNl&`w5*nJpCiifw{Gl}`$W^Q=_kc#c)2*-|X5_LTWU za|0Y4%Gn{nC%J;(mIo7fRtKZws(e(in4YLyy{@Qvx7cpk>DX=bc?)^%dlCB%XQ04f zVD*^<{ptE-+70d?nXf0stWMo!7A4B%<>1gA2Q{J$5#q#?WK3j^X2^69_vn+Hw#$q> zJK>jxq4du;Kz|e54Xiv5Lrb#r^g7yRqU*cSHmR| z;Y409I;+OZjU3K{896GUCx9uy%5fO9Bs)&%znn92tm`31E2qPBahD+niwE!PBP?^V z%V@?99A(4ni+5rTBdYN-$d%N5g^_Cyd~JFC06Oox%-4aH>rH4$Eql#-@XX8owPP8% zR&F|-%TYG$lIE;6sJta`TZ1d2`r{L&KSt~4CjI=et3Qs_&u4x8ah>_ItK#}wgMQA` z&#M#%8C!=r)YhmfWGI|qhvY=6?Ibn}7SZZF=RwR&RSq7+hPf)d-qk+r!##E+akpHi z4rW&}akHEJk((Hmh(#iWsy4PNQq0E9qL^Sh(IZExnQk7wSxPb5+NB0*4~^^Hs6G?n zMhA^hgOYMcK>l`kkH1X}BdYZne%$4%*+C9@Dt8xKH+eXZ&tVsCP@*<3mm>n#yTih) z4$qxg_@uPX)RyPn5l8aAv5xT#S6#0BQPJZgRYCs9k9>8l!XW~`ZhS$HS5;9KXs=e; z{A8oM$p5MG#%CvSte@&W?WSg@M|u27-l&|3PWq;>{(mo1@2-KqAAAqk@_iXvQhT@$ z-`wxKe|uP}%;Xh55))n%&j;i4aDt})ZCo30p8bu)TDVGIAdnLo$}-6cl@nR4TE$gB zY;p|SV9^xSkr0Dd5qW~OSxJpI8+of9GV;j#It%(pa6GW`{wDmr^_y%D_nmr=+iXC- zHh0K<;!N`6k@{m1Opj4}M!MNVQ7>@X)G=?n3$h62+WY@!-38Nn|D?|!{6G6TB70cT zwBTy)7z{p?5$hE7HrH?k?yYp{L)@v_3{Knq#tt%)jk za->>^Tq>!*U!t3hc3zb=R3A8JD&AL-Me(;vdkhzu8=n8eD&! z2vCRs?XD982w>Pc$p=II$=~YV0sR~B8nFET04?dWtUDap*mK3K{(50P&zL_U=HI25 z{(aZ*t@=TR@8Qr#gX4hZdm{8_;oE(3zZdH(gf)BGqIb6F-5sg1J>-8U`CGl8f&K+} z30VHWf$oogkGOWdi@-)KNYxy}a?2=*070z-oXB0ry5RSW-svA^_|Aqt790;O-+E|C zw!Uo+?{n&oU)Vp_%(?jN7vx-gp?(fViZ|pVKP4AX)9Sh98*X8g)PGI% zT?1nl>n=d(djDg{gR z0$jAEx5^$d{F=$n>iK2pJHb7`^1B~elC59+#pmnIZNDp*U+iv7ahX}kIp&b>KJuMT zzEYoJk1>x1X<+$|hn7?mo(Jd%{Um3hjQ-q$Km)> z>z^6Lg|gnC_D!)J4wmNl%^ z>mRs*eohZEUovCOo$zn>7=_~q!(b`k@JGtO46l|Tp1^64$@V-h{Zo0-EaQgo6_<4y zmWkTK@_#(z$2k;w45$WHuBp(HcJ?{H7s|D0$L7t{?^KI>=GC%eU4%5PuCtE|22YZJ z6epn-xBBOfX6kDycS)H`7L90o0^BRq$;Grac}KI`B!Z^woW4cp+x1$wW! zf0ghw_nD8ssqmYWd(`O+=0wg_^CKs)X`HK;Mvh~;ypt(#F+Rx2bgYyK`5=|Ih;`$l zSTH79!La{A*FW5C@DKNnkNm||@8MC59LXOWxm%IT+UEz*KL;-YEBCw5lB{39-N!=i zsXLj;zWE!%LVfdcyuaPxt&-XZ2nZqpP zhpswWb8(#X(?+i8PZ+*p&$-Zb;ACLs`eyihyIyENk;@JOYlpB}cnPmYEfE5L?=E)l z_0$P2M}S>!8_aSp_ZI(7&5q2@ogJHQU_~KLJe)mo}DQ9w1<2*lCR}^A@oh)R$%$w4lQZGcCH_;6y$}b2zy2k z9VQhKDS&gD!cR%3mS;o#;gjYkQf|>7`A!1l0xL&8w4}cM=*hd9*yyhsYhHvg)$`;# zn%CpXRPU^=mrZ9{5vMEUvzmOYzKzfqfJ=epb1k$aYiGN@+?P+Loo#U^>RNk>epbL2 z4eP7e+8gX|m3xG7KsnTD|C!OVgZ%CM`H#?Vfp{rhV+wa7jB&Y0m$I z`BpuZ$@fs`TCe~}`Yid**NY}e@=ZGDAYfOR@9rM?ejWPTpbc1iJq<0%t~c5Jp1yLg z+O|UiQ)u@zwqV`HQ;nf6!nHr<7vseki*gcAX3QCtelH*lZ~-}cbgk9f?1@( zBQ7;BhWh`6x)Jg}8v0~#3b6c}pe5OJ{&rr_FaOL--p-QQ86(OBV2|DvGBAqmoSWKkkp}|5`Wkrhc(aB z6)}0Aa^3U%lf9K9dfQ7z?w!b$=DU>NWzaW)TY;7P9%xCei;TQ>{Ac7oeeG!tE4k}f zzveAOp3!Y$LO)9px7~IArK++k)lu9JOD&%1k6_DU0{J!mkKwfk-7d1m?TM6Lg$Ij6YY%zv|h{J!|u!j{$3d<^OqT zN%lVDf%-Ge-?~t>x(oEk^}FWHtCo^e&Kq7e>!>*#cl{h|qxmj7VDY5m9I7s)gGv6@ z*yCaN+4ui>=s$sXft4rgXGWg%VpDF;lK#ujjtM*56JL;tc(r~$Vq(^nBT%zPc*SF9L6O#>hZ~r1?yu28{ykg{A4S#WVlJeRDy$zfRtbEr%_q3NC zANGAOk1&g4Z7!nlxSN)n3$3U^o_{c(axy0wk7lt0yNB11cHwu1|6cM>hy34%{sj2X zW%v()mh@@$MeGw+my+}vy0ZB|UNHtA&-r6RyHw%;CN(-g&{t_KqYCTXDX&+JJR9L> z?QsG0SHMlc+T$^3NuO4KL>^mxn%z^xTY8N=cFIFuwl3v#b<0)FLcE+Q=c;IbHP2%1 zi;d>7Pqa+kCZiR{X@1Sf7yEgpA07cc9UKa*e5;@(**JOY>-w)xM{n8IL&6TX)zqXm z^HE|d)Xl*->d%h|`pb-C7Tt3p$5g1|4gMLb-dm^{y>8@cg|8hSJOcd!_!Y2n{Rz6K zT=hpDNG@BFE$*GB$^87)GD{^Ule~D31XXycaS&F-%JTEYP>o!^gWIfA`+Fl#&GVV} z?r`YU-~?dh*$gddX^-7-oh^{v;oUh!L5xqqEmB}?~WAJ$}E4Hm2Akxn_|L%2hX z?&Bl3SS<)joQ^*jIUa_OegA(6{Tg@!SUH>*j2vD4_8*yXyp&dVPtxpusQvFN5u=TI z6dcNCnZ&*D*({mHQ@k3Z^lfmepmCew*zY$lu!KchDZY9x-6~FNT&> z7shw9`^TnymTp9;qKiBK$GsX$%Y4b71d6O+Pr_HUTsm@~CD*+^I zkB7YujmX*y;V?KTbhL^T7UpF6ce{8&5ZEgz24w4x7m-%$A-QXa@V4$0Etb>xma*d= zd98+VJGJbraCqtvoeSj^@@*zx ztLJslw}Lx><@+FXPrkkTiB;P+oxZGLL(?KAJ@O*epUmRsG*Av}TIe4{t8l!O)t5Q4 z1HDR}6S8+&-!XbSFJ|}`L05v&!1A91-IITBI}87#3q+~Gw4^D zey19G8khyFJcmI`vhz~wFK^lr8K2MJ(Zm!u6ev}*grVjL#As$UG?r3x2%uJytMYgc z%ZW=!Y8hQ`-8nFDn75?7pWj{0a)xB2r2Ht$x{Z7>$r+p6@u)5C2 zxZjqm=>!9((HWxFi{O7VdUla7l~3C>`z7Bg2g8BoI}ut^&0(fp?Fjp+4Bt$-W|+6S z>vY|Z>t~+SHfCVNIFzt&cvZ_<`wCz7Jz7FJc7}XJ|BIln0bc`Fj(fu2TfOb4k)ziV z>Io=bjZfM#Z-$@k75Syky=vL(?u_5N*{{1rzZVz#De6kem{j+^vBN&{ry0_AsQMq@ znFyu=%YO#6B)dLm`S(}{-QKiq$GWEU+37{;9h(WeVShpv@d!KqZvL{j(ee>20sHXmu4}{X=SAp z;Fwme`85CC*k{n*j9eq3tHESoYQpMR_&qR4sP?!0>G$U)v7e2Hgg}3oPG9p(WLZ^)ngH>w54t z!zLM6vJJCZ>syEf&2shOAhk*cZ>xQoi%4n-`Nm$(@Ery{7E}YvcM`ND+aK8aVEF3d zHZNpG_xc5N#4$M6v$|g|=NyPW+7%{T`2iV>ikDo|HTxIDbRfp9p)p{G*2Hs7OSe%0H1=>TJG& zqJT{a#(U=~Zd)LwKQeMO!zaym-3~(E1a1XZjz^#+^=pTX4Qm^%2^e)L-TI^ugTeb5 za&cB1AD=Qc)y+*1a#c`&O##UYP+Hu8yTox?%;!-NNRXpd8pzlc%AZekh zRY&?W1|?X@NkDsEqBwy+T!hcug0xz|V&Xymydqh5icJfK97+%(mRUF;5{#TiI3fncsAj zU;_FaZoWxoHQc1Ze&CVRA)?e3B`dSlc$|Kr%K{1RwT>G^v{ckj=P*sx!PoY$YoOPI zO~A@^KC~nozp9sALy=N-4YZn4gw3wg?4>wJBO^)Am4iv+6an#M8)1#kr#KIY0$N(9kW~E~UgsS6*E_dy0;yI!m*=aY^6%5G z(X-~&%zL{CdMQ{AB#BM>t}AIire!wmq}gCf!h~zfeKDC%HDUgH$jjEx`=B2Nj{>XD zlhBg-j>r1pqtE7=o+u5wR@b>)cX=BX6ON9MU+lGv{VJfxfNEg*O@@|~w)6HduHAn8 ztfNWYcU%f_Aq*LKU+MF3u5|q+dJ}_uI+d|wGx^&7|0~en0Cxh*_a10TcARbffcNKX zx&pib&eY9dkx}(pt?DVhop&~ShVMS|we>XUXc`=v} zOD1BjM^uV5=PB?)E=b{YnTW)4ym&C8h|t)c3{t}1<%mP3`CU07-*9Q*@Ma z-!$L#xCi=ra3ipMZ-JK7Z+~Akwnqzs1EC#emek)Z1CVSs4m(_D5WuVJb2^`{kndaM zYxQ;i;5%6$2`t}2Xi0td#kIbD_?o7xr2Z0NS^!h@94xwK+(n(%Y@=^I`KHNN^gRpu zQg9`(d|RL;+4j<|GxX2b#4>Cl@SPsk4inzW83N$_eaW*U$MD@tzP4R?ANmvEzmee^ zgO=3Yu7u~L`r~Vxw08Fi7VGHi7sI#JbIJjH>718@r*>H{&NKX1lYfl-Mel9U=YTH& ztM|pwlKSqW_sidoa<3ADCyc?kM(C>lwf#v%TXi2u5ZT$}UhCQM9 zN6P3nRePA8Rlmnzs;W_D@x%4MX5J9;tNmlf&c{HX1l9w~ZzHrMJC7WQUuff0-70#G zL8#d5I%9#eR#oVKpKtVQBfm615W7AN-2r|LEWekbCE5DatDUSG+e1H7m+HSRHZ6uB zZ_RiRzB!#Czx10K{U$-r1apApHxF8pouBs7FEg$%#+-*SrTFTd>UzgnD4r0t1xByk zMO09-c`y9(lZ6Tj7^0D>9{S&@Fpa57t zL!l+v{H^_Vn2>1IOSdoBbjl_f`lf1zu%sntwWCfKDixH_?UnkKGSXh82J2iX_mt6Z zBl%jsyPz)tR{+cRdguf5tz$_+^R1hJc87qJ^S;chHwfdA{){Lyn^V;&!?-o%+eyB* zzj+t>W8l4&;hTb%)D`+!+Vef#`sztui@Q!YI3x5k318m6E4kfi4#)cR?K84{b+Uhi zQ&(v8T}{4L-&3K_1ZM-Q@1@X^2DbCEhNkfP@S5=$c^JrraU)@iMd3;;o$EM9hBqFx zhkQH8*YbTG`hD;buzXA3{xrUJ9j~NjxUd9AfD)tg$8H%nTS;*6gj~`QBnYhlP1NdK zc8MzUnQXJcKbCf|$k?GCe%Ah5ptpfDftBYTXi0Y8vu}Odw0$BcFjNQ8pkyxj19!M8 z971$xBq-*5Zc2?}EaK$^gCYTuN&VQ5b%8C_4^7MU2KXH}4_odj#wGX~l zuE;z1!GSzr=N6HR$A56IB1AL137mk13Jq@}D;PpnSObF6;G_46Pk zWw7)ZW4j6_cB2@t6%YWQ&?GLKdTvZMXwKsONxw~UcJg zI$sWoO?|t~8%yXrDaE)xTb9I!C00Dz&nb(h31%`TJ|!MR4x--Wy{xm*@z4=^=*CGvs66 z`p025N6sZ9SSB&$sDzUGyIclGvc$+2@tW>(1Dk0G8qnJX=*dPIJh& z_AeQ}E1*vVCj-lO8}xzsF57x$zkIJ^F10`3&XDiJsI)66Mwqxdm`6mwLGYdKWk!Sosd`GVW9!Tf!_jKpZvd>`ZVP%IsnqfCiA(yX&YD7ol#BH@a+xrwr-Wv83a@Lx|ztFprNb1so-*||8~{}uO3 z`FPA6=1%w6WImkp{O(-YZnpD;u2YQs82J~xjA%LFHSC42{0{iI@p>HUd-m$1HJl7H()BhNng zrTH%JXZ(HkcEMa=1{@Dro zS&i5&5og&1h6;gS!by0sz$1}y6b1x1UA6tSM=i^W6b2DpRNI61dNj0Wz*kWKSl z>MMbktL-$SM>}$+`HASU7y1?OIrpahWe#_q{W^z&6X!^}^ zFP30{M0ac9?B^2YEOlWgy>s;MyNmf+4BD#^y}bFVD&Hj z(CBa1@%p|8Yn!%im^!6lC)XFEcAJO3Jl?=jaVQn~Aj+dS67dO5z!t=Ks&8d%68jNR zLJrLK-H9@YW|fg>pl2eJq~uN`S3P{we3x?B0lf>H2drFoLrb#f8vB!L@}$0U-5Kd6 z7xz|Jxzau5njms9Nqk6kA0%(zW#rliUu&<}N9_NDsldv$9a_@EcbR_V;V{0peP6_0 zdInV4nmp~6q}!T&($ybd_VmXK=Hn;k<5p>_TXUUvB8PDE&*(^we<(w!xLSbscM+a^ zW0^+BIr`?uyxneg5}&QhJ%2PmjM*Q~$BW@8|1qV;x##%5bp4g?!r*fWW)3U;(OGBb z{?ZLr#>OFUXS307FY;Uc-h$5G$NE07`mKciH2tPdp(<3iB~Q68$z8lpy87cfPk+2% zKAtuoUlILUa-D~xqTld-^c&otei9@#RC+!hB1ic@5dF^HPrtK_e!~#B>r$iN!^mI5 zcd1v;LB9-M1y;ZJpe60MKh$$PU>m%Wy5m_+nFLDFqn#UvI0ci%P6mN{RFNDYSftL< z**R^y4gcx?%*<<6Lf3-^VELa8EopjqzstkBdyhw|#vZZbbbSV$7*yM~=_^ACakj@q z)?dwpx`hp>iRyVz?#@1z&D3UB?TFOi4L?WnZNJ>e(GH*Kd>1?X68bIh7hvT$?_Wla zomUwCd&5s#kM+3dXtT1!6<4>ITLck9v9kOY5qjMAEa#XLdF%67;NbM;9quLUvlmVk zAK^sqP$oqwrmBfTxpRupJ!1lH2`L{D42{w=CbF{@XCE<`xWVNG!D7M#a;+E7Y_=p+ z`K*BZFQQre6(cHksOKgk3v=^mXriNo@zD~6pD1yg2=8QG|C(>%g$FzI&t7oFRC%0|Ib3W-K&e+$%mhBHOs-W=xQR+8P@S~v z>P>DSr-$?W%A#nrh7H|99e`wrJH#EHAC)6dsyxBb0^IVVLlcg3gUeY)f4O_9>;HiL zB-j6y8(p3_j-h7O^4xYeIwb23?jzn~^zJ|}``*6_{U`7)uzG(8Eoq=}z}%*-n|SL} zjmNRSRDe#+uES;aYCg++ERZZxVW7YEkYDY8GVj3}=ti&uSbjf-mSp!C(&70vTmO2D zzgB858kko!dyl!FD2`tI)6*aOqRz)|M~+i{2yZ2kwb_$TMkdn1<`4-g-Dj|r7?ANJ(agA*b_ZYdkxo^7aZ0Shd+_|jP5z_MmmrZ>4ex<&z zh%QaUW_P^E+j5JsXZpXH{%bPyR4@Zr{gy&Y8fcunURH~bYuF~sEOls6=bR$}(6U{^ z{2(Nq=AnxE>~x0wTF5WPcX^+0hW&Z4>Y0l^bzb!YU=nRe5gmUB!bQ>tmPsNHm%s859-SQxag85K1{d_o!0$ zh6S-~wbuIMu;6`Bex*uB7e*R`*IXCKvyGyrA z9FJ8S*NWMh3w|sU!jHYtw4yR6ELS!0SdvTNB+TwE-9~nV{P&T+wQH6WIHjN*SpH{1 zOS0u|*XQheyBV+ZZnL(!kNUT`ZmWw!^T%#y;Oy~-5pxO;XAhUZM8u=u=Mfn%2Q%iV zkufioLyeH?KzLm>H0EJSIUC2B6ESG1oNL0M!*Y33h_aVYWTL1T7J(ln5|vn{?VHAq z?Z|2M_zm_$a8z^ae(^Ut&Tpji-Q=dxXuUuFh8d}APS&V;JB9+%S|#~@BUWk z2g7)aS8zjt*sJAEBiCy9TDi7Ce*qAduv;!7!^@v{+xGx+9kq4Gmi1D5)3?eh-EHzH zklL%9CplU$IC7f8ug$|?Ty5iViJjxz$AxrS9LKrK$nzHbtUS!S9WGjTSYPaxhed?{ zl{}&QUn*I{%j5%TqU)UB1Wauxb4rorL3YAs=u`3do`rHW!pF*SC3Fk;GO*?Kedzy< zU5;+VG8B_8t9Ri(n2W^Z#$!2_;xglo7kiXdzT)DMxGT37aLd68{F}dR?BaMCd4@xe z2IGO1=Sb-PjXVwO88i@ER92GPJ;dU16Z1NP!qLVICYo~|x0?ApPhkWQ30jy$$wAqd zlsZ-Tblq*_+5_J--=!aT2>J=|G_Z0deIwVv>lz#!)Z^PR)x9RP>F;~gpYxq&)j?DO z7Pz=W9El{nrNa!nV+m))Z8M#e|GJosojXRoHyW=fj zjHa4BWasgFWS8b7&J47aiNrL|k43p!sys4^hIoVoU}QV4z0Jte32$5PK7savz+ssQ zNyrk|c5eUoFeA?qTeq=LwCSt{{t4}DvpiZnLYdQCB^ZnN%0IwUoPx5YVb(kw?>BPo zM20j!k#fEs`UY@I54i>!SM;>g@*SI-HZ^YEg;*^j7LUCiV+?M=VB}1|%p!sw~ z0X<;&?t@27$d_1*PBoYeZ2h_nT2f6I&+0&SG3B(ttfL`BN#iX(qsKV7Ros+vkf|#m zqV_0}$IqrepmcCr8WO3D%#ho_l80kL%tK(lq9n5V!xMD7*~OSOk?#|ZfChIMS1jd6 zBXN2Xnmeg{@k9mvT8mPhp40W9(W?Ww?S9i=pg#it0amXeQKOgLKRl3L8@4szPa zX9(l|NZ##SZrGAos=54IkCB&(2f1-|JdUuk1)t>bb3&C6nL5h5H_}fM;zI5y<4r3{ z3=T%jmA_%&Tgi14$*j1_&*GA9CeTbfb5`Y-M5ATV7|cukcq|9IRWQ%L)%8cZ7sb>t zw?Ui3sei=SuPUB-Ulu`s4x9+A{ceDkRAW$Ng*ge{cQ6@P`QL<=lpWT;zT>@~<-c+x4p|Lo zl6m7h-NW@R_A8$L_{i5Ex0zGD+ocL*J9ovVgjE2ye1Eq~X~{q#Gb@PX=J1n+OpRhp zTC#A;Oi;pHY2x}>(V!?RI-;Crtel_eXXId3(Bj<7MjeX8{al(AU4IgCpMADEggPX_ znhBa3Ijkg`m|tvTCZbr2jfAz|UFCQiIsg+34TrPNv$84-V$C3YD%24vJI<^P@w^hCjg#AUDATaXN9mw=oEc z=F3J%R95Qq`1|bOBqD=*zPyga^o`PO73%e^6N;Dwwt4-3omlco0~-#&eBb+rsvxB|OJ%?RxU2Q>;xp^SOSW;tsWa>tYz9tDvktK+2{UMf~!1hKCUny%kwkAXz8ISqOp*a)m1 zzk!x?+X_>^>rd=m&$;+@%X-^jN=E;(p1B9b4o2HTdWazNoSRw_t015g zcQ6I`@38eqlsH;KzOh5>vl%&oIbkBmiLPYy@{;R6;i}&$?_HGa_^q)+RWehaQ=u1t zrNG+ZUT8`GIl<_EcX*#(cX^)Pv=H?fD_j%P1B2IMQd;@WO~DG@*$M*T9ZMQ%E04&~g&j(mKMzel`N=HxH(0zW94 z8($R7jn0kEWs7w#Q6rph`2KQ+i5^D)Osapw=;h=GP9r~(dYTJ81PlXKuj8R5WrzCg zJi2%JZaBSZk?7T;z7n}wE>QlKCj}RGE{_mh|92u|#%Wj*wYoQv4saEdEvoANyNIPGz1r{>*I zfAUR}uawgdp??CN1D5Zvp(P!duUXKC?HX-^e8YCs2pYybkCo9CI!2VvC*+$>W#$vr z(9^(7VEN92mSo3Eef!s?rh`k>&SXVY_|-d;DpZXu!%h@t$-fx=c9V~7_iuu}AAAp3 zK4S|FpDTBn`u9|Le|Go#rR^H-T357q|Mm5ak1ekLxYmbrd%`(uqbei{sx*c;C5)1F zHje?=SiCDD3@nGvlJCWlT=kSvF}FCfoo9AVbPjX;+)DaT8KpBamAk}Lb!9LtH|o2& z1+v#KQ@R;sBYv>e)a2YamoKk8LE`&=B;8(}cWPvO@R}E^*5=|Iw$Zy8z3jO3OVGE1 zJAl>utRkbg_3L>m)Zgm;`5jxE8jjth?{uo@RJTW8Q*NjFbER{MY8&gMC-UMgrME6% z$S2c}nVd^}#ziZSc7I3y@@989SFg`KKU#1i6RK!pC~vMs|yu5Y!YCjV~x0qNbMxLzcS>OQK#~K)u|1S?^vEU-5RuW+6AF>uA zsX2PM{!ABV-n$9V)4?oY%VzF+uHb?Kd^l#AvqAFj zyFz{~8hAOB(3?*816-+v@A_70E`&W{F`~;U6vgJCpR)pPeDUM)I3Zexl!H(AR?-f#r7_ zw4{r|{wBS;cYkBX>pi&=O8krJ1&Li&24|Kh{^L$m|90h=`%JZw3Gr-?a~A1@(YK5I z8S7~Ni9xIbgF(RZPeV)kRDFBcxTo4z5@@oA+D>c8cO&^)y>~-@8QcIY-)}%m`iy#K zxbLU_4ZOhnsqb`Vh5EzC>K`c$oHCFGR*relk_K8In!k3-ytV62)6I_br?sckt|vhX zq(Kpd(1`~Du0V1%sYD-R3xruJOIaKmU<^~lWMUY7+-z|+Z_hSzHN%&lUzf|((AR?N zLs|5C=>UF#JGN}p5t|zIo7KUZNfbWf1jwemD)6(kHq2jhLjB3JHsliw4xG7Q5wQ9% zD>M4nh4;c)|6JSN9=%1YK7Zp{S>Y~ed{kC0R)QLEHYf&_;9wwuSH^?K<&Wgc8Q^}J ztj0pIQWp0c)-iT1W%Z|ohy{T!EepWZH?^Fy309@}jKh9e3!?ajkyd;OdV<^mD#`uGi0RnO}TY>2Du+`r~u@ z`AhSwDhjWaATR#0euOA9NfxB0`x0vJAU=t~!V@ZX2DS|tTLer~%CZa88Y<-B4CBZ8 zLsem91*3ab?539`D(iCS>AZ0a{SNZ0hB8+=!c(>B=H z({yaDXSpIiIOX_Sk^>A+=|Ldg$WV2pI-e~PIQ>mYM`uRuWQj^wSa6!6g&Z}JWoMO`V4jm9lS9^s&*;`R1E8S$FFyssd7@!q>hkpa#)7% zSmBDADW)wdVdffcS9Y4qJmzEF}V0n7JJ zXi1+zUvWj5PbeVq@Ua&W>=WmwOtdZ5S3|yC`;~7` zt^-8Z+J{GsqvLPb=vu6gjtcdMkCkH&^sV3yVCA?ATG9dZUo%~ zcQW*+={ITe3EDM7`&pONox=oq2gIe4SC5dA`(RS`R(A7(kEau||)L;*iII_2|W= zTaV5#-)DN{`wsNq!9HO1_z(1_=`mH`+oWHpUT=5*Z?1Jl{Eu#Z*!k<^=hR##ypA=eS`4<9>^d=2{d;LVV? z*tZ`)7mg;&%_b6YSZ>KNkuPeT-CT?@DPTgG@L5Xe2=lM1%H&@QJs&Ivl0IAhD~$sU zQJ+-OSt7DZ>J0O5A+PCtm+{!0&`*G;fwklBpe5P3?w#SiRJ4SB^bmcJi52ff+I%zh z^J~VIgW%qwoMi_ymmJP^@&pEq=P{qeXHB9KU!(ldu2fT}rrOxGYD{L{JP-PKuohUk z&Vtrys~P_;*R*S%_Vj->sse(zvZrw{}S@I@AU@gUEn-m`Ckn!$;MB&amx3%kBOijNgVo{n0G&9Shcg3S?Ryg&Oja-fJwRXA+`c`lUuyQ>FE$Oq`$x7CO$A`Aidi^Xlc6tUoX)B4_O}-pt zIT<@i)+ti3DoNDB4 zLms;x@-ygH!5@H?*E`6_YwtTrhVk(CFV`M7ceJ_7?~^^TtCjvJLso(SUZU?_$-%Q= z7(vYC(hjbFpn%K$Xet_KlFmIj8`OFU!cIRu-N;u5e=FZw=q9iWSot1+mSp{eTEn<2 zRz5t=Hg8?uAcpL87ilk=*NijGJm+#bnK@!2C0fCa&Z)?fhBPE4@K{!z*|s&h>e;vrXzpE;qw%R#iB8a3(-r52taakvmqMsh6eDLqR35 za?gR5)OWmQ<=(h<`^J?`vL;A-ak)G;NYp}3!s5;&Yj*g4v$PSw?R#+(bStt7k7_sr5n4qA9=o}0Uf~K5th+ z+99_zapwseY{OZD6qh&7JF^azBWHwj1HJ`vFN>casnIqaicRC{bZjc8ts*QR4PyiD zc2|Co!?toNAh<4TXdXNLLG)lOy+B!7-T7Gk zl1|po`TCjE&%yfnOVh#s#e9_NpH(AQSHPP5I84kEAKqV~L1~EcIesk_RgAh0BWDcC zg=(p+ctO6Dg19+*(UDn>bCS9SQETTLy=o_B^jZmh1!w_Qua}??q?dREcI(#ej?tB3 zvVP9jPg7e4Yr5G4DtOD)--hbvWOQqdIPa@!bdv)Wy>*iTj-0&_?O0~cVYSxO7nIA1 z=Oj^1)}lqZ(Xt;KtW_RlO zZnL{m9y#(zB7D2+Jm!t0PZ;LUqnAp=a*GgT2A%*C={3FB$Z;op(tMZk&EwEdf~SF% zV=uI%fyOu8b`A#?jc{&sZpOnho8CI&#S;mNnSsPg6X&!gUpBj#d$5}D= zSW|!4WoRmg7_x~rc@nQzifh|)v*zP^%mwnPl)g&fMo)dH+$0CfO4N9Frqgk_v0Eqd zO%LV&EA+ob-YFUR187Oh_TOL9<3cNZj~h*O)4C^U#RT=LmVYa$ahc&)M}C&yiO^?) zbAYwiJc;H2&`80nV&41lhKT+x~SJek6!@s4@$m<-Od4F@D z(_kd9@~(xJlx{R~K73kld6%zkq_wYX@n4Ew?Q>>#tA3UsXmi|oJ~9ixrg&tqzXJ#D z0-TY@s68^Imq-W2oLo$BTKZ0x(mr<#K@NgwQM59bDA8vw#*9|4j#Fdezr$&lMIj_QhD!Y#h@G2|o zzMzD5V4?b<@TfV~$Wb*dBgYKr`CtjKa@0Y8njH2njK*#3fF|J2C~04;LY?9=AeyCC z$-i$8`RyS;tM|8|9|2DQ%kOpQ1M%C`^M;aU_d8nWa#4JgFjmgZ@t*gS%;SENgub6d z-v<(m)sdx!Z+`)8V zY@FkbluN7=ieYIOQKIE@MvgZ4q+ulW{zuTyfev8h*b6Obz<@hVKr1try-R&MV$)LN%ou+yJM(K|YP7C)WJF7~3 zoGWoMh_iVZ&<+nt;B0^wb52Q6tO8uB{U~#kRldaB$mZSxIX@UbG?)=TB$yOmm@V~i zCeixUEcX(TOH$_vM*iBF8TpTaUJo__EB_VHk`65Y(OWi$8Z^Esz7nON3gKB^c*ZTs z9ZPqyDz`8eV-`@vAs^<-_?-u_cv*H%%5f&E<*Lr5)X(u0Do3S zu3^xU_KWXr?0V#ubq!;x7i<-y)=p&W>UP=MOaSq7ndDq6qAiizBD08%G@WtVblQ)s zpwKIEv!mHE1E`T!#;LD2@@#~kt#4;RUkAPltet)WEoovrg= zRhyfqhxI4v=Y?jZ|3}xkPIY=>#Xr=Wr+mT|Jh`)xK$ zhL^eOOmDn9*B|d4q>Uzz4My%}g!A^+2<}t zKVjA85?5a@GIJTBL6l&Eh>-t8fOXHJHHG4w<*6x94 z2ySrmvm|ocaDSe=l(SGjb|Xi5S?+_Jnv(0QoaRl&e(j-r(tf@O{Tg@!SoxE+MtAhdW~|$Dx67eA-|3=KjHT~=r_ST!1DV?_z8YtWhs^nSXhx&tMQ5vf=*o_zuLK(_WxMude8tYzcZjE?H8}Z)Ssh{4STSo z!Y(XTvy=)v+}R@zLbFndasFWL<&G03EFQ-tsfJO6PK}$x@+W`Wf4&U;26!7-{%T(M z{`B8}X88B$g7j6~gmTy;OYJ9@WKU2>{i(He24VmeM)YJm~QX+7P@QwKjQ&j#p5 zumf0mu7;NMY4)%^dd*ehxH1D-I$a{+lw_Cs-R`FHrL{a+E_$8lYe9woAq=E$-W<{hnY9^SoP9P)!fBir|EU-I5r0IY+ts zAtzfVoYT3vc(L1nf6Z1S&qny!_W29YmxHT;waZtaCD}MR_CCF^eeRY=*Ao*jwr(2J zsD%i_DDNVC?AC}&^%kE_j8xlb_;!-7wZn(dp8#(`hHn&F(g5YLO~xg9SI~@4Qpo~d z!~{%hc;jp2b~*D#G=}`@$j|cI2>p4m16VzGL4Ov0-FENE@!AZ>){x)B5-Po4a0bOSZVb@bo|+rJs}G&aPiQhcODr(c1b2vf+>q3X)tO z$-#NTS`amY6Tqce93l!*gxpGH$=S@+tQ>t+c^fo;XM0%xk;j%p7xX{De}R=Zy6AxA z&_mt@Tembwlc=MjZnJy0p204Jf2ST4s|ne1L=2bS>>x5eIhYaDs_Y;yK03%6CNIK~#AswO zp|#1_*<5)WfnJGtKm31O#ZctGkULv zUIR`7lB6CE@P0`TOj9S}N5dAc#<_`V7~|E_sV2<7wMYIxfPNG_@xRKy`;9Uj5{5&4 zn15_ZX5VTI^g&<}u=cqcT2kM5dSSfg2|JoLOs~f0jlC;b?Uf)X+qUTVux%0iFL@k4 zlm)vI_AumVE|dUA@4|%7(41r7exCkG2|tP9HOyV~eqpbl`W!GSjO2MG*(IeVti^*0 zK~$m}y&UN4>YbLIVf{zmD&&>&=2(prfCRAmY=oB7*I#x(eO77*gMRed=l*}8So_&V zuQudPBe&@F6X*``D`53{6a%@9be@HCiQQx?3YH zt)%ohhHuqj8GFu!J`5ZIEZ^18k`8E30tSTjLmHI&>2NO8oF9Yp6dDxzl8|$A$hVbz z)8s4qJ^}qKcpg~3d!Z#AP~QySrCUrn3jexl`p;bW*Eui2A4heMfy5}|6WS5-PamGq z`%viP!CGMXe+gQW)!U9Id)eFYmn{gp6VmEd>Dko;{e01!xi>MirXx`^0Zjo+-CZg>LVM7|{DruZ2$fI4i(7uo}(4mXF7T7sIkPgfG=s-vQKARmPPy6{s z{yoUYkG1^wLO%c=3T2jd)yiwz>t1q;wT(Mdvny8R$Sa3LB&fbX=C3lFl}~XhXC;Mk zQ?ubaXnCgGCqf?#W&mrq^PnZ!a_^V_!Yw`Od#8s8JnjmH`Se<{)#XYwiX!&#p*TLs z;#5S=bPqM(*}Omo%A0#c z?{e<9o{GJ?H?UjXMY?iw5*@i+Vga*Y%Z)3}lP)y! ztcIT*@9u>D0=NWNd9H(&WXHR9U2nhg)AIDFa;f^`Xf_JM;v|UBY~q7(fI&`89Oh5e zneu23<>-V@n(tzl51=DQ22K{Ra*TtPWb1#wb~%QqPvM}=tS>g`G22XpU`6w$h^(Xs z+AzV8MCuq7iLn+|#6&+5&7w)WCgY~(G+t!vvlG77KG#Cu4(U)LI zU_7w$Oox`VzRy14hRthFVIB5l#xY2CVH50M5wvM=-EYn zmS188J`Z3Bu>6KWOS0>FO{>g!et&)$yLY;Ob6=C2T&BUcT{%xm*h{=i{Cd_D$Lj2y z#!C(VjpT3JvrC{a178ez_BUVIpYPJ`a*e?v>`o_^gk#cqnvL`@HHUomlBXU2ya)Xe z_z$pp#*R8*d2&>zcX2kZVM#h4Zp|)NZC4OoCuYiXftsaR?>73?k*~Gy2I#F|JFtAu zgqAcwd1m)zv6V-E;IVp zuFTkZHS}7r0a*Uqpd}6P-oStAlz}bHY1%%PuDRUseVBZ$-W|{{gWmzm_jPDV1KYWq z@BWtF!%G`lx;5liwJO7JK6D*88d!eEK}#Cg&fWY5w)9Q%_Vj*nI>p>06X{KyT6$q$(Y&c z2>G>;pDowBpdSK{0L$+QXh{Ruxd*?2&D_4fnVsZSM&INy89R@Go&=@=%YQz!qyyMF zQ_!X-=-G7qs;{M6LcY7n*Xn&M^j+XyVEH}(E$IMu?&iC{r8_g0zS`)ykNhmZ!ecr2 z07e1JZydCw1K7En-@ulBV?RsRwiy09$=}xJYoKocHv`N6ZfHpZ*m=92jrOk5>6rxf z9Hx7|eVDld7f-pfgg$q*5><6-3;FLOf2)7~>cANcDuCrb0$P$Cf7tO^*dO)cAKJTd zo$Oq~pY_NKJRZ*H{AoH99<|pPy&K8b^1TxJtKeo}`F;ah(g1ev#dl!4U*h#`NSd!T z{JY5C+CA|({2oCGu>6NZOB%rL;d!0jhVL=txWTJnBPUMR7?VBYgPpFB??&>qdS3v2 z1!w`5@0Xz^4N$*(^R*TH7(I2@eexY%Gg&R`4ye)iC8KXA`C7jJg-#sDc`so37D7uJ zz}~(24s7td`Wn3LI>W!7{H?vuhQ0{w2A2PI(2@qQ_xc^%xHWI``pcpI2@=fy-Jr9Kb3wR$` zzJrf9d^c}5z3%&xZ zeBXeUG(dTXbWAYDRBtt|0JXE(r&|aL5weX*DtpukwbCz%GVhXz=UpM+x5(G>^-c(! zY>)(&Z#lH2&OUJx!}hM5FU*hJ(L_LESwTvVpvA3%bG`E+9tUZ5MGI(gVXg1BmHg^% zFnVtketeg5xd8fVa2>GxzYeWaIM1_j{rd7hX4CdfO>;MIhP^~SF^4O%jPe%{2ezK8 z`iSQn&2pR(>LeXX-{gCvk)sPfR*vY2fl~-dft6!4^kDleHJLi{ug@CNt|&2mhUWRNsoka3zqEYHSgvC=6Rc%58SLJ{S$44=UFB@sWA zYg!WdtO>05m$@}Ma~^fAMxJzirv07_y#y==R-Rj+CAEd~x>w z&FIsGymZaF9^|dX)?f&*`cy$nvirhy;l6p_`lq8=ENIxUme||UT&8Nr(h3!zPo47? z@!nIDI4pE9Wj)0oBKg(cZumEb`Aa>#2>OfQ8esX~82;X_C)!WVe?O+7TSP0X_0L3m zxkWUF{5r|c>ic)$b24jS!161HmSp$iV&T4==C|JHXUngmOZ~|GtK#B;FG|66;dLB6 zgeBAq-560NiNW{;mxX#e<(|GDyZ%=dYXx|tAFA($ufNmizY%`6{W%}{0&qzv!vWSm z7TI?H2%)fd8UfPI1+lc2p7p*k{|@q!pNW0{2>mvA4_JNw1ue<0_w}-G)!1%6bGHeX zW*0U*u8o!P#?0_?BrMDc`V#nW8GWX&%jk0i^a^k^ko1}KF^tSQPFqY&qf;`>e-C-3 z`HARrFZBK3yFK#%40=fQtU-?&=aKGhMW;5*-&vn&7fYc>g0aBbYbvy)t_9}3ZvQ{5 zy$5{N)&2kfIp=;pcV*oy5>~i`6;=$>sDNP#GK?}*5KVwE6d^Jct(AzNxZ|i&r5aa@ zJI+$;h^s}vj<`o{jic6DN32$9YxVbhf6nJ{lMvAVuZ=fPD3EysY&g7 zra|X{LSW@5p(S*@hsBp4+$Wk_dqmK<);j-0Vx^)rJ;Gc}p13_I_wcdttb@J?Tn4P1 zUqMUwv2>m$>lkZ@DXyAN_mlZhlg!_f%pu*zDeejC7Gq$C7G{^NirW!GE+T@^bu5$+B;0VtKeG(V=2EULazm<0V{VS zw1iI6HxO1^N%E#6s@C~6l8%(C1}mxk{@(?1cEQKS?|tac!B@b_`2kwOPe@;x*LRk} z_hO;GR|+@YY2rC`SxWv1&?kb`z{>v_v>$#veSLQj6y&xk{OsN-Y}i%YW#sRIzm5NU z(4T>S0xSP}XbC?S|GEA`S!dDzsI%xhiMxaNFHgxo9(n~>1+4rtp#AV8@fZ1f7qIX5 z6@8~6kiQH5ww%2J{SIgWR{qD(5;`qsR%n}oc1gT_K}$56c$Te5#dA9J(cm~>!rHPGkVaIev0CvqzIM%tBT=y$+-!0PcCw1h-(zItE%#-5oqR@y)JclBg4)u5b@ z&>SzY;}q-T31fxI2?v-$oMbTfDjSb6V3OZc&JH$^VDZBy`m=Jz3Ekxy5>DXl=C z=Jz4Q8LRD~x|`3GNB#XK-eoIOdQ5|!1C9k&j~Zw{{7Cr=^e|O@wWNVePUuUnNs|IN zgT91*tcab<-afnJ14e!${B1fs5B(PS3$XG(ftK)N=`d-}!cu2#-A)o>ucqGc4fH5K zIi<%@&Ax9!~@p_{?0z{-CIT0*Do zU0b1T+PsgD*sgQs?^^?TC96{L9Sc1jR01on4qC#f>mafCY`=k%V=r`;j{Q=|FG4$uE|q4~7H z|Ik&+M?dGI^fAPx*d3(@VJ9PIMQQlbFZR##M5049XOl3&Ag(MR3=xXR&R_|qf@~-a zRYd=w!(1Jh#)`-1?jTu?IYAeDMg1n~=R?9exfCz%(tyMljbF*AoEm(R_9(e50K z4`E>y89=)ji9F89YqD;A3#S!Me`>-RM)Cw!Fy^aQI(X*%CcnSJDh3f0RCb1fqd z%DK-LWaR5Y?jY(((nN9{XNCTw$gF?O=v9H-1fQi|9Rs}poDk^pQ|7_GK4N2&K#PQP zf2J@aGz9#21iXa*{m@O|X<+01Qt65Y28B;^Ah#aANj^(Fe+_*%xDQylPeMzu>!UWl9ovIx9Gwy2$>A(f z4?=jY^9={hlC-Vd5XmAnO{lm!sCdJ~H@eR76}erZ`-8#2$~`#v_xjPM{x`Q>Ct9|0 z^`g?H>sKuvhR9w`+-CHc#%Q7zv5g_;n@BI(bLwO?bex>9y-|fPQkam$)i6a%WJ2qk zMvr>r*!J)N=qJH0VD$*CH+t^A!|3txi=DSe?Uu^+=vLh5-Ijj0ry9KvXliw14mYyT z4VsmsQmx@%TAB&IT(e7J1zKbgj)D{&R#0L&!4T|82B`e}_v0;XnF-Q(!J*wPO zbw7hBFV@l3vN;<+J+hotv8(3gR$ zfQ{$F!N1%5wQoP4+c}+mQBGzaM{HVf{hqnt&l%$$%9#46a6w%p{fBUVT}1cE|5I4M z6OQ~YBmbccuP?)@k@^m)lM?Da2=f2b)VgyKbO{&=tUkk_C3M`EX>$(QS53-2g`l9U zQO@nidUzeq>VPv!{~yfiJ`CayKdOLV&M$(#2RsO@yoaDA*z?DG`I~Jgtyw)9@+S~` zJDTn0e_xCu^vy1C*6KfpoaT>=9?og0a-R;J1#*Gaqkr)4HvR3JdtXZT98artZlth} z%VHn0o9@P)#<)nMQ6Z)0S`R}Ne>3uy!_SuQjnJFGxq%GHlfC+RHjnJ2>R*~;Spih5>5EKN!MM-lEy^p(|gdLgRg*% zclzlj-mSs8*Q($gXPbDRwr0h;nv@od?5;N>yJ4uq$>L|#091&gPQ-mf>qJ^S5%v0| zkr3x`YeY&6PyjKJ~u;4sJh9d%dT63b}W?-wZ8wt;%4`p z@Qbc$b{`D+uMv_sap!$CL3fYR(uBGBaJRVlnSg`9UXh93^O}aMm+V5;x*sb22gSDS ztt!$b9*KRU(&y!UY_$1n zqwh}ivE{rO`YrGmVDjWZtDE{b% zx;hOxhxyKk;8*o8BftD-sd3m0=qgYHto$?2H1fv;`(YKq{a|h6v(i;#E(-3|6dM0n z2!GhO#QfK-5!7hRcAB^*ipw6cFOG1|p5wv8xrSUSM4=arM!4oO950b$<8n1-$O|X% zAA~#i5Jx!D(xs%vnMsFqehy=QhICNjGmC5H>lKc3DZ*Yt2DWe1yX z2EF_j$?WEh5cBwu&gQ^n1mRF}e^@^MDxk{@(FO7?T_k6LyK(_g1~;Soe^bDA5dQ4* z=8UkPxi_6t4B~7-{x0eNd*+C8qQtG832!ED3b~ml;kw+~=VFrYhP!iz+w62NH{|L* z(U^ySGbU8qJokN9-5hdH4&4&+v)M^}Z}O#?bhqumU!lJQ-vFC0iJzN%X|aAEgM0Ma zjAW|U)leun-_Y!zYABI%p)oJ$!%zY5dL(*Qde^i_7#sKmDeO2?nY&I+jc1ZS z7=5acXZyJ|&_4qkfz{_iXbHBT>!f{@a!RG+z{*jWy~NR^mU9fbOmm9OspK+U;nWB6 zn&DRgKWPU)g#IV^7Fc;@XBl~ug7$dNI62ks`0^HQkm$FlZ_SDDFQrMYi#V6Cb%@gK>lv{m%(4sDQ%FGkQ36sdh9MItls#tH(jm5^Ou#5Zu?;roKo%oU&LH zX;xR7b=)~pTC{U6Etgy{S-}L|^D11OK}A`ne+l!Ju#sN}e_IZ=K{tV?ft6o;wvlh| z|7!TzUj3xGD$-w2L<#Obd&Jy*cBgk~NY#g)HdmmH^gopPPtLaAsGBmJyTZL(+;5eK zdxj4|&BJs!eE`>=!ablddbNBdA?*77SS(?S#wIo#WcE3aS^5(bG(Bd-;HR-U_wJwT8Rth{{apCE7Y zUh?YO%c~3IRl(27TL=Afa5k{=wm|;`c}w?_cU60Nt%1B|_*r=$LVpIn1XkX^pnrnA zWqZln-dHf4%#(w4MMS85HQ*)t7*RAMJiumKPUqRmn?gln~P0$kV59U+$9$u4= zi`Fk)Dqc!_pWZSOX;Js;cjZXlXy;}*O?{mjtamFtKu$!kf=`M0rE(9~wR;>=RdzFa zB+gHb3kO4&gR#KsF$-G4=HQ;={phi0GQ5{IJNB(jb9bZ1HsmCcBjeM1pdSTK0;@+e zw1mCZpZ#*yE*27VM=}_^g^%*Sox8@Ex%E6TR5Psq^uRq!Y`Ml06muSsv;_ zT2(r4Q(&2TP{A@c`4ZRAi1yy%o#nooAKS?_q&U+>66Bu&IOlsnl&t)T>ZY{Qe1gK?F+R{Lkigrvy`epD2u=4&6Eum$eNoVV4Na8y?72kUGoChDK*IuY(cgegn?iSV(e zvl96OjQsLTQ}QQ49|`6GEB^%Ow({+LCnA6Hnl-D}_{rU*UNG^UPkfuSvm-Q6pRL7x zQ5Ba@$oZAJ5+iR1{3>85`FlTf6L=a}d2c{Vcv44h2^3kyHXkg3RXMG|Jk=>pPf@R$jEPi ze;Hp%yzhj52s{R?{9VuztY4zN%9Rn{pw2cvRt_WPE$nA-PUt2jn|Q1A8u|N*!A4%< zveY=M2zoFm16JMyXbGPN_HBEYDDcLnF3fYsw5XbErL7u28N zE$Lb^NZRG~t4>0FVDxR~aN9u<{e03;edNzR%L#x_Mpsbr-K+ERXLKIMVBl_T%+q zY?w=EtT6hQU6s;*BJ>P!B(VA~hL*5j{mV8O^=sEL;+COCgK{pxm5-QjO`te3>lUlq zQ}h8&<#;1^2YhY5JqrCScoA5+-$F~+Z@HPfYK1stGP(D6KlgfxbnP@CT{fj+Xb{5^ zEYtUMd>EhQ8~G0>tOYcj4=YXk$~bv~(W~O>RC>&XJ^?HNR<9?ZCG0mn#QwZZhEfFR zq_BGllc8L}m&x_xWLi27m!f3oLD1#ifqsUL^bYYew2X|+>@-8k{&bx?$m=(@f1Au5 z%8+WjzMe7TWD}3*wp98SL6?A`z{X=Ow1oYpufGQGFWeL)$5S;=@?DDVT{8o8!uP2kABlJDe75Slg ziqX3Xy=;AY9l8bl6;`a34w413FnaX3CXg?;!voXXe!a+LL1s~y(SR`66+jLSad*$ie z7_~25_bT#w#@t@gP_nW$Qkuwol5d%QMha!ibfae_dQ=2@E`hECTY%LweY??fchFC7 z{dt5t|8W^qSUvE(TSQxoe>5pB80?U|^_KV&s zqk>0+QBH1AW<29{)n%T(J(M$#q89y{g`BL5RnDC3zR~#5dR2C`?pu)4wOH77ZCOxmbyOVUSbWl1j?9 zxPObj>#7#_BiDaT@t@^VdorCXW78-Gv_aZS3?yZSq$lW=nnH||`t$L>I@&ca+P$Bf z>*}nMoLv2(CW*NgQ1^;^UQXB>l^5nl$VgFGcg=}HWqILP2p`^QF*hdnFggw+r#hvd z6(g6^z5l5AJiRWhOJ*cvL^K}xKqcnsY8}blP2?JCg7_1^WKgaig?_4M#(k^G&Q+kBV}W(wF`SHXd`6 zjI4jq3=l5~vFY?tTZKl1)4g@k%}V!(J)_cZS7{3~r)1oyd90*=TW`w4R??v?NT==4 zuY$LLO{ep3FzHl&ktx^Pwsb7t{-TaKOTCH4f3k1hx8xqRWF(}Rwo!1MSFPFbCLrlc-567 z2b990u>avS$HN#W=Q<827cSE7STcnASf`>5Dsp^uc;qb|Ju$L2dVFMYbY$eX=+wwe z-qXO$=;+9)e4YV4J9=Pba*h{!Q~J~lcjvYO9_0r~xGr+%}^pOPC>^Z0SlOTY?X z^XGbK30nidGOt?y8GFjHpFh?&MX%=2`WHj0IrN(AzsmgQE6RT@_Mc&C-=Mi;ZhJzgaE1 z)qA%{wG?gsIqEm#JGC)mIG4PYx+l|de5apcr=vi*Phv9{)`v7{?-AYyJxop(y3jcf zY5k-Q$HNrAgLZ1~cRKu__V^|J zup71aM;$MUU#{Zm*J>=1?^61x!V`7QO79#spH3&wi=Dz+@-<2&n4ov>U#QP^IYXs) zgsQv~28GX8(U}Yu3iT7A_%$l4Fg%pYco_iPq~e8K$UDY6gd(>^F$K9v^}b2PhGydG z(hJ?BW)P()7x{+KF}_X3ar#+7KK(hwBEqkgcZ(XNdWY`~-Ke}9)S&R8+m-iAf7o$< zh^49B`f}}Eru&80M-OIcj(;d*wHqs&GdM<*TT)o4PyJYVe^b|CW&fe_K7dH${}T69 zRJ%@LWX7X+=KuT^idPX{67H+FX(IA-J-x5j?>?33lX+hLeJVQ#n>D`g;q|;v-KxWl zD!zq3nY~?m@A6LQS3~&TFVvG+CXC?hLzss)O(e84=N2D z__B(Jy=Qbp(Yu|k+$QN4f2q8IT;4rUzpkSTBij^@M^*H|8Bc{cGBkI)nlp~Kx<|RE z9lKQ>M^4Ps&+56~s`>M{mMF69H5LE8ULr=kHCxs4_$g1Sb@M0wLrs}K_!U(;f9SO2 z{DVdek5@mbR?a_U>CgkC*D3Zs;qj@A!C+9(hXtAMR5$-aK5(JS)LSE{aWs3Jxl zIx?69xHVKdkArF$=emz;Hi92hdcKOmdl9AbF%_RbvvhRM#*uz?b84S8^|ayFse0N7{SbHz*n0XFw1m#q4;k!D zS+n|N((t$xu-wJ*P)jB#U)wPMOGhX5Di}ubs%9id-32JP-XY_z+mVzK51Dwc|Ok zJ?(LITg7T0kz*u%^o~W?2#v_9`FTqJPDD9P&l`QF z?nw3D$3dS6Rs*ZgHMa)(d}jLXysVDx>5|ozb|0v?F7vY7A2L*3<~y>wS6|_LlNduz z#Ymn61G|tuK!>PjG5x!co4JW|2^V02%(82ae%jURa8%ZnDx1}{OBEy4Uns8xcYNCv zTL2g}_wV6dp~K-3+`BZ0b~H0TqwmUaF-%Wz6Z+CnJOf5tnw>KiDIPb0tYoWC{xO4R z%>RkY?HhVQI9Fd5!Zxr;4G+)79yUXt^t|$3Q1>dv{##_K@XOF!%6nT4XWg`mjG*P4 z50v+zd=nqSpD?S$h&I#ppW(6RY3~yi=@S`H8lB)rlO>aZk+evk(k>JD<8a&?8tI3| zo|hihnHe7D-kI4R7TB3AlwfzAKL%&;>`2}e!ph<^O&z^66!s@oztrPDSBKBjm*9_T z#NgranFmcdS`QAzC(aqu?U2O5SqJ^Yjn30|>DZki2JH{4tnXy?7Nga?f-7{lCHjBT zTx?RkUQ>O|*8_@*y(EOPx zC$+bw>eD&Umw~H*EhkSxOL%y@DJSl=9mjb=IgycYYv>v8i;!v!T^*vB)Ww_!a}OfZ z(sa2yoJGyI6$SUC@XXxoLb^wa!bK|WQWcs{DZrZDaV`l(pH`sXca0^7`vP^I&0*<1aN zVa;>?;hj0|#yyVOD!(#vx53xWckh6H1Uvz(+|QvUG*~D0nv*ULhBlD)Wbvbk{Eur)Is>Ju?^<4Wv83>fgEt~9naQwBda^C0Ki5z;L{w`+2a+lI1 zr|g>`{_wTygLgsy9y9?f_jPCq)(>2Bn|(l2?&hvqlafm5yUvupL8L&7a{d|W!)&i> zROZRqk#sJjbLG<4YeNBAbbHF_lPO6f5SdNeo$SUn~}OQ;X-z1}+?YGk*YLXlg0 zvJ^b!Y{ebk39_euqTLgY#oF1m)r)ILTO1>Sw>dMz@ftV8ghRS65KB*lv%>s+<$sKv);4m! zhmJII9|ExP&4rfGnY>l2*I9wN$t3Ih>4>dxz9T<-%Xz?VoS?1`cM|aIv;}^o1Z5`p9RhVR*&C6OW1e2v9?Y83o4T+F#`++hoTH71@DJ@xH)9B=N`<- zEQSC*FvkoR@wouwOFfu5r9-nub4RHAF35l6mhoBgMcvE#7svuuuffm~+_9#f?VT^{ zYY;xLt^-z|JD??WzONzr)YjCT zB+YB(fItHwj;f?CE)`w7{<%O62_$+IxU953IcI&=Oh>HRZi+ zIWz6h>XQQV3C>w9@sC+OV(xV9A{oxC4aa+P*!s^1-@}2*4EBgC-LdLP5kRO_Mvvvl zvHjbb(AR_W5EPq^{$1M zVB6EZ+Y82F6ROwNNPVf@E*eUc(V(5nWBqgmWi(&2)hloOir~LB*QXO$bINzz%*1y+ z={KvS{bju88NGHQ*S2FXK)(t846I&XLQAlIQ1;eK(la$PuliCt?*gOR&Y0Y8oJm99 zCtT{z33(Yb@gs0IMBavt{PN$X@^c3CvEX=M<*$d9u>btD1JrtMknznB2cQ5e0Wafg zFO!tYn976R&UBu|ogdE$Ry$$^__zYM*yq!jmreJ(*?*UHrcYe7d zgRt9Ox?+Q5Q{^J+)gy{WA?i@XKPRh(>Jm)Y zlazn{AdznLj{YvCcMs??FbY_`S3v)`-hm^*j*4F{iZ_Ivm)j^l9yMcnP5R!7r{(u& z8!<*B>h&az+p4`<_fm)XdX!}a`Hx<OX$>eEVCthi9=Bf>>)y}S+x4{;BO4s-js2ZZNkc!M+KoXmYP)bvARj?u3Q z`L=wX4t*}T5Lo^0gqBbq_}OZ#?l_MNj;#0^@^5msx29B!W+p2D%xAvkU5&Q7;by`hFh zdbrpxV!VhMo4orDWMiP8TQCCc$LW8EI1G`edn*5KJkh7JFvx%Ov+4T=^e5m8VD*nZ zZ1hhC^W^5>-M;<@h9r`@O=_ucf&G;+OqPK!iv>@mbKk3Iue&kY&m@JXlA1lUX&2{e zw*RMc(8dqVU5#GHAUDZ3(hi&gy&0SjtX{W5OR#n%?d|M>ah9ZOYDU+fmR~P7(pUP= z>!nV$YNsW=ADvt_TIJFSd%CA@{nj(8L(B0Cj($~sn_1D_=+%l`TVJA&cup}G0IXg$ z&=Tytx+(DAmrAcw)~{Yyvm~Wfqq-t=w^EHPWBae;{byISW7@GfqYtTtBZMw7wsQE;x^1g;5L{@Dk5wm5#|rPTb#0PxLZ+ls}r9-%N+D0yV&<<2le0_C3ErD|<4j zq8|gu;ou0+70A%4RXN{e^!CTnp4)@Al2v-Q7fGN0U ze}nIV)vN1cMlXBcNkwozAeF!9mCD=}a@B8Z=K9ZbCHd-HXM5&A)@?Zr9?wFZ0(XAe zLbB~rmBCw*>;&?920KGda@p9%sLAR9=}kDjeoHSiUXuhUE?MMkV4r z2eZ3KvCh^XsZ8$>e2_51X;2)IkN1qbJ+WzdT)CxeX;CGA!QrxQUO~k3vQTA+ce|Q3 zvi}BN!z(6J0<(3^()jJ_*z~dn#g~H<{n-_~T}@5)zewH(95Z>2H#-x!M-R>`-X`Cj zS#_S8;Z4s3?g@i?^sSdKr@Os&$h$Op$j$PeSB?WS_>~lImXA{l`(G*VvKdC`@$(T{ zI;4M{d^tkO(nZSMuGH-CY_H5McQ+|k1IyCx(50lzfd>?qZ9Jes^H@=~OdqQbJYaO$ z#p-||BM0D>26Lu6^g%^sM;x#s^DJ@uxLDVc{nHB$?}h__i&gi-i%!xDyIFQZA!4Ry!P zD1(_wfi8;Ugft_f(iFqpwJu3G+3)mf4>5W*A~%U#sYg#je*(S$R<9$TGhU3I53KQ*7dMISUwbr_#rGE|vy72eEXW zmXjunL3}E52ZVdkqI%e{;&mjZ5wx_+FA=QiRoHHhc!(2s$qfQ@I*r%XJXW|;I(1p5G~cFd&zQd2OV(O-yz zkS5Q6NvGZzbw1CYO_b7DovfnzhrIawdIjv?bg=PxqCl z-EddxbdHxD2@iJ1$rN+0H_wekve~HW4I*i>vb)xOg!OC*O%qIfmZPs-58D8JHrN7e ze9niKVDqbO|JBaDU~Y0WOM!9_uL^HcRniN{&?7m~$Z3X;mD2+Kckmgoa=wI?uwOaD zNi-`**6HiRRaQ=2AgAoIlz{ck-XbJYdlEz>iK2;9|Lt+r;%D+yEC-x>PYu{)xrAU zE7P*CNXx%6P5&Y-U$df-kMYGvUjEe)?_xLq(};IpEPt2so)K2p z6QAAaYsU%cf5iU}=niardO=I*IDc>J?~tewJ*i+7*C|FVgPa|bqAp;}extB*%BBV7 zAAVNe8PJ!4D}j}_4O)Wr_hZx1$g4R;B<+!Qlnjx;BoG5-2(Am||AvR>(CxYPd##({^pXSjK+J>VJ;A8JR@ zUUDH0Lsv!*Ir<3}+q$GP9qpEZS39;=`*_L7s7$d{3-$7t->nzd1eiR%u856W%FNcA zr)KzSI>{qVy6!-48?T3)i?#D*r4ZyfcgUi3iyDjO zrS9Q!Z5pO?l}>9QH~DNz?m^H~z;s~c9u57|%lp zcIf-TPGIFf0WHDKBW=AQ-iOt!t66m_(ao(K!&+8?lXq241CD2lbykQz0=qoNNzOKM zqW_mFx4oc;fMLMO83irD)|1A-FPNXcmDTH(PnK=Yf#z(ll$v_|sk&6FdY$Jq%5vvu zz&eCo7p|CN~tE4MqegpT!;_)c3pi>3b!E7nTWms{4)-_CB-70#Mm-Cxnt z_UGDwsz6Q^e5{;Ppw9qj0W0TR=zYqmtXXsNinW0+fwq$BR2xzL-!}yEn&D^Vy$k&% z_y$;cInNt;jlnvO-LEEIE8513<9*XMsyYr0%kwdXgM_A#Q&ylW*wGmi&52%%`|rp> z=~9i|G+eIJ&A2x!^|1&dR2^;7xe9q!pHrZ>fD3@t=hx5@I@PCL{28rIyHu%q^;a`Y zWl`W>-QYS?Q#yUqUMF@)eVuku^6HK?`h1K$tIxlozZ3Z{7#(EXV#{}%dSu(hSu}{` zI5r#LxH4aDr!n9=6&{xF3D7ISDZs|_3}^{E7n%09EbzbT*Pj_HR-M$L5M$-uU@X@w zkyr0Jw_)%6Y)EX+7BY)!QWz>62EV2SCSJSXU(RP~C*Feo3hV|}e*TL_{*b^f`MI<9 zYWJmmBz|11G~Hiey1<+mZ!)iHqsC5EMq@R^J%qMivn(;h&0_tFLNHy{!!d+CN6vJd zVJ^8xpXP-|zvalU2=x0I^i|+mVD)KA|MN7K{SuYH1Et^IVRy5Fx` zT<1|{$TlSDTjtEk*$Z1|;^g9OmQbk0+70{c&dBEy-9kd?;f5feU zT}zwvn{76BS&^OfnE1r_0V7#nEB$AN(ePtG5f9*S{~&z~$;U~6Uilf~&F29rhm1dt zHe$+_8NFJOYxRo0%-t8D7qEH_hL+HA->i*Ze!8WW$QspjKhZY$&ph;E-1}(&je=!E9ZRZeaM-}fOK7r^tEjz zecxVEV<4v)K32}#(Ek9fz{>d!TEfSH{ZyNDow)qu)qVq5r>@r0>#dVVy7Qo%kzCqG zZ`5Csk`V^18%fDqlsjAvajI6D_)UE^HBOrky%L-PtlYDqeYvYld(lR&?O*oDua*3~ zK?nKS1qE6{&IXg6r<&}ft>uiG$BG4{NIP(4gLqL9+|K0GyW+(aPuG? zL7f^YDe$R31Xv(s8oD%uoSn)jGu|jeQ*~mX%OpRNJX%&8eX5X`H`>!HsB7Xho! zub?G-yzg|GvnJ(_*iV}GZBfrR>bxANbD&X&(pMFzGs~$v#pv-da%_G3H+0VHlyhM9 zD1nw>>szIqH6ygC_p?u5#mc3)7CHDuxvXoQ|NOfdYG$EIQ^@%g&t?&}Vf*ME+Rc+% zcO3WgaFnz(SW&20YxJo_UIPA-E*qgYfpY^LWE|3Q-=K{iQ>2iVIXl4|S!s*A_yw;G z_%_2M8Ss4v`U~(iu33Ccn!bMm!q^61!X6m& zw@jCP&_kI+l*wJb6&$c>P;Spqp?_0V(>fEsV~}Ihdl_^sSP!fo7eY(uc;7U7)YPuv zbmQ`x#bVY|P;~~ou(MF0MR9v(0sC$PwHJ@z3LuHmW-JXM6)4~{)ZGo?q`%mcbTi81SE4MGSgbz2G^4<{K|Lm8y zrT%)r;y^Cz>tC5=)O*b`dyYwruNj#ZhSTYRZ&z+sc!chiRvB3wqHG+;E=VPN0HMRe zDNx445=(Pd4ww*d3`X;agSiK&BmSFuJ?+Wy5Qx9gZtM*5O^=ihYGB4Pw{nt%q zdLTK)?BFVnN~G(7Zay32S^6C9E|lZPtJ$>@)tKrZ9XUwkw47=5O1zyKA9RHt3Wfu# z*Fgpn4@yNyc{quHL2s~60T`8lD6ZCj`v@IrnjqtPadjk4J@G7wKK82QG&tptF zZm;|}%{tg?;E<5-iZY!@(s}(MbhKL--Jo+h=Qujw>k?7p@`?we0b?CJ9`tunA$gwB zqx{dQcu$9(2NnRU$6{y+`-`_#q(j8NZyWKZK;91c+4}H1=qJD*ftB|nv;^x1t&??<=;N_!a&o)sOar9tcW-l{X7oLMQ8Pi!dgW z#Xho>rA7J+tQXk053^3n>=WM^*=#nX#UdeG>qNLGN0va@=QHhN;(Q~28~l^-m;UPp z=tsa4z{>vwTEd(LlfT=4xhJ11={`+mdoScyGtOzry4LBN8|R!iTN(Z} zB)NKFAg?}<*95;P--*0upkD^B11s+XXbF`a?jc1UOL+bYUZR-gt2ojsoJH(dvTup; zt{8(Bap!4sAg81y)nAQ;o(?L3m2*F|gzZ7U;GDiEKcp9(wrc5WIg1(e5!|iwp6lP5 zcz1|dHhYo%hq(v4SS2jvafVV_8FL&*8hAXj&Rdva8JfC?x;70)JuQ47XY>)yvdQl&JcJ(Q^lS5EDPY ze-HgAcp}hE#?5x$txdVwqu;c(ll1;hJMm6SguGz9#s+VEcky&jzY6Zy+BD6A8xop5$3iN4bq@ZAXyJHC4!x*5FM zhHt0iNhy(15(k#V#gWk8$-dTK9E}vUt11tgMJe10#@#G&=PFE?R78U-cnhxc*iVK zw7VTpwr|-p2hLjki13%tv^|Lb-%@%EfgTMG0alMgp(X4;{!#%Xt1EsX_5mXh+0wy2 zpy5|W-d6b8cwYnkD0mWBd4GhKVB>A~ANSY?5N|83UKRN>!IS)FuK$d+d3I@|#~RI2 z7oqMtqetT7lpejHOTZ9d^*8`pLdSR`ehQK0l0rL4pGsEeInOeNacjjMVz~czt%00c z_}KVvg5Cno4|q#^(g}aNK4(QFVV-mXlbOWzM*rqEeE$ahCHMwd{r>|kVW0e^1ss^_ z$_uKl5nK37WHl)#3LJKL#yZV`yo$f4`iXhaRiFk~c`KkLblP7?iWzyfzbL5MB;vXt zu2DI0;GCvqf?n5P;@1d2X^f=Zc^3Lr@D{N0{tPYQN9Cou?DjI#Q!<55*$qZ+$tNkf zW1**j>A=c80$Re4$PK#kf~qr#Wje8JP);TwmIM92Zw};bgP$!Q_dx$1GyyB`DQF2D z^Ra#Vvu9&oDq-0!3_Jy_KD(eL>?a)-9Jp}pI$Vn^lSHW8h$%={5}so2N>M*WA1Z%ewIhiC zXDNAop$`OOfR$GPEy2cruXebdv_^Hm*_(~sErxI1klTt};QR`MVE9ztYUFN(uZ?E| z^ljj7VCCKiEnz?L40?cIid9hYJLz){MPxnQ9H6-WN!aNX?S`8*}J3-knV7_f4u zLrbvn?X0{@zhk8~tIJJa+r=;9=e6y4O${*5r07N22bBF^`DI_^wB8=12XZl{_uIK! zq3-~Vfi9w3%Qoh>cr+98kS(^~oz1m&z%Y>NPdvS1p-+T6HaF$b46{3FkRRaFgr^ z?heEM<2L-`UvLi^$OaOGf9sF(m$P2JfFuHv&f(1J_)h^2b~(vFP9;3Wsf4uGYoOPI z)7!{#e)(hZ*y9}7$XSl5G5;z58FnfHIXmIWGLA3j1?ZQ+Yi;B-b`qcQOO~`xq%#su zWxy}mn&Q_Bx)}5a5+r?^I_K9RQLwKkJ-Bkme{!RzQycJK4li5YH$ra$=eFVByl?)# zyIYeO92y`ULVjw9yB_=|1pIfwi*+SGJ>G?WAAHn?f1;CgpRu~SLxS9ICY$hS2>2$y zOz|y;J_H;JBuKiH?St>0gfYeOAr!}c1cigp81S!ym+jxTL0=25Z^OT0Km7fKG5nu{ zza$8?%Y>$Ye@h$w|Azifc>gn{f8~Do*RGQpz7g^3_b&rCZfZC|7Ft1+MA9kH|u@t znB|wQs@cG~y(JTub7ulSFK%%^*1mt;E&F*L;r}A|;j`w4|EK&fPxPNxneWVp)BLa2 z`Oh=_=Z=v7y3PE_XYD?i!VfaNtVnl`|F4O&;kNQL@6^c1wh_5fc*z5AW{Aex$EYovpk&75RBYJdU2P^&4eUSO|50Fy(yeH>vgEInc*|g}|1VpFvBw zqk~@!zr1i9V)1ecN`oT3dAyAMK!lA#yzUcmPU2@o3%NBqjm-ja`|@+$$4UOt$Zdje zC48lRJrCUi{tB$ze?v=X4(vUX!Ff(!?#k7xPg-A#U=D0Qt$$D)HDBmIizVMf&OhB* z9G_dH7liWT6J)DGc1k`_?$1@7@b|+rLHxf>?FStLy%d}TtRB}vODGTg2-$n%d_Agb z*>abz2UU7Ca&Gi)tr}&%`GV{YUf>-|!yBIGmn_gFbHTQ2Egp zwKoNe)JX0OkEQ#EU3aEFECh=n)IVqRY()>d@BClr^xcemfYoypw1kfKPDamlt5={R zD_8gVHZlEV<>~~qY}TAB5RZz(qwH2-0*_lMH#^opEt>;HEW(p=nQ|rW={RLI3bj0M z^r=JMRKAk@yA1jka2v4tyag>`+bq+*v`aU0l4e%*s?{bBe`oUWPV+ho#p=QgaObd3 zfI|tAZJaLf!klf*qF4=}Qij8sI?17}TeO;%5y^^(vy^W`?qPaTC^%`|(rolB`FASa z4u+lxrUI*HCA5TNI_#_Z={83i#XY+NxwXf#v6?H|Dd$F{&r(#Xz;2=HB_nSe{L0}c z>2e$NZ^6UB%6lDJLVe)h(VqKF$(!OIGm;Y3qJOL3)vAR%?5SQM=h^Tue7(uNa_L;Z zaJrrsi?~BwFP9GBGi81Cykhi7{)f68=ur+m1xyE4k5B$<^jOkp^5?0$%sZvWc)xJ( z(T0KK4c-@?YV|%Hg*uIgIG=>axNA6IW^dY%lhFRbiSsyZc7aZwLl$+>$3=_uuT^;9 zQ#6=4*w%lcyjB&7_otcQ?)d1bn75y=z3ggmpRME$?a?ekmZ?Nsw3@w@RH8Q!Y$csKgbl7#tm5lMHc zx>$P<7jm<9I>$Q>MW^xJ1b;shH~WWpWAdX>J$14-HC<1g=9TmB1 zz4CAv?O!tZmimqIcKF}kuDm-`2KE2D)I8uC=)1suz?QE! zpe5|M!IZ11&$TIEC4(xf*Q~ASU^-sh5dAW8eN;6>>qGvlJLRk?&3QOB2HPzT;@&2% zRQX?xVb53LpN-}z60g_UtcBm7`e*%^j+d!IE}`s>>&A##BCh?$=w1H5RC_-edK#Do ztlrC@C2SAIMRxt)uNSz)G1pqPhER>ir!hI`K7<`|v521QVre+U8zT3>alH6D;aRoY z$ZdpglF!mEJO=$F*afWIx1l9;+>i0)E?&QGZQwDkPC6GJ=f=BpsEMoM z+ZX?MLH++e70E9NgNMY=P z>B|7zU<^x(7j^F%$sC9avp!wpI=hfu32|d0Bcaa* z*8nT8P8-)JJ3ck#^BrZz-F~{WDzUZ(dBsg>AA}!EQ%z|vx&G_#+JF7myuLDDz83Po zeBAuf8y=&1o}r1*M7EFt!$Qby4a+Jc7k@ z^bFj1oX#))5~3T7>j&JO>;}2IL{6*LP8q9DvzGU2sYwAgmaa7FSq&aOUip$jq)O4hNw9WY5_J3Vej{$B$7up zW3_oI?Q-dq9KD(2)aWuZ5-x#d(HL*k?9tw+%-qPvxXz1D)p>bw8oQ#KmG>*Q!pri} zK2uM|CSZbFLg|rzOq=H&S#*@QATmCmpXYH2Xwe4ml-J~3Mvq)RY*yaS|D?F2qfd7} z;YQ#xb#U}g3g7yDydoS3T&6My@DDr1iFa3B)Tq2$)obGEyhkLG--EGM)>F!RTAB%! z_bhsZ!ms)Sx19MO6XxTvcv$>w6_t3skJATpxmJV(J|!Of% zUMOp;e3LmfgCYUHr-Vnh;{z?YVD&Mbfs6VFtX_>ijSG4tt;wK>^oY;p2!EJdis+#( zQ9f6DTkzO5->RcH=rLV;pDXVxb%^%*ysiVosuXL&W5pXt=sgYyQ-*V+B92$lXk@ueE( zvnVPb&6fv+U(^S}eOz~yb6BGEdNp)MsEjko^dKW1${4*xje0|k-l|5eDc>A9@LN@0 zdf+9x{HOy5mcQb~&WiHSU+9D9ri~feqQ=b47&BDH-E~7}NweZ?2!)*_Z)wLbf_@V0 z0=7L#xTZa^?f9N`W*JKQ?a3Ud`Kwn+yTZ}1;!DK@be;cv$=F>U;D0b%f#x~X|EAo3 zo=6MQ#2Ms7Z?Yzr+MKJ7i5^2Sh%;=7QG@tarFYBi9_|8#C1O6GBfN2hz$7u=&Fhnl za7|DyVE zGkQ86YpCcU`M})383Kj@tLI#333b7_`m(^!a!OB`eypv*E2MurOF`{I2KURr!JsQB zG74UmJ%xr32g}r5&&|rrqN|UoXxPhTlo}J|NW{D4{Fsu~bMU^SadaKW#RzEg}EYf3^R*$$a^m`Sfq|YBsO0%s{I=44Z%CzgRjLALXxRLb8JBexR1R_+q$RbVZ!a?gU6VEuMmf17@NDj6h=8mFjPxviDTUwf_`bty)A zlXBMeK>QqcNQ6nme0P`{C43Tx8M(XQYvsNH{UP`}uyQkEM()l{rhINYuT44SUBM|1nY0C^Yl2XW^Iiu4$;uRXd3r{Xvd!34zx>< zD1|hB;!0C4YKp~}$IN#Jsf!TOFwN-kF>R6L5W9GL>AMAOp z`4($GCvQ~TV}X3OPajnUnJc(}rH35#8P1C2zz~CHLgnE>{NZcm)nq zX2_4}MxR#XS$+No9Zm~7abWf70`334(|OzKK$+aK!I%;ZLz7yZ(B!g~~EAl z#Q$^0nGwVve&u{6{mW|T^T8#+%DV?z!f~gW^sYR+O}dL=yx52k{qp7szf~_zP|Xus zUH>)6f95%_>V}9@x&%i)nRtvGjN^%JQPvsatogW!=(w~lp-4t%jA$4{;>w(r;+W7A zXG$#a_~sTG-Z*FpBWIiRPt0kP5B>>-RfuDq_+sPL@hkIM z@PjNGAL~Dh(4y6K){UflmBpEvL_CfwFqvaLqufGwbXGjCTPV_t>UpgGf2_R;e4R!0 z|NqQ9&)t%no15IEN!Q#iv}sG*bfcvUqziPRrJ)OyJ*7<-Xq(UlS_KVzS%kf7;J|&b_&J&Y77r`3GFLwzU)H|C+DZ3?*h%CY%&2}-J4!Y<2BJ#7G$jU+Q3Da0P=PGTiAHp zyTto8^t<5SM-=b;I+j^Q1#QHQtiKU+Z5Z#&R8HO{(91v#kkG%pCtSFD-B!L-g}hbX zt*XlWrYVf~4&re2^kL{n!Q;S{*H@t>xOLBN{nzsP?YlPT7F=uKP~*L#YEVDB%SC>N zd_274J3ggCgCW52$wK$Z=QK`KY*@FqC#Rd?=FPD>Shd>be=YH3iAeN)2lQ^RH;h~I z>5(4iV~n1ga$U0XjJh4Nz?~%-S?_gUqVa0Ncw4)~`%~zbKs#{qe*i6^@A%ir2|(#t ztP`{)aB1hn1~+6xg2B;ZRu4Fulq`#tW2}xzeh?9#>YrC(LszxNrf+dNrw3<1ZvtC^ zljBxs39t33zgz3qcZ%{|+sR#wER5~%;20fO0ki6mMwTJ0Po!jNHxpqUTL-0q9-4|q z@@ZlI8eYx}pT<)|y@#)8mgIW}^nbvIz{!;;vT{x9bKQPnc=)lAL83> zfmqRsUubb8+!6AtA--(LuNL|OP!Alxz0eZ+E|1gej3IrdQB4(o3Ha5pBbMQOA-?2= z-%x&EeVR>QEAeG{FX{Uk^vj?fIDT(HOX!=QsVrzfcZRR@VAvG$t18a%J05x|I2ky8 zYoYt+w{YFwL%6-sgB$fTQsx`XI-61)s@M1q>S@@ zb=k?uSyU^Zr8xE`;w{{ynJPn_@CzG{49zTImO4XU8!>#U&$MzqD6;U0{*syc}XtcE1{==8Nl(Y zhL+H`UM;TQE#@L+)wc?}63GGC?kZ!CTDDQAuwBjX+e3c)h%d`~N#AFn?+0H5j^E?Z z68h%1e9QLTyUc1x^?kxo%DGK>kHGPMoXZKvyOq~+woTtb;>!}B@XITWdKpj#9KQ-^ z34QZhW#;@wt;B6@0qh#Qui|8-MwS`46W9DcdyeH-OMF>A5q=jz?**5JJo<0{bL$K6 zO2dUC3DLBPoR_LF{{3Cze+l|^@CI<{c?ViT-|3Ndr?YMzBTdf$nALhOkR%*k%D8@N z=QUMcQ^>b^K(7Bh75W0u036@HK}&G`bf^8G3|ZXLK&}I==wM9rmR245ZEYTJ#1Nt> z>D?VWmRWp^yKUr#T|b(P`>g%?c&Z%9nJ=vel%K2D%w*E72Sl$?k=X1)Rah3oFSOhl z_a(*6-i2&Rn+rlm#wPNuU}N-SdLZkyatw>r{(;Q)ebxeMaFLo+v4TPs%P))+`mq(1 z<`=a7vvGgyHE*!xIkPO+-<=4(6s!O)-Fu-W^tvvCFTWFatdm(yyCQkKJQW{9(ztS2 z52s~_AQabV6vT_giYpngHIvU0g2q3y=Y31b0!?F`m7^6tvaTq4^%LlyfnNb9$2-sx zdL6eThg}I#a&J(Ktn=lAs2=o0^9&`*G;jyQf>M8NA1W_>f#q91IJYib2|XDc103Jupe5WjoAMwW%6CIJZmeC;Q3n~tH7f5JHrX~X zq@#NX7tWeOe*1{e_3yVse+JwG9KUyk5jH_Uf>THr7Lht>|;`t(kdYfTr@hRdB!k9WiqQ$ z4Bi91%t%4~+-~!!dPuJQUkbenoCciS>!2mL_P<*`om_u0s*uSp!lSPpSKpN!$zIWT z8CQ?g%lTbP$fucjT>d-;{W$n)7`N2VzQ;XlRxf}_75RdjRQBRxdJNxh592-9CEmo) zsFwt3Aff+wmoZ<-&0n7kV@}uGd|68zt{!fLZUDQ1%a_ZbO$hDMx~==!dEa&TD6A!T8S@9gi=p_3H@vEQpiKn(RaTu=?K^7?F{q9 zq;8a5_}A;AY-D&LZQu7yb5v^P)3#Y|sWArx$hkm!Ou*KMW{X5+7_6gIYXl3vV#g6~k*gnnYHsbu$p!{igwAWls5lIBW;{of?+*uL1MHQs5 z9O0&7f2NO7pR89rsKlp#JvUydS}4Cg@OS5(s=uj%PwK+K#mSz4npUdSwEgUpIDwKe9*oz%K-rz&u(&sg$A92D44 z`*EAz^oU$~$3V}P_rUQz8Ct?4Yi+q74E?JdqQ^^D$;z^(&uy}O?w!hXy`sL&f%jZ$ zfu5Ilzw-Z}VyNQ=acFakGDjUv{Ee4cd79zp^5JRdXTb}=$@40-gr+4{9_OE-TRwE^ zp%bcAJ#YP4O_0jOB{He;!4n**QN# zOE_%4tj0FJpM2?%e2JQT5it(QmzFE7JWs*T<;yRje+OO%PM&{3OE|K8aYFUXm&*(L z%9qxwtQ^&&$OrgHyLS@w>EImTjmuip=P|bAfE?bD87C#Z_X}y- z^lB^-&gZUfObd2$sm8V-oi~)xL5w{(xhx_kukpO-(fSJt3(yoFObQB;V;J5rcwyhw zkIu!{25!dhIuc`7k=C zSH;i+z+fOj`rTgp_YGSv;;*d%oOts298d-5>9Ll(p*F2v>_7&UpcvmlE1;G9dm&++kCko`& zcYmlPA^S-ye;cxsvIGU5M+3eSHM7im069Yo`w8th@Xr#{I@{w02cwr|6|Y+oZU;e@o?q19RHlT zcy<=-i(y|&H&&si$^{#h&LeI|$ag>SRuiwJ`*+X>!GD3{TVHAUI(t+%9zP`Aoo6D- zYIbu}_AJnn(cq(c5hqC+{8AU53ckM1~qd^XAF8V$g- zg1Mb3&P1{V6MXZXL1GFQ3AjqcFJLAzc3${-AtRSTVlojF24u9ND<4aRnW%3z38=cw zmh)4j$CdMMpgX|3z@>NS*dr`wo8A+*?AW=>SyN@lk>OucyqJjz&&8y>+4nlQ>WR$| zET2c~DY6=$&Nr*_@l+~5zYs~&x+qmZ@n^+yz=XEjt-Q6!s zNw{WbomBH$qYw}I$4LG1lX+2@6EJ@Jl;!s#al8KEUFgDbQLhBJ{HcbPaOK&y->ePy z{rk{|&`%D2o8I()s+COL&7<7BO7=9xyjE_MAC?}CG2srjJx|kP6Ga2$-T8W2q$nNd z_zreha_A|;4(KBNiqelLb-NBW`}4fk&se#ekjt%S-3Q$Qz5<-wZO{_jeRi$$to)(e zOuE`qn6+@-s zU{~TYvp`LT-~lV9MiOuBXRRE~@Ns(c1oSiDS>WV&3HtDI?6nKyjcSvKP$n;*7CGpd zR?5zU$Wa(nh#U--nG)251W<!2mLb;fS(%X#qcY|lD( z8W$Kl#8SlQP~OHVw5z4M#*gPs=VV+;&I++O;5FW3`9DbfPM^OCjU|p(0381}p(X79 zb*K+8?|}&R>V9mw;$dS zGw-;%Mt=8Xfq6V&@^HF$$uatj=$k5U5FQ!zlu=XYmGC{Lrv!r&rNvLF=yfV;UmN1r zDgHBMn^LkwS8?`dN^o?*y}?t0D$J*& q9Mss%@KaT4qd^(9!Ut(61(kn33Tftw8 zqtB@L(<(lIZ+%Ra3>Z{&41Ya}q0d#SAd(sZN@-YADwRJyb}dt(p^)W)&n zoyt5;HLnBFG=?Wl{<(5eauJK$^GwdhgVQoGRqSER6wFs!^)-q+n;V|Ca%CswxP zVg8-M3cxb`v|=~^Hh=UKeIXkQqoPTFSx}^w>1R~5mfwCve%erQod2e@iKCbdm8wy6 z(xu#rhk@6{>4hkex&&Km`NuP|YwjiTlppL8-AZs+=;GjHMLsqu4D^=DjP5<1I3}6h-KuE!pVY7Vs@;EA zna7{(;~Zq9`@KU=MkyNbW_c81WEgwZ>TIF{2a3~zN4QguW|b*F$5%f>)AEvvoEWDX zICHh8m#w_%DOMiI&%w|Wz=^=gds+B*H*R(NJ4Rl2(O2l%>=S`>H0&z>MxT=ZCmmm? z+4fc(1L3%dPHaw=bK2^Z8-wG1;~)1x{J83cYRi8L7GCeqnvrE+6*##&pd}nK?%vx_ zH*w3#|NHE;kpIsO7I z;YiZGddE8PhK`-YF(h7&MAdpht>+!XDp767uWDM3-xBCk!I{AEI~Q7lOSjXLPCsRx z>CSOm05`eVs{)RVBo*K>f!@w#+=8~R7!$H4JzgO+f(bgpLK*(7l@3`fDR z8HRvFo-e;|{C!vtrsw#Lf*u3L0|_!-?>~JZmm1=)@q!w@-xkK(&?Vlhpl<@V0+)_E zpd}oV4%shv>#Di2RPCcO#n1Cz7E=e~(~8BC<@~<+4>ld`#OKvp`b0sNC~F~4tq-SV3`Bgbz!^l9KM;P}--AC_OIX=QhY$u0~V|77_+NPI4R zPecC@JP#bdpF$s&pEJ2EtG!FoH^iz<3e_Qfr<>o`9I*V#XXfS|6QE~+Il%F&hL+IB zyj3c|SZ)dnO&7~*n}lIG3|rY_1u$G9zfb?!^4mvzZl3cQ==;GJf#dfjXbJuD3+)GM z?+|8b%dEHyGk)I|@;gX;E*3Z;lf{N-q+XQ3k~&c$ z^@1&JtgY}_XVbTt__Dm0e)Xf!SApw*<98#p1b5!6SAK52wDu86VA2-ffUd>oHT}i% zdy)8De*OjeUGN@o{62t|&~JW*rif+TGPJx~hSvPm@>@JB$L}oYjo<>{_|-!nmY*|4 z?9OmdSBB}oS$$Jcs3YHoa-ncL(vg{_auer@*&>|Eumli>@+d#rl2Eo+*mK^u>AHApDVxXp>G490gm6@&=UI9 zPiJD-O+QEFGLzqTg!~Q=pX2vm=-6EL`hnw@hCVF6oQYvKj-$J9Z27xQ-&*2x{I)?~ z3@!nVUnBHk`E{BYc2}3mF8mtaw*2-JpX2vC=)Zst;P|}*eOP`ub1c&d?sLs(i}J<+ z+U(AK;_N>x-|FLXd{2e01$Dsj-2#1BzB$vw?g>3Qm(cc*UkmZMcKdtKKL$Soj^F=4 zOX#=Vwx&*HwV%|~i7`?qv^NoS@lR9ru1#O|_#D3}&~v~%;P{;YEur6Wg*AC9Yk1Oi z679;X0-d7@>hV7fHL;VCXU6XyEu(K}+a)zl0giJHD*G8UtLpFjJ;}1L4`BylH@> zV$?u5X!-3SzASGgo!3F%3O)@Szt2KT=(oMGrafh~pB6=rf)6rIX&G1y%X#Kj^8EF68ar? zFWD~ju-n*TmgMC%Djbbs*Ycj_x1ac2{eKnu&)`kq_`MA+q2Knj%UVNO?Jbh2r8ZON zND|G6t?ECP-^}^B{5%PI4LAche&;|-=r=#zhD+@?gjWh)?aDh2$mr=z^ZWGsmfwTK z=hF90=pTURfaCW9w1j@s7n%l@)!rujGB$11tuAfy`?io@`GOq3NzliF=+-JM>ueR8wB`3A@i~5fh5je_4{-cGggz|4PLqOe z%ueoPMg)z%<+u36+<0{z^aY>+IDWgJCG;^~br#{>Jg=Kcs?2g)l~)5i)*9rjm4xcR z@@*wv*DkyQ{U`8O;P`exOX#DX=J@8uK4uB5b`LFt%;%bww-Vr_c!I>!9`c>JD93jt z^jTmXaD3~aB^;J-&P2Ve_8+dvZPr|DL|y#|F3(Ifo)@+0Z6RKl-shly3H}#2zQ2V& zBEC73^|IRcT=NUhQ@iuc#w_2;#W}v!&`ZGz;P|eBJ|e!(guSe`QAS^~B*1FUT3ONg zi2kZetydGbe4B~a&4a!Q-3opH9N%Z5CG??JW=7dfsqT@q%D{vs_zY==_nIqmvkA*D zy(Gu45_$@l0UW>C(EacWXL#K>c3o>Z%W>=o`85)sOW$444}gb(-++VZ*YnE!E8nK`An`iB#Y>~!TreLvz9&LUaO<4CuU~iP z+N2%~x~yLp8M^F{*C8TS1hH7Y$L)P!_;eIlxtieXZz{9|cRzde{BVEIt>gFP)~5bz zcaE%|^NA#unMEM8i|=4yiMoQ}`M(2d|K;L>+3w1j@s zH|0SbUXMXaQyxZEuo)ucI9^1bT*V&zEvmZ z_?`}Z9@qpN-wU86^i!TYckS4{epmLR*>zb+{1eU2o|nZN^)b`3m!f=qY`v9Q{w>7s z(*0}b4)88;{QnItq0e+5hC5qvSJ(-2*G;(LQj5b4mJ2jK=TM3^60y?STxb@4YYD~ zgnUJ=)G4g{gTcVbbriG&*Y3Gzce!?N?;%+xU4omWI8s%4zhdt_jfp^9{3BsjVnSQU zzk&E&Ib98X3%CO~{trM)Xm$4Np}(>2{Fgb$)nyHruhQC~lhlc8vD&HsJ z+2Ay6+Q*Jr8(s>`Wgr4K$KKU)cyjd)A%c}Ot*k-7>eF0-gc8B63p{yQ;c|krG<_?RM zsiZ3OykohG+A!gzd2m?%@Xhkxl>e%zHyn%xPOjz967IOd>f@f!PgI|B*|kIrBR>~4 zwvdC(>qx|Ej4?YJgE{MJe2DE+(a8|Qb+xYJxd%^8oaj}9RI(JSnGHd$nxT(Vr!zj$ zYyDdlJ~LB!sl;S2TVdsX5V>5rJq!J7@G@|6zX>g&DfCmQa6y>$cTjWLE2H zJ}subd0-S$w=3@`bv-3KqJ@J#j|HkF=!lpHri$byM=1R{CO7l-De*yA;WXp_QH_cY z$47JUrb;CJl#1X8HKmdns{h{LbhR>=%eYr<=Nq`wkBki$m5{4(lugG$#z2&x&=m67Oq?@$FMO_p{sj0WaQSr` zw1l4Py8ZCu${pj-p%#v{-sNJcu}BXzu`s?2`L+|UTL)05vgQfW!0|1GmeA9lwm-gH zt|Jw(_6IVRS^)QE?Ohr0;@zf#Q;e2)>CrZSYl**#_$A$!L0<)~1CD<)w1l4PTK(`} zR<~0+gGMb{p}ngy$zFny`7m9D@n|BJLJcw=*PCitX-bc=avXrqV&01!iPLEJ!4Tl& z*a|IS|1Yh+4(YJZ?s7CRT-jw>qOctlb#0G+IsIx>wMXCgk*KZ2do(x|3+M#RQHnY= zBl@r(E!9=&=^WKg>vwT4oR`LJ>RcRg-Qe?;rNN@Y0p++T45pS&pD;Z#B{IeTjT}ZA z1dfs$zn|Bsz4Wgd@9b%ey2fyL1QSLzKR5}W9W;M>tzMLozL6!KlNOn`C#;KCFjd_h&}pedXjnlPo5}7+Pg6_&m7t~8y9)`bWN9YAS5wjW-Pi?$Ag7BK6hAN#P{*y_jVz^=%~-f z+Vt&5{w(jMoDV?%1-uoe>G1XWyuC}dV_!cXd*z+o>htRnSD!;ZGf&UetJ9%3f(wAl z#|CH#J=gQP>r*#=a%q)hWNUDr1xO+MjplYi@iG`Oa+H_S&MKZc}aB?kgbGt!un}(JiS#+>JhgmLsBzl5}f3 zs5`b9nT2caj5xni1+*Du@-LArpB=3BpH}*ZilI(0LXTx6yi4)HQ(EuA994~oF67(i zX9i@4V3fX4U#;~G-TnvN-}2YsMql&)R$t$wgPSz3;r~yG>(fNADltxl|NL=kx%}hV z`L8QIaF~B0!_Nq#bh%Wf%+mHXhz*P-x;J%&u?o7cJ5;bq475L`lMnd8ErGsG2QT>g zHL3o3qhGmP;&;48O%fHb@t(7Ddi-hVd%*+1=~D}|gd@=7)tkjnzJpu?&|F8Mk30?LoEXkpDsA7X_Dga^N}i17Iw0{3k<8=(#`Hi$3?{AD%KP zMS>>fy&S8+M<+*F&(>3kuWD16e&Toa_;%=fz4uSK%sy-Z$8q&nk5 zFE)jPHDiM1F`AQk`r{_v?B+22@X7Lta!r9P^!E)f_+W;*g8J-_2sj=-|FY>LlQ~F#}U)G^M;lHI+hZ-#6`QC%^v8f_G zhK6q%0;ZB}92%)0)7I#9dOJ4H{$MYAftBk)_-5fN`Su+2Pr%PYSq|U7hth?jbnD?? ziJKn2D&$kXE;nAE1APKm3S9bEKuhRdkBjDXEJb4$np%>2CZIuaSl z>0-_^l<8}QM|&toTgXT9?M>(pL9jk2#}H@!z`%|SR8eLc}m zjNw>R;%lxC%YQ>|JX#068EgfPe*?6H!;MEf(`n{-4Pkm`MeZ*EjSxEzOB#_7XQk& zha2ANvt4w2M>NO&QhZNLHOGD*klv0m@4duDblVj;I+-p5!Mt!FIF5?BOpjwo$C!n| zp5Eunfl)KeYt;PlBg`WUIW#@BAn6bDhp}|C949ElxC5~3jIscS&=i~s&I^ZGJA>Ua z0Q$8GIKae(L(q6s_^6&#a1*ZI3##*mG1jSOOf#+P)UsTBI(yZZgyp|6moN3umx9ZI z%a_kUOL*!wn;!>m?k!&qnO{%bi1+Ww6wZj|;Hrqx#C4obdn?q*Fwd*a`M0mO7 zUqk%TkxKsVguWD94m#5fE#YwMzB{|Dtc?wuy|UV?WyPu3YnPSoJb+Ewu_ijNCFI{m z{H`5*7y3gGY{~JDLrdtt9jqMJoxkh2%W9tx2}+TmU3uo5#$LTi;%mAhOh56v{NDwA z8Mqp_^j`-p!TI}d4gI2Y*RMnPhf8j4>Q{Jh=XBzH$pha@0rKE6rB4Z6I8|R|<#-W3 zS@=jfybm2cA3X<7jzVY&{jYEKlp|asD64%~vY`MW=mygOAx<~(rLVU9*AjncK0sdz zE(ebP)zA|9)BoxJ5BlF4@@*qt$M+5B{{nqMj&BrNLf`s-DAyy=|CVdQ@+baI{fE93 zTn;+Z4K3kt`rmbBrg!}x&`tkq_gVgJ#P8Doj_}<|*#pO)J7f+2p84KW|GM+<91cWo z)b~VGb7Yd#0PU3nk1ps%iQa_PYs2z~PnJ*2cnA7wa6NEx+ypJ*aQfF>j!ymih3MZ= z2+^dyK>+<@mw?cAo#p=`@w;;PFLZ1h_Wr=}PeV&MTsegK5)PnyFNq;tN}}=lF#W{u z+M$m_Ukh#oj{nWj5)Ri6_2l2#5;gotjLD10f)3>k15yr~y@ngY^b@~J|G$LqcJu%^ z{&~<64wrs6^6Wk3+0K+_KVkXS5U^Rap(XT8f0us0(->gq-tFrrF2||$p4nMDGs0LRdtQD0*4fz& zoKw!O-@I<*Gf{ECH}Thj(zZy_oBC-g?35T9$GZh^iB+y@-L z$Dt+kwO-IAy`6J}OtTt#k5bL*c=$JX$7FEvA7yuG3M&Ojk&*jnyqj%$4~FqedXqcx zj|4Kn@gD#!!KKqZyQept2h_l?#yhp9bJu`*XUL~Ej7Ruf1bqeA2OOVU!@s-u-Lpvxi&1V{gN*`boRC?wq)8Yu%1rIT!7Cbo{vS0L{_j&D8m<=`67nOfKBOh zIIJA=`V-?feTm^Ue=010_*B71%Ha~|CU6^YaVSe_>Tvak^m<-lkqz^D7uGfVr)wC+p36`<}B()aG&g(>!p!- zsxEJa;n)5dE1!39u05)R9uFn~36iBf$4On}svNg*%bvOoC)aOZUpMcBc?+?P5^~j+ zkBE7Vh?e&51txTa{PuL=cMtS~;1ST7AJ7sUU)SFE%Xh^^bvrh*7X;f(^>iAEGMLxm zys6gnX4?JCnmcWJ4-$VP@k@CO-oscGOaPAmY-kBrhWGU}9(zc69GdP`b;cuhMT`Gk z|1n>+_!aPP47>-?QPvFK#^sY(1VAx`{38aXClwT&`*JH0VmJ%&=TJN zf01W}y_c+_jcdz)>Z>-t9C=y-?{Thh#aY$u;^>I|Ay&Pfbn-ObW92E|o7?}G1U(nb z2Tq=Ipe3~4V)G>(u4i>ApLLW3wPw)*{Bh`tX8&i=dwkW5{i0+_+I zSA4$ekLlgP(|T~m^G;)Z0jrj;Dg9d=ox&yLBMdjjnfF=wo`S!tPd|r#3A_rNe1C$L za7j2$=tX~a?%X=HYWchc6GKhSR3DAXh`!c%e`T+EfER}xwvcbtM;OoYiIme4 z=u^R&!128vTEffWeM)OX{$28=lP|o<85}SDC2kfq=EAx);k{4BB-n*WM2Dd_8@cZJ zY<7W8AaC6JkNAZ+6O8$Vek7k(?^OMU3?)rydeG+2i^$>no429=13m;!&e%t-oNm0^ zOa9RJP3|jy9`}3XPkYF>hIscOiR8}~=!?Kdf#Z8Uw1gpHzVwnmoqWUmX;uH#-%+ZS z4(@<>q5OtFnZeu%=HJEQb8ER4PqsERJ`|=OJ}&)lK>q_A1Wpd`5-W%6_j~F0cI;et z(mZKO8rCt>6y}W>TKW~3*ufO{j)vpImfvFHbNtpppAYJRPvI;{d1tt1Dk*ZDV(13{4Vuj+wNW5gtx$qGFI)z z3X)%t(@4%%y`7tX)Wq5DI z!9&~eU0c>)P`B%(y1ggvsNZHxpAev;!~bREEnju`bG$cn3zx@6q#m-Sj;#s* zznJL4^-6y}Vx;n_TC7}a;VYF=|aacA8Q zdbTBaYZJ*DgCQUKsxf#{o5xeiJT@X`Q-u4h#;_9?=UR&i42xoUdHR=Juf>&dI9ZH~ z?=h9hA5n<6R?mA>>)&_Qo7Tsz-06?!=3$eeXM<|sJV7UB|gjfviCe!|Mr48JTNNj^Rg{UZ1+ zaPkC=R-T#Ry#m#n52;rmocw)WiFCoarRZ~e}56eHFJ9if<^V&(Rt!f z@N_jIK1v^lfpr{7#d}*)TuJ5^c;43F7*6^JpHTXo$Z9Kh^;fOjHOS@a;|0*$!H!T? z$@HGWr3Q-f4=Nl}e^JFbZd@?*tbQ^=>4I9>j{1pOK~09^k36Iw#g^`2h& z$;kuwWvWhQYLS9#gZF-PBvntY!>CNKYgUb2i49+~>8!pi$A3NaR&XJ3{4ax+;P|`t zwpadk#BbUFDVI#`Rwf&1K#20atZ1rm-}e{IX2OCrT+%JPL+KG&9Ixo)RGuG|UoxoS&C zXaLx!4Ef&yuS(uadcOtz26ziNy&89=mF2EWY<+KN?5E!2%X|TI_$?c^aMg=wctw+s z6^O5z{O@S7FX} zQoT)&hz%%SUKlGCFQKu>;<9O2=x4>(J>KS7nm)_t2*kR`r&au)D)zP{!-V#4+5Fx| zdR%|;73lAS{lKO7O=t<}uzka0qj}$JJ(|CJ%hnCzvU+uWk92qVzte9?ul60Egtg*F zEndN7K)h66s8f*vgW?4R`aC>jo~1_l$pk$d+vwD*6J%ffOA5D{dU|9joU`8z>;F|b zJ*kD>0=5As_r=f>T)po_KR48ET(^7ct}X)rQ~9%Na6BF}>iJ6EC@eq6`o`FM9GC^xNQH!0|7>+VXD-­Q?T~zvrKN?v%23gyxrtSCg9kTb(QWzOfjowP zj674Sh#UCk#&rBnmEbN`SzkMzg>ik3o+$TLcn#mT`BMvjX);B=E1;XeZNSNQH?)NP zq5asha}JSj_x8Fy4Rz~x)ooZ#=e2HAom&E8CF*s%2DK9DSPgkUZ>;{L=H5a))JG?) z6NtC<87oISd|Z8sU&C2fFbGJH`h07T`(L~0)s~&Bb~iNC??8Z6TQ+T9w`=!~x_R3- zEXHRjzYWqCV{uptq{C?DM$P;*`ou{UoU-RhpJ77n53C#w@O1s+jnJP0cLJ9m_d!c= z{bMil64PF9H_O`VwsQPP45czPOBpN|GjD5PAE-hvkV^s<;Ig1C
a49pBhK+HOz+ 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%0Ab>Mnn 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

plUuz?FWl#brm=H-k0{h- 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 z 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�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 NuUxU|fI61%P?S#^=t)^%Sn9 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

>wC^f_M8wmjgiq(flvHY6d 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 z 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 Rw?_Rvy}7YrMpwT!@V|R9#)$v` literal 0 HcmV?d00001 diff --git a/tools/http2_interop/http2interop.go b/tools/http2_interop/http2interop.go index f1bca7fe13d..8585a044e53 100644 --- a/tools/http2_interop/http2interop.go +++ b/tools/http2_interop/http2interop.go @@ -2,15 +2,38 @@ package http2interop import ( "crypto/tls" + "crypto/x509" "fmt" "io" - "log" + "net" + "testing" + "time" ) const ( Preface = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" ) +var ( + defaultTimeout = 1 * time.Second +) + +type HTTP2InteropCtx struct { + // Inputs + ServerHost string + ServerPort int + UseTLS bool + UseTestCa bool + ServerHostnameOverride string + + T *testing.T + + // Derived + serverSpec string + authority string + rootCAs *x509.CertPool +} + func parseFrame(r io.Reader) (Frame, error) { fh := FrameHeader{} if err := fh.Parse(r); err != nil { @@ -49,22 +72,8 @@ func streamFrame(w io.Writer, f Frame) error { return nil } -func getHttp2Conn(addr string) (*tls.Conn, error) { - config := &tls.Config{ - InsecureSkipVerify: true, - NextProtos: []string{"h2"}, - } - - conn, err := tls.Dial("tcp", addr, config) - if err != nil { - return nil, err - } - - return conn, nil -} - -func testClientShortSettings(addr string, length int) error { - c, err := getHttp2Conn(addr) +func testClientShortSettings(ctx *HTTP2InteropCtx, length int) error { + c, err := connect(ctx) if err != nil { return err } @@ -82,22 +91,22 @@ func testClientShortSettings(addr string, length int) error { Data: make([]byte, length), } if err := streamFrame(c, sf); err != nil { + ctx.T.Log("Unable to stream frame", sf) return err } for { - frame, err := parseFrame(c) - if err != nil { + if _, err := parseFrame(c); err != nil { + ctx.T.Log("Unable to parse frame") return err } - log.Println(frame) } return nil } -func testClientPrefaceWithStreamId(addr string) error { - c, err := getHttp2Conn(addr) +func testClientPrefaceWithStreamId(ctx *HTTP2InteropCtx) error { + c, err := connect(ctx) if err != nil { return err } @@ -119,18 +128,16 @@ func testClientPrefaceWithStreamId(addr string) error { } for { - frame, err := parseFrame(c) - if err != nil { + if _, err := parseFrame(c); err != nil { return err } - log.Println(frame) } return nil } -func testUnknownFrameType(addr string) error { - c, err := getHttp2Conn(addr) +func testUnknownFrameType(ctx *HTTP2InteropCtx) error { + c, err := connect(ctx) if err != nil { return err } @@ -143,6 +150,7 @@ func testUnknownFrameType(addr string) error { // Send some settings, which are part of the client preface sf := &SettingsFrame{} if err := streamFrame(c, sf); err != nil { + ctx.T.Log("Unable to stream frame", sf) return err } @@ -154,6 +162,7 @@ func testUnknownFrameType(addr string) error { }, } if err := streamFrame(c, fh); err != nil { + ctx.T.Log("Unable to stream frame", fh) return err } } @@ -162,12 +171,14 @@ func testUnknownFrameType(addr string) error { Data: []byte("01234567"), } if err := streamFrame(c, pf); err != nil { + ctx.T.Log("Unable to stream frame", sf) return err } for { frame, err := parseFrame(c) if err != nil { + ctx.T.Log("Unable to parse frame") return err } if npf, ok := frame.(*PingFrame); !ok { @@ -183,8 +194,8 @@ func testUnknownFrameType(addr string) error { return nil } -func testShortPreface(addr string, prefacePrefix string) error { - c, err := getHttp2Conn(addr) +func testShortPreface(ctx *HTTP2InteropCtx, prefacePrefix string) error { + c, err := connect(ctx) if err != nil { return err } @@ -201,17 +212,15 @@ func testShortPreface(addr string, prefacePrefix string) error { return err } -func testTLSMaxVersion(addr string, version uint16) error { - config := &tls.Config{ - InsecureSkipVerify: true, - NextProtos: []string{"h2"}, - MaxVersion: version, - } - conn, err := tls.Dial("tcp", addr, config) +func testTLSMaxVersion(ctx *HTTP2InteropCtx, version uint16) error { + config := buildTlsConfig(ctx) + config.MaxVersion = version + conn, err := connectWithTls(ctx, config) if err != nil { return err } defer conn.Close() + conn.SetDeadline(time.Now().Add(defaultTimeout)) buf := make([]byte, 256) if n, err := conn.Read(buf); err != nil { @@ -223,16 +232,15 @@ func testTLSMaxVersion(addr string, version uint16) error { return nil } -func testTLSApplicationProtocol(addr string) error { - config := &tls.Config{ - InsecureSkipVerify: true, - NextProtos: []string{"h2c"}, - } - conn, err := tls.Dial("tcp", addr, config) +func testTLSApplicationProtocol(ctx *HTTP2InteropCtx) error { + config := buildTlsConfig(ctx) + config.NextProtos = []string{"h2c"} + conn, err := connectWithTls(ctx, config) if err != nil { return err } defer conn.Close() + conn.SetDeadline(time.Now().Add(defaultTimeout)) buf := make([]byte, 256) if n, err := conn.Read(buf); err != nil { @@ -243,3 +251,48 @@ func testTLSApplicationProtocol(addr string) error { } return nil } + +func connect(ctx *HTTP2InteropCtx) (net.Conn, error) { + var conn net.Conn + var err error + if !ctx.UseTLS { + conn, err = connectWithoutTls(ctx) + } else { + config := buildTlsConfig(ctx) + conn, err = connectWithTls(ctx, config) + } + if err != nil { + return nil, err + } + conn.SetDeadline(time.Now().Add(defaultTimeout)) + + return conn, nil +} + +func buildTlsConfig(ctx *HTTP2InteropCtx) *tls.Config { + return &tls.Config{ + RootCAs: ctx.rootCAs, + NextProtos: []string{"h2"}, + ServerName: ctx.authority, + MinVersion: tls.VersionTLS12, + // TODO(carl-mastrangelo): remove this once all test certificates have been updated. + InsecureSkipVerify: true, + } +} + +func connectWithoutTls(ctx *HTTP2InteropCtx) (net.Conn, error) { + conn, err := net.DialTimeout("tcp", ctx.serverSpec, defaultTimeout) + if err != nil { + return nil, err + } + return conn, nil +} + +func connectWithTls(ctx *HTTP2InteropCtx, config *tls.Config) (*tls.Conn, error) { + conn, err := connectWithoutTls(ctx) + if err != nil { + return nil, err + } + + return tls.Client(conn, config), nil +} diff --git a/tools/http2_interop/http2interop_test.go b/tools/http2_interop/http2interop_test.go index 3b687c035e8..dc2960048f1 100644 --- a/tools/http2_interop/http2interop_test.go +++ b/tools/http2_interop/http2interop_test.go @@ -2,46 +2,117 @@ package http2interop import ( "crypto/tls" + "crypto/x509" + "strings" "flag" + "fmt" "io" + "io/ioutil" "os" + "strconv" "testing" ) var ( - serverSpec = flag.String("spec", ":50051", "The server spec to test") + serverHost = flag.String("server_host", "", "The host to test") + serverPort = flag.Int("server_port", 443, "The port to test") + useTls = flag.Bool("use_tls", true, "Should TLS tests be run") + // TODO: implement + testCase = flag.String("test_case", "", "What test cases to run") + + // The rest of these are unused, but present to fulfill the client interface + serverHostOverride = flag.String("server_host_override", "", "Unused") + useTestCa = flag.Bool("use_test_ca", false, "Unused") + defaultServiceAccount = flag.String("default_service_account", "", "Unused") + oauthScope = flag.String("oauth_scope", "", "Unused") + serviceAccountKeyFile = flag.String("service_account_key_file", "", "Unused") ) +func InteropCtx(t *testing.T) *HTTP2InteropCtx { + ctx := &HTTP2InteropCtx{ + ServerHost: *serverHost, + ServerPort: *serverPort, + ServerHostnameOverride: *serverHostOverride, + UseTLS: *useTls, + UseTestCa: *useTestCa, + T: t, + } + + ctx.serverSpec = ctx.ServerHost + if ctx.ServerPort != -1 { + ctx.serverSpec += ":" + strconv.Itoa(ctx.ServerPort) + } + if ctx.ServerHostnameOverride == "" { + ctx.authority = ctx.ServerHost + } else { + ctx.authority = ctx.ServerHostnameOverride + } + + if ctx.UseTestCa { + // It would be odd if useTestCa was true, but not useTls. meh + certData, err := ioutil.ReadFile("src/core/tsi/test_creds/ca.pem") + if err != nil { + t.Fatal(err) + } + + ctx.rootCAs = x509.NewCertPool() + if !ctx.rootCAs.AppendCertsFromPEM(certData) { + t.Fatal(fmt.Errorf("Unable to parse pem data")) + } + } + + return ctx +} + +func (ctx *HTTP2InteropCtx) Close() error { + // currently a noop + return nil +} + func TestShortPreface(t *testing.T) { + ctx := InteropCtx(t) for i := 0; i < len(Preface)-1; i++ { - if err := testShortPreface(*serverSpec, Preface[:i]+"X"); err != io.EOF { + if err := testShortPreface(ctx, Preface[:i]+"X"); err != io.EOF { t.Error("Expected an EOF but was", err) } } } func TestUnknownFrameType(t *testing.T) { - if err := testUnknownFrameType(*serverSpec); err != nil { + ctx := InteropCtx(t) + if err := testUnknownFrameType(ctx); err != nil { t.Fatal(err) } } func TestTLSApplicationProtocol(t *testing.T) { - if err := testTLSApplicationProtocol(*serverSpec); err != io.EOF { - t.Fatal("Expected an EOF but was", err) - } + ctx := InteropCtx(t) + err := testTLSApplicationProtocol(ctx); + matchError(t, err, "EOF") } func TestTLSMaxVersion(t *testing.T) { - if err := testTLSMaxVersion(*serverSpec, tls.VersionTLS11); err != io.EOF { - t.Fatal("Expected an EOF but was", err) - } + ctx := InteropCtx(t) + err := testTLSMaxVersion(ctx, tls.VersionTLS11); + matchError(t, err, "EOF", "server selected unsupported protocol") } func TestClientPrefaceWithStreamId(t *testing.T) { - if err := testClientPrefaceWithStreamId(*serverSpec); err != io.EOF { - t.Fatal("Expected an EOF but was", err) - } + ctx := InteropCtx(t) + err := testClientPrefaceWithStreamId(ctx) + matchError(t, err, "EOF") +} + +func matchError(t *testing.T, err error, matches ... string) { + if err == nil { + t.Fatal("Expected an error") + } + for _, s := range matches { + if strings.Contains(err.Error(), s) { + return + } + } + t.Fatalf("Error %v not in %+v", err, matches) } func TestMain(m *testing.M) { diff --git a/tools/jenkins/grpc_interop_http2/Dockerfile b/tools/jenkins/grpc_interop_http2/Dockerfile new file mode 100644 index 00000000000..bb60f09f247 --- /dev/null +++ b/tools/jenkins/grpc_interop_http2/Dockerfile @@ -0,0 +1,36 @@ +# 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. + +FROM golang:1.4 + +# Using login shell removes Go from path, so we add it. +RUN ln -s /usr/src/go/bin/go /usr/local/bin + +# Define the default command. +CMD ["bash"] diff --git a/tools/jenkins/grpc_interop_http2/build_interop.sh b/tools/jenkins/grpc_interop_http2/build_interop.sh new file mode 100755 index 00000000000..46ddaf929a8 --- /dev/null +++ b/tools/jenkins/grpc_interop_http2/build_interop.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# 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. +# +# Builds http2 interop client in a base image. +set -e + +mkdir -p /var/local/git +git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc + +# copy service account keys if available +cp -r /var/local/jenkins/service_account $HOME || true + +# compile the tests +(cd /var/local/git/grpc/tools/http2_interop && go test -c) + diff --git a/tools/run_tests/report_utils.py b/tools/run_tests/report_utils.py index 57a93d0da05..f413d1572e0 100644 --- a/tools/run_tests/report_utils.py +++ b/tools/run_tests/report_utils.py @@ -108,10 +108,12 @@ def fill_one_test_result(shortname, resultset, html_str): def render_html_report(client_langs, server_langs, test_cases, auth_test_cases, - resultset, num_failures, cloud_to_prod): + http2_cases, resultset, num_failures, cloud_to_prod, + http2_interop): """Generate html report.""" sorted_test_cases = sorted(test_cases) sorted_auth_test_cases = sorted(auth_test_cases) + sorted_http2_cases = sorted(http2_cases) sorted_client_langs = sorted(client_langs) sorted_server_langs = sorted(server_langs) html_str = ('\n' @@ -170,6 +172,30 @@ def render_html_report(client_langs, server_langs, test_cases, auth_test_cases, html_str = fill_one_test_result(shortname, resultset, html_str) html_str = '%s\n' % html_str html_str = '%s\n' % html_str + if http2_interop: + # Each column header is the server language. + html_str = ('%s

HTTP/2 Interop

\n' + '\n' + '\n' + '\n') % html_str + for server_lang in sorted_server_langs: + html_str = '%s\n' % html_str + for test_case in sorted_http2_cases: + html_str = '%s\n' % (html_str, test_case) + # Fill up the cells with test result. + for server_lang in sorted_server_langs: + shortname = 'cloud_to_cloud:%s:%s_server:%s' % ( + "http2", server_lang, test_case) + html_str = fill_one_test_result(shortname, resultset, html_str) + if cloud_to_prod: + shortname = 'cloud_to_prod:%s:%s' % ("http2", test_case) + html_str = fill_one_test_result(shortname, resultset, html_str) + html_str = '%s\n' % html_str + html_str = '%s
Servers ►
' + 'Test Cases ▼
%s\n' % (html_str, server_lang) + if cloud_to_prod: + html_str = '%s%s\n' % (html_str, "prod") + html_str = '%s
%s
\n' % html_str html_str = ('%s\n' '

Q&RgDabwX&%Th0;iPI2LU~9S-oZ`e&p(5VQe3 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�&1#nKhCFMSqDR5f4K4F_d&68QD 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