From d4d0a30c6f569e031d0bfaa31f0410b855f362a3 Mon Sep 17 00:00:00 2001 From: Vijay Pai Date: Thu, 25 Jan 2018 13:24:03 -0800 Subject: Privatize useful.h and avl.h --- .../ext/filters/client_channel/client_channel.cc | 1 - .../lb_policy/grpclb/grpclb_client_stats.cc | 1 - .../dns/c_ares/grpc_ares_ev_driver_posix.cc | 1 - .../resolver/dns/c_ares/grpc_ares_wrapper.cc | 1 - .../ext/filters/client_channel/retry_throttle.cc | 3 +- src/core/ext/filters/client_channel/subchannel.cc | 1 - .../ext/filters/client_channel/subchannel_index.cc | 2 +- src/core/ext/transport/chttp2/alpn/alpn.cc | 3 +- .../ext/transport/chttp2/server/chttp2_server.cc | 1 - .../transport/chttp2/transport/chttp2_transport.cc | 1 - .../ext/transport/chttp2/transport/flow_control.cc | 1 - .../ext/transport/chttp2/transport/flow_control.h | 2 +- .../ext/transport/chttp2/transport/frame_data.cc | 1 - .../transport/chttp2/transport/frame_settings.cc | 1 - .../transport/chttp2/transport/hpack_encoder.cc | 1 - .../ext/transport/chttp2/transport/hpack_parser.cc | 1 - .../transport/chttp2/transport/http2_settings.cc | 2 +- .../ext/transport/chttp2/transport/stream_map.cc | 1 - .../transport/cronet/transport/cronet_transport.cc | 1 - src/core/lib/backoff/backoff.cc | 2 +- src/core/lib/channel/channel_args.cc | 2 +- src/core/lib/compression/compression.cc | 2 +- src/core/lib/compression/compression_internal.cc | 2 +- src/core/lib/compression/compression_ruby.cc | 1 - src/core/lib/debug/stats.cc | 2 +- src/core/lib/debug/stats_data.cc | 3 +- src/core/lib/gpr/arena.cc | 1 - src/core/lib/gpr/atm.cc | 3 +- src/core/lib/gpr/avl.cc | 5 +- src/core/lib/gpr/avl.h | 92 ++++++++++++++++++++++ src/core/lib/gpr/cpu_posix.cc | 3 +- src/core/lib/gpr/env_linux.cc | 2 +- src/core/lib/gpr/env_windows.cc | 8 +- src/core/lib/gpr/fork.cc | 2 +- src/core/lib/gpr/string.cc | 3 +- src/core/lib/gpr/thd_posix.cc | 2 +- src/core/lib/gpr/useful.h | 65 +++++++++++++++ src/core/lib/http/format_request.cc | 1 - src/core/lib/http/httpcli.cc | 1 - src/core/lib/http/parser.cc | 3 +- src/core/lib/iomgr/error.cc | 2 +- src/core/lib/iomgr/ev_epoll1_linux.cc | 2 +- src/core/lib/iomgr/ev_epollex_linux.cc | 2 +- src/core/lib/iomgr/ev_epollsig_linux.cc | 2 +- src/core/lib/iomgr/ev_poll_posix.cc | 2 +- src/core/lib/iomgr/ev_posix.cc | 2 +- src/core/lib/iomgr/executor.cc | 2 +- src/core/lib/iomgr/fork_posix.cc | 1 - src/core/lib/iomgr/iocp_windows.cc | 1 - src/core/lib/iomgr/iomgr.cc | 2 +- src/core/lib/iomgr/resolve_address_posix.cc | 3 +- src/core/lib/iomgr/resolve_address_uv.cc | 2 +- src/core/lib/iomgr/resource_quota.cc | 2 +- src/core/lib/iomgr/socket_factory_posix.cc | 2 +- src/core/lib/iomgr/socket_mutator.cc | 6 +- src/core/lib/iomgr/tcp_client_windows.cc | 1 - src/core/lib/iomgr/tcp_posix.cc | 2 +- src/core/lib/iomgr/tcp_server_posix.cc | 1 - src/core/lib/iomgr/tcp_windows.cc | 2 +- src/core/lib/iomgr/timer_generic.cc | 3 +- src/core/lib/iomgr/timer_heap.cc | 3 +- src/core/lib/iomgr/unix_sockets_posix.cc | 3 +- src/core/lib/iomgr/wakeup_fd_cv.cc | 3 +- .../lib/security/credentials/jwt/jwt_verifier.cc | 1 - src/core/lib/slice/b64.cc | 2 +- src/core/lib/slice/slice_buffer.cc | 2 +- src/core/lib/surface/call.cc | 2 +- src/core/lib/surface/channel_init.cc | 1 - src/core/lib/surface/server.cc | 1 - src/core/lib/transport/bdp_estimator.cc | 2 +- src/core/lib/transport/metadata.h | 2 +- src/core/lib/transport/pid_controller.cc | 3 +- src/core/lib/transport/transport_op_string.cc | 1 - src/core/tsi/fake_transport_security.cc | 3 +- src/core/tsi/ssl_transport_security.cc | 1 - src/cpp/client/channel_cc.cc | 1 - src/cpp/server/server_builder.cc | 2 +- src/ruby/ext/grpc/rb_grpc_imports.generated.c | 16 ---- src/ruby/ext/grpc/rb_grpc_imports.generated.h | 25 ------ 79 files changed, 225 insertions(+), 122 deletions(-) create mode 100644 src/core/lib/gpr/avl.h create mode 100644 src/core/lib/gpr/useful.h (limited to 'src') diff --git a/src/core/ext/filters/client_channel/client_channel.cc b/src/core/ext/filters/client_channel/client_channel.cc index 49522ef3e4..bca4ecbc25 100644 --- a/src/core/ext/filters/client_channel/client_channel.cc +++ b/src/core/ext/filters/client_channel/client_channel.cc @@ -29,7 +29,6 @@ #include #include #include -#include #include "src/core/ext/filters/client_channel/backup_poller.h" #include "src/core/ext/filters/client_channel/http_connect_handshaker.h" diff --git a/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc b/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc index e19a6a71aa..45c9f17301 100644 --- a/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +++ b/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc @@ -24,7 +24,6 @@ #include #include #include -#include #include "src/core/lib/channel/channel_args.h" diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc b/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc index 2eb2a9b59d..2bf86f82b0 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +++ b/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc @@ -28,7 +28,6 @@ #include #include #include -#include #include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/iomgr/ev_posix.h" diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc b/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc index e05f9d2f2f..09dbe22a86 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +++ b/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc @@ -32,7 +32,6 @@ #include #include #include -#include #include "src/core/ext/filters/client_channel/parse_address.h" #include "src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h" diff --git a/src/core/ext/filters/client_channel/retry_throttle.cc b/src/core/ext/filters/client_channel/retry_throttle.cc index 867d775151..20d7be1c21 100644 --- a/src/core/ext/filters/client_channel/retry_throttle.cc +++ b/src/core/ext/filters/client_channel/retry_throttle.cc @@ -23,10 +23,11 @@ #include #include -#include #include #include +#include "src/core/lib/gpr/avl.h" + // // server_retry_throttle_data // diff --git a/src/core/ext/filters/client_channel/subchannel.cc b/src/core/ext/filters/client_channel/subchannel.cc index dc1beee165..3d4771e9bf 100644 --- a/src/core/ext/filters/client_channel/subchannel.cc +++ b/src/core/ext/filters/client_channel/subchannel.cc @@ -25,7 +25,6 @@ #include #include -#include #include #include "src/core/ext/filters/client_channel/client_channel.h" diff --git a/src/core/ext/filters/client_channel/subchannel_index.cc b/src/core/ext/filters/client_channel/subchannel_index.cc index 052b047f43..2d063973ca 100644 --- a/src/core/ext/filters/client_channel/subchannel_index.cc +++ b/src/core/ext/filters/client_channel/subchannel_index.cc @@ -22,11 +22,11 @@ #include #include -#include #include #include #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gpr/avl.h" // a map of subchannel_key --> subchannel, used for detecting connections // to the same destination in order to share them diff --git a/src/core/ext/transport/chttp2/alpn/alpn.cc b/src/core/ext/transport/chttp2/alpn/alpn.cc index 89892457d6..5c4bfd03fa 100644 --- a/src/core/ext/transport/chttp2/alpn/alpn.cc +++ b/src/core/ext/transport/chttp2/alpn/alpn.cc @@ -18,7 +18,8 @@ #include "src/core/ext/transport/chttp2/alpn/alpn.h" #include -#include + +#include "src/core/lib/gpr/useful.h" /* in order of preference */ static const char* const supported_versions[] = {"grpc-exp", "h2"}; diff --git a/src/core/ext/transport/chttp2/server/chttp2_server.cc b/src/core/ext/transport/chttp2/server/chttp2_server.cc index 5669fa4090..bab46f8f30 100644 --- a/src/core/ext/transport/chttp2/server/chttp2_server.cc +++ b/src/core/ext/transport/chttp2/server/chttp2_server.cc @@ -28,7 +28,6 @@ #include #include #include -#include #include "src/core/ext/filters/http/server/http_server_filter.h" #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc index fe05e43960..bc1762daad 100644 --- a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc @@ -30,7 +30,6 @@ #include #include #include -#include #include "src/core/ext/transport/chttp2/transport/frame_data.h" #include "src/core/ext/transport/chttp2/transport/internal.h" diff --git a/src/core/ext/transport/chttp2/transport/flow_control.cc b/src/core/ext/transport/chttp2/transport/flow_control.cc index 581241d392..311fbd60b1 100644 --- a/src/core/ext/transport/chttp2/transport/flow_control.cc +++ b/src/core/ext/transport/chttp2/transport/flow_control.cc @@ -26,7 +26,6 @@ #include #include #include -#include #include "src/core/ext/transport/chttp2/transport/internal.h" #include "src/core/lib/gpr/string.h" diff --git a/src/core/ext/transport/chttp2/transport/flow_control.h b/src/core/ext/transport/chttp2/transport/flow_control.h index 2ee1345260..19c189393f 100644 --- a/src/core/ext/transport/chttp2/transport/flow_control.h +++ b/src/core/ext/transport/chttp2/transport/flow_control.h @@ -22,8 +22,8 @@ #include #include -#include #include "src/core/ext/transport/chttp2/transport/http2_settings.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/gprpp/abstract.h" #include "src/core/lib/gprpp/manual_constructor.h" #include "src/core/lib/transport/bdp_estimator.h" diff --git a/src/core/ext/transport/chttp2/transport/frame_data.cc b/src/core/ext/transport/chttp2/transport/frame_data.cc index 043b80a3cb..5ea495f2db 100644 --- a/src/core/ext/transport/chttp2/transport/frame_data.cc +++ b/src/core/ext/transport/chttp2/transport/frame_data.cc @@ -23,7 +23,6 @@ #include #include #include -#include #include "src/core/ext/transport/chttp2/transport/internal.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/slice/slice_internal.h" diff --git a/src/core/ext/transport/chttp2/transport/frame_settings.cc b/src/core/ext/transport/chttp2/transport/frame_settings.cc index 0d245f4ba1..36d6b48f02 100644 --- a/src/core/ext/transport/chttp2/transport/frame_settings.cc +++ b/src/core/ext/transport/chttp2/transport/frame_settings.cc @@ -24,7 +24,6 @@ #include #include #include -#include #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h" #include "src/core/ext/transport/chttp2/transport/frame.h" diff --git a/src/core/ext/transport/chttp2/transport/hpack_encoder.cc b/src/core/ext/transport/chttp2/transport/hpack_encoder.cc index 3a5692a694..ba6b43b1dd 100644 --- a/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +++ b/src/core/ext/transport/chttp2/transport/hpack_encoder.cc @@ -28,7 +28,6 @@ #include #include -#include #include "src/core/ext/transport/chttp2/transport/bin_encoder.h" #include "src/core/ext/transport/chttp2/transport/hpack_table.h" diff --git a/src/core/ext/transport/chttp2/transport/hpack_parser.cc b/src/core/ext/transport/chttp2/transport/hpack_parser.cc index 8d1c57a9cb..66cc2884e1 100644 --- a/src/core/ext/transport/chttp2/transport/hpack_parser.cc +++ b/src/core/ext/transport/chttp2/transport/hpack_parser.cc @@ -27,7 +27,6 @@ #include #include #include -#include #include "src/core/ext/transport/chttp2/transport/bin_encoder.h" #include "src/core/lib/debug/stats.h" diff --git a/src/core/ext/transport/chttp2/transport/http2_settings.cc b/src/core/ext/transport/chttp2/transport/http2_settings.cc index 0aab864400..4248496f48 100644 --- a/src/core/ext/transport/chttp2/transport/http2_settings.cc +++ b/src/core/ext/transport/chttp2/transport/http2_settings.cc @@ -20,7 +20,7 @@ #include "src/core/ext/transport/chttp2/transport/http2_settings.h" -#include +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/transport/http2_errors.h" const uint16_t grpc_setting_id_to_wire_id[] = {1, 2, 3, 4, 5, 6, 65027}; diff --git a/src/core/ext/transport/chttp2/transport/stream_map.cc b/src/core/ext/transport/chttp2/transport/stream_map.cc index e4f08f5a6c..d59ff405f5 100644 --- a/src/core/ext/transport/chttp2/transport/stream_map.cc +++ b/src/core/ext/transport/chttp2/transport/stream_map.cc @@ -22,7 +22,6 @@ #include #include -#include void grpc_chttp2_stream_map_init(grpc_chttp2_stream_map* map, size_t initial_capacity) { diff --git a/src/core/ext/transport/cronet/transport/cronet_transport.cc b/src/core/ext/transport/cronet/transport/cronet_transport.cc index 5b1c6ab3f9..7735c3de6e 100644 --- a/src/core/ext/transport/cronet/transport/cronet_transport.cc +++ b/src/core/ext/transport/cronet/transport/cronet_transport.cc @@ -24,7 +24,6 @@ #include #include #include -#include #include "src/core/ext/transport/chttp2/transport/incoming_metadata.h" #include "src/core/ext/transport/cronet/transport/cronet_transport.h" diff --git a/src/core/lib/backoff/backoff.cc b/src/core/lib/backoff/backoff.cc index d561fc7460..9275fc2894 100644 --- a/src/core/lib/backoff/backoff.cc +++ b/src/core/lib/backoff/backoff.cc @@ -20,7 +20,7 @@ #include -#include +#include "src/core/lib/gpr/useful.h" namespace grpc_core { diff --git a/src/core/lib/channel/channel_args.cc b/src/core/lib/channel/channel_args.cc index 101a6fffbc..5cd158aff2 100644 --- a/src/core/lib/channel/channel_args.cc +++ b/src/core/lib/channel/channel_args.cc @@ -26,10 +26,10 @@ #include #include #include -#include #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" static grpc_arg copy_arg(const grpc_arg* src) { grpc_arg dst; diff --git a/src/core/lib/compression/compression.cc b/src/core/lib/compression/compression.cc index 99e6014b23..be7febf380 100644 --- a/src/core/lib/compression/compression.cc +++ b/src/core/lib/compression/compression.cc @@ -20,10 +20,10 @@ #include #include -#include #include "src/core/lib/compression/algorithm_metadata.h" #include "src/core/lib/compression/compression_internal.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/surface/api_trace.h" #include "src/core/lib/transport/static_metadata.h" diff --git a/src/core/lib/compression/compression_internal.cc b/src/core/lib/compression/compression_internal.cc index 263cdf06eb..0583705dc1 100644 --- a/src/core/lib/compression/compression_internal.cc +++ b/src/core/lib/compression/compression_internal.cc @@ -20,10 +20,10 @@ #include #include -#include #include "src/core/lib/compression/algorithm_metadata.h" #include "src/core/lib/compression/compression_internal.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/surface/api_trace.h" #include "src/core/lib/transport/static_metadata.h" diff --git a/src/core/lib/compression/compression_ruby.cc b/src/core/lib/compression/compression_ruby.cc index 293062f5ed..4e2d01aab1 100644 --- a/src/core/lib/compression/compression_ruby.cc +++ b/src/core/lib/compression/compression_ruby.cc @@ -17,7 +17,6 @@ */ #include -#include #include "src/core/lib/surface/api_trace.h" #include "src/core/lib/transport/static_metadata.h" diff --git a/src/core/lib/debug/stats.cc b/src/core/lib/debug/stats.cc index 465c76114d..40355c2d45 100644 --- a/src/core/lib/debug/stats.cc +++ b/src/core/lib/debug/stats.cc @@ -23,9 +23,9 @@ #include #include -#include #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" grpc_stats_data* grpc_stats_per_cpu_storage = nullptr; static size_t g_num_cores; diff --git a/src/core/lib/debug/stats_data.cc b/src/core/lib/debug/stats_data.cc index 996ed3de9a..e2d3a6d073 100644 --- a/src/core/lib/debug/stats_data.cc +++ b/src/core/lib/debug/stats_data.cc @@ -19,9 +19,10 @@ */ #include "src/core/lib/debug/stats_data.h" -#include #include "src/core/lib/debug/stats.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/exec_ctx.h" + const char* grpc_stats_counter_name[GRPC_STATS_COUNTER_COUNT] = { "client_calls_created", "server_calls_created", diff --git a/src/core/lib/gpr/arena.cc b/src/core/lib/gpr/arena.cc index 687592a140..5a8d7ff6ec 100644 --- a/src/core/lib/gpr/arena.cc +++ b/src/core/lib/gpr/arena.cc @@ -23,7 +23,6 @@ #include #include #include -#include // TODO(roth): We currently assume that all callers need alignment of 16 // bytes, which may be wrong in some cases. As part of converting the diff --git a/src/core/lib/gpr/atm.cc b/src/core/lib/gpr/atm.cc index 15bfe52d64..3d0b430348 100644 --- a/src/core/lib/gpr/atm.cc +++ b/src/core/lib/gpr/atm.cc @@ -17,7 +17,8 @@ */ #include -#include + +#include "src/core/lib/gpr/useful.h" gpr_atm gpr_atm_no_barrier_clamped_add(gpr_atm* value, gpr_atm delta, gpr_atm min, gpr_atm max) { diff --git a/src/core/lib/gpr/avl.cc b/src/core/lib/gpr/avl.cc index 0b67a21f2f..9d3470fe0a 100644 --- a/src/core/lib/gpr/avl.cc +++ b/src/core/lib/gpr/avl.cc @@ -16,14 +16,15 @@ * */ -#include +#include "src/core/lib/gpr/avl.h" #include #include #include #include -#include + +#include "src/core/lib/gpr/useful.h" gpr_avl gpr_avl_create(const gpr_avl_vtable* vtable) { gpr_avl out; diff --git a/src/core/lib/gpr/avl.h b/src/core/lib/gpr/avl.h new file mode 100644 index 0000000000..f3ab202bb7 --- /dev/null +++ b/src/core/lib/gpr/avl.h @@ -0,0 +1,92 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef GRPC_CORE_LIB_GPR_AVL_H +#define GRPC_CORE_LIB_GPR_AVL_H + +#include + +/** internal node of an AVL tree */ +typedef struct gpr_avl_node { + gpr_refcount refs; + void* key; + void* value; + struct gpr_avl_node* left; + struct gpr_avl_node* right; + long height; +} gpr_avl_node; + +/** vtable for the AVL tree + * The optional user_data is propagated from the top level gpr_avl_XXX API. + * From the same API call, multiple vtable functions may be called multiple + * times. + */ +typedef struct gpr_avl_vtable { + /** destroy a key */ + void (*destroy_key)(void* key, void* user_data); + /** copy a key, returning new value */ + void* (*copy_key)(void* key, void* user_data); + /** compare key1, key2; return <0 if key1 < key2, + >0 if key1 > key2, 0 if key1 == key2 */ + long (*compare_keys)(void* key1, void* key2, void* user_data); + /** destroy a value */ + void (*destroy_value)(void* value, void* user_data); + /** copy a value */ + void* (*copy_value)(void* value, void* user_data); +} gpr_avl_vtable; + +/** "pointer" to an AVL tree - this is a reference + counted object - use gpr_avl_ref to add a reference, + gpr_avl_unref when done with a reference */ +typedef struct gpr_avl { + const gpr_avl_vtable* vtable; + gpr_avl_node* root; +} gpr_avl; + +/** Create an immutable AVL tree. */ +gpr_avl gpr_avl_create(const gpr_avl_vtable* vtable); +/** Add a reference to an existing tree - returns + the tree as a convenience. The optional user_data will be passed to vtable + functions. */ +gpr_avl gpr_avl_ref(gpr_avl avl, void* user_data); +/** Remove a reference to a tree - destroying it if there + are no references left. The optional user_data will be passed to vtable + functions. */ +void gpr_avl_unref(gpr_avl avl, void* user_data); +/** Return a new tree with (key, value) added to avl. + implicitly unrefs avl to allow easy chaining. + if key exists in avl, the new tree's key entry updated + (i.e. a duplicate is not created). The optional user_data will be passed to + vtable functions. */ +gpr_avl gpr_avl_add(gpr_avl avl, void* key, void* value, void* user_data); +/** Return a new tree with key deleted + implicitly unrefs avl to allow easy chaining. The optional user_data will be + passed to vtable functions. */ +gpr_avl gpr_avl_remove(gpr_avl avl, void* key, void* user_data); +/** Lookup key, and return the associated value. + Does not mutate avl. + Returns NULL if key is not found. The optional user_data will be passed to + vtable functions.*/ +void* gpr_avl_get(gpr_avl avl, void* key, void* user_data); +/** Return 1 if avl contains key, 0 otherwise; if it has the key, sets *value to + its value. The optional user_data will be passed to vtable functions. */ +int gpr_avl_maybe_get(gpr_avl avl, void* key, void** value, void* user_data); +/** Return 1 if avl is empty, 0 otherwise */ +int gpr_avl_is_empty(gpr_avl avl); + +#endif /* GRPC_CORE_LIB_GPR_AVL_H */ diff --git a/src/core/lib/gpr/cpu_posix.cc b/src/core/lib/gpr/cpu_posix.cc index bca14a0c12..7a77f7ab64 100644 --- a/src/core/lib/gpr/cpu_posix.cc +++ b/src/core/lib/gpr/cpu_posix.cc @@ -29,7 +29,8 @@ #include #include #include -#include + +#include "src/core/lib/gpr/useful.h" static long ncpus = 0; diff --git a/src/core/lib/gpr/env_linux.cc b/src/core/lib/gpr/env_linux.cc index 17902c3d0b..fadc42f22f 100644 --- a/src/core/lib/gpr/env_linux.cc +++ b/src/core/lib/gpr/env_linux.cc @@ -34,9 +34,9 @@ #include #include -#include #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" const char* gpr_getenv_silent(const char* name, char** dst) { const char* insecure_func_used = nullptr; diff --git a/src/core/lib/gpr/env_windows.cc b/src/core/lib/gpr/env_windows.cc index 9ca1e02d03..cf8ed60d8f 100644 --- a/src/core/lib/gpr/env_windows.cc +++ b/src/core/lib/gpr/env_windows.cc @@ -22,14 +22,14 @@ #include -#include "src/core/lib/gpr/env.h" -#include "src/core/lib/gpr/string.h" -#include "src/core/lib/gpr/string_windows.h" - #include #include #include +#include "src/core/lib/gpr/env.h" +#include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/string_windows.h" + const char* gpr_getenv_silent(const char* name, char** dst) { *dst = gpr_getenv(name); return NULL; diff --git a/src/core/lib/gpr/fork.cc b/src/core/lib/gpr/fork.cc index 92023f4350..4651d22595 100644 --- a/src/core/lib/gpr/fork.cc +++ b/src/core/lib/gpr/fork.cc @@ -21,9 +21,9 @@ #include #include -#include #include "src/core/lib/gpr/env.h" +#include "src/core/lib/gpr/useful.h" /* * NOTE: FORKING IS NOT GENERALLY SUPPORTED, THIS IS ONLY INTENDED TO WORK diff --git a/src/core/lib/gpr/string.cc b/src/core/lib/gpr/string.cc index 919d957d1b..6b360e4013 100644 --- a/src/core/lib/gpr/string.cc +++ b/src/core/lib/gpr/string.cc @@ -28,7 +28,8 @@ #include #include #include -#include + +#include "src/core/lib/gpr/useful.h" char* gpr_strdup(const char* src) { char* dst; diff --git a/src/core/lib/gpr/thd_posix.cc b/src/core/lib/gpr/thd_posix.cc index cfff0df6de..683fd4575e 100644 --- a/src/core/lib/gpr/thd_posix.cc +++ b/src/core/lib/gpr/thd_posix.cc @@ -26,12 +26,12 @@ #include #include #include -#include #include #include #include #include "src/core/lib/gpr/fork.h" +#include "src/core/lib/gpr/useful.h" static gpr_mu g_mu; static gpr_cv g_cv; diff --git a/src/core/lib/gpr/useful.h b/src/core/lib/gpr/useful.h new file mode 100644 index 0000000000..a4e73b9a61 --- /dev/null +++ b/src/core/lib/gpr/useful.h @@ -0,0 +1,65 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef GRPC_CORE_LIB_GPR_USEFUL_H +#define GRPC_CORE_LIB_GPR_USEFUL_H + +/** useful macros that don't belong anywhere else */ + +#define GPR_MIN(a, b) ((a) < (b) ? (a) : (b)) +#define GPR_MAX(a, b) ((a) > (b) ? (a) : (b)) +#define GPR_CLAMP(a, min, max) ((a) < (min) ? (min) : (a) > (max) ? (max) : (a)) +/** rotl, rotr assume x is unsigned */ +#define GPR_ROTL(x, n) (((x) << (n)) | ((x) >> (sizeof(x) * 8 - (n)))) +#define GPR_ROTR(x, n) (((x) >> (n)) | ((x) << (sizeof(x) * 8 - (n)))) + +#define GPR_ARRAY_SIZE(array) (sizeof(array) / sizeof(*(array))) + +#define GPR_SWAP(type, a, b) \ + do { \ + type x = a; \ + a = b; \ + b = x; \ + } while (0) + +/** Set the \a n-th bit of \a i (a mutable pointer). */ +#define GPR_BITSET(i, n) ((*(i)) |= (1u << (n))) + +/** Clear the \a n-th bit of \a i (a mutable pointer). */ +#define GPR_BITCLEAR(i, n) ((*(i)) &= ~(1u << (n))) + +/** Get the \a n-th bit of \a i */ +#define GPR_BITGET(i, n) (((i) & (1u << (n))) != 0) + +#define GPR_INTERNAL_HEXDIGIT_BITCOUNT(x) \ + ((x) - (((x) >> 1) & 0x77777777) - (((x) >> 2) & 0x33333333) - \ + (((x) >> 3) & 0x11111111)) + +/** Returns number of bits set in bitset \a i */ +#define GPR_BITCOUNT(i) \ + (((GPR_INTERNAL_HEXDIGIT_BITCOUNT(i) + \ + (GPR_INTERNAL_HEXDIGIT_BITCOUNT(i) >> 4)) & \ + 0x0f0f0f0f) % \ + 255) + +#define GPR_ICMP(a, b) ((a) < (b) ? -1 : ((a) > (b) ? 1 : 0)) + +#define GPR_HASH_POINTER(x, range) \ + ((((size_t)x) >> 4) ^ (((size_t)x) >> 9) ^ (((size_t)x) >> 14)) % (range) + +#endif /* GRPC_CORE_LIB_GPR_USEFUL_H */ diff --git a/src/core/lib/http/format_request.cc b/src/core/lib/http/format_request.cc index 473fa71790..884a70e550 100644 --- a/src/core/lib/http/format_request.cc +++ b/src/core/lib/http/format_request.cc @@ -25,7 +25,6 @@ #include #include #include -#include #include "src/core/lib/gpr/string.h" static void fill_common_header(const grpc_httpcli_request* request, diff --git a/src/core/lib/http/httpcli.cc b/src/core/lib/http/httpcli.cc index c43c92b57d..9775ed08ad 100644 --- a/src/core/lib/http/httpcli.cc +++ b/src/core/lib/http/httpcli.cc @@ -23,7 +23,6 @@ #include #include #include -#include #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gpr/string.h" diff --git a/src/core/lib/http/parser.cc b/src/core/lib/http/parser.cc index fb4eb234a7..ee6941fde3 100644 --- a/src/core/lib/http/parser.cc +++ b/src/core/lib/http/parser.cc @@ -23,7 +23,8 @@ #include #include -#include + +#include "src/core/lib/gpr/useful.h" grpc_core::TraceFlag grpc_http1_trace(false, "http1"); diff --git a/src/core/lib/iomgr/error.cc b/src/core/lib/iomgr/error.cc index 0e27ad427c..d5b5013269 100644 --- a/src/core/lib/iomgr/error.cc +++ b/src/core/lib/iomgr/error.cc @@ -26,13 +26,13 @@ #include #include #include -#include #ifdef GPR_WINDOWS #include #endif #include "src/core/lib/debug/trace.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/error_internal.h" #include "src/core/lib/profiling/timers.h" #include "src/core/lib/slice/slice_internal.h" diff --git a/src/core/lib/iomgr/ev_epoll1_linux.cc b/src/core/lib/iomgr/ev_epoll1_linux.cc index 1ef70d2f80..512905d683 100644 --- a/src/core/lib/iomgr/ev_epoll1_linux.cc +++ b/src/core/lib/iomgr/ev_epoll1_linux.cc @@ -40,10 +40,10 @@ #include #include #include -#include #include "src/core/lib/debug/stats.h" #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/gprpp/manual_constructor.h" #include "src/core/lib/iomgr/block_annotate.h" #include "src/core/lib/iomgr/ev_posix.h" diff --git a/src/core/lib/iomgr/ev_epollex_linux.cc b/src/core/lib/iomgr/ev_epollex_linux.cc index 178ebd8977..aaace58dd5 100644 --- a/src/core/lib/iomgr/ev_epollex_linux.cc +++ b/src/core/lib/iomgr/ev_epollex_linux.cc @@ -38,10 +38,10 @@ #include #include #include -#include #include "src/core/lib/debug/stats.h" #include "src/core/lib/gpr/spinlock.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/gprpp/manual_constructor.h" #include "src/core/lib/iomgr/block_annotate.h" #include "src/core/lib/iomgr/iomgr_internal.h" diff --git a/src/core/lib/iomgr/ev_epollsig_linux.cc b/src/core/lib/iomgr/ev_epollsig_linux.cc index c8954894ec..b174615c83 100644 --- a/src/core/lib/iomgr/ev_epollsig_linux.cc +++ b/src/core/lib/iomgr/ev_epollsig_linux.cc @@ -40,9 +40,9 @@ #include #include #include -#include #include "src/core/lib/debug/stats.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/gprpp/manual_constructor.h" #include "src/core/lib/iomgr/block_annotate.h" #include "src/core/lib/iomgr/ev_posix.h" diff --git a/src/core/lib/iomgr/ev_poll_posix.cc b/src/core/lib/iomgr/ev_poll_posix.cc index ad92a93beb..84be1804a2 100644 --- a/src/core/lib/iomgr/ev_poll_posix.cc +++ b/src/core/lib/iomgr/ev_poll_posix.cc @@ -35,10 +35,10 @@ #include #include #include -#include #include "src/core/lib/debug/stats.h" #include "src/core/lib/gpr/murmur_hash.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/block_annotate.h" #include "src/core/lib/iomgr/iomgr_internal.h" #include "src/core/lib/iomgr/wakeup_fd_cv.h" diff --git a/src/core/lib/iomgr/ev_posix.cc b/src/core/lib/iomgr/ev_posix.cc index 8100bece8f..af5dfe5bf3 100644 --- a/src/core/lib/iomgr/ev_posix.cc +++ b/src/core/lib/iomgr/ev_posix.cc @@ -27,10 +27,10 @@ #include #include #include -#include #include "src/core/lib/debug/trace.h" #include "src/core/lib/gpr/env.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/ev_epoll1_linux.h" #include "src/core/lib/iomgr/ev_epollex_linux.h" #include "src/core/lib/iomgr/ev_epollsig_linux.h" diff --git a/src/core/lib/iomgr/executor.cc b/src/core/lib/iomgr/executor.cc index 835dc9d0f7..ca67c043c1 100644 --- a/src/core/lib/iomgr/executor.cc +++ b/src/core/lib/iomgr/executor.cc @@ -26,10 +26,10 @@ #include #include #include -#include #include "src/core/lib/debug/stats.h" #include "src/core/lib/gpr/spinlock.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/exec_ctx.h" #define MAX_DEPTH 2 diff --git a/src/core/lib/iomgr/fork_posix.cc b/src/core/lib/iomgr/fork_posix.cc index 9bfa79219a..c581dae1ae 100644 --- a/src/core/lib/iomgr/fork_posix.cc +++ b/src/core/lib/iomgr/fork_posix.cc @@ -25,7 +25,6 @@ #include #include #include -#include #include "src/core/lib/gpr/env.h" #include "src/core/lib/gpr/fork.h" diff --git a/src/core/lib/iomgr/iocp_windows.cc b/src/core/lib/iomgr/iocp_windows.cc index 0b6e6823b3..d730ce4624 100644 --- a/src/core/lib/iomgr/iocp_windows.cc +++ b/src/core/lib/iomgr/iocp_windows.cc @@ -27,7 +27,6 @@ #include #include #include -#include #include "src/core/lib/debug/stats.h" #include "src/core/lib/iomgr/iocp_windows.h" diff --git a/src/core/lib/iomgr/iomgr.cc b/src/core/lib/iomgr/iomgr.cc index 4cd0a4f1de..9e407a29a8 100644 --- a/src/core/lib/iomgr/iomgr.cc +++ b/src/core/lib/iomgr/iomgr.cc @@ -29,10 +29,10 @@ #include #include #include -#include #include "src/core/lib/gpr/env.h" #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/executor.h" #include "src/core/lib/iomgr/iomgr_internal.h" diff --git a/src/core/lib/iomgr/resolve_address_posix.cc b/src/core/lib/iomgr/resolve_address_posix.cc index 176caee490..131a8de30a 100644 --- a/src/core/lib/iomgr/resolve_address_posix.cc +++ b/src/core/lib/iomgr/resolve_address_posix.cc @@ -32,8 +32,9 @@ #include #include #include -#include + #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/block_annotate.h" #include "src/core/lib/iomgr/executor.h" #include "src/core/lib/iomgr/iomgr_internal.h" diff --git a/src/core/lib/iomgr/resolve_address_uv.cc b/src/core/lib/iomgr/resolve_address_uv.cc index 3eab04f3de..886c06cdb7 100644 --- a/src/core/lib/iomgr/resolve_address_uv.cc +++ b/src/core/lib/iomgr/resolve_address_uv.cc @@ -25,8 +25,8 @@ #include #include #include -#include +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/closure.h" #include "src/core/lib/iomgr/error.h" #include "src/core/lib/iomgr/exec_ctx.h" diff --git a/src/core/lib/iomgr/resource_quota.cc b/src/core/lib/iomgr/resource_quota.cc index eaf2f5d1b2..e64d772a7d 100644 --- a/src/core/lib/iomgr/resource_quota.cc +++ b/src/core/lib/iomgr/resource_quota.cc @@ -27,8 +27,8 @@ #include #include #include -#include +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/combiner.h" grpc_core::TraceFlag grpc_resource_quota_trace(false, "resource_quota"); diff --git a/src/core/lib/iomgr/socket_factory_posix.cc b/src/core/lib/iomgr/socket_factory_posix.cc index bc7d0b12f3..1c1b2fb270 100644 --- a/src/core/lib/iomgr/socket_factory_posix.cc +++ b/src/core/lib/iomgr/socket_factory_posix.cc @@ -21,11 +21,11 @@ #ifdef GRPC_POSIX_SOCKET #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/socket_factory_posix.h" #include #include -#include void grpc_socket_factory_init(grpc_socket_factory* factory, const grpc_socket_factory_vtable* vtable) { diff --git a/src/core/lib/iomgr/socket_mutator.cc b/src/core/lib/iomgr/socket_mutator.cc index 9d30e46b6b..8c8f0e56e1 100644 --- a/src/core/lib/iomgr/socket_mutator.cc +++ b/src/core/lib/iomgr/socket_mutator.cc @@ -18,11 +18,11 @@ #include "src/core/lib/iomgr/socket_mutator.h" -#include "src/core/lib/channel/channel_args.h" - #include #include -#include + +#include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/gpr/useful.h" void grpc_socket_mutator_init(grpc_socket_mutator* mutator, const grpc_socket_mutator_vtable* vtable) { diff --git a/src/core/lib/iomgr/tcp_client_windows.cc b/src/core/lib/iomgr/tcp_client_windows.cc index 97aa9237dc..d46569d7cc 100644 --- a/src/core/lib/iomgr/tcp_client_windows.cc +++ b/src/core/lib/iomgr/tcp_client_windows.cc @@ -28,7 +28,6 @@ #include #include #include -#include #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/iomgr/iocp_windows.h" diff --git a/src/core/lib/iomgr/tcp_posix.cc b/src/core/lib/iomgr/tcp_posix.cc index 07aed2d1fd..e78e19761a 100644 --- a/src/core/lib/iomgr/tcp_posix.cc +++ b/src/core/lib/iomgr/tcp_posix.cc @@ -37,12 +37,12 @@ #include #include #include -#include #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/debug/stats.h" #include "src/core/lib/debug/trace.h" #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/ev_posix.h" #include "src/core/lib/iomgr/executor.h" #include "src/core/lib/profiling/timers.h" diff --git a/src/core/lib/iomgr/tcp_server_posix.cc b/src/core/lib/iomgr/tcp_server_posix.cc index 2fa00a81d2..89d9160e02 100644 --- a/src/core/lib/iomgr/tcp_server_posix.cc +++ b/src/core/lib/iomgr/tcp_server_posix.cc @@ -42,7 +42,6 @@ #include #include #include -#include #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/gpr/string.h" diff --git a/src/core/lib/iomgr/tcp_windows.cc b/src/core/lib/iomgr/tcp_windows.cc index 6d091b77bb..6777719785 100644 --- a/src/core/lib/iomgr/tcp_windows.cc +++ b/src/core/lib/iomgr/tcp_windows.cc @@ -30,8 +30,8 @@ #include #include #include -#include +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/iocp_windows.h" #include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/iomgr/sockaddr_utils.h" diff --git a/src/core/lib/iomgr/timer_generic.cc b/src/core/lib/iomgr/timer_generic.cc index 177bdec8df..5d0fcdea4f 100644 --- a/src/core/lib/iomgr/timer_generic.cc +++ b/src/core/lib/iomgr/timer_generic.cc @@ -30,9 +30,10 @@ #include #include #include -#include + #include "src/core/lib/debug/trace.h" #include "src/core/lib/gpr/spinlock.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/time_averaged_stats.h" #include "src/core/lib/iomgr/timer_heap.h" diff --git a/src/core/lib/iomgr/timer_heap.cc b/src/core/lib/iomgr/timer_heap.cc index b350452c63..632928fafa 100644 --- a/src/core/lib/iomgr/timer_heap.cc +++ b/src/core/lib/iomgr/timer_heap.cc @@ -25,7 +25,8 @@ #include #include -#include + +#include "src/core/lib/gpr/useful.h" /* Adjusts a heap so as to move a hole at position i closer to the root, until a suitable position is found for element t. Then, copies t into that diff --git a/src/core/lib/iomgr/unix_sockets_posix.cc b/src/core/lib/iomgr/unix_sockets_posix.cc index af862c00dc..91b7cb1e59 100644 --- a/src/core/lib/iomgr/unix_sockets_posix.cc +++ b/src/core/lib/iomgr/unix_sockets_posix.cc @@ -30,7 +30,8 @@ #include #include -#include + +#include "src/core/lib/gpr/useful.h" void grpc_create_socketpair_if_unix(int sv[2]) { GPR_ASSERT(socketpair(AF_UNIX, SOCK_STREAM, 0, sv) == 0); diff --git a/src/core/lib/iomgr/wakeup_fd_cv.cc b/src/core/lib/iomgr/wakeup_fd_cv.cc index c785114212..4818cafe3d 100644 --- a/src/core/lib/iomgr/wakeup_fd_cv.cc +++ b/src/core/lib/iomgr/wakeup_fd_cv.cc @@ -30,7 +30,8 @@ #include #include #include -#include + +#include "src/core/lib/gpr/useful.h" #define MAX_TABLE_RESIZE 256 diff --git a/src/core/lib/security/credentials/jwt/jwt_verifier.cc b/src/core/lib/security/credentials/jwt/jwt_verifier.cc index 860506df39..8b22307944 100644 --- a/src/core/lib/security/credentials/jwt/jwt_verifier.cc +++ b/src/core/lib/security/credentials/jwt/jwt_verifier.cc @@ -25,7 +25,6 @@ #include #include #include -#include extern "C" { #include diff --git a/src/core/lib/slice/b64.cc b/src/core/lib/slice/b64.cc index f36b13ef1b..5c6610c372 100644 --- a/src/core/lib/slice/b64.cc +++ b/src/core/lib/slice/b64.cc @@ -23,8 +23,8 @@ #include #include -#include +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/slice/slice_internal.h" /* --- Constants. --- */ diff --git a/src/core/lib/slice/slice_buffer.cc b/src/core/lib/slice/slice_buffer.cc index 33ec2af683..178c7f9e94 100644 --- a/src/core/lib/slice/slice_buffer.cc +++ b/src/core/lib/slice/slice_buffer.cc @@ -23,8 +23,8 @@ #include #include -#include +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/slice/slice_internal.h" /* grow a buffer; requires GRPC_SLICE_BUFFER_INLINE_ELEMENTS > 1 */ diff --git a/src/core/lib/surface/call.cc b/src/core/lib/surface/call.cc index f2096d8937..a77dc70ba0 100644 --- a/src/core/lib/surface/call.cc +++ b/src/core/lib/surface/call.cc @@ -28,13 +28,13 @@ #include #include #include -#include #include "src/core/lib/channel/channel_stack.h" #include "src/core/lib/compression/algorithm_metadata.h" #include "src/core/lib/debug/stats.h" #include "src/core/lib/gpr/arena.h" #include "src/core/lib/gpr/string.h" +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/timer.h" #include "src/core/lib/profiling/timers.h" #include "src/core/lib/slice/slice_internal.h" diff --git a/src/core/lib/surface/channel_init.cc b/src/core/lib/surface/channel_init.cc index 95cbbbd037..99690e63b4 100644 --- a/src/core/lib/surface/channel_init.cc +++ b/src/core/lib/surface/channel_init.cc @@ -19,7 +19,6 @@ #include "src/core/lib/surface/channel_init.h" #include -#include typedef struct stage_slot { grpc_channel_init_stage fn; diff --git a/src/core/lib/surface/server.cc b/src/core/lib/surface/server.cc index c8c1db337f..1e59434aa5 100644 --- a/src/core/lib/surface/server.cc +++ b/src/core/lib/surface/server.cc @@ -25,7 +25,6 @@ #include #include #include -#include #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/channel/connected_channel.h" diff --git a/src/core/lib/transport/bdp_estimator.cc b/src/core/lib/transport/bdp_estimator.cc index 5fcc62ec43..2ba1cfdaa6 100644 --- a/src/core/lib/transport/bdp_estimator.cc +++ b/src/core/lib/transport/bdp_estimator.cc @@ -21,7 +21,7 @@ #include #include -#include +#include "src/core/lib/gpr/useful.h" grpc_core::TraceFlag grpc_bdp_estimator_trace(false, "bdp_estimator"); diff --git a/src/core/lib/transport/metadata.h b/src/core/lib/transport/metadata.h index 78e6beff9b..82142ebed8 100644 --- a/src/core/lib/transport/metadata.h +++ b/src/core/lib/transport/metadata.h @@ -21,8 +21,8 @@ #include #include -#include +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/iomgr/exec_ctx.h" extern grpc_core::DebugOnlyTraceFlag grpc_trace_metadata; diff --git a/src/core/lib/transport/pid_controller.cc b/src/core/lib/transport/pid_controller.cc index e31cc85f76..b33ea63df6 100644 --- a/src/core/lib/transport/pid_controller.cc +++ b/src/core/lib/transport/pid_controller.cc @@ -17,7 +17,8 @@ */ #include "src/core/lib/transport/pid_controller.h" -#include + +#include "src/core/lib/gpr/useful.h" namespace grpc_core { diff --git a/src/core/lib/transport/transport_op_string.cc b/src/core/lib/transport/transport_op_string.cc index 58a21e9b60..6898da17ed 100644 --- a/src/core/lib/transport/transport_op_string.cc +++ b/src/core/lib/transport/transport_op_string.cc @@ -27,7 +27,6 @@ #include #include -#include #include "src/core/lib/gpr/string.h" #include "src/core/lib/slice/slice_string_helpers.h" #include "src/core/lib/transport/connectivity_state.h" diff --git a/src/core/tsi/fake_transport_security.cc b/src/core/tsi/fake_transport_security.cc index b907636f9d..7d5aaa7305 100644 --- a/src/core/tsi/fake_transport_security.cc +++ b/src/core/tsi/fake_transport_security.cc @@ -24,7 +24,8 @@ #include #include #include -#include + +#include "src/core/lib/gpr/useful.h" #include "src/core/lib/slice/slice_internal.h" #include "src/core/tsi/transport_security_grpc.h" diff --git a/src/core/tsi/ssl_transport_security.cc b/src/core/tsi/ssl_transport_security.cc index b396a621bd..6de02d4952 100644 --- a/src/core/tsi/ssl_transport_security.cc +++ b/src/core/tsi/ssl_transport_security.cc @@ -37,7 +37,6 @@ #include #include #include -#include extern "C" { #include diff --git a/src/cpp/client/channel_cc.cc b/src/cpp/client/channel_cc.cc index 362dff642c..e4ed3490fd 100644 --- a/src/cpp/client/channel_cc.cc +++ b/src/cpp/client/channel_cc.cc @@ -41,7 +41,6 @@ #include #include #include -#include #include "src/core/lib/gpr/env.h" #include "src/core/lib/gpr/string.h" #include "src/core/lib/profiling/timers.h" diff --git a/src/cpp/server/server_builder.cc b/src/cpp/server/server_builder.cc index 200e477822..790095e1f6 100644 --- a/src/cpp/server/server_builder.cc +++ b/src/cpp/server/server_builder.cc @@ -23,8 +23,8 @@ #include #include #include -#include +#include "src/core/lib/gpr/useful.h" #include "src/cpp/server/thread_pool_interface.h" namespace grpc { diff --git a/src/ruby/ext/grpc/rb_grpc_imports.generated.c b/src/ruby/ext/grpc/rb_grpc_imports.generated.c index 0734fb31d5..81221acc08 100644 --- a/src/ruby/ext/grpc/rb_grpc_imports.generated.c +++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.c @@ -201,14 +201,6 @@ gpr_malloc_aligned_type gpr_malloc_aligned_import; gpr_free_aligned_type gpr_free_aligned_import; gpr_set_allocation_functions_type gpr_set_allocation_functions_import; gpr_get_allocation_functions_type gpr_get_allocation_functions_import; -gpr_avl_create_type gpr_avl_create_import; -gpr_avl_ref_type gpr_avl_ref_import; -gpr_avl_unref_type gpr_avl_unref_import; -gpr_avl_add_type gpr_avl_add_import; -gpr_avl_remove_type gpr_avl_remove_import; -gpr_avl_get_type gpr_avl_get_import; -gpr_avl_maybe_get_type gpr_avl_maybe_get_import; -gpr_avl_is_empty_type gpr_avl_is_empty_import; gpr_cmdline_create_type gpr_cmdline_create_import; gpr_cmdline_add_int_type gpr_cmdline_add_int_import; gpr_cmdline_add_flag_type gpr_cmdline_add_flag_import; @@ -470,14 +462,6 @@ void grpc_rb_load_imports(HMODULE library) { gpr_free_aligned_import = (gpr_free_aligned_type) GetProcAddress(library, "gpr_free_aligned"); gpr_set_allocation_functions_import = (gpr_set_allocation_functions_type) GetProcAddress(library, "gpr_set_allocation_functions"); gpr_get_allocation_functions_import = (gpr_get_allocation_functions_type) GetProcAddress(library, "gpr_get_allocation_functions"); - gpr_avl_create_import = (gpr_avl_create_type) GetProcAddress(library, "gpr_avl_create"); - gpr_avl_ref_import = (gpr_avl_ref_type) GetProcAddress(library, "gpr_avl_ref"); - gpr_avl_unref_import = (gpr_avl_unref_type) GetProcAddress(library, "gpr_avl_unref"); - gpr_avl_add_import = (gpr_avl_add_type) GetProcAddress(library, "gpr_avl_add"); - gpr_avl_remove_import = (gpr_avl_remove_type) GetProcAddress(library, "gpr_avl_remove"); - gpr_avl_get_import = (gpr_avl_get_type) GetProcAddress(library, "gpr_avl_get"); - gpr_avl_maybe_get_import = (gpr_avl_maybe_get_type) GetProcAddress(library, "gpr_avl_maybe_get"); - gpr_avl_is_empty_import = (gpr_avl_is_empty_type) GetProcAddress(library, "gpr_avl_is_empty"); gpr_cmdline_create_import = (gpr_cmdline_create_type) GetProcAddress(library, "gpr_cmdline_create"); gpr_cmdline_add_int_import = (gpr_cmdline_add_int_type) GetProcAddress(library, "gpr_cmdline_add_int"); gpr_cmdline_add_flag_import = (gpr_cmdline_add_flag_type) GetProcAddress(library, "gpr_cmdline_add_flag"); diff --git a/src/ruby/ext/grpc/rb_grpc_imports.generated.h b/src/ruby/ext/grpc/rb_grpc_imports.generated.h index 9e5dd2d699..5f2b754d15 100644 --- a/src/ruby/ext/grpc/rb_grpc_imports.generated.h +++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.h @@ -34,7 +34,6 @@ #include #include #include -#include #include #include #include @@ -583,30 +582,6 @@ extern gpr_set_allocation_functions_type gpr_set_allocation_functions_import; typedef gpr_allocation_functions(*gpr_get_allocation_functions_type)(void); extern gpr_get_allocation_functions_type gpr_get_allocation_functions_import; #define gpr_get_allocation_functions gpr_get_allocation_functions_import -typedef gpr_avl(*gpr_avl_create_type)(const gpr_avl_vtable* vtable); -extern gpr_avl_create_type gpr_avl_create_import; -#define gpr_avl_create gpr_avl_create_import -typedef gpr_avl(*gpr_avl_ref_type)(gpr_avl avl, void* user_data); -extern gpr_avl_ref_type gpr_avl_ref_import; -#define gpr_avl_ref gpr_avl_ref_import -typedef void(*gpr_avl_unref_type)(gpr_avl avl, void* user_data); -extern gpr_avl_unref_type gpr_avl_unref_import; -#define gpr_avl_unref gpr_avl_unref_import -typedef gpr_avl(*gpr_avl_add_type)(gpr_avl avl, void* key, void* value, void* user_data); -extern gpr_avl_add_type gpr_avl_add_import; -#define gpr_avl_add gpr_avl_add_import -typedef gpr_avl(*gpr_avl_remove_type)(gpr_avl avl, void* key, void* user_data); -extern gpr_avl_remove_type gpr_avl_remove_import; -#define gpr_avl_remove gpr_avl_remove_import -typedef void*(*gpr_avl_get_type)(gpr_avl avl, void* key, void* user_data); -extern gpr_avl_get_type gpr_avl_get_import; -#define gpr_avl_get gpr_avl_get_import -typedef int(*gpr_avl_maybe_get_type)(gpr_avl avl, void* key, void** value, void* user_data); -extern gpr_avl_maybe_get_type gpr_avl_maybe_get_import; -#define gpr_avl_maybe_get gpr_avl_maybe_get_import -typedef int(*gpr_avl_is_empty_type)(gpr_avl avl); -extern gpr_avl_is_empty_type gpr_avl_is_empty_import; -#define gpr_avl_is_empty gpr_avl_is_empty_import typedef gpr_cmdline*(*gpr_cmdline_create_type)(const char* description); extern gpr_cmdline_create_type gpr_cmdline_create_import; #define gpr_cmdline_create gpr_cmdline_create_import -- cgit v1.2.3 From 8f4fbb1c550c99e25f42ceafec3af92b34279db5 Mon Sep 17 00:00:00 2001 From: Vijay Pai Date: Thu, 8 Feb 2018 10:04:08 -0800 Subject: Move avl to its own directory and rename it to grpc_avl --- BUILD | 4 +- CMakeLists.txt | 60 +- Makefile | 79 +- build.yaml | 23 +- config.m4 | 3 +- config.w32 | 3 +- gRPC-C++.podspec | 4 +- gRPC-Core.podspec | 6 +- grpc.gemspec | 4 +- grpc.gyp | 5 +- package.xml | 4 +- .../ext/filters/client_channel/retry_throttle.cc | 16 +- .../ext/filters/client_channel/subchannel_index.cc | 46 +- src/core/lib/avl/avl.cc | 301 ++ src/core/lib/avl/avl.h | 92 + src/core/lib/gpr/avl.cc | 301 -- src/core/lib/gpr/avl.h | 92 - src/python/grpcio/grpc_core_dependencies.py | 2 +- test/core/avl/BUILD | 30 + test/core/avl/avl_test.cc | 3659 ++++++++++++++++++++ test/core/gpr/BUILD | 10 - test/core/gpr/avl_test.cc | 3659 -------------------- tools/doxygen/Doxyfile.c++.internal | 2 +- tools/doxygen/Doxyfile.core.internal | 4 +- tools/run_tests/generated/sources_and_headers.json | 37 +- tools/run_tests/generated/tests.json | 48 +- 26 files changed, 4266 insertions(+), 4228 deletions(-) create mode 100644 src/core/lib/avl/avl.cc create mode 100644 src/core/lib/avl/avl.h delete mode 100644 src/core/lib/gpr/avl.cc delete mode 100644 src/core/lib/gpr/avl.h create mode 100644 test/core/avl/BUILD create mode 100644 test/core/avl/avl_test.cc delete mode 100644 test/core/gpr/avl_test.cc (limited to 'src') diff --git a/BUILD b/BUILD index 55fc2f0ff2..4f1785d462 100644 --- a/BUILD +++ b/BUILD @@ -456,7 +456,6 @@ grpc_cc_library( "src/core/lib/gpr/alloc.cc", "src/core/lib/gpr/arena.cc", "src/core/lib/gpr/atm.cc", - "src/core/lib/gpr/avl.cc", "src/core/lib/gpr/cmdline.cc", "src/core/lib/gpr/cpu_iphone.cc", "src/core/lib/gpr/cpu_linux.cc", @@ -499,7 +498,6 @@ grpc_cc_library( hdrs = [ "src/core/lib/profiling/timers.h", "src/core/lib/gpr/arena.h", - "src/core/lib/gpr/avl.h", "src/core/lib/gpr/env.h", "src/core/lib/gpr/fork.h", "src/core/lib/gpr/useful.h", @@ -627,6 +625,7 @@ grpc_cc_library( grpc_cc_library( name = "grpc_base_c", srcs = [ + "src/core/lib/avl/avl.cc", "src/core/lib/backoff/backoff.cc", "src/core/lib/channel/channel_args.cc", "src/core/lib/channel/channel_stack.cc", @@ -762,6 +761,7 @@ grpc_cc_library( "src/core/lib/transport/transport_op_string.cc", ], hdrs = [ + "src/core/lib/avl/avl.h", "src/core/lib/backoff/backoff.h", "src/core/lib/channel/channel_args.h", "src/core/lib/channel/channel_stack.h", diff --git a/CMakeLists.txt b/CMakeLists.txt index 782bd587f8..d582e5214b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,6 +213,7 @@ add_dependencies(buildtests_c algorithm_test) add_dependencies(buildtests_c alloc_test) add_dependencies(buildtests_c alpn_test) add_dependencies(buildtests_c arena_test) +add_dependencies(buildtests_c avl_test) add_dependencies(buildtests_c bad_server_response_test) add_dependencies(buildtests_c bin_decoder_test) add_dependencies(buildtests_c bin_encoder_test) @@ -257,7 +258,6 @@ endif() if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_dependencies(buildtests_c goaway_server_test) endif() -add_dependencies(buildtests_c gpr_avl_test) add_dependencies(buildtests_c gpr_cmdline_test) add_dependencies(buildtests_c gpr_cpu_test) add_dependencies(buildtests_c gpr_env_test) @@ -628,7 +628,6 @@ add_library(gpr src/core/lib/gpr/alloc.cc src/core/lib/gpr/arena.cc src/core/lib/gpr/atm.cc - src/core/lib/gpr/avl.cc src/core/lib/gpr/cmdline.cc src/core/lib/gpr/cpu_iphone.cc src/core/lib/gpr/cpu_linux.cc @@ -792,6 +791,7 @@ endif (gRPC_BUILD_TESTS) add_library(grpc src/core/lib/surface/init.cc + src/core/lib/avl/avl.cc src/core/lib/backoff/backoff.cc src/core/lib/channel/channel_args.cc src/core/lib/channel/channel_stack.cc @@ -1134,6 +1134,7 @@ endif() add_library(grpc_cronet src/core/lib/surface/init.cc + src/core/lib/avl/avl.cc src/core/lib/backoff/backoff.cc src/core/lib/channel/channel_args.cc src/core/lib/channel/channel_stack.cc @@ -1458,6 +1459,7 @@ add_library(grpc_test_util test/core/util/slice_splitter.cc test/core/util/tracer_util.cc test/core/util/trickle_endpoint.cc + src/core/lib/avl/avl.cc src/core/lib/backoff/backoff.cc src/core/lib/channel/channel_args.cc src/core/lib/channel/channel_stack.cc @@ -1726,6 +1728,7 @@ add_library(grpc_test_util_unsecure test/core/util/slice_splitter.cc test/core/util/tracer_util.cc test/core/util/trickle_endpoint.cc + src/core/lib/avl/avl.cc src/core/lib/backoff/backoff.cc src/core/lib/channel/channel_args.cc src/core/lib/channel/channel_stack.cc @@ -1977,6 +1980,7 @@ endif (gRPC_BUILD_TESTS) add_library(grpc_unsecure src/core/lib/surface/init.cc src/core/lib/surface/init_unsecure.cc + src/core/lib/avl/avl.cc src/core/lib/backoff/backoff.cc src/core/lib/channel/channel_args.cc src/core/lib/channel/channel_stack.cc @@ -2709,6 +2713,7 @@ add_library(grpc++_cronet src/core/ext/transport/chttp2/transport/stream_map.cc src/core/ext/transport/chttp2/transport/varint.cc src/core/ext/transport/chttp2/transport/writing.cc + src/core/lib/avl/avl.cc src/core/lib/backoff/backoff.cc src/core/lib/channel/channel_args.cc src/core/lib/channel/channel_stack.cc @@ -4832,6 +4837,32 @@ target_link_libraries(arena_test endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) +add_executable(avl_test + test/core/avl/avl_test.cc +) + + +target_include_directories(avl_test + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${_gRPC_SSL_INCLUDE_DIR} + PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR} + PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR} + PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR} + PRIVATE ${_gRPC_CARES_INCLUDE_DIR} + PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR} +) + +target_link_libraries(avl_test + ${_gRPC_ALLTARGETS_LIBRARIES} + gpr_test_util + gpr + grpc +) + +endif (gRPC_BUILD_TESTS) +if (gRPC_BUILD_TESTS) + add_executable(bad_server_response_test test/core/end2end/bad_server_response_test.cc ) @@ -5633,31 +5664,6 @@ endif() endif (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS) -add_executable(gpr_avl_test - test/core/gpr/avl_test.cc -) - - -target_include_directories(gpr_avl_test - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${_gRPC_SSL_INCLUDE_DIR} - PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR} - PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR} - PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR} - PRIVATE ${_gRPC_CARES_INCLUDE_DIR} - PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR} -) - -target_link_libraries(gpr_avl_test - ${_gRPC_ALLTARGETS_LIBRARIES} - gpr_test_util - gpr -) - -endif (gRPC_BUILD_TESTS) -if (gRPC_BUILD_TESTS) - add_executable(gpr_cmdline_test test/core/gpr/cmdline_test.cc ) diff --git a/Makefile b/Makefile index 3de7410fa0..89b1d98811 100644 --- a/Makefile +++ b/Makefile @@ -955,6 +955,7 @@ alloc_test: $(BINDIR)/$(CONFIG)/alloc_test alpn_test: $(BINDIR)/$(CONFIG)/alpn_test api_fuzzer: $(BINDIR)/$(CONFIG)/api_fuzzer arena_test: $(BINDIR)/$(CONFIG)/arena_test +avl_test: $(BINDIR)/$(CONFIG)/avl_test bad_server_response_test: $(BINDIR)/$(CONFIG)/bad_server_response_test bin_decoder_test: $(BINDIR)/$(CONFIG)/bin_decoder_test bin_encoder_test: $(BINDIR)/$(CONFIG)/bin_encoder_test @@ -985,7 +986,6 @@ fling_server: $(BINDIR)/$(CONFIG)/fling_server fling_stream_test: $(BINDIR)/$(CONFIG)/fling_stream_test fling_test: $(BINDIR)/$(CONFIG)/fling_test goaway_server_test: $(BINDIR)/$(CONFIG)/goaway_server_test -gpr_avl_test: $(BINDIR)/$(CONFIG)/gpr_avl_test gpr_cmdline_test: $(BINDIR)/$(CONFIG)/gpr_cmdline_test gpr_cpu_test: $(BINDIR)/$(CONFIG)/gpr_cpu_test gpr_env_test: $(BINDIR)/$(CONFIG)/gpr_env_test @@ -1372,6 +1372,7 @@ buildtests_c: privatelibs_c \ $(BINDIR)/$(CONFIG)/alloc_test \ $(BINDIR)/$(CONFIG)/alpn_test \ $(BINDIR)/$(CONFIG)/arena_test \ + $(BINDIR)/$(CONFIG)/avl_test \ $(BINDIR)/$(CONFIG)/bad_server_response_test \ $(BINDIR)/$(CONFIG)/bin_decoder_test \ $(BINDIR)/$(CONFIG)/bin_encoder_test \ @@ -1400,7 +1401,6 @@ buildtests_c: privatelibs_c \ $(BINDIR)/$(CONFIG)/fling_stream_test \ $(BINDIR)/$(CONFIG)/fling_test \ $(BINDIR)/$(CONFIG)/goaway_server_test \ - $(BINDIR)/$(CONFIG)/gpr_avl_test \ $(BINDIR)/$(CONFIG)/gpr_cmdline_test \ $(BINDIR)/$(CONFIG)/gpr_cpu_test \ $(BINDIR)/$(CONFIG)/gpr_env_test \ @@ -1812,6 +1812,8 @@ test_c: buildtests_c $(Q) $(BINDIR)/$(CONFIG)/alpn_test || ( echo test alpn_test failed ; exit 1 ) $(E) "[RUN] Testing arena_test" $(Q) $(BINDIR)/$(CONFIG)/arena_test || ( echo test arena_test failed ; exit 1 ) + $(E) "[RUN] Testing avl_test" + $(Q) $(BINDIR)/$(CONFIG)/avl_test || ( echo test avl_test failed ; exit 1 ) $(E) "[RUN] Testing bad_server_response_test" $(Q) $(BINDIR)/$(CONFIG)/bad_server_response_test || ( echo test bad_server_response_test failed ; exit 1 ) $(E) "[RUN] Testing bin_decoder_test" @@ -1864,8 +1866,6 @@ test_c: buildtests_c $(Q) $(BINDIR)/$(CONFIG)/fling_test || ( echo test fling_test failed ; exit 1 ) $(E) "[RUN] Testing goaway_server_test" $(Q) $(BINDIR)/$(CONFIG)/goaway_server_test || ( echo test goaway_server_test failed ; exit 1 ) - $(E) "[RUN] Testing gpr_avl_test" - $(Q) $(BINDIR)/$(CONFIG)/gpr_avl_test || ( echo test gpr_avl_test failed ; exit 1 ) $(E) "[RUN] Testing gpr_cmdline_test" $(Q) $(BINDIR)/$(CONFIG)/gpr_cmdline_test || ( echo test gpr_cmdline_test failed ; exit 1 ) $(E) "[RUN] Testing gpr_cpu_test" @@ -2874,7 +2874,6 @@ LIBGPR_SRC = \ src/core/lib/gpr/alloc.cc \ src/core/lib/gpr/arena.cc \ src/core/lib/gpr/atm.cc \ - src/core/lib/gpr/avl.cc \ src/core/lib/gpr/cmdline.cc \ src/core/lib/gpr/cpu_iphone.cc \ src/core/lib/gpr/cpu_linux.cc \ @@ -3019,6 +3018,7 @@ endif LIBGRPC_SRC = \ src/core/lib/surface/init.cc \ + src/core/lib/avl/avl.cc \ src/core/lib/backoff/backoff.cc \ src/core/lib/channel/channel_args.cc \ src/core/lib/channel/channel_stack.cc \ @@ -3363,6 +3363,7 @@ endif LIBGRPC_CRONET_SRC = \ src/core/lib/surface/init.cc \ + src/core/lib/avl/avl.cc \ src/core/lib/backoff/backoff.cc \ src/core/lib/channel/channel_args.cc \ src/core/lib/channel/channel_stack.cc \ @@ -3688,6 +3689,7 @@ LIBGRPC_TEST_UTIL_SRC = \ test/core/util/slice_splitter.cc \ test/core/util/tracer_util.cc \ test/core/util/trickle_endpoint.cc \ + src/core/lib/avl/avl.cc \ src/core/lib/backoff/backoff.cc \ src/core/lib/channel/channel_args.cc \ src/core/lib/channel/channel_stack.cc \ @@ -3949,6 +3951,7 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \ test/core/util/slice_splitter.cc \ test/core/util/tracer_util.cc \ test/core/util/trickle_endpoint.cc \ + src/core/lib/avl/avl.cc \ src/core/lib/backoff/backoff.cc \ src/core/lib/channel/channel_args.cc \ src/core/lib/channel/channel_stack.cc \ @@ -4180,6 +4183,7 @@ endif LIBGRPC_UNSECURE_SRC = \ src/core/lib/surface/init.cc \ src/core/lib/surface/init_unsecure.cc \ + src/core/lib/avl/avl.cc \ src/core/lib/backoff/backoff.cc \ src/core/lib/channel/channel_args.cc \ src/core/lib/channel/channel_stack.cc \ @@ -4913,6 +4917,7 @@ LIBGRPC++_CRONET_SRC = \ src/core/ext/transport/chttp2/transport/stream_map.cc \ src/core/ext/transport/chttp2/transport/varint.cc \ src/core/ext/transport/chttp2/transport/writing.cc \ + src/core/lib/avl/avl.cc \ src/core/lib/backoff/backoff.cc \ src/core/lib/channel/channel_args.cc \ src/core/lib/channel/channel_stack.cc \ @@ -9404,6 +9409,38 @@ endif endif +AVL_TEST_SRC = \ + test/core/avl/avl_test.cc \ + +AVL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(AVL_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/avl_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/avl_test: $(AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/avl_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/avl/avl_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a + +deps_avl_test: $(AVL_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(AVL_TEST_OBJS:.o=.dep) +endif +endif + + BAD_SERVER_RESPONSE_TEST_SRC = \ test/core/end2end/bad_server_response_test.cc \ @@ -10367,38 +10404,6 @@ endif endif -GPR_AVL_TEST_SRC = \ - test/core/gpr/avl_test.cc \ - -GPR_AVL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GPR_AVL_TEST_SRC)))) -ifeq ($(NO_SECURE),true) - -# You can't build secure targets if you don't have OpenSSL. - -$(BINDIR)/$(CONFIG)/gpr_avl_test: openssl_dep_error - -else - - - -$(BINDIR)/$(CONFIG)/gpr_avl_test: $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - $(E) "[LD] Linking $@" - $(Q) mkdir -p `dirname $@` - $(Q) $(LD) $(LDFLAGS) $(GPR_AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_avl_test - -endif - -$(OBJDIR)/$(CONFIG)/test/core/gpr/avl_test.o: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a - -deps_gpr_avl_test: $(GPR_AVL_TEST_OBJS:.o=.dep) - -ifneq ($(NO_SECURE),true) -ifneq ($(NO_DEPS),true) --include $(GPR_AVL_TEST_OBJS:.o=.dep) -endif -endif - - GPR_CMDLINE_TEST_SRC = \ test/core/gpr/cmdline_test.cc \ diff --git a/build.yaml b/build.yaml index 516f270e73..f4ac3388ab 100644 --- a/build.yaml +++ b/build.yaml @@ -29,7 +29,6 @@ filegroups: - src/core/lib/gpr/alloc.cc - src/core/lib/gpr/arena.cc - src/core/lib/gpr/atm.cc - - src/core/lib/gpr/avl.cc - src/core/lib/gpr/cmdline.cc - src/core/lib/gpr/cpu_iphone.cc - src/core/lib/gpr/cpu_linux.cc @@ -100,7 +99,6 @@ filegroups: - include/grpc/support/tls_pthread.h headers: - src/core/lib/gpr/arena.h - - src/core/lib/gpr/avl.h - src/core/lib/gpr/env.h - src/core/lib/gpr/fork.h - src/core/lib/gpr/mpscq.h @@ -150,6 +148,7 @@ filegroups: - grpc++_codegen_base - name: grpc_base src: + - src/core/lib/avl/avl.cc - src/core/lib/backoff/backoff.cc - src/core/lib/channel/channel_args.cc - src/core/lib/channel/channel_stack.cc @@ -307,6 +306,7 @@ filegroups: - include/grpc/status.h - include/grpc/support/workaround_list.h headers: + - src/core/lib/avl/avl.h - src/core/lib/backoff/backoff.h - src/core/lib/channel/channel_args.h - src/core/lib/channel/channel_stack.h @@ -1762,6 +1762,16 @@ targets: - gpr_test_util - gpr uses_polling: false +- name: avl_test + build: test + language: c + src: + - test/core/avl/avl_test.cc + deps: + - gpr_test_util + - gpr + - grpc + uses_polling: false - name: bad_server_response_test build: test language: c @@ -2130,15 +2140,6 @@ targets: - mac - linux - posix -- name: gpr_avl_test - build: test - language: c - src: - - test/core/gpr/avl_test.cc - deps: - - gpr_test_util - - gpr - uses_polling: false - name: gpr_cmdline_test build: test language: c diff --git a/config.m4 b/config.m4 index c60c252b5c..ec48ff9619 100644 --- a/config.m4 +++ b/config.m4 @@ -42,7 +42,6 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/gpr/alloc.cc \ src/core/lib/gpr/arena.cc \ src/core/lib/gpr/atm.cc \ - src/core/lib/gpr/avl.cc \ src/core/lib/gpr/cmdline.cc \ src/core/lib/gpr/cpu_iphone.cc \ src/core/lib/gpr/cpu_linux.cc \ @@ -84,6 +83,7 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/profiling/basic_timers.cc \ src/core/lib/profiling/stap_timers.cc \ src/core/lib/surface/init.cc \ + src/core/lib/avl/avl.cc \ src/core/lib/backoff/backoff.cc \ src/core/lib/channel/channel_args.cc \ src/core/lib/channel/channel_stack.cc \ @@ -626,6 +626,7 @@ if test "$PHP_GRPC" != "no"; then PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/server/secure) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/transport) PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/inproc) + PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/avl) PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/backoff) PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/channel) PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/compression) diff --git a/config.w32 b/config.w32 index 888596bdab..9a44d1f9ec 100644 --- a/config.w32 +++ b/config.w32 @@ -19,7 +19,6 @@ if (PHP_GRPC != "no") { "src\\core\\lib\\gpr\\alloc.cc " + "src\\core\\lib\\gpr\\arena.cc " + "src\\core\\lib\\gpr\\atm.cc " + - "src\\core\\lib\\gpr\\avl.cc " + "src\\core\\lib\\gpr\\cmdline.cc " + "src\\core\\lib\\gpr\\cpu_iphone.cc " + "src\\core\\lib\\gpr\\cpu_linux.cc " + @@ -61,6 +60,7 @@ if (PHP_GRPC != "no") { "src\\core\\lib\\profiling\\basic_timers.cc " + "src\\core\\lib\\profiling\\stap_timers.cc " + "src\\core\\lib\\surface\\init.cc " + + "src\\core\\lib\\avl\\avl.cc " + "src\\core\\lib\\backoff\\backoff.cc " + "src\\core\\lib\\channel\\channel_args.cc " + "src\\core\\lib\\channel\\channel_stack.cc " + @@ -638,6 +638,7 @@ if (PHP_GRPC != "no") { FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\transport\\chttp2\\transport"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\ext\\transport\\inproc"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\avl"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\backoff"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\channel"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\src\\core\\lib\\compression"); diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec index 8bdb963030..7aa2998796 100644 --- a/gRPC-C++.podspec +++ b/gRPC-C++.podspec @@ -204,7 +204,6 @@ Pod::Spec.new do |s| 'src/cpp/util/time_cc.cc', 'src/cpp/codegen/codegen_init.cc', 'src/core/lib/gpr/arena.h', - 'src/core/lib/gpr/avl.h', 'src/core/lib/gpr/env.h', 'src/core/lib/gpr/fork.h', 'src/core/lib/gpr/mpscq.h', @@ -297,6 +296,7 @@ Pod::Spec.new do |s| 'src/core/ext/filters/deadline/deadline_filter.h', 'src/core/ext/transport/chttp2/client/chttp2_connector.h', 'src/core/ext/transport/inproc/inproc_transport.h', + 'src/core/lib/avl/avl.h', 'src/core/lib/backoff/backoff.h', 'src/core/lib/channel/channel_args.h', 'src/core/lib/channel/channel_stack.h', @@ -451,7 +451,6 @@ Pod::Spec.new do |s| 'src/cpp/server/thread_pool_interface.h', 'src/cpp/thread_manager/thread_manager.h', 'src/core/lib/gpr/arena.h', - 'src/core/lib/gpr/avl.h', 'src/core/lib/gpr/env.h', 'src/core/lib/gpr/fork.h', 'src/core/lib/gpr/mpscq.h', @@ -470,6 +469,7 @@ Pod::Spec.new do |s| 'src/core/lib/gprpp/manual_constructor.h', 'src/core/lib/gprpp/memory.h', 'src/core/lib/profiling/timers.h', + 'src/core/lib/avl/avl.h', 'src/core/lib/backoff/backoff.h', 'src/core/lib/channel/channel_args.h', 'src/core/lib/channel/channel_stack.h', diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec index faba046cfd..ea6e95e8dd 100644 --- a/gRPC-Core.podspec +++ b/gRPC-Core.podspec @@ -192,7 +192,6 @@ Pod::Spec.new do |s| # To save you from scrolling, this is the last part of the podspec. ss.source_files = 'src/core/lib/gpr/arena.h', - 'src/core/lib/gpr/avl.h', 'src/core/lib/gpr/env.h', 'src/core/lib/gpr/fork.h', 'src/core/lib/gpr/mpscq.h', @@ -214,7 +213,6 @@ Pod::Spec.new do |s| 'src/core/lib/gpr/alloc.cc', 'src/core/lib/gpr/arena.cc', 'src/core/lib/gpr/atm.cc', - 'src/core/lib/gpr/avl.cc', 'src/core/lib/gpr/cmdline.cc', 'src/core/lib/gpr/cpu_iphone.cc', 'src/core/lib/gpr/cpu_linux.cc', @@ -329,6 +327,7 @@ Pod::Spec.new do |s| 'src/core/ext/filters/deadline/deadline_filter.h', 'src/core/ext/transport/chttp2/client/chttp2_connector.h', 'src/core/ext/transport/inproc/inproc_transport.h', + 'src/core/lib/avl/avl.h', 'src/core/lib/backoff/backoff.h', 'src/core/lib/channel/channel_args.h', 'src/core/lib/channel/channel_stack.h', @@ -471,6 +470,7 @@ Pod::Spec.new do |s| 'src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h', 'src/core/ext/filters/workarounds/workaround_utils.h', 'src/core/lib/surface/init.cc', + 'src/core/lib/avl/avl.cc', 'src/core/lib/backoff/backoff.cc', 'src/core/lib/channel/channel_args.cc', 'src/core/lib/channel/channel_stack.cc', @@ -721,7 +721,6 @@ Pod::Spec.new do |s| 'src/core/plugin_registry/grpc_plugin_registry.cc' ss.private_header_files = 'src/core/lib/gpr/arena.h', - 'src/core/lib/gpr/avl.h', 'src/core/lib/gpr/env.h', 'src/core/lib/gpr/fork.h', 'src/core/lib/gpr/mpscq.h', @@ -814,6 +813,7 @@ Pod::Spec.new do |s| 'src/core/ext/filters/deadline/deadline_filter.h', 'src/core/ext/transport/chttp2/client/chttp2_connector.h', 'src/core/ext/transport/inproc/inproc_transport.h', + 'src/core/lib/avl/avl.h', 'src/core/lib/backoff/backoff.h', 'src/core/lib/channel/channel_args.h', 'src/core/lib/channel/channel_stack.h', diff --git a/grpc.gemspec b/grpc.gemspec index 97ba668ca9..db36cd8811 100644 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -82,7 +82,6 @@ Gem::Specification.new do |s| s.files += %w( include/grpc/impl/codegen/sync_posix.h ) s.files += %w( include/grpc/impl/codegen/sync_windows.h ) s.files += %w( src/core/lib/gpr/arena.h ) - s.files += %w( src/core/lib/gpr/avl.h ) s.files += %w( src/core/lib/gpr/env.h ) s.files += %w( src/core/lib/gpr/fork.h ) s.files += %w( src/core/lib/gpr/mpscq.h ) @@ -104,7 +103,6 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/gpr/alloc.cc ) s.files += %w( src/core/lib/gpr/arena.cc ) s.files += %w( src/core/lib/gpr/atm.cc ) - s.files += %w( src/core/lib/gpr/avl.cc ) s.files += %w( src/core/lib/gpr/cmdline.cc ) s.files += %w( src/core/lib/gpr/cpu_iphone.cc ) s.files += %w( src/core/lib/gpr/cpu_linux.cc ) @@ -255,6 +253,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/ext/filters/deadline/deadline_filter.h ) s.files += %w( src/core/ext/transport/chttp2/client/chttp2_connector.h ) s.files += %w( src/core/ext/transport/inproc/inproc_transport.h ) + s.files += %w( src/core/lib/avl/avl.h ) s.files += %w( src/core/lib/backoff/backoff.h ) s.files += %w( src/core/lib/channel/channel_args.h ) s.files += %w( src/core/lib/channel/channel_stack.h ) @@ -401,6 +400,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h ) s.files += %w( src/core/ext/filters/workarounds/workaround_utils.h ) s.files += %w( src/core/lib/surface/init.cc ) + s.files += %w( src/core/lib/avl/avl.cc ) s.files += %w( src/core/lib/backoff/backoff.cc ) s.files += %w( src/core/lib/channel/channel_args.cc ) s.files += %w( src/core/lib/channel/channel_stack.cc ) diff --git a/grpc.gyp b/grpc.gyp index 63f2eae80f..6d6ac35355 100644 --- a/grpc.gyp +++ b/grpc.gyp @@ -164,7 +164,6 @@ 'src/core/lib/gpr/alloc.cc', 'src/core/lib/gpr/arena.cc', 'src/core/lib/gpr/atm.cc', - 'src/core/lib/gpr/avl.cc', 'src/core/lib/gpr/cmdline.cc', 'src/core/lib/gpr/cpu_iphone.cc', 'src/core/lib/gpr/cpu_linux.cc', @@ -225,6 +224,7 @@ ], 'sources': [ 'src/core/lib/surface/init.cc', + 'src/core/lib/avl/avl.cc', 'src/core/lib/backoff/backoff.cc', 'src/core/lib/channel/channel_args.cc', 'src/core/lib/channel/channel_stack.cc', @@ -520,6 +520,7 @@ 'test/core/util/slice_splitter.cc', 'test/core/util/tracer_util.cc', 'test/core/util/trickle_endpoint.cc', + 'src/core/lib/avl/avl.cc', 'src/core/lib/backoff/backoff.cc', 'src/core/lib/channel/channel_args.cc', 'src/core/lib/channel/channel_stack.cc', @@ -733,6 +734,7 @@ 'test/core/util/slice_splitter.cc', 'test/core/util/tracer_util.cc', 'test/core/util/trickle_endpoint.cc', + 'src/core/lib/avl/avl.cc', 'src/core/lib/backoff/backoff.cc', 'src/core/lib/channel/channel_args.cc', 'src/core/lib/channel/channel_stack.cc', @@ -928,6 +930,7 @@ 'sources': [ 'src/core/lib/surface/init.cc', 'src/core/lib/surface/init_unsecure.cc', + 'src/core/lib/avl/avl.cc', 'src/core/lib/backoff/backoff.cc', 'src/core/lib/channel/channel_args.cc', 'src/core/lib/channel/channel_stack.cc', diff --git a/package.xml b/package.xml index 438856cd69..9c298431cb 100644 --- a/package.xml +++ b/package.xml @@ -89,7 +89,6 @@ - @@ -111,7 +110,6 @@ - @@ -262,6 +260,7 @@ + @@ -408,6 +407,7 @@ + diff --git a/src/core/ext/filters/client_channel/retry_throttle.cc b/src/core/ext/filters/client_channel/retry_throttle.cc index 20d7be1c21..f632a02cde 100644 --- a/src/core/ext/filters/client_channel/retry_throttle.cc +++ b/src/core/ext/filters/client_channel/retry_throttle.cc @@ -26,7 +26,7 @@ #include #include -#include "src/core/lib/gpr/avl.h" +#include "src/core/lib/avl/avl.h" // // server_retry_throttle_data @@ -153,7 +153,7 @@ static void* copy_server_retry_throttle_data(void* value, void* unused) { static void destroy_server_name(void* key, void* unused) { gpr_free(key); } -static const gpr_avl_vtable avl_vtable = { +static const grpc_avl_vtable avl_vtable = { destroy_server_name, copy_server_name, compare_server_name, destroy_server_retry_throttle_data, copy_server_retry_throttle_data}; @@ -162,29 +162,29 @@ static const gpr_avl_vtable avl_vtable = { // static gpr_mu g_mu; -static gpr_avl g_avl; +static grpc_avl g_avl; void grpc_retry_throttle_map_init() { gpr_mu_init(&g_mu); - g_avl = gpr_avl_create(&avl_vtable); + g_avl = grpc_avl_create(&avl_vtable); } void grpc_retry_throttle_map_shutdown() { gpr_mu_destroy(&g_mu); - gpr_avl_unref(g_avl, nullptr); + grpc_avl_unref(g_avl, nullptr); } grpc_server_retry_throttle_data* grpc_retry_throttle_map_get_data_for_server( const char* server_name, int max_milli_tokens, int milli_token_ratio) { gpr_mu_lock(&g_mu); grpc_server_retry_throttle_data* throttle_data = - (grpc_server_retry_throttle_data*)gpr_avl_get(g_avl, (char*)server_name, + (grpc_server_retry_throttle_data*)grpc_avl_get(g_avl, (char*)server_name, nullptr); if (throttle_data == nullptr) { // Entry not found. Create a new one. throttle_data = grpc_server_retry_throttle_data_create( max_milli_tokens, milli_token_ratio, nullptr); - g_avl = gpr_avl_add(g_avl, (char*)server_name, throttle_data, nullptr); + g_avl = grpc_avl_add(g_avl, (char*)server_name, throttle_data, nullptr); } else { if (throttle_data->max_milli_tokens != max_milli_tokens || throttle_data->milli_token_ratio != milli_token_ratio) { @@ -192,7 +192,7 @@ grpc_server_retry_throttle_data* grpc_retry_throttle_map_get_data_for_server( // the original one. throttle_data = grpc_server_retry_throttle_data_create( max_milli_tokens, milli_token_ratio, throttle_data); - g_avl = gpr_avl_add(g_avl, (char*)server_name, throttle_data, nullptr); + g_avl = grpc_avl_add(g_avl, (char*)server_name, throttle_data, nullptr); } else { // Entry found. Increase refcount. grpc_server_retry_throttle_data_ref(throttle_data); diff --git a/src/core/ext/filters/client_channel/subchannel_index.cc b/src/core/ext/filters/client_channel/subchannel_index.cc index 2d063973ca..8687291bbe 100644 --- a/src/core/ext/filters/client_channel/subchannel_index.cc +++ b/src/core/ext/filters/client_channel/subchannel_index.cc @@ -26,11 +26,11 @@ #include #include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/gpr/avl.h" +#include "src/core/lib/avl/avl.h" // a map of subchannel_key --> subchannel, used for detecting connections // to the same destination in order to share them -static gpr_avl g_subchannel_index; +static grpc_avl g_subchannel_index; static gpr_mu g_mu; @@ -109,7 +109,7 @@ static void* scv_avl_copy(void* p, void* unused) { return p; } -static const gpr_avl_vtable subchannel_avl_vtable = { +static const grpc_avl_vtable subchannel_avl_vtable = { sck_avl_destroy, // destroy_key sck_avl_copy, // copy_key sck_avl_compare, // compare_keys @@ -118,7 +118,7 @@ static const gpr_avl_vtable subchannel_avl_vtable = { }; void grpc_subchannel_index_init(void) { - g_subchannel_index = gpr_avl_create(&subchannel_avl_vtable); + g_subchannel_index = grpc_avl_create(&subchannel_avl_vtable); gpr_mu_init(&g_mu); gpr_ref_init(&g_refcount, 1); } @@ -133,7 +133,7 @@ void grpc_subchannel_index_shutdown(void) { void grpc_subchannel_index_unref(void) { if (gpr_unref(&g_refcount)) { gpr_mu_destroy(&g_mu); - gpr_avl_unref(g_subchannel_index, grpc_core::ExecCtx::Get()); + grpc_avl_unref(g_subchannel_index, grpc_core::ExecCtx::Get()); } } @@ -143,13 +143,13 @@ grpc_subchannel* grpc_subchannel_index_find(grpc_subchannel_key* key) { // Lock, and take a reference to the subchannel index. // We don't need to do the search under a lock as avl's are immutable. gpr_mu_lock(&g_mu); - gpr_avl index = gpr_avl_ref(g_subchannel_index, grpc_core::ExecCtx::Get()); + grpc_avl index = grpc_avl_ref(g_subchannel_index, grpc_core::ExecCtx::Get()); gpr_mu_unlock(&g_mu); grpc_subchannel* c = GRPC_SUBCHANNEL_REF_FROM_WEAK_REF( - (grpc_subchannel*)gpr_avl_get(index, key, grpc_core::ExecCtx::Get()), + (grpc_subchannel*)grpc_avl_get(index, key, grpc_core::ExecCtx::Get()), "index_find"); - gpr_avl_unref(index, grpc_core::ExecCtx::Get()); + grpc_avl_unref(index, grpc_core::ExecCtx::Get()); return c; } @@ -165,11 +165,11 @@ grpc_subchannel* grpc_subchannel_index_register(grpc_subchannel_key* key, // Compare and swap loop: // - take a reference to the current index gpr_mu_lock(&g_mu); - gpr_avl index = gpr_avl_ref(g_subchannel_index, grpc_core::ExecCtx::Get()); + grpc_avl index = grpc_avl_ref(g_subchannel_index, grpc_core::ExecCtx::Get()); gpr_mu_unlock(&g_mu); // - Check to see if a subchannel already exists - c = (grpc_subchannel*)gpr_avl_get(index, key, grpc_core::ExecCtx::Get()); + c = (grpc_subchannel*)grpc_avl_get(index, key, grpc_core::ExecCtx::Get()); if (c != nullptr) { c = GRPC_SUBCHANNEL_REF_FROM_WEAK_REF(c, "index_register"); } @@ -178,8 +178,8 @@ grpc_subchannel* grpc_subchannel_index_register(grpc_subchannel_key* key, need_to_unref_constructed = true; } else { // no -> update the avl and compare/swap - gpr_avl updated = - gpr_avl_add(gpr_avl_ref(index, grpc_core::ExecCtx::Get()), + grpc_avl updated = + grpc_avl_add(grpc_avl_ref(index, grpc_core::ExecCtx::Get()), subchannel_key_copy(key), GRPC_SUBCHANNEL_WEAK_REF(constructed, "index_register"), grpc_core::ExecCtx::Get()); @@ -189,14 +189,14 @@ grpc_subchannel* grpc_subchannel_index_register(grpc_subchannel_key* key, // compare/swap here to check that, and retry as necessary gpr_mu_lock(&g_mu); if (index.root == g_subchannel_index.root) { - GPR_SWAP(gpr_avl, updated, g_subchannel_index); + GPR_SWAP(grpc_avl, updated, g_subchannel_index); c = constructed; } gpr_mu_unlock(&g_mu); - gpr_avl_unref(updated, grpc_core::ExecCtx::Get()); + grpc_avl_unref(updated, grpc_core::ExecCtx::Get()); } - gpr_avl_unref(index, grpc_core::ExecCtx::Get()); + grpc_avl_unref(index, grpc_core::ExecCtx::Get()); } if (need_to_unref_constructed) { @@ -213,33 +213,33 @@ void grpc_subchannel_index_unregister(grpc_subchannel_key* key, // Compare and swap loop: // - take a reference to the current index gpr_mu_lock(&g_mu); - gpr_avl index = gpr_avl_ref(g_subchannel_index, grpc_core::ExecCtx::Get()); + grpc_avl index = grpc_avl_ref(g_subchannel_index, grpc_core::ExecCtx::Get()); gpr_mu_unlock(&g_mu); // Check to see if this key still refers to the previously // registered subchannel grpc_subchannel* c = - (grpc_subchannel*)gpr_avl_get(index, key, grpc_core::ExecCtx::Get()); + (grpc_subchannel*)grpc_avl_get(index, key, grpc_core::ExecCtx::Get()); if (c != constructed) { - gpr_avl_unref(index, grpc_core::ExecCtx::Get()); + grpc_avl_unref(index, grpc_core::ExecCtx::Get()); break; } // compare and swap the update (some other thread may have // mutated the index behind us) - gpr_avl updated = - gpr_avl_remove(gpr_avl_ref(index, grpc_core::ExecCtx::Get()), key, + grpc_avl updated = + grpc_avl_remove(grpc_avl_ref(index, grpc_core::ExecCtx::Get()), key, grpc_core::ExecCtx::Get()); gpr_mu_lock(&g_mu); if (index.root == g_subchannel_index.root) { - GPR_SWAP(gpr_avl, updated, g_subchannel_index); + GPR_SWAP(grpc_avl, updated, g_subchannel_index); done = true; } gpr_mu_unlock(&g_mu); - gpr_avl_unref(updated, grpc_core::ExecCtx::Get()); - gpr_avl_unref(index, grpc_core::ExecCtx::Get()); + grpc_avl_unref(updated, grpc_core::ExecCtx::Get()); + grpc_avl_unref(index, grpc_core::ExecCtx::Get()); } } diff --git a/src/core/lib/avl/avl.cc b/src/core/lib/avl/avl.cc new file mode 100644 index 0000000000..959d12fe3a --- /dev/null +++ b/src/core/lib/avl/avl.cc @@ -0,0 +1,301 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "src/core/lib/avl/avl.h" + +#include +#include + +#include +#include + +#include "src/core/lib/gpr/useful.h" + +grpc_avl grpc_avl_create(const grpc_avl_vtable* vtable) { + grpc_avl out; + out.vtable = vtable; + out.root = nullptr; + return out; +} + +static grpc_avl_node* ref_node(grpc_avl_node* node) { + if (node) { + gpr_ref(&node->refs); + } + return node; +} + +static void unref_node(const grpc_avl_vtable* vtable, grpc_avl_node* node, + void* user_data) { + if (node == nullptr) { + return; + } + if (gpr_unref(&node->refs)) { + vtable->destroy_key(node->key, user_data); + vtable->destroy_value(node->value, user_data); + unref_node(vtable, node->left, user_data); + unref_node(vtable, node->right, user_data); + gpr_free(node); + } +} + +static long node_height(grpc_avl_node* node) { + return node == nullptr ? 0 : node->height; +} + +#ifndef NDEBUG +static long calculate_height(grpc_avl_node* node) { + return node == nullptr ? 0 + : 1 + GPR_MAX(calculate_height(node->left), + calculate_height(node->right)); +} + +static grpc_avl_node* assert_invariants(grpc_avl_node* n) { + if (n == nullptr) return nullptr; + assert_invariants(n->left); + assert_invariants(n->right); + assert(calculate_height(n) == n->height); + assert(labs(node_height(n->left) - node_height(n->right)) <= 1); + return n; +} +#else +static grpc_avl_node* assert_invariants(grpc_avl_node* n) { return n; } +#endif + +grpc_avl_node* new_node(void* key, void* value, grpc_avl_node* left, + grpc_avl_node* right) { + grpc_avl_node* node = (grpc_avl_node*)gpr_malloc(sizeof(*node)); + gpr_ref_init(&node->refs, 1); + node->key = key; + node->value = value; + node->left = assert_invariants(left); + node->right = assert_invariants(right); + node->height = 1 + GPR_MAX(node_height(left), node_height(right)); + return node; +} + +static grpc_avl_node* get(const grpc_avl_vtable* vtable, grpc_avl_node* node, + void* key, void* user_data) { + long cmp; + + if (node == nullptr) { + return nullptr; + } + + cmp = vtable->compare_keys(node->key, key, user_data); + if (cmp == 0) { + return node; + } else if (cmp > 0) { + return get(vtable, node->left, key, user_data); + } else { + return get(vtable, node->right, key, user_data); + } +} + +void* grpc_avl_get(grpc_avl avl, void* key, void* user_data) { + grpc_avl_node* node = get(avl.vtable, avl.root, key, user_data); + return node ? node->value : nullptr; +} + +int grpc_avl_maybe_get(grpc_avl avl, void* key, void** value, void* user_data) { + grpc_avl_node* node = get(avl.vtable, avl.root, key, user_data); + if (node != nullptr) { + *value = node->value; + return 1; + } + return 0; +} + +static grpc_avl_node* rotate_left(const grpc_avl_vtable* vtable, void* key, + void* value, grpc_avl_node* left, + grpc_avl_node* right, void* user_data) { + grpc_avl_node* n = new_node(vtable->copy_key(right->key, user_data), + vtable->copy_value(right->value, user_data), + new_node(key, value, left, ref_node(right->left)), + ref_node(right->right)); + unref_node(vtable, right, user_data); + return n; +} + +static grpc_avl_node* rotate_right(const grpc_avl_vtable* vtable, void* key, + void* value, grpc_avl_node* left, + grpc_avl_node* right, void* user_data) { + grpc_avl_node* n = + new_node(vtable->copy_key(left->key, user_data), + vtable->copy_value(left->value, user_data), ref_node(left->left), + new_node(key, value, ref_node(left->right), right)); + unref_node(vtable, left, user_data); + return n; +} + +static grpc_avl_node* rotate_left_right(const grpc_avl_vtable* vtable, void* key, + void* value, grpc_avl_node* left, + grpc_avl_node* right, void* user_data) { + /* rotate_right(..., rotate_left(left), right) */ + grpc_avl_node* n = + new_node(vtable->copy_key(left->right->key, user_data), + vtable->copy_value(left->right->value, user_data), + new_node(vtable->copy_key(left->key, user_data), + vtable->copy_value(left->value, user_data), + ref_node(left->left), ref_node(left->right->left)), + new_node(key, value, ref_node(left->right->right), right)); + unref_node(vtable, left, user_data); + return n; +} + +static grpc_avl_node* rotate_right_left(const grpc_avl_vtable* vtable, void* key, + void* value, grpc_avl_node* left, + grpc_avl_node* right, void* user_data) { + /* rotate_left(..., left, rotate_right(right)) */ + grpc_avl_node* n = + new_node(vtable->copy_key(right->left->key, user_data), + vtable->copy_value(right->left->value, user_data), + new_node(key, value, left, ref_node(right->left->left)), + new_node(vtable->copy_key(right->key, user_data), + vtable->copy_value(right->value, user_data), + ref_node(right->left->right), ref_node(right->right))); + unref_node(vtable, right, user_data); + return n; +} + +static grpc_avl_node* rebalance(const grpc_avl_vtable* vtable, void* key, + void* value, grpc_avl_node* left, + grpc_avl_node* right, void* user_data) { + switch (node_height(left) - node_height(right)) { + case 2: + if (node_height(left->left) - node_height(left->right) == -1) { + return assert_invariants( + rotate_left_right(vtable, key, value, left, right, user_data)); + } else { + return assert_invariants( + rotate_right(vtable, key, value, left, right, user_data)); + } + case -2: + if (node_height(right->left) - node_height(right->right) == 1) { + return assert_invariants( + rotate_right_left(vtable, key, value, left, right, user_data)); + } else { + return assert_invariants( + rotate_left(vtable, key, value, left, right, user_data)); + } + default: + return assert_invariants(new_node(key, value, left, right)); + } +} + +static grpc_avl_node* add_key(const grpc_avl_vtable* vtable, grpc_avl_node* node, + void* key, void* value, void* user_data) { + long cmp; + if (node == nullptr) { + return new_node(key, value, nullptr, nullptr); + } + cmp = vtable->compare_keys(node->key, key, user_data); + if (cmp == 0) { + return new_node(key, value, ref_node(node->left), ref_node(node->right)); + } else if (cmp > 0) { + return rebalance(vtable, vtable->copy_key(node->key, user_data), + vtable->copy_value(node->value, user_data), + add_key(vtable, node->left, key, value, user_data), + ref_node(node->right), user_data); + } else { + return rebalance( + vtable, vtable->copy_key(node->key, user_data), + vtable->copy_value(node->value, user_data), ref_node(node->left), + add_key(vtable, node->right, key, value, user_data), user_data); + } +} + +grpc_avl grpc_avl_add(grpc_avl avl, void* key, void* value, void* user_data) { + grpc_avl_node* old_root = avl.root; + avl.root = add_key(avl.vtable, avl.root, key, value, user_data); + assert_invariants(avl.root); + unref_node(avl.vtable, old_root, user_data); + return avl; +} + +static grpc_avl_node* in_order_head(grpc_avl_node* node) { + while (node->left != nullptr) { + node = node->left; + } + return node; +} + +static grpc_avl_node* in_order_tail(grpc_avl_node* node) { + while (node->right != nullptr) { + node = node->right; + } + return node; +} + +static grpc_avl_node* remove_key(const grpc_avl_vtable* vtable, + grpc_avl_node* node, void* key, + void* user_data) { + long cmp; + if (node == nullptr) { + return nullptr; + } + cmp = vtable->compare_keys(node->key, key, user_data); + if (cmp == 0) { + if (node->left == nullptr) { + return ref_node(node->right); + } else if (node->right == nullptr) { + return ref_node(node->left); + } else if (node->left->height < node->right->height) { + grpc_avl_node* h = in_order_head(node->right); + return rebalance( + vtable, vtable->copy_key(h->key, user_data), + vtable->copy_value(h->value, user_data), ref_node(node->left), + remove_key(vtable, node->right, h->key, user_data), user_data); + } else { + grpc_avl_node* h = in_order_tail(node->left); + return rebalance(vtable, vtable->copy_key(h->key, user_data), + vtable->copy_value(h->value, user_data), + remove_key(vtable, node->left, h->key, user_data), + ref_node(node->right), user_data); + } + } else if (cmp > 0) { + return rebalance(vtable, vtable->copy_key(node->key, user_data), + vtable->copy_value(node->value, user_data), + remove_key(vtable, node->left, key, user_data), + ref_node(node->right), user_data); + } else { + return rebalance( + vtable, vtable->copy_key(node->key, user_data), + vtable->copy_value(node->value, user_data), ref_node(node->left), + remove_key(vtable, node->right, key, user_data), user_data); + } +} + +grpc_avl grpc_avl_remove(grpc_avl avl, void* key, void* user_data) { + grpc_avl_node* old_root = avl.root; + avl.root = remove_key(avl.vtable, avl.root, key, user_data); + assert_invariants(avl.root); + unref_node(avl.vtable, old_root, user_data); + return avl; +} + +grpc_avl grpc_avl_ref(grpc_avl avl, void* user_data) { + ref_node(avl.root); + return avl; +} + +void grpc_avl_unref(grpc_avl avl, void* user_data) { + unref_node(avl.vtable, avl.root, user_data); +} + +int grpc_avl_is_empty(grpc_avl avl) { return avl.root == nullptr; } diff --git a/src/core/lib/avl/avl.h b/src/core/lib/avl/avl.h new file mode 100644 index 0000000000..03d9bfd7bd --- /dev/null +++ b/src/core/lib/avl/avl.h @@ -0,0 +1,92 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef GRPC_CORE_LIB_GRPC_AVL_H +#define GRPC_CORE_LIB_GRPC_AVL_H + +#include + +/** internal node of an AVL tree */ +typedef struct grpc_avl_node { + gpr_refcount refs; + void* key; + void* value; + struct grpc_avl_node* left; + struct grpc_avl_node* right; + long height; +} grpc_avl_node; + +/** vtable for the AVL tree + * The optional user_data is propagated from the top level grpc_avl_XXX API. + * From the same API call, multiple vtable functions may be called multiple + * times. + */ +typedef struct grpc_avl_vtable { + /** destroy a key */ + void (*destroy_key)(void* key, void* user_data); + /** copy a key, returning new value */ + void* (*copy_key)(void* key, void* user_data); + /** compare key1, key2; return <0 if key1 < key2, + >0 if key1 > key2, 0 if key1 == key2 */ + long (*compare_keys)(void* key1, void* key2, void* user_data); + /** destroy a value */ + void (*destroy_value)(void* value, void* user_data); + /** copy a value */ + void* (*copy_value)(void* value, void* user_data); +} grpc_avl_vtable; + +/** "pointer" to an AVL tree - this is a reference + counted object - use grpc_avl_ref to add a reference, + grpc_avl_unref when done with a reference */ +typedef struct grpc_avl { + const grpc_avl_vtable* vtable; + grpc_avl_node* root; +} grpc_avl; + +/** Create an immutable AVL tree. */ +grpc_avl grpc_avl_create(const grpc_avl_vtable* vtable); +/** Add a reference to an existing tree - returns + the tree as a convenience. The optional user_data will be passed to vtable + functions. */ +grpc_avl grpc_avl_ref(grpc_avl avl, void* user_data); +/** Remove a reference to a tree - destroying it if there + are no references left. The optional user_data will be passed to vtable + functions. */ +void grpc_avl_unref(grpc_avl avl, void* user_data); +/** Return a new tree with (key, value) added to avl. + implicitly unrefs avl to allow easy chaining. + if key exists in avl, the new tree's key entry updated + (i.e. a duplicate is not created). The optional user_data will be passed to + vtable functions. */ +grpc_avl grpc_avl_add(grpc_avl avl, void* key, void* value, void* user_data); +/** Return a new tree with key deleted + implicitly unrefs avl to allow easy chaining. The optional user_data will be + passed to vtable functions. */ +grpc_avl grpc_avl_remove(grpc_avl avl, void* key, void* user_data); +/** Lookup key, and return the associated value. + Does not mutate avl. + Returns NULL if key is not found. The optional user_data will be passed to + vtable functions.*/ +void* grpc_avl_get(grpc_avl avl, void* key, void* user_data); +/** Return 1 if avl contains key, 0 otherwise; if it has the key, sets *value to + its value. The optional user_data will be passed to vtable functions. */ +int grpc_avl_maybe_get(grpc_avl avl, void* key, void** value, void* user_data); +/** Return 1 if avl is empty, 0 otherwise */ +int grpc_avl_is_empty(grpc_avl avl); + +#endif /* GRPC_CORE_LIB_GRPC_AVL_H */ diff --git a/src/core/lib/gpr/avl.cc b/src/core/lib/gpr/avl.cc deleted file mode 100644 index 9d3470fe0a..0000000000 --- a/src/core/lib/gpr/avl.cc +++ /dev/null @@ -1,301 +0,0 @@ -/* - * - * Copyright 2015 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "src/core/lib/gpr/avl.h" - -#include -#include - -#include -#include - -#include "src/core/lib/gpr/useful.h" - -gpr_avl gpr_avl_create(const gpr_avl_vtable* vtable) { - gpr_avl out; - out.vtable = vtable; - out.root = nullptr; - return out; -} - -static gpr_avl_node* ref_node(gpr_avl_node* node) { - if (node) { - gpr_ref(&node->refs); - } - return node; -} - -static void unref_node(const gpr_avl_vtable* vtable, gpr_avl_node* node, - void* user_data) { - if (node == nullptr) { - return; - } - if (gpr_unref(&node->refs)) { - vtable->destroy_key(node->key, user_data); - vtable->destroy_value(node->value, user_data); - unref_node(vtable, node->left, user_data); - unref_node(vtable, node->right, user_data); - gpr_free(node); - } -} - -static long node_height(gpr_avl_node* node) { - return node == nullptr ? 0 : node->height; -} - -#ifndef NDEBUG -static long calculate_height(gpr_avl_node* node) { - return node == nullptr ? 0 - : 1 + GPR_MAX(calculate_height(node->left), - calculate_height(node->right)); -} - -static gpr_avl_node* assert_invariants(gpr_avl_node* n) { - if (n == nullptr) return nullptr; - assert_invariants(n->left); - assert_invariants(n->right); - assert(calculate_height(n) == n->height); - assert(labs(node_height(n->left) - node_height(n->right)) <= 1); - return n; -} -#else -static gpr_avl_node* assert_invariants(gpr_avl_node* n) { return n; } -#endif - -gpr_avl_node* new_node(void* key, void* value, gpr_avl_node* left, - gpr_avl_node* right) { - gpr_avl_node* node = (gpr_avl_node*)gpr_malloc(sizeof(*node)); - gpr_ref_init(&node->refs, 1); - node->key = key; - node->value = value; - node->left = assert_invariants(left); - node->right = assert_invariants(right); - node->height = 1 + GPR_MAX(node_height(left), node_height(right)); - return node; -} - -static gpr_avl_node* get(const gpr_avl_vtable* vtable, gpr_avl_node* node, - void* key, void* user_data) { - long cmp; - - if (node == nullptr) { - return nullptr; - } - - cmp = vtable->compare_keys(node->key, key, user_data); - if (cmp == 0) { - return node; - } else if (cmp > 0) { - return get(vtable, node->left, key, user_data); - } else { - return get(vtable, node->right, key, user_data); - } -} - -void* gpr_avl_get(gpr_avl avl, void* key, void* user_data) { - gpr_avl_node* node = get(avl.vtable, avl.root, key, user_data); - return node ? node->value : nullptr; -} - -int gpr_avl_maybe_get(gpr_avl avl, void* key, void** value, void* user_data) { - gpr_avl_node* node = get(avl.vtable, avl.root, key, user_data); - if (node != nullptr) { - *value = node->value; - return 1; - } - return 0; -} - -static gpr_avl_node* rotate_left(const gpr_avl_vtable* vtable, void* key, - void* value, gpr_avl_node* left, - gpr_avl_node* right, void* user_data) { - gpr_avl_node* n = new_node(vtable->copy_key(right->key, user_data), - vtable->copy_value(right->value, user_data), - new_node(key, value, left, ref_node(right->left)), - ref_node(right->right)); - unref_node(vtable, right, user_data); - return n; -} - -static gpr_avl_node* rotate_right(const gpr_avl_vtable* vtable, void* key, - void* value, gpr_avl_node* left, - gpr_avl_node* right, void* user_data) { - gpr_avl_node* n = - new_node(vtable->copy_key(left->key, user_data), - vtable->copy_value(left->value, user_data), ref_node(left->left), - new_node(key, value, ref_node(left->right), right)); - unref_node(vtable, left, user_data); - return n; -} - -static gpr_avl_node* rotate_left_right(const gpr_avl_vtable* vtable, void* key, - void* value, gpr_avl_node* left, - gpr_avl_node* right, void* user_data) { - /* rotate_right(..., rotate_left(left), right) */ - gpr_avl_node* n = - new_node(vtable->copy_key(left->right->key, user_data), - vtable->copy_value(left->right->value, user_data), - new_node(vtable->copy_key(left->key, user_data), - vtable->copy_value(left->value, user_data), - ref_node(left->left), ref_node(left->right->left)), - new_node(key, value, ref_node(left->right->right), right)); - unref_node(vtable, left, user_data); - return n; -} - -static gpr_avl_node* rotate_right_left(const gpr_avl_vtable* vtable, void* key, - void* value, gpr_avl_node* left, - gpr_avl_node* right, void* user_data) { - /* rotate_left(..., left, rotate_right(right)) */ - gpr_avl_node* n = - new_node(vtable->copy_key(right->left->key, user_data), - vtable->copy_value(right->left->value, user_data), - new_node(key, value, left, ref_node(right->left->left)), - new_node(vtable->copy_key(right->key, user_data), - vtable->copy_value(right->value, user_data), - ref_node(right->left->right), ref_node(right->right))); - unref_node(vtable, right, user_data); - return n; -} - -static gpr_avl_node* rebalance(const gpr_avl_vtable* vtable, void* key, - void* value, gpr_avl_node* left, - gpr_avl_node* right, void* user_data) { - switch (node_height(left) - node_height(right)) { - case 2: - if (node_height(left->left) - node_height(left->right) == -1) { - return assert_invariants( - rotate_left_right(vtable, key, value, left, right, user_data)); - } else { - return assert_invariants( - rotate_right(vtable, key, value, left, right, user_data)); - } - case -2: - if (node_height(right->left) - node_height(right->right) == 1) { - return assert_invariants( - rotate_right_left(vtable, key, value, left, right, user_data)); - } else { - return assert_invariants( - rotate_left(vtable, key, value, left, right, user_data)); - } - default: - return assert_invariants(new_node(key, value, left, right)); - } -} - -static gpr_avl_node* add_key(const gpr_avl_vtable* vtable, gpr_avl_node* node, - void* key, void* value, void* user_data) { - long cmp; - if (node == nullptr) { - return new_node(key, value, nullptr, nullptr); - } - cmp = vtable->compare_keys(node->key, key, user_data); - if (cmp == 0) { - return new_node(key, value, ref_node(node->left), ref_node(node->right)); - } else if (cmp > 0) { - return rebalance(vtable, vtable->copy_key(node->key, user_data), - vtable->copy_value(node->value, user_data), - add_key(vtable, node->left, key, value, user_data), - ref_node(node->right), user_data); - } else { - return rebalance( - vtable, vtable->copy_key(node->key, user_data), - vtable->copy_value(node->value, user_data), ref_node(node->left), - add_key(vtable, node->right, key, value, user_data), user_data); - } -} - -gpr_avl gpr_avl_add(gpr_avl avl, void* key, void* value, void* user_data) { - gpr_avl_node* old_root = avl.root; - avl.root = add_key(avl.vtable, avl.root, key, value, user_data); - assert_invariants(avl.root); - unref_node(avl.vtable, old_root, user_data); - return avl; -} - -static gpr_avl_node* in_order_head(gpr_avl_node* node) { - while (node->left != nullptr) { - node = node->left; - } - return node; -} - -static gpr_avl_node* in_order_tail(gpr_avl_node* node) { - while (node->right != nullptr) { - node = node->right; - } - return node; -} - -static gpr_avl_node* remove_key(const gpr_avl_vtable* vtable, - gpr_avl_node* node, void* key, - void* user_data) { - long cmp; - if (node == nullptr) { - return nullptr; - } - cmp = vtable->compare_keys(node->key, key, user_data); - if (cmp == 0) { - if (node->left == nullptr) { - return ref_node(node->right); - } else if (node->right == nullptr) { - return ref_node(node->left); - } else if (node->left->height < node->right->height) { - gpr_avl_node* h = in_order_head(node->right); - return rebalance( - vtable, vtable->copy_key(h->key, user_data), - vtable->copy_value(h->value, user_data), ref_node(node->left), - remove_key(vtable, node->right, h->key, user_data), user_data); - } else { - gpr_avl_node* h = in_order_tail(node->left); - return rebalance(vtable, vtable->copy_key(h->key, user_data), - vtable->copy_value(h->value, user_data), - remove_key(vtable, node->left, h->key, user_data), - ref_node(node->right), user_data); - } - } else if (cmp > 0) { - return rebalance(vtable, vtable->copy_key(node->key, user_data), - vtable->copy_value(node->value, user_data), - remove_key(vtable, node->left, key, user_data), - ref_node(node->right), user_data); - } else { - return rebalance( - vtable, vtable->copy_key(node->key, user_data), - vtable->copy_value(node->value, user_data), ref_node(node->left), - remove_key(vtable, node->right, key, user_data), user_data); - } -} - -gpr_avl gpr_avl_remove(gpr_avl avl, void* key, void* user_data) { - gpr_avl_node* old_root = avl.root; - avl.root = remove_key(avl.vtable, avl.root, key, user_data); - assert_invariants(avl.root); - unref_node(avl.vtable, old_root, user_data); - return avl; -} - -gpr_avl gpr_avl_ref(gpr_avl avl, void* user_data) { - ref_node(avl.root); - return avl; -} - -void gpr_avl_unref(gpr_avl avl, void* user_data) { - unref_node(avl.vtable, avl.root, user_data); -} - -int gpr_avl_is_empty(gpr_avl avl) { return avl.root == nullptr; } diff --git a/src/core/lib/gpr/avl.h b/src/core/lib/gpr/avl.h deleted file mode 100644 index f3ab202bb7..0000000000 --- a/src/core/lib/gpr/avl.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * - * Copyright 2015 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef GRPC_CORE_LIB_GPR_AVL_H -#define GRPC_CORE_LIB_GPR_AVL_H - -#include - -/** internal node of an AVL tree */ -typedef struct gpr_avl_node { - gpr_refcount refs; - void* key; - void* value; - struct gpr_avl_node* left; - struct gpr_avl_node* right; - long height; -} gpr_avl_node; - -/** vtable for the AVL tree - * The optional user_data is propagated from the top level gpr_avl_XXX API. - * From the same API call, multiple vtable functions may be called multiple - * times. - */ -typedef struct gpr_avl_vtable { - /** destroy a key */ - void (*destroy_key)(void* key, void* user_data); - /** copy a key, returning new value */ - void* (*copy_key)(void* key, void* user_data); - /** compare key1, key2; return <0 if key1 < key2, - >0 if key1 > key2, 0 if key1 == key2 */ - long (*compare_keys)(void* key1, void* key2, void* user_data); - /** destroy a value */ - void (*destroy_value)(void* value, void* user_data); - /** copy a value */ - void* (*copy_value)(void* value, void* user_data); -} gpr_avl_vtable; - -/** "pointer" to an AVL tree - this is a reference - counted object - use gpr_avl_ref to add a reference, - gpr_avl_unref when done with a reference */ -typedef struct gpr_avl { - const gpr_avl_vtable* vtable; - gpr_avl_node* root; -} gpr_avl; - -/** Create an immutable AVL tree. */ -gpr_avl gpr_avl_create(const gpr_avl_vtable* vtable); -/** Add a reference to an existing tree - returns - the tree as a convenience. The optional user_data will be passed to vtable - functions. */ -gpr_avl gpr_avl_ref(gpr_avl avl, void* user_data); -/** Remove a reference to a tree - destroying it if there - are no references left. The optional user_data will be passed to vtable - functions. */ -void gpr_avl_unref(gpr_avl avl, void* user_data); -/** Return a new tree with (key, value) added to avl. - implicitly unrefs avl to allow easy chaining. - if key exists in avl, the new tree's key entry updated - (i.e. a duplicate is not created). The optional user_data will be passed to - vtable functions. */ -gpr_avl gpr_avl_add(gpr_avl avl, void* key, void* value, void* user_data); -/** Return a new tree with key deleted - implicitly unrefs avl to allow easy chaining. The optional user_data will be - passed to vtable functions. */ -gpr_avl gpr_avl_remove(gpr_avl avl, void* key, void* user_data); -/** Lookup key, and return the associated value. - Does not mutate avl. - Returns NULL if key is not found. The optional user_data will be passed to - vtable functions.*/ -void* gpr_avl_get(gpr_avl avl, void* key, void* user_data); -/** Return 1 if avl contains key, 0 otherwise; if it has the key, sets *value to - its value. The optional user_data will be passed to vtable functions. */ -int gpr_avl_maybe_get(gpr_avl avl, void* key, void** value, void* user_data); -/** Return 1 if avl is empty, 0 otherwise */ -int gpr_avl_is_empty(gpr_avl avl); - -#endif /* GRPC_CORE_LIB_GPR_AVL_H */ diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py index 83dd5df54b..10d4454d7a 100644 --- a/src/python/grpcio/grpc_core_dependencies.py +++ b/src/python/grpcio/grpc_core_dependencies.py @@ -18,7 +18,6 @@ CORE_SOURCE_FILES = [ 'src/core/lib/gpr/alloc.cc', 'src/core/lib/gpr/arena.cc', 'src/core/lib/gpr/atm.cc', - 'src/core/lib/gpr/avl.cc', 'src/core/lib/gpr/cmdline.cc', 'src/core/lib/gpr/cpu_iphone.cc', 'src/core/lib/gpr/cpu_linux.cc', @@ -60,6 +59,7 @@ CORE_SOURCE_FILES = [ 'src/core/lib/profiling/basic_timers.cc', 'src/core/lib/profiling/stap_timers.cc', 'src/core/lib/surface/init.cc', + 'src/core/lib/avl/avl.cc', 'src/core/lib/backoff/backoff.cc', 'src/core/lib/channel/channel_args.cc', 'src/core/lib/channel/channel_stack.cc', diff --git a/test/core/avl/BUILD b/test/core/avl/BUILD new file mode 100644 index 0000000000..ded009071c --- /dev/null +++ b/test/core/avl/BUILD @@ -0,0 +1,30 @@ +# Copyright 2018 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_test", "grpc_cc_binary", "grpc_package") + +licenses(["notice"]) # Apache v2 + +grpc_package(name = "test/core/avl") + +grpc_cc_test( + name = "avl_test", + srcs = ["avl_test.cc"], + language = "C++", + deps = [ + "//:gpr", + "//:grpc_base", + "//test/core/util:gpr_test_util", + ], +) diff --git a/test/core/avl/avl_test.cc b/test/core/avl/avl_test.cc new file mode 100644 index 0000000000..a290461599 --- /dev/null +++ b/test/core/avl/avl_test.cc @@ -0,0 +1,3659 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "src/core/lib/avl/avl.h" + +#include +#include + +#include +#include + +#include "src/core/lib/gpr/useful.h" +#include "test/core/util/test_config.h" + +static int* box(int x) { + int* b = static_cast(gpr_malloc(sizeof(*b))); + *b = x; + return b; +} + +static long int_compare(void* int1, void* int2, void* unused) { + return (*(int*)int1) - (*(int*)int2); +} +static void* int_copy(void* p, void* unused) { return box(*(int*)p); } + +static void destroy(void* p, void* unused) { gpr_free(p); } + +static const grpc_avl_vtable int_int_vtable = {destroy, int_copy, int_compare, + destroy, int_copy}; + +static void check_get(grpc_avl avl, int key, int value) { + int* k = box(key); + GPR_ASSERT(*(int*)grpc_avl_get(avl, k, nullptr) == value); + gpr_free(k); +} + +static void check_negget(grpc_avl avl, int key) { + int* k = box(key); + GPR_ASSERT(grpc_avl_get(avl, k, nullptr) == nullptr); + gpr_free(k); +} + +static grpc_avl remove_int(grpc_avl avl, int key) { + int* k = box(key); + avl = grpc_avl_remove(avl, k, nullptr); + gpr_free(k); + return avl; +} + +static void test_get(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_get"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(1), box(11), nullptr); + avl = grpc_avl_add(avl, box(2), box(22), nullptr); + avl = grpc_avl_add(avl, box(3), box(33), nullptr); + check_get(avl, 1, 11); + check_get(avl, 2, 22); + check_get(avl, 3, 33); + check_negget(avl, 4); + grpc_avl_unref(avl, nullptr); +} + +static void test_ll(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_ll"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(5), box(1), nullptr); + avl = grpc_avl_add(avl, box(4), box(2), nullptr); + avl = grpc_avl_add(avl, box(3), box(3), nullptr); + GPR_ASSERT(*(int*)avl.root->key == 4); + GPR_ASSERT(*(int*)avl.root->left->key == 3); + GPR_ASSERT(*(int*)avl.root->right->key == 5); + grpc_avl_unref(avl, nullptr); +} + +static void test_lr(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_lr"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(5), box(1), nullptr); + avl = grpc_avl_add(avl, box(3), box(2), nullptr); + avl = grpc_avl_add(avl, box(4), box(3), nullptr); + GPR_ASSERT(*(int*)avl.root->key == 4); + GPR_ASSERT(*(int*)avl.root->left->key == 3); + GPR_ASSERT(*(int*)avl.root->right->key == 5); + grpc_avl_unref(avl, nullptr); +} + +static void test_rr(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_rr"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(3), box(1), nullptr); + avl = grpc_avl_add(avl, box(4), box(2), nullptr); + avl = grpc_avl_add(avl, box(5), box(3), nullptr); + GPR_ASSERT(*(int*)avl.root->key == 4); + GPR_ASSERT(*(int*)avl.root->left->key == 3); + GPR_ASSERT(*(int*)avl.root->right->key == 5); + grpc_avl_unref(avl, nullptr); +} + +static void test_rl(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_rl"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(3), box(1), nullptr); + avl = grpc_avl_add(avl, box(5), box(2), nullptr); + avl = grpc_avl_add(avl, box(4), box(3), nullptr); + GPR_ASSERT(*(int*)avl.root->key == 4); + GPR_ASSERT(*(int*)avl.root->left->key == 3); + GPR_ASSERT(*(int*)avl.root->right->key == 5); + grpc_avl_unref(avl, nullptr); +} + +static void test_unbalanced(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_unbalanced"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(5), box(1), nullptr); + avl = grpc_avl_add(avl, box(4), box(2), nullptr); + avl = grpc_avl_add(avl, box(3), box(3), nullptr); + avl = grpc_avl_add(avl, box(2), box(4), nullptr); + avl = grpc_avl_add(avl, box(1), box(5), nullptr); + GPR_ASSERT(*(int*)avl.root->key == 4); + GPR_ASSERT(*(int*)avl.root->left->key == 2); + GPR_ASSERT(*(int*)avl.root->left->left->key == 1); + GPR_ASSERT(*(int*)avl.root->left->right->key == 3); + GPR_ASSERT(*(int*)avl.root->right->key == 5); + grpc_avl_unref(avl, nullptr); +} + +static void test_replace(void) { + grpc_avl avl; + gpr_log(GPR_DEBUG, "test_replace"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(1), box(1), nullptr); + avl = grpc_avl_add(avl, box(1), box(2), nullptr); + check_get(avl, 1, 2); + check_negget(avl, 2); + grpc_avl_unref(avl, nullptr); +} + +static void test_remove(void) { + grpc_avl avl; + grpc_avl avl3, avl4, avl5, avln; + gpr_log(GPR_DEBUG, "test_remove"); + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(3), box(1), nullptr); + avl = grpc_avl_add(avl, box(4), box(2), nullptr); + avl = grpc_avl_add(avl, box(5), box(3), nullptr); + + avl3 = remove_int(grpc_avl_ref(avl, nullptr), 3); + avl4 = remove_int(grpc_avl_ref(avl, nullptr), 4); + avl5 = remove_int(grpc_avl_ref(avl, nullptr), 5); + avln = remove_int(grpc_avl_ref(avl, nullptr), 1); + + grpc_avl_unref(avl, nullptr); + + check_negget(avl3, 3); + check_get(avl3, 4, 2); + check_get(avl3, 5, 3); + grpc_avl_unref(avl3, nullptr); + + check_get(avl4, 3, 1); + check_negget(avl4, 4); + check_get(avl4, 5, 3); + grpc_avl_unref(avl4, nullptr); + + check_get(avl5, 3, 1); + check_get(avl5, 4, 2); + check_negget(avl5, 5); + grpc_avl_unref(avl5, nullptr); + + check_get(avln, 3, 1); + check_get(avln, 4, 2); + check_get(avln, 5, 3); + grpc_avl_unref(avln, nullptr); +} + +static void test_badcase1(void) { + grpc_avl avl; + + gpr_log(GPR_DEBUG, "test_badcase1"); + + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(88), box(1), nullptr); + avl = remove_int(avl, 643); + avl = remove_int(avl, 983); + avl = grpc_avl_add(avl, box(985), box(4), nullptr); + avl = grpc_avl_add(avl, box(640), box(5), nullptr); + avl = grpc_avl_add(avl, box(41), box(6), nullptr); + avl = grpc_avl_add(avl, box(112), box(7), nullptr); + avl = grpc_avl_add(avl, box(342), box(8), nullptr); + avl = remove_int(avl, 1013); + avl = grpc_avl_add(avl, box(434), box(10), nullptr); + avl = grpc_avl_add(avl, box(520), box(11), nullptr); + avl = grpc_avl_add(avl, box(231), box(12), nullptr); + avl = grpc_avl_add(avl, box(852), box(13), nullptr); + avl = remove_int(avl, 461); + avl = grpc_avl_add(avl, box(108), box(15), nullptr); + avl = grpc_avl_add(avl, box(806), box(16), nullptr); + avl = grpc_avl_add(avl, box(827), box(17), nullptr); + avl = remove_int(avl, 796); + avl = grpc_avl_add(avl, box(340), box(19), nullptr); + avl = grpc_avl_add(avl, box(498), box(20), nullptr); + avl = grpc_avl_add(avl, box(203), box(21), nullptr); + avl = grpc_avl_add(avl, box(751), box(22), nullptr); + avl = grpc_avl_add(avl, box(150), box(23), nullptr); + avl = remove_int(avl, 237); + avl = grpc_avl_add(avl, box(830), box(25), nullptr); + avl = remove_int(avl, 1007); + avl = remove_int(avl, 394); + avl = grpc_avl_add(avl, box(65), box(28), nullptr); + avl = remove_int(avl, 904); + avl = remove_int(avl, 123); + avl = grpc_avl_add(avl, box(238), box(31), nullptr); + avl = grpc_avl_add(avl, box(184), box(32), nullptr); + avl = remove_int(avl, 331); + avl = grpc_avl_add(avl, box(827), box(34), nullptr); + + check_get(avl, 830, 25); + + grpc_avl_unref(avl, nullptr); +} + +static void test_badcase2(void) { + grpc_avl avl; + + gpr_log(GPR_DEBUG, "test_badcase2"); + + avl = grpc_avl_create(&int_int_vtable); + avl = grpc_avl_add(avl, box(288), box(1), nullptr); + avl = remove_int(avl, 415); + avl = grpc_avl_add(avl, box(953), box(3), nullptr); + avl = grpc_avl_add(avl, box(101), box(4), nullptr); + avl = grpc_avl_add(avl, box(516), box(5), nullptr); + avl = grpc_avl_add(avl, box(547), box(6), nullptr); + avl = grpc_avl_add(avl, box(467), box(7), nullptr); + avl = grpc_avl_add(avl, box(793), box(8), nullptr); + avl = remove_int(avl, 190); + avl = grpc_avl_add(avl, box(687), box(10), nullptr); + avl = grpc_avl_add(avl, box(242), box(11), nullptr); + avl = grpc_avl_add(avl, box(142), box(12), nullptr); + avl = remove_int(avl, 705); + avl = remove_int(avl, 578); + avl = remove_int(avl, 767); + avl = remove_int(avl, 183); + avl = grpc_avl_add(avl, box(950), box(17), nullptr); + avl = grpc_avl_add(avl, box(622), box(18), nullptr); + avl = remove_int(avl, 513); + avl = remove_int(avl, 429); + avl = grpc_avl_add(avl, box(205), box(21), nullptr); + avl = remove_int(avl, 663); + avl = remove_int(avl, 953); + avl = remove_int(avl, 892); + avl = grpc_avl_add(avl, box(236), box(25), nullptr); + avl = remove_int(avl, 982); + avl = remove_int(avl, 201); + avl = remove_int(avl, 684); + avl = grpc_avl_add(avl, box(572), box(29), nullptr); + avl = remove_int(avl, 817); + avl = grpc_avl_add(avl, box(970), box(31), nullptr); + avl = remove_int(avl, 347); + avl = remove_int(avl, 574); + avl = grpc_avl_add(avl, box(752), box(34), nullptr); + avl = grpc_avl_add(avl, box(670), box(35), nullptr); + avl = grpc_avl_add(avl, box(69), box(36), nullptr); + avl = remove_int(avl, 111); + avl = remove_int(avl, 523); + avl = grpc_avl_add(avl, box(141), box(39), nullptr); + avl = remove_int(avl, 159); + avl = grpc_avl_add(avl, box(947), box(41), nullptr); + avl = grpc_avl_add(avl, box(855), box(42), nullptr); + avl = remove_int(avl, 218); + avl = remove_int(avl, 6); + avl = grpc_avl_add(avl, box(753), box(45), nullptr); + avl = remove_int(avl, 82); + avl = remove_int(avl, 799); + avl = grpc_avl_add(avl, box(572), box(48), nullptr); + avl = remove_int(avl, 376); + avl = remove_int(avl, 413); + avl = grpc_avl_add(avl, box(458), box(51), nullptr); + avl = remove_int(avl, 897); + avl = grpc_avl_add(avl, box(191), box(53), nullptr); + avl = grpc_avl_add(avl, box(609), box(54), nullptr); + avl = remove_int(avl, 787); + avl = remove_int(avl, 710); + avl = remove_int(avl, 886); + avl = remove_int(avl, 835); + avl = remove_int(avl, 33); + avl = grpc_avl_add(avl, box(871), box(60), nullptr); + avl = remove_int(avl, 641); + avl = grpc_avl_add(avl, box(462), box(62), nullptr); + avl = remove_int(avl, 359); + avl = remove_int(avl, 767); + avl = grpc_avl_add(avl, box(310), box(65), nullptr); + avl = remove_int(avl, 757); + avl = remove_int(avl, 639); + avl = remove_int(avl, 314); + avl = grpc_avl_add(avl, box(2), box(69), nullptr); + avl = remove_int(avl, 138); + avl = grpc_avl_add(avl, box(669), box(71), nullptr); + avl = remove_int(avl, 477); + avl = grpc_avl_add(avl, box(366), box(73), nullptr); + avl = grpc_avl_add(avl, box(612), box(74), nullptr); + avl = grpc_avl_add(avl, box(106), box(75), nullptr); + avl = remove_int(avl, 161); + avl = grpc_avl_add(avl, box(388), box(77), nullptr); + avl = grpc_avl_add(avl, box(141), box(78), nullptr); + avl = remove_int(avl, 633); + avl = remove_int(avl, 459); + avl = grpc_avl_add(avl, box(40), box(81), nullptr); + avl = remove_int(avl, 689); + avl = grpc_avl_add(avl, box(823), box(83), nullptr); + avl = remove_int(avl, 485); + avl = grpc_avl_add(avl, box(903), box(85), nullptr); + avl = grpc_avl_add(avl, box(592), box(86), nullptr); + avl = remove_int(avl, 448); + avl = grpc_avl_add(avl, box(56), box(88), nullptr); + avl = remove_int(avl, 333); + avl = grpc_avl_add(avl, box(189), box(90), nullptr); + avl = grpc_avl_add(avl, box(103), box(91), nullptr); + avl = remove_int(avl, 164); + avl = remove_int(avl, 974); + avl = grpc_avl_add(avl, box(215), box(94), nullptr); + avl = remove_int(avl, 189); + avl = remove_int(avl, 504); + avl = grpc_avl_add(avl, box(868), box(97), nullptr); + avl = remove_int(avl, 909); + avl = remove_int(avl, 148); + avl = remove_int(avl, 469); + avl = grpc_avl_add(avl, box(994), box(101), nullptr); + avl = grpc_avl_add(avl, box(576), box(102), nullptr); + avl = remove_int(avl, 82); + avl = remove_int(avl, 209); + avl = grpc_avl_add(avl, box(276), box(105), nullptr); + avl = remove_int(avl, 856); + avl = grpc_avl_add(avl, box(750), box(107), nullptr); + avl = remove_int(avl, 871); + avl = grpc_avl_add(avl, box(301), box(109), nullptr); + avl = remove_int(avl, 260); + avl = remove_int(avl, 737); + avl = remove_int(avl, 719); + avl = grpc_avl_add(avl, box(933), box(113), nullptr); + avl = grpc_avl_add(avl, box(225), box(114), nullptr); + avl = grpc_avl_add(avl, box(975), box(115), nullptr); + avl = grpc_avl_add(avl, box(86), box(116), nullptr); + avl = remove_int(avl, 732); + avl = grpc_avl_add(avl, box(340), box(118), nullptr); + avl = grpc_avl_add(avl, box(271), box(119), nullptr); + avl = remove_int(avl, 206); + avl = grpc_avl_add(avl, box(949), box(121), nullptr); + avl = grpc_avl_add(avl, box(927), box(122), nullptr); + avl = grpc_avl_add(avl, box(34), box(123), nullptr); + avl = grpc_avl_add(avl, box(351), box(124), nullptr); + avl = remove_int(avl, 836); + avl = grpc_avl_add(avl, box(825), box(126), nullptr); + avl = grpc_avl_add(avl, box(352), box(127), nullptr); + avl = remove_int(avl, 107); + avl = remove_int(avl, 101); + avl = grpc_avl_add(avl, box(320), box(130), nullptr); + avl = grpc_avl_add(avl, box(3), box(131), nullptr); + avl = remove_int(avl, 998); + avl = remove_int(avl, 44); + avl = grpc_avl_add(avl, box(525), box(134), nullptr); + avl = grpc_avl_add(avl, box(864), box(135), nullptr); + avl = grpc_avl_add(avl, box(863), box(136), nullptr); + avl = remove_int(avl, 770); + avl = grpc_avl_add(avl, box(440), box(138), nullptr); + avl = remove_int(avl, 516); + avl = grpc_avl_add(avl, box(116), box(140), nullptr); + avl = remove_int(avl, 380); + avl = grpc_avl_add(avl, box(878), box(142), nullptr); + avl = remove_int(avl, 439); + avl = grpc_avl_add(avl, box(994), box(144), nullptr); + avl = remove_int(avl, 294); + avl = remove_int(avl, 593); + avl = grpc_avl_add(avl, box(696), box(147), nullptr); + avl = remove_int(avl, 8); + avl = grpc_avl_add(avl, box(881), box(149), nullptr); + avl = remove_int(avl, 32); + avl = remove_int(avl, 242); + avl = grpc_avl_add(avl, box(487), box(152), nullptr); + avl = grpc_avl_add(avl, box(637), box(153), nullptr); + avl = grpc_avl_add(avl, box(793), box(154), nullptr); + avl = grpc_avl_add(avl, box(696), box(155), nullptr); + avl = remove_int(avl, 458); + avl = grpc_avl_add(avl, box(828), box(157), nullptr); + avl = remove_int(avl, 784); + avl = remove_int(avl, 274); + avl = grpc_avl_add(avl, box(783), box(160), nullptr); + avl = remove_int(avl, 21); + avl = grpc_avl_add(avl, box(866), box(162), nullptr); + avl = remove_int(avl, 919); + avl = grpc_avl_add(avl, box(435), box(164), nullptr); + avl = remove_int(avl, 385); + avl = grpc_avl_add(avl, box(475), box(166), nullptr); + avl = remove_int(avl, 339); + avl = grpc_avl_add(avl, box(615), box(168), nullptr); + avl = remove_int(avl, 866); + avl = remove_int(avl, 82); + avl = remove_int(avl, 271); + avl = grpc_avl_add(avl, box(590), box(172), nullptr); + avl = grpc_avl_add(avl, box(852), box(173), nullptr); + avl = remove_int(avl, 318); + avl = remove_int(avl, 82); + avl = grpc_avl_add(avl, box(672), box(176), nullptr); + avl = remove_int(avl, 430); + avl = grpc_avl_add(avl, box(821), box(178), nullptr); + avl = grpc_avl_add(avl, box(365), box(179), nullptr); + avl = remove_int(avl, 78); + avl = grpc_avl_add(avl, box(700), box(181), nullptr); + avl = grpc_avl_add(avl, box(353), box(182), nullptr); + avl = remove_int(avl, 492); + avl = grpc_avl_add(avl, box(991), box(184), nullptr); + avl = remove_int(avl, 330); + avl = grpc_avl_add(avl, box(873), box(186), nullptr); + avl = remove_int(avl, 589); + avl = grpc_avl_add(avl, box(676), box(188), nullptr); + avl = grpc_avl_add(avl, box(790), box(189), nullptr); + avl = remove_int(avl, 521); + avl = remove_int(avl, 47); + avl = grpc_avl_add(avl, box(976), box(192), nullptr); + avl = grpc_avl_add(avl, box(683), box(193), nullptr); + avl = remove_int(avl, 803); + avl = remove_int(avl, 1006); + avl = grpc_avl_add(avl, box(775), box(196), nullptr); + avl = grpc_avl_add(avl, box(411), box(197), nullptr); + avl = grpc_avl_add(avl, box(697), box(198), nullptr); + avl = remove_int(avl, 50); + avl = grpc_avl_add(avl, box(213), box(200), nullptr); + avl = remove_int(avl, 714); + avl = grpc_avl_add(avl, box(981), box(202), nullptr); + avl = grpc_avl_add(avl, box(502), box(203), nullptr); + avl = grpc_avl_add(avl, box(697), box(204), nullptr); + avl = grpc_avl_add(avl, box(603), box(205), nullptr); + avl = grpc_avl_add(avl, box(117), box(206), nullptr); + avl = remove_int(avl, 363); + avl = grpc_avl_add(avl, box(104), box(208), nullptr); + avl = remove_int(avl, 842); + avl = grpc_avl_add(avl, box(48), box(210), nullptr); + avl = remove_int(avl, 764); + avl = grpc_avl_add(avl, box(482), box(212), nullptr); + avl = grpc_avl_add(avl, box(928), box(213), nullptr); + avl = grpc_avl_add(avl, box(30), box(214), nullptr); + avl = grpc_avl_add(avl, box(820), box(215), nullptr); + avl = grpc_avl_add(avl, box(334), box(216), nullptr); + avl = remove_int(avl, 306); + avl = grpc_avl_add(avl, box(789), box(218), nullptr); + avl = remove_int(avl, 924); + avl = grpc_avl_add(avl, box(53), box(220), nullptr); + avl = remove_int(avl, 657); + avl = grpc_avl_add(avl, box(130), box(222), nullptr); + avl = grpc_avl_add(avl, box(239), box(223), nullptr); + avl = remove_int(avl, 20); + avl = grpc_avl_add(avl, box(117), box(225), nullptr); + avl = remove_int(avl, 882); + avl = remove_int(avl, 891); + avl = grpc_avl_add(avl, box(9), box(228), nullptr); + avl = grpc_avl_add(avl, box(496), box(229), nullptr); + avl = grpc_avl_add(avl, box(750), box(230), nullptr); + avl = grpc_avl_add(avl, box(283), box(231), nullptr); + avl = grpc_avl_add(avl, box(802), box(232), nullptr); + avl = remove_int(avl, 352); + avl = grpc_avl_add(avl, box(374), box(234), nullptr); + avl = grpc_avl_add(avl, box(6), box(235), nullptr); + avl = grpc_avl_add(avl, box(756), box(236), nullptr); + avl = grpc_avl_add(avl, box(597), box(237), nullptr); + avl = grpc_avl_add(avl, box(661), box(238), nullptr); + avl = remove_int(avl, 96); + avl = grpc_avl_add(avl, box(894), box(240), nullptr); + avl = remove_int(avl, 749); + avl = grpc_avl_add(avl, box(71), box(242), nullptr); + avl = remove_int(avl, 68); + avl = grpc_avl_add(avl, box(388), box(244), nullptr); + avl = remove_int(avl, 119); + avl = remove_int(avl, 856); + avl = grpc_avl_add(avl, box(176), box(247), nullptr); + avl = grpc_avl_add(avl, box(993), box(248), nullptr); + avl = remove_int(avl, 178); + avl = remove_int(avl, 781); + avl = remove_int(avl, 771); + avl = remove_int(avl, 848); + avl = remove_int(avl, 376); + avl = remove_int(avl, 157); + avl = remove_int(avl, 142); + avl = remove_int(avl, 686); + avl = grpc_avl_add(avl, box(779), box(257), nullptr); + avl = grpc_avl_add(avl, box(484), box(258), nullptr); + avl = remove_int(avl, 837); + avl = grpc_avl_add(avl, box(388), box(260), nullptr); + avl = remove_int(avl, 987); + avl = grpc_avl_add(avl, box(336), box(262), nullptr); + avl = remove_int(avl, 855); + avl = grpc_avl_add(avl, box(668), box(264), nullptr); + avl = remove_int(avl, 648); + avl = grpc_avl_add(avl, box(193), box(266), nullptr); + avl = remove_int(avl, 939); + avl = grpc_avl_add(avl, box(740), box(268), nullptr); + avl = grpc_avl_add(avl, box(503), box(269), nullptr); + avl = grpc_avl_add(avl, box(765), box(270), nullptr); + avl = remove_int(avl, 924); + avl = remove_int(avl, 513); + avl = grpc_avl_add(avl, box(161), box(273), nullptr); + avl = grpc_avl_add(avl, box(502), box(274), nullptr); + avl = grpc_avl_add(avl, box(846), box(275), nullptr); + avl = remove_int(avl, 931); + avl = grpc_avl_add(avl, box(87), box(277), nullptr); + avl = grpc_avl_add(avl, box(949), box(278), nullptr); + avl = grpc_avl_add(avl, box(548), box(279), nullptr); + avl = grpc_avl_add(avl, box(951), box(280), nullptr); + avl = remove_int(avl, 1018); + avl = remove_int(avl, 568); + avl = grpc_avl_add(avl, box(138), box(283), nullptr); + avl = grpc_avl_add(avl, box(202), box(284), nullptr); + avl = grpc_avl_add(avl, box(157), box(285), nullptr); + avl = grpc_avl_add(avl, box(264), box(286), nullptr); + avl = grpc_avl_add(avl, box(370), box(287), nullptr); + avl = remove_int(avl, 736); + avl = remove_int(avl, 751); + avl = remove_int(avl, 506); + avl = remove_int(avl, 81); + avl = remove_int(avl, 358); + avl = remove_int(avl, 657); + avl = remove_int(avl, 86); + avl = grpc_avl_add(avl, box(876), box(295), nullptr); + avl = remove_int(avl, 354); + avl = grpc_avl_add(avl, box(134), box(297), nullptr); + avl = remove_int(avl, 781); + avl = remove_int(avl, 183); + avl = grpc_avl_add(avl, box(914), box(300), nullptr); + avl = remove_int(avl, 926); + avl = remove_int(avl, 398); + avl = remove_int(avl, 932); + avl = remove_int(avl, 804); + avl = remove_int(avl, 326); + avl = grpc_avl_add(avl, box(208), box(306), nullptr); + avl = grpc_avl_add(avl, box(699), box(307), nullptr); + avl = remove_int(avl, 576); + avl = remove_int(avl, 850); + avl = remove_int(avl, 514); + avl = remove_int(avl, 676); + avl = remove_int(avl, 549); + avl = remove_int(avl, 767); + avl = grpc_avl_add(avl, box(58), box(314), nullptr); + avl = grpc_avl_add(avl, box(265), box(315), nullptr); + avl = grpc_avl_add(avl, box(268), box(316), nullptr); + avl = grpc_avl_add(avl, box(103), box(317), nullptr); + avl = grpc_avl_add(avl, box(440), box(318), nullptr); + avl = remove_int(avl, 777); + avl = grpc_avl_add(avl, box(670), box(320), nullptr); + avl = remove_int(avl, 506); + avl = remove_int(avl, 487); + avl = grpc_avl_add(avl, box(421), box(323), nullptr); + avl = remove_int(avl, 514); + avl = grpc_avl_add(avl, box(701), box(325), nullptr); + avl = remove_int(avl, 949); + avl = remove_int(avl, 872); + avl = remove_int(avl, 139); + avl = grpc_avl_add(avl, box(781), box(329), nullptr); + avl = grpc_avl_add(avl, box(543), box(330), nullptr); + avl = grpc_avl_add(avl, box(147), box(331), nullptr); + avl = remove_int(avl, 190); + avl = grpc_avl_add(avl, box(453), box(333), nullptr); + avl = remove_int(avl, 262); + avl = remove_int(avl, 850); + avl = remove_int(avl, 286); + avl = remove_int(avl, 787); + avl = grpc_avl_add(avl, box(514), box(338), nullptr); + avl = remove_int(avl, 812); + avl = grpc_avl_add(avl, box(431), box(340), nullptr); + avl = grpc_avl_add(avl, box(8), box(341), nullptr); + avl = remove_int(avl, 843); + avl = grpc_avl_add(avl, box(831), box(343), nullptr); + avl = remove_int(avl, 472); + avl = remove_int(avl, 157); + avl = grpc_avl_add(avl, box(612), box(346), nullptr); + avl = grpc_avl_add(avl, box(802), box(347), nullptr); + avl = remove_int(avl, 554); + avl = grpc_avl_add(avl, box(409), box(349), nullptr); + avl = grpc_avl_add(avl, box(439), box(350), nullptr); + avl = grpc_avl_add(avl, box(725), box(351), nullptr); + avl = grpc_avl_add(avl, box(568), box(352), nullptr); + avl = remove_int(avl, 475); + avl = remove_int(avl, 672); + avl = remove_int(avl, 62); + avl = remove_int(avl, 753); + avl = grpc_avl_add(avl, box(435), box(357), nullptr); + avl = grpc_avl_add(avl, box(950), box(358), nullptr); + avl = grpc_avl_add(avl, box(532), box(359), nullptr); + avl = grpc_avl_add(avl, box(832), box(360), nullptr); + avl = remove_int(avl, 390); + avl = grpc_avl_add(avl, box(993), box(362), nullptr); + avl = remove_int(avl, 198); + avl = remove_int(avl, 401); + avl = grpc_avl_add(avl, box(316), box(365), nullptr); + avl = remove_int(avl, 843); + avl = grpc_avl_add(avl, box(541), box(367), nullptr); + avl = grpc_avl_add(avl, box(505), box(368), nullptr); + avl = remove_int(avl, 445); + avl = remove_int(avl, 256); + avl = grpc_avl_add(avl, box(232), box(371), nullptr); + avl = remove_int(avl, 577); + avl = remove_int(avl, 558); + avl = grpc_avl_add(avl, box(910), box(374), nullptr); + avl = remove_int(avl, 902); + avl = remove_int(avl, 755); + avl = remove_int(avl, 114); + avl = remove_int(avl, 438); + avl = remove_int(avl, 224); + avl = grpc_avl_add(avl, box(920), box(380), nullptr); + avl = grpc_avl_add(avl, box(655), box(381), nullptr); + avl = remove_int(avl, 557); + avl = remove_int(avl, 102); + avl = remove_int(avl, 165); + avl = grpc_avl_add(avl, box(191), box(385), nullptr); + avl = remove_int(avl, 30); + avl = grpc_avl_add(avl, box(406), box(387), nullptr); + avl = grpc_avl_add(avl, box(66), box(388), nullptr); + avl = grpc_avl_add(avl, box(87), box(389), nullptr); + avl = remove_int(avl, 7); + avl = remove_int(avl, 671); + avl = grpc_avl_add(avl, box(234), box(392), nullptr); + avl = remove_int(avl, 463); + avl = grpc_avl_add(avl, box(75), box(394), nullptr); + avl = grpc_avl_add(avl, box(487), box(395), nullptr); + avl = remove_int(avl, 203); + avl = grpc_avl_add(avl, box(711), box(397), nullptr); + avl = remove_int(avl, 291); + avl = remove_int(avl, 798); + avl = remove_int(avl, 337); + avl = grpc_avl_add(avl, box(877), box(401), nullptr); + avl = grpc_avl_add(avl, box(388), box(402), nullptr); + avl = remove_int(avl, 975); + avl = grpc_avl_add(avl, box(200), box(404), nullptr); + avl = grpc_avl_add(avl, box(408), box(405), nullptr); + avl = grpc_avl_add(avl, box(3), box(406), nullptr); + avl = grpc_avl_add(avl, box(971), box(407), nullptr); + avl = remove_int(avl, 841); + avl = remove_int(avl, 910); + avl = remove_int(avl, 74); + avl = remove_int(avl, 888); + avl = grpc_avl_add(avl, box(492), box(412), nullptr); + avl = remove_int(avl, 14); + avl = remove_int(avl, 364); + avl = grpc_avl_add(avl, box(215), box(415), nullptr); + avl = remove_int(avl, 778); + avl = remove_int(avl, 45); + avl = grpc_avl_add(avl, box(328), box(418), nullptr); + avl = grpc_avl_add(avl, box(597), box(419), nullptr); + avl = remove_int(avl, 34); + avl = grpc_avl_add(avl, box(736), box(421), nullptr); + avl = remove_int(avl, 37); + avl = grpc_avl_add(avl, box(275), box(423), nullptr); + avl = grpc_avl_add(avl, box(70), box(424), nullptr); + avl = grpc_avl_add(avl, box(771), box(425), nullptr); + avl = remove_int(avl, 536); + avl = remove_int(avl, 421); + avl = grpc_avl_add(avl, box(186), box(428), nullptr); + avl = grpc_avl_add(avl, box(788), box(429), nullptr); + avl = grpc_avl_add(avl, box(224), box(430), nullptr); + avl = remove_int(avl, 228); + avl = grpc_avl_add(avl, box(48), box(432), nullptr); + avl = grpc_avl_add(avl, box(120), box(433), nullptr); + avl = grpc_avl_add(avl, box(269), box(434), nullptr); + avl = grpc_avl_add(avl, box(904), box(435), nullptr); + avl = remove_int(avl, 699); + avl = grpc_avl_add(avl, box(340), box(437), nullptr); + avl = remove_int(avl, 276); + avl = grpc_avl_add(avl, box(591), box(439), nullptr); + avl = grpc_avl_add(avl, box(778), box(440), nullptr); + avl = remove_int(avl, 490); + avl = remove_int(avl, 973); + avl = grpc_avl_add(avl, box(294), box(443), nullptr); + avl = grpc_avl_add(avl, box(323), box(444), nullptr); + avl = remove_int(avl, 685); + avl = grpc_avl_add(avl, box(38), box(446), nullptr); + avl = grpc_avl_add(avl, box(525), box(447), nullptr); + avl = remove_int(avl, 162); + avl = grpc_avl_add(avl, box(462), box(449), nullptr); + avl = grpc_avl_add(avl, box(340), box(450), nullptr); + avl = remove_int(avl, 734); + avl = remove_int(avl, 959); + avl = grpc_avl_add(avl, box(752), box(453), nullptr); + avl = grpc_avl_add(avl, box(667), box(454), nullptr); + avl = remove_int(avl, 558); + avl = remove_int(avl, 657); + avl = grpc_avl_add(avl, box(711), box(457), nullptr); + avl = remove_int(avl, 937); + avl = grpc_avl_add(avl, box(741), box(459), nullptr); + avl = grpc_avl_add(avl, box(40), box(460), nullptr); + avl = remove_int(avl, 784); + avl = grpc_avl_add(avl, box(292), box(462), nullptr); + avl = remove_int(avl, 164); + avl = remove_int(avl, 931); + avl = remove_int(avl, 886); + avl = grpc_avl_add(avl, box(968), box(466), nullptr); + avl = remove_int(avl, 263); + avl = grpc_avl_add(avl, box(647), box(468), nullptr); + avl = grpc_avl_add(avl, box(92), box(469), nullptr); + avl = remove_int(avl, 310); + avl = grpc_avl_add(avl, box(711), box(471), nullptr); + avl = grpc_avl_add(avl, box(675), box(472), nullptr); + avl = remove_int(avl, 549); + avl = grpc_avl_add(avl, box(380), box(474), nullptr); + avl = remove_int(avl, 825); + avl = grpc_avl_add(avl, box(668), box(476), nullptr); + avl = remove_int(avl, 498); + avl = grpc_avl_add(avl, box(870), box(478), nullptr); + avl = grpc_avl_add(avl, box(391), box(479), nullptr); + avl = grpc_avl_add(avl, box(264), box(480), nullptr); + avl = remove_int(avl, 1); + avl = remove_int(avl, 849); + avl = remove_int(avl, 88); + avl = remove_int(avl, 255); + avl = remove_int(avl, 763); + avl = remove_int(avl, 831); + avl = grpc_avl_add(avl, box(508), box(487), nullptr); + avl = remove_int(avl, 849); + avl = remove_int(avl, 47); + avl = grpc_avl_add(avl, box(299), box(490), nullptr); + avl = remove_int(avl, 625); + avl = remove_int(avl, 433); + avl = remove_int(avl, 904); + avl = remove_int(avl, 761); + avl = grpc_avl_add(avl, box(33), box(495), nullptr); + avl = grpc_avl_add(avl, box(524), box(496), nullptr); + avl = remove_int(avl, 210); + avl = remove_int(avl, 299); + avl = grpc_avl_add(avl, box(823), box(499), nullptr); + avl = remove_int(avl, 479); + avl = remove_int(avl, 96); + avl = remove_int(avl, 1013); + avl = grpc_avl_add(avl, box(768), box(503), nullptr); + avl = remove_int(avl, 638); + avl = remove_int(avl, 20); + avl = grpc_avl_add(avl, box(663), box(506), nullptr); + avl = remove_int(avl, 882); + avl = grpc_avl_add(avl, box(745), box(508), nullptr); + avl = remove_int(avl, 352); + avl = grpc_avl_add(avl, box(10), box(510), nullptr); + avl = remove_int(avl, 484); + avl = grpc_avl_add(avl, box(420), box(512), nullptr); + avl = grpc_avl_add(avl, box(884), box(513), nullptr); + avl = grpc_avl_add(avl, box(993), box(514), nullptr); + avl = grpc_avl_add(avl, box(251), box(515), nullptr); + avl = remove_int(avl, 222); + avl = grpc_avl_add(avl, box(734), box(517), nullptr); + avl = grpc_avl_add(avl, box(952), box(518), nullptr); + avl = remove_int(avl, 26); + avl = remove_int(avl, 270); + avl = remove_int(avl, 481); + avl = remove_int(avl, 693); + avl = remove_int(avl, 1006); + avl = grpc_avl_add(avl, box(77), box(524), nullptr); + avl = remove_int(avl, 897); + avl = grpc_avl_add(avl, box(719), box(526), nullptr); + avl = grpc_avl_add(avl, box(622), box(527), nullptr); + avl = remove_int(avl, 28); + avl = remove_int(avl, 836); + avl = remove_int(avl, 142); + avl = grpc_avl_add(avl, box(445), box(531), nullptr); + avl = grpc_avl_add(avl, box(410), box(532), nullptr); + avl = remove_int(avl, 575); + avl = grpc_avl_add(avl, box(634), box(534), nullptr); + avl = grpc_avl_add(avl, box(906), box(535), nullptr); + avl = remove_int(avl, 649); + avl = grpc_avl_add(avl, box(813), box(537), nullptr); + avl = remove_int(avl, 702); + avl = remove_int(avl, 732); + avl = grpc_avl_add(avl, box(105), box(540), nullptr); + avl = grpc_avl_add(avl, box(867), box(541), nullptr); + avl = remove_int(avl, 964); + avl = remove_int(avl, 941); + avl = grpc_avl_add(avl, box(947), box(544), nullptr); + avl = remove_int(avl, 990); + avl = grpc_avl_add(avl, box(816), box(546), nullptr); + avl = remove_int(avl, 429); + avl = remove_int(avl, 567); + avl = remove_int(avl, 541); + avl = remove_int(avl, 583); + avl = grpc_avl_add(avl, box(57), box(551), nullptr); + avl = grpc_avl_add(avl, box(786), box(552), nullptr); + avl = grpc_avl_add(avl, box(526), box(553), nullptr); + avl = remove_int(avl, 642); + avl = remove_int(avl, 220); + avl = remove_int(avl, 840); + avl = remove_int(avl, 548); + avl = grpc_avl_add(avl, box(528), box(558), nullptr); + avl = grpc_avl_add(avl, box(749), box(559), nullptr); + avl = grpc_avl_add(avl, box(194), box(560), nullptr); + avl = remove_int(avl, 517); + avl = grpc_avl_add(avl, box(102), box(562), nullptr); + avl = remove_int(avl, 189); + avl = grpc_avl_add(avl, box(927), box(564), nullptr); + avl = remove_int(avl, 846); + avl = remove_int(avl, 130); + avl = grpc_avl_add(avl, box(694), box(567), nullptr); + avl = remove_int(avl, 750); + avl = grpc_avl_add(avl, box(357), box(569), nullptr); + avl = remove_int(avl, 431); + avl = remove_int(avl, 91); + avl = grpc_avl_add(avl, box(640), box(572), nullptr); + avl = remove_int(avl, 4); + avl = grpc_avl_add(avl, box(81), box(574), nullptr); + avl = grpc_avl_add(avl, box(595), box(575), nullptr); + avl = remove_int(avl, 444); + avl = remove_int(avl, 262); + avl = remove_int(avl, 11); + avl = grpc_avl_add(avl, box(192), box(579), nullptr); + avl = grpc_avl_add(avl, box(158), box(580), nullptr); + avl = remove_int(avl, 401); + avl = remove_int(avl, 918); + avl = grpc_avl_add(avl, box(180), box(583), nullptr); + avl = remove_int(avl, 268); + avl = grpc_avl_add(avl, box(1012), box(585), nullptr); + avl = grpc_avl_add(avl, box(90), box(586), nullptr); + avl = grpc_avl_add(avl, box(946), box(587), nullptr); + avl = remove_int(avl, 719); + avl = grpc_avl_add(avl, box(874), box(589), nullptr); + avl = grpc_avl_add(avl, box(679), box(590), nullptr); + avl = remove_int(avl, 53); + avl = remove_int(avl, 534); + avl = grpc_avl_add(avl, box(646), box(593), nullptr); + avl = grpc_avl_add(avl, box(767), box(594), nullptr); + avl = grpc_avl_add(avl, box(460), box(595), nullptr); + avl = grpc_avl_add(avl, box(852), box(596), nullptr); + avl = grpc_avl_add(avl, box(189), box(597), nullptr); + avl = remove_int(avl, 932); + avl = remove_int(avl, 366); + avl = remove_int(avl, 907); + avl = grpc_avl_add(avl, box(875), box(601), nullptr); + avl = grpc_avl_add(avl, box(434), box(602), nullptr); + avl = grpc_avl_add(avl, box(704), box(603), nullptr); + avl = grpc_avl_add(avl, box(724), box(604), nullptr); + avl = grpc_avl_add(avl, box(930), box(605), nullptr); + avl = grpc_avl_add(avl, box(1000), box(606), nullptr); + avl = remove_int(avl, 479); + avl = grpc_avl_add(avl, box(275), box(608), nullptr); + avl = remove_int(avl, 32); + avl = grpc_avl_add(avl, box(939), box(610), nullptr); + avl = remove_int(avl, 943); + avl = remove_int(avl, 329); + avl = grpc_avl_add(avl, box(490), box(613), nullptr); + avl = remove_int(avl, 477); + avl = remove_int(avl, 414); + avl = remove_int(avl, 187); + avl = remove_int(avl, 334); + avl = grpc_avl_add(avl, box(40), box(618), nullptr); + avl = remove_int(avl, 751); + avl = grpc_avl_add(avl, box(568), box(620), nullptr); + avl = grpc_avl_add(avl, box(120), box(621), nullptr); + avl = grpc_avl_add(avl, box(617), box(622), nullptr); + avl = grpc_avl_add(avl, box(32), box(623), nullptr); + avl = remove_int(avl, 701); + avl = grpc_avl_add(avl, box(910), box(625), nullptr); + avl = remove_int(avl, 557); + avl = remove_int(avl, 361); + avl = remove_int(avl, 937); + avl = remove_int(avl, 100); + avl = remove_int(avl, 684); + avl = grpc_avl_add(avl, box(751), box(631), nullptr); + avl = remove_int(avl, 781); + avl = remove_int(avl, 469); + avl = remove_int(avl, 75); + avl = remove_int(avl, 561); + avl = grpc_avl_add(avl, box(854), box(636), nullptr); + avl = remove_int(avl, 164); + avl = remove_int(avl, 258); + avl = remove_int(avl, 315); + avl = remove_int(avl, 261); + avl = grpc_avl_add(avl, box(552), box(641), nullptr); + avl = grpc_avl_add(avl, box(6), box(642), nullptr); + avl = grpc_avl_add(avl, box(680), box(643), nullptr); + avl = remove_int(avl, 741); + avl = remove_int(avl, 309); + avl = remove_int(avl, 272); + avl = grpc_avl_add(avl, box(249), box(647), nullptr); + avl = remove_int(avl, 97); + avl = remove_int(avl, 850); + avl = grpc_avl_add(avl, box(915), box(650), nullptr); + avl = grpc_avl_add(avl, box(816), box(651), nullptr); + avl = grpc_avl_add(avl, box(45), box(652), nullptr); + avl = grpc_avl_add(avl, box(168), box(653), nullptr); + avl = remove_int(avl, 153); + avl = remove_int(avl, 239); + avl = grpc_avl_add(avl, box(684), box(656), nullptr); + avl = grpc_avl_add(avl, box(208), box(657), nullptr); + avl = grpc_avl_add(avl, box(681), box(658), nullptr); + avl = grpc_avl_add(avl, box(609), box(659), nullptr); + avl = grpc_avl_add(avl, box(645), box(660), nullptr); + avl = remove_int(avl, 799); + avl = grpc_avl_add(avl, box(955), box(662), nullptr); + avl = grpc_avl_add(avl, box(946), box(663), nullptr); + avl = grpc_avl_add(avl, box(744), box(664), nullptr); + avl = grpc_avl_add(avl, box(201), box(665), nullptr); + avl = grpc_avl_add(avl, box(136), box(666), nullptr); + avl = remove_int(avl, 357); + avl = grpc_avl_add(avl, box(974), box(668), nullptr); + avl = remove_int(avl, 485); + avl = grpc_avl_add(avl, box(1009), box(670), nullptr); + avl = grpc_avl_add(avl, box(517), box(671), nullptr); + avl = remove_int(avl, 491); + avl = grpc_avl_add(avl, box(336), box(673), nullptr); + avl = grpc_avl_add(avl, box(589), box(674), nullptr); + avl = remove_int(avl, 546); + avl = remove_int(avl, 840); + avl = remove_int(avl, 104); + avl = remove_int(avl, 347); + avl = grpc_avl_add(avl, box(801), box(679), nullptr); + avl = remove_int(avl, 799); + avl = remove_int(avl, 702); + avl = remove_int(avl, 996); + avl = remove_int(avl, 93); + avl = grpc_avl_add(avl, box(561), box(684), nullptr); + avl = grpc_avl_add(avl, box(25), box(685), nullptr); + avl = remove_int(avl, 278); + avl = grpc_avl_add(avl, box(191), box(687), nullptr); + avl = remove_int(avl, 243); + avl = remove_int(avl, 918); + avl = remove_int(avl, 449); + avl = grpc_avl_add(avl, box(19), box(691), nullptr); + avl = grpc_avl_add(avl, box(762), box(692), nullptr); + avl = grpc_avl_add(avl, box(13), box(693), nullptr); + avl = grpc_avl_add(avl, box(151), box(694), nullptr); + avl = grpc_avl_add(avl, box(152), box(695), nullptr); + avl = grpc_avl_add(avl, box(793), box(696), nullptr); + avl = remove_int(avl, 862); + avl = remove_int(avl, 890); + avl = grpc_avl_add(avl, box(687), box(699), nullptr); + avl = grpc_avl_add(avl, box(509), box(700), nullptr); + avl = grpc_avl_add(avl, box(973), box(701), nullptr); + avl = remove_int(avl, 230); + avl = grpc_avl_add(avl, box(532), box(703), nullptr); + avl = remove_int(avl, 668); + avl = grpc_avl_add(avl, box(281), box(705), nullptr); + avl = grpc_avl_add(avl, box(867), box(706), nullptr); + avl = grpc_avl_add(avl, box(359), box(707), nullptr); + avl = remove_int(avl, 425); + avl = grpc_avl_add(avl, box(691), box(709), nullptr); + avl = grpc_avl_add(avl, box(163), box(710), nullptr); + avl = grpc_avl_add(avl, box(502), box(711), nullptr); + avl = remove_int(avl, 674); + avl = grpc_avl_add(avl, box(697), box(713), nullptr); + avl = remove_int(avl, 271); + avl = grpc_avl_add(avl, box(968), box(715), nullptr); + avl = grpc_avl_add(avl, box(48), box(716), nullptr); + avl = remove_int(avl, 543); + avl = grpc_avl_add(avl, box(35), box(718), nullptr); + avl = grpc_avl_add(avl, box(751), box(719), nullptr); + avl = grpc_avl_add(avl, box(478), box(720), nullptr); + avl = remove_int(avl, 797); + avl = remove_int(avl, 309); + avl = grpc_avl_add(avl, box(927), box(723), nullptr); + avl = remove_int(avl, 504); + avl = grpc_avl_add(avl, box(286), box(725), nullptr); + avl = grpc_avl_add(avl, box(413), box(726), nullptr); + avl = grpc_avl_add(avl, box(599), box(727), nullptr); + avl = remove_int(avl, 105); + avl = remove_int(avl, 605); + avl = grpc_avl_add(avl, box(632), box(730), nullptr); + avl = grpc_avl_add(avl, box(133), box(731), nullptr); + avl = remove_int(avl, 443); + avl = grpc_avl_add(avl, box(958), box(733), nullptr); + avl = grpc_avl_add(avl, box(729), box(734), nullptr); + avl = remove_int(avl, 158); + avl = grpc_avl_add(avl, box(694), box(736), nullptr); + avl = grpc_avl_add(avl, box(505), box(737), nullptr); + avl = remove_int(avl, 63); + avl = remove_int(avl, 714); + avl = grpc_avl_add(avl, box(1002), box(740), nullptr); + avl = remove_int(avl, 211); + avl = grpc_avl_add(avl, box(765), box(742), nullptr); + avl = grpc_avl_add(avl, box(455), box(743), nullptr); + avl = remove_int(avl, 59); + avl = remove_int(avl, 224); + avl = grpc_avl_add(avl, box(586), box(746), nullptr); + avl = grpc_avl_add(avl, box(348), box(747), nullptr); + avl = remove_int(avl, 10); + avl = remove_int(avl, 484); + avl = grpc_avl_add(avl, box(968), box(750), nullptr); + avl = grpc_avl_add(avl, box(923), box(751), nullptr); + avl = remove_int(avl, 573); + avl = remove_int(avl, 617); + avl = grpc_avl_add(avl, box(812), box(754), nullptr); + avl = grpc_avl_add(avl, box(179), box(755), nullptr); + avl = remove_int(avl, 284); + avl = remove_int(avl, 157); + avl = remove_int(avl, 177); + avl = remove_int(avl, 896); + avl = grpc_avl_add(avl, box(649), box(760), nullptr); + avl = grpc_avl_add(avl, box(927), box(761), nullptr); + avl = grpc_avl_add(avl, box(454), box(762), nullptr); + avl = grpc_avl_add(avl, box(217), box(763), nullptr); + avl = remove_int(avl, 534); + avl = grpc_avl_add(avl, box(180), box(765), nullptr); + avl = grpc_avl_add(avl, box(319), box(766), nullptr); + avl = remove_int(avl, 92); + avl = grpc_avl_add(avl, box(483), box(768), nullptr); + avl = remove_int(avl, 504); + avl = remove_int(avl, 1017); + avl = remove_int(avl, 37); + avl = remove_int(avl, 50); + avl = grpc_avl_add(avl, box(302), box(773), nullptr); + avl = remove_int(avl, 807); + avl = grpc_avl_add(avl, box(463), box(775), nullptr); + avl = grpc_avl_add(avl, box(271), box(776), nullptr); + avl = grpc_avl_add(avl, box(644), box(777), nullptr); + avl = remove_int(avl, 618); + avl = grpc_avl_add(avl, box(166), box(779), nullptr); + avl = grpc_avl_add(avl, box(538), box(780), nullptr); + avl = remove_int(avl, 606); + avl = grpc_avl_add(avl, box(425), box(782), nullptr); + avl = remove_int(avl, 725); + avl = remove_int(avl, 383); + avl = grpc_avl_add(avl, box(155), box(785), nullptr); + avl = remove_int(avl, 889); + avl = grpc_avl_add(avl, box(653), box(787), nullptr); + avl = remove_int(avl, 386); + avl = grpc_avl_add(avl, box(142), box(789), nullptr); + avl = remove_int(avl, 107); + avl = remove_int(avl, 603); + avl = remove_int(avl, 971); + avl = grpc_avl_add(avl, box(80), box(793), nullptr); + avl = grpc_avl_add(avl, box(61), box(794), nullptr); + avl = grpc_avl_add(avl, box(693), box(795), nullptr); + avl = grpc_avl_add(avl, box(592), box(796), nullptr); + avl = grpc_avl_add(avl, box(433), box(797), nullptr); + avl = grpc_avl_add(avl, box(973), box(798), nullptr); + avl = remove_int(avl, 901); + avl = remove_int(avl, 340); + avl = remove_int(avl, 709); + avl = grpc_avl_add(avl, box(224), box(802), nullptr); + avl = remove_int(avl, 120); + avl = remove_int(avl, 271); + avl = grpc_avl_add(avl, box(780), box(805), nullptr); + avl = grpc_avl_add(avl, box(867), box(806), nullptr); + avl = grpc_avl_add(avl, box(756), box(807), nullptr); + avl = grpc_avl_add(avl, box(583), box(808), nullptr); + avl = grpc_avl_add(avl, box(356), box(809), nullptr); + avl = grpc_avl_add(avl, box(58), box(810), nullptr); + avl = remove_int(avl, 219); + avl = grpc_avl_add(avl, box(301), box(812), nullptr); + avl = remove_int(avl, 643); + avl = remove_int(avl, 787); + avl = remove_int(avl, 583); + avl = remove_int(avl, 552); + avl = remove_int(avl, 308); + avl = remove_int(avl, 608); + avl = remove_int(avl, 363); + avl = remove_int(avl, 690); + avl = grpc_avl_add(avl, box(233), box(821), nullptr); + avl = grpc_avl_add(avl, box(479), box(822), nullptr); + avl = grpc_avl_add(avl, box(323), box(823), nullptr); + avl = grpc_avl_add(avl, box(802), box(824), nullptr); + avl = remove_int(avl, 682); + avl = remove_int(avl, 705); + avl = remove_int(avl, 487); + avl = grpc_avl_add(avl, box(530), box(828), nullptr); + avl = grpc_avl_add(avl, box(232), box(829), nullptr); + avl = remove_int(avl, 627); + avl = grpc_avl_add(avl, box(396), box(831), nullptr); + avl = grpc_avl_add(avl, box(61), box(832), nullptr); + avl = grpc_avl_add(avl, box(932), box(833), nullptr); + avl = grpc_avl_add(avl, box(108), box(834), nullptr); + avl = grpc_avl_add(avl, box(524), box(835), nullptr); + avl = remove_int(avl, 390); + avl = remove_int(avl, 307); + avl = grpc_avl_add(avl, box(722), box(838), nullptr); + avl = grpc_avl_add(avl, box(907), box(839), nullptr); + avl = remove_int(avl, 286); + avl = remove_int(avl, 337); + avl = remove_int(avl, 443); + avl = grpc_avl_add(avl, box(973), box(843), nullptr); + avl = remove_int(avl, 930); + avl = remove_int(avl, 242); + avl = grpc_avl_add(avl, box(997), box(846), nullptr); + avl = grpc_avl_add(avl, box(689), box(847), nullptr); + avl = remove_int(avl, 318); + avl = grpc_avl_add(avl, box(703), box(849), nullptr); + avl = grpc_avl_add(avl, box(868), box(850), nullptr); + avl = grpc_avl_add(avl, box(200), box(851), nullptr); + avl = grpc_avl_add(avl, box(960), box(852), nullptr); + avl = grpc_avl_add(avl, box(80), box(853), nullptr); + avl = remove_int(avl, 113); + avl = grpc_avl_add(avl, box(135), box(855), nullptr); + avl = remove_int(avl, 529); + avl = grpc_avl_add(avl, box(366), box(857), nullptr); + avl = remove_int(avl, 272); + avl = grpc_avl_add(avl, box(921), box(859), nullptr); + avl = remove_int(avl, 497); + avl = grpc_avl_add(avl, box(712), box(861), nullptr); + avl = remove_int(avl, 777); + avl = remove_int(avl, 505); + avl = remove_int(avl, 974); + avl = remove_int(avl, 497); + avl = grpc_avl_add(avl, box(388), box(866), nullptr); + avl = grpc_avl_add(avl, box(29), box(867), nullptr); + avl = grpc_avl_add(avl, box(180), box(868), nullptr); + avl = grpc_avl_add(avl, box(983), box(869), nullptr); + avl = grpc_avl_add(avl, box(72), box(870), nullptr); + avl = grpc_avl_add(avl, box(693), box(871), nullptr); + avl = grpc_avl_add(avl, box(567), box(872), nullptr); + avl = remove_int(avl, 549); + avl = remove_int(avl, 351); + avl = grpc_avl_add(avl, box(1019), box(875), nullptr); + avl = remove_int(avl, 585); + avl = remove_int(avl, 294); + avl = remove_int(avl, 61); + avl = grpc_avl_add(avl, box(409), box(879), nullptr); + avl = grpc_avl_add(avl, box(984), box(880), nullptr); + avl = grpc_avl_add(avl, box(830), box(881), nullptr); + avl = remove_int(avl, 579); + avl = grpc_avl_add(avl, box(672), box(883), nullptr); + avl = remove_int(avl, 968); + + grpc_avl_unref(avl, nullptr); +} + +static void test_badcase3(void) { + grpc_avl avl; + + gpr_log(GPR_DEBUG, "test_badcase3"); + + avl = grpc_avl_create(&int_int_vtable); + avl = remove_int(avl, 624); + avl = grpc_avl_add(avl, box(59), box(2), nullptr); + avl = grpc_avl_add(avl, box(494), box(3), nullptr); + avl = grpc_avl_add(avl, box(226), box(4), nullptr); + avl = remove_int(avl, 524); + avl = grpc_avl_add(avl, box(540), box(6), nullptr); + avl = remove_int(avl, 1008); + avl = grpc_avl_add(avl, box(502), box(8), nullptr); + avl = remove_int(avl, 267); + avl = remove_int(avl, 764); + avl = remove_int(avl, 443); + avl = grpc_avl_add(avl, box(8), box(12), nullptr); + avl = remove_int(avl, 291); + avl = remove_int(avl, 796); + avl = remove_int(avl, 1002); + avl = grpc_avl_add(avl, box(778), box(16), nullptr); + avl = remove_int(avl, 621); + avl = remove_int(avl, 891); + avl = remove_int(avl, 880); + avl = grpc_avl_add(avl, box(197), box(20), nullptr); + avl = grpc_avl_add(avl, box(441), box(21), nullptr); + avl = grpc_avl_add(avl, box(719), box(22), nullptr); + avl = remove_int(avl, 109); + avl = grpc_avl_add(avl, box(458), box(24), nullptr); + avl = remove_int(avl, 86); + avl = grpc_avl_add(avl, box(897), box(26), nullptr); + avl = grpc_avl_add(avl, box(997), box(27), nullptr); + avl = remove_int(avl, 235); + avl = remove_int(avl, 425); + avl = remove_int(avl, 186); + avl = grpc_avl_add(avl, box(887), box(31), nullptr); + avl = grpc_avl_add(avl, box(1005), box(32), nullptr); + avl = grpc_avl_add(avl, box(778), box(33), nullptr); + avl = grpc_avl_add(avl, box(575), box(34), nullptr); + avl = remove_int(avl, 966); + avl = remove_int(avl, 1015); + avl = grpc_avl_add(avl, box(486), box(37), nullptr); + avl = grpc_avl_add(avl, box(809), box(38), nullptr); + avl = grpc_avl_add(avl, box(907), box(39), nullptr); + avl = grpc_avl_add(avl, box(971), box(40), nullptr); + avl = remove_int(avl, 441); + avl = remove_int(avl, 498); + avl = grpc_avl_add(avl, box(727), box(43), nullptr); + avl = remove_int(avl, 679); + avl = remove_int(avl, 740); + avl = remove_int(avl, 532); + avl = grpc_avl_add(avl, box(805), box(47), nullptr); + avl = remove_int(avl, 64); + avl = grpc_avl_add(avl, box(362), box(49), nullptr); + avl = grpc_avl_add(avl, box(170), box(50), nullptr); + avl = grpc_avl_add(avl, box(389), box(51), nullptr); + avl = grpc_avl_add(avl, box(689), box(52), nullptr); + avl = remove_int(avl, 871); + avl = grpc_avl_add(avl, box(447), box(54), nullptr); + avl = remove_int(avl, 718); + avl = grpc_avl_add(avl, box(724), box(56), nullptr); + avl = remove_int(avl, 215); + avl = grpc_avl_add(avl, box(550), box(58), nullptr); + avl = remove_int(avl, 932); + avl = grpc_avl_add(avl, box(47), box(60), nullptr); + avl = remove_int(avl, 46); + avl = remove_int(avl, 229); + avl = grpc_avl_add(avl, box(68), box(63), nullptr); + avl = grpc_avl_add(avl, box(387), box(64), nullptr); + avl = remove_int(avl, 933); + avl = remove_int(avl, 736); + avl = remove_int(avl, 719); + avl = grpc_avl_add(avl, box(150), box(68), nullptr); + avl = remove_int(avl, 875); + avl = remove_int(avl, 298); + avl = grpc_avl_add(avl, box(991), box(71), nullptr); + avl = remove_int(avl, 705); + avl = grpc_avl_add(avl, box(197), box(73), nullptr); + avl = grpc_avl_add(avl, box(101), box(74), nullptr); + avl = remove_int(avl, 436); + avl = grpc_avl_add(avl, box(755), box(76), nullptr); + avl = grpc_avl_add(avl, box(727), box(77), nullptr); + avl = remove_int(avl, 309); + avl = remove_int(avl, 253); + avl = grpc_avl_add(avl, box(203), box(80), nullptr); + avl = remove_int(avl, 231); + avl = grpc_avl_add(avl, box(461), box(82), nullptr); + avl = remove_int(avl, 316); + avl = remove_int(avl, 493); + avl = grpc_avl_add(avl, box(184), box(85), nullptr); + avl = remove_int(avl, 737); + avl = grpc_avl_add(avl, box(790), box(87), nullptr); + avl = grpc_avl_add(avl, box(335), box(88), nullptr); + avl = remove_int(avl, 649); + avl = grpc_avl_add(avl, box(69), box(90), nullptr); + avl = remove_int(avl, 585); + avl = remove_int(avl, 543); + avl = grpc_avl_add(avl, box(784), box(93), nullptr); + avl = grpc_avl_add(avl, box(60), box(94), nullptr); + avl = grpc_avl_add(avl, box(525), box(95), nullptr); + avl = grpc_avl_add(avl, box(177), box(96), nullptr); + avl = grpc_avl_add(avl, box(178), box(97), nullptr); + avl = grpc_avl_add(avl, box(683), box(98), nullptr); + avl = grpc_avl_add(avl, box(226), box(99), nullptr); + avl = grpc_avl_add(avl, box(662), box(100), nullptr); + avl = remove_int(avl, 944); + avl = grpc_avl_add(avl, box(562), box(102), nullptr); + avl = grpc_avl_add(avl, box(793), box(103), nullptr); + avl = remove_int(avl, 673); + avl = grpc_avl_add(avl, box(310), box(105), nullptr); + avl = remove_int(avl, 479); + avl = remove_int(avl, 543); + avl = remove_int(avl, 159); + avl = remove_int(avl, 850); + avl = grpc_avl_add(avl, box(318), box(110), nullptr); + avl = grpc_avl_add(avl, box(483), box(111), nullptr); + avl = grpc_avl_add(avl, box(84), box(112), nullptr); + avl = remove_int(avl, 109); + avl = grpc_avl_add(avl, box(132), box(114), nullptr); + avl = grpc_avl_add(avl, box(920), box(115), nullptr); + avl = remove_int(avl, 746); + avl = grpc_avl_add(avl, box(145), box(117), nullptr); + avl = grpc_avl_add(avl, box(526), box(118), nullptr); + avl = remove_int(avl, 158); + avl = grpc_avl_add(avl, box(332), box(120), nullptr); + avl = grpc_avl_add(avl, box(918), box(121), nullptr); + avl = remove_int(avl, 339); + avl = grpc_avl_add(avl, box(809), box(123), nullptr); + avl = grpc_avl_add(avl, box(742), box(124), nullptr); + avl = grpc_avl_add(avl, box(718), box(125), nullptr); + avl = remove_int(avl, 988); + avl = remove_int(avl, 531); + avl = remove_int(avl, 840); + avl = grpc_avl_add(avl, box(816), box(129), nullptr); + avl = grpc_avl_add(avl, box(976), box(130), nullptr); + avl = remove_int(avl, 743); + avl = remove_int(avl, 528); + avl = remove_int(avl, 982); + avl = grpc_avl_add(avl, box(803), box(134), nullptr); + avl = grpc_avl_add(avl, box(205), box(135), nullptr); + avl = grpc_avl_add(avl, box(584), box(136), nullptr); + avl = remove_int(avl, 923); + avl = remove_int(avl, 538); + avl = remove_int(avl, 398); + avl = remove_int(avl, 320); + avl = remove_int(avl, 292); + avl = grpc_avl_add(avl, box(270), box(142), nullptr); + avl = grpc_avl_add(avl, box(333), box(143), nullptr); + avl = remove_int(avl, 439); + avl = grpc_avl_add(avl, box(35), box(145), nullptr); + avl = grpc_avl_add(avl, box(837), box(146), nullptr); + avl = remove_int(avl, 65); + avl = remove_int(avl, 642); + avl = remove_int(avl, 371); + avl = remove_int(avl, 140); + avl = remove_int(avl, 533); + avl = remove_int(avl, 676); + avl = grpc_avl_add(avl, box(624), box(153), nullptr); + avl = grpc_avl_add(avl, box(116), box(154), nullptr); + avl = grpc_avl_add(avl, box(446), box(155), nullptr); + avl = remove_int(avl, 91); + avl = remove_int(avl, 721); + avl = remove_int(avl, 537); + avl = grpc_avl_add(avl, box(448), box(159), nullptr); + avl = remove_int(avl, 155); + avl = remove_int(avl, 344); + avl = remove_int(avl, 237); + avl = grpc_avl_add(avl, box(309), box(163), nullptr); + avl = grpc_avl_add(avl, box(434), box(164), nullptr); + avl = grpc_avl_add(avl, box(277), box(165), nullptr); + avl = remove_int(avl, 233); + avl = grpc_avl_add(avl, box(275), box(167), nullptr); + avl = grpc_avl_add(avl, box(218), box(168), nullptr); + avl = grpc_avl_add(avl, box(76), box(169), nullptr); + avl = grpc_avl_add(avl, box(898), box(170), nullptr); + avl = remove_int(avl, 771); + avl = grpc_avl_add(avl, box(237), box(172), nullptr); + avl = remove_int(avl, 327); + avl = grpc_avl_add(avl, box(499), box(174), nullptr); + avl = remove_int(avl, 727); + avl = remove_int(avl, 234); + avl = remove_int(avl, 623); + avl = remove_int(avl, 458); + avl = remove_int(avl, 326); + avl = remove_int(avl, 589); + avl = grpc_avl_add(avl, box(442), box(181), nullptr); + avl = remove_int(avl, 389); + avl = grpc_avl_add(avl, box(708), box(183), nullptr); + avl = grpc_avl_add(avl, box(594), box(184), nullptr); + avl = grpc_avl_add(avl, box(942), box(185), nullptr); + avl = grpc_avl_add(avl, box(282), box(186), nullptr); + avl = remove_int(avl, 434); + avl = remove_int(avl, 134); + avl = remove_int(avl, 270); + avl = remove_int(avl, 512); + avl = remove_int(avl, 265); + avl = remove_int(avl, 21); + avl = remove_int(avl, 193); + avl = remove_int(avl, 797); + avl = remove_int(avl, 347); + avl = grpc_avl_add(avl, box(99), box(196), nullptr); + avl = grpc_avl_add(avl, box(161), box(197), nullptr); + avl = remove_int(avl, 484); + avl = grpc_avl_add(avl, box(72), box(199), nullptr); + avl = remove_int(avl, 629); + avl = grpc_avl_add(avl, box(522), box(201), nullptr); + avl = remove_int(avl, 679); + avl = grpc_avl_add(avl, box(407), box(203), nullptr); + avl = remove_int(avl, 693); + avl = grpc_avl_add(avl, box(424), box(205), nullptr); + avl = grpc_avl_add(avl, box(651), box(206), nullptr); + avl = grpc_avl_add(avl, box(927), box(207), nullptr); + avl = remove_int(avl, 553); + avl = grpc_avl_add(avl, box(128), box(209), nullptr); + avl = grpc_avl_add(avl, box(616), box(210), nullptr); + avl = grpc_avl_add(avl, box(690), box(211), nullptr); + avl = remove_int(avl, 241); + avl = remove_int(avl, 179); + avl = grpc_avl_add(avl, box(697), box(214), nullptr); + avl = remove_int(avl, 779); + avl = grpc_avl_add(avl, box(241), box(216), nullptr); + avl = remove_int(avl, 190); + avl = remove_int(avl, 210); + avl = grpc_avl_add(avl, box(711), box(219), nullptr); + avl = remove_int(avl, 251); + avl = remove_int(avl, 61); + avl = grpc_avl_add(avl, box(800), box(222), nullptr); + avl = remove_int(avl, 551); + avl = grpc_avl_add(avl, box(61), box(224), nullptr); + avl = grpc_avl_add(avl, box(656), box(225), nullptr); + avl = remove_int(avl, 130); + avl = remove_int(avl, 368); + avl = remove_int(avl, 150); + avl = remove_int(avl, 73); + avl = grpc_avl_add(avl, box(799), box(230), nullptr); + avl = grpc_avl_add(avl, box(125), box(231), nullptr); + avl = remove_int(avl, 107); + avl = grpc_avl_add(avl, box(938), box(233), nullptr); + avl = grpc_avl_add(avl, box(914), box(234), nullptr); + avl = grpc_avl_add(avl, box(197), box(235), nullptr); + avl = remove_int(avl, 736); + avl = grpc_avl_add(avl, box(20), box(237), nullptr); + avl = remove_int(avl, 224); + avl = remove_int(avl, 841); + avl = grpc_avl_add(avl, box(226), box(240), nullptr); + avl = remove_int(avl, 963); + avl = remove_int(avl, 796); + avl = remove_int(avl, 728); + avl = grpc_avl_add(avl, box(855), box(244), nullptr); + avl = grpc_avl_add(avl, box(769), box(245), nullptr); + avl = grpc_avl_add(avl, box(631), box(246), nullptr); + avl = remove_int(avl, 648); + avl = grpc_avl_add(avl, box(187), box(248), nullptr); + avl = grpc_avl_add(avl, box(31), box(249), nullptr); + avl = remove_int(avl, 163); + avl = grpc_avl_add(avl, box(218), box(251), nullptr); + avl = grpc_avl_add(avl, box(488), box(252), nullptr); + avl = grpc_avl_add(avl, box(387), box(253), nullptr); + avl = grpc_avl_add(avl, box(809), box(254), nullptr); + avl = grpc_avl_add(avl, box(997), box(255), nullptr); + avl = remove_int(avl, 678); + avl = grpc_avl_add(avl, box(368), box(257), nullptr); + avl = grpc_avl_add(avl, box(220), box(258), nullptr); + avl = grpc_avl_add(avl, box(373), box(259), nullptr); + avl = remove_int(avl, 874); + avl = remove_int(avl, 682); + avl = remove_int(avl, 1014); + avl = remove_int(avl, 195); + avl = grpc_avl_add(avl, box(868), box(264), nullptr); + avl = remove_int(avl, 254); + avl = remove_int(avl, 456); + avl = grpc_avl_add(avl, box(906), box(267), nullptr); + avl = remove_int(avl, 711); + avl = grpc_avl_add(avl, box(632), box(269), nullptr); + avl = remove_int(avl, 474); + avl = grpc_avl_add(avl, box(508), box(271), nullptr); + avl = grpc_avl_add(avl, box(518), box(272), nullptr); + avl = remove_int(avl, 579); + avl = remove_int(avl, 948); + avl = grpc_avl_add(avl, box(789), box(275), nullptr); + avl = grpc_avl_add(avl, box(48), box(276), nullptr); + avl = grpc_avl_add(avl, box(256), box(277), nullptr); + avl = grpc_avl_add(avl, box(754), box(278), nullptr); + avl = remove_int(avl, 215); + avl = grpc_avl_add(avl, box(679), box(280), nullptr); + avl = grpc_avl_add(avl, box(606), box(281), nullptr); + avl = remove_int(avl, 941); + avl = remove_int(avl, 31); + avl = grpc_avl_add(avl, box(758), box(284), nullptr); + avl = remove_int(avl, 101); + avl = grpc_avl_add(avl, box(244), box(286), nullptr); + avl = grpc_avl_add(avl, box(337), box(287), nullptr); + avl = grpc_avl_add(avl, box(461), box(288), nullptr); + avl = remove_int(avl, 476); + avl = grpc_avl_add(avl, box(845), box(290), nullptr); + avl = remove_int(avl, 160); + avl = grpc_avl_add(avl, box(690), box(292), nullptr); + avl = remove_int(avl, 931); + avl = grpc_avl_add(avl, box(869), box(294), nullptr); + avl = grpc_avl_add(avl, box(1019), box(295), nullptr); + avl = remove_int(avl, 591); + avl = remove_int(avl, 635); + avl = remove_int(avl, 67); + avl = grpc_avl_add(avl, box(113), box(299), nullptr); + avl = remove_int(avl, 305); + avl = grpc_avl_add(avl, box(10), box(301), nullptr); + avl = remove_int(avl, 823); + avl = remove_int(avl, 288); + avl = remove_int(avl, 239); + avl = grpc_avl_add(avl, box(646), box(305), nullptr); + avl = grpc_avl_add(avl, box(1006), box(306), nullptr); + avl = grpc_avl_add(avl, box(954), box(307), nullptr); + avl = grpc_avl_add(avl, box(199), box(308), nullptr); + avl = grpc_avl_add(avl, box(69), box(309), nullptr); + avl = grpc_avl_add(avl, box(984), box(310), nullptr); + avl = remove_int(avl, 568); + avl = remove_int(avl, 666); + avl = remove_int(avl, 37); + avl = grpc_avl_add(avl, box(845), box(314), nullptr); + avl = remove_int(avl, 535); + avl = remove_int(avl, 365); + avl = remove_int(avl, 676); + avl = remove_int(avl, 892); + avl = remove_int(avl, 425); + avl = remove_int(avl, 704); + avl = remove_int(avl, 168); + avl = grpc_avl_add(avl, box(853), box(322), nullptr); + avl = grpc_avl_add(avl, box(335), box(323), nullptr); + avl = grpc_avl_add(avl, box(961), box(324), nullptr); + avl = grpc_avl_add(avl, box(73), box(325), nullptr); + avl = remove_int(avl, 469); + avl = grpc_avl_add(avl, box(449), box(327), nullptr); + avl = remove_int(avl, 821); + avl = grpc_avl_add(avl, box(845), box(329), nullptr); + avl = remove_int(avl, 637); + avl = grpc_avl_add(avl, box(769), box(331), nullptr); + avl = grpc_avl_add(avl, box(901), box(332), nullptr); + avl = remove_int(avl, 142); + avl = remove_int(avl, 361); + avl = remove_int(avl, 876); + avl = grpc_avl_add(avl, box(614), box(336), nullptr); + avl = grpc_avl_add(avl, box(729), box(337), nullptr); + avl = remove_int(avl, 120); + avl = remove_int(avl, 473); + avl = remove_int(avl, 445); + avl = grpc_avl_add(avl, box(978), box(341), nullptr); + avl = grpc_avl_add(avl, box(164), box(342), nullptr); + avl = grpc_avl_add(avl, box(1), box(343), nullptr); + avl = remove_int(avl, 890); + avl = grpc_avl_add(avl, box(605), box(345), nullptr); + avl = grpc_avl_add(avl, box(178), box(346), nullptr); + avl = grpc_avl_add(avl, box(481), box(347), nullptr); + avl = grpc_avl_add(avl, box(772), box(348), nullptr); + avl = remove_int(avl, 824); + avl = remove_int(avl, 167); + avl = remove_int(avl, 151); + avl = grpc_avl_add(avl, box(698), box(352), nullptr); + avl = grpc_avl_add(avl, box(202), box(353), nullptr); + avl = grpc_avl_add(avl, box(921), box(354), nullptr); + avl = grpc_avl_add(avl, box(875), box(355), nullptr); + avl = remove_int(avl, 197); + avl = remove_int(avl, 232); + avl = grpc_avl_add(avl, box(209), box(358), nullptr); + avl = remove_int(avl, 324); + avl = remove_int(avl, 56); + avl = remove_int(avl, 579); + avl = remove_int(avl, 255); + avl = remove_int(avl, 290); + avl = grpc_avl_add(avl, box(661), box(364), nullptr); + avl = grpc_avl_add(avl, box(113), box(365), nullptr); + avl = remove_int(avl, 767); + avl = grpc_avl_add(avl, box(586), box(367), nullptr); + avl = grpc_avl_add(avl, box(121), box(368), nullptr); + avl = remove_int(avl, 235); + avl = remove_int(avl, 439); + avl = remove_int(avl, 360); + avl = grpc_avl_add(avl, box(916), box(372), nullptr); + avl = remove_int(avl, 999); + avl = grpc_avl_add(avl, box(825), box(374), nullptr); + avl = grpc_avl_add(avl, box(177), box(375), nullptr); + avl = remove_int(avl, 204); + avl = remove_int(avl, 92); + avl = grpc_avl_add(avl, box(794), box(378), nullptr); + avl = grpc_avl_add(avl, box(463), box(379), nullptr); + avl = grpc_avl_add(avl, box(472), box(380), nullptr); + avl = remove_int(avl, 235); + avl = grpc_avl_add(avl, box(840), box(382), nullptr); + avl = remove_int(avl, 657); + avl = grpc_avl_add(avl, box(586), box(384), nullptr); + avl = grpc_avl_add(avl, box(979), box(385), nullptr); + avl = remove_int(avl, 979); + avl = grpc_avl_add(avl, box(639), box(387), nullptr); + avl = remove_int(avl, 907); + avl = remove_int(avl, 973); + avl = grpc_avl_add(avl, box(913), box(390), nullptr); + avl = grpc_avl_add(avl, box(566), box(391), nullptr); + avl = grpc_avl_add(avl, box(883), box(392), nullptr); + avl = grpc_avl_add(avl, box(552), box(393), nullptr); + avl = grpc_avl_add(avl, box(16), box(394), nullptr); + avl = remove_int(avl, 60); + avl = grpc_avl_add(avl, box(567), box(396), nullptr); + avl = grpc_avl_add(avl, box(705), box(397), nullptr); + avl = grpc_avl_add(avl, box(94), box(398), nullptr); + avl = remove_int(avl, 321); + avl = grpc_avl_add(avl, box(207), box(400), nullptr); + avl = grpc_avl_add(avl, box(682), box(401), nullptr); + avl = grpc_avl_add(avl, box(592), box(402), nullptr); + avl = grpc_avl_add(avl, box(10), box(403), nullptr); + avl = remove_int(avl, 911); + avl = remove_int(avl, 161); + avl = grpc_avl_add(avl, box(86), box(406), nullptr); + avl = remove_int(avl, 893); + avl = remove_int(avl, 362); + avl = grpc_avl_add(avl, box(599), box(409), nullptr); + avl = remove_int(avl, 413); + avl = grpc_avl_add(avl, box(867), box(411), nullptr); + avl = remove_int(avl, 955); + avl = grpc_avl_add(avl, box(341), box(413), nullptr); + avl = grpc_avl_add(avl, box(887), box(414), nullptr); + avl = remove_int(avl, 706); + avl = grpc_avl_add(avl, box(939), box(416), nullptr); + avl = remove_int(avl, 233); + avl = remove_int(avl, 662); + avl = remove_int(avl, 984); + avl = remove_int(avl, 203); + avl = grpc_avl_add(avl, box(326), box(421), nullptr); + avl = remove_int(avl, 848); + avl = grpc_avl_add(avl, box(235), box(423), nullptr); + avl = remove_int(avl, 617); + avl = grpc_avl_add(avl, box(565), box(425), nullptr); + avl = remove_int(avl, 469); + avl = grpc_avl_add(avl, box(988), box(427), nullptr); + avl = remove_int(avl, 957); + avl = grpc_avl_add(avl, box(426), box(429), nullptr); + avl = remove_int(avl, 967); + avl = grpc_avl_add(avl, box(890), box(431), nullptr); + avl = grpc_avl_add(avl, box(473), box(432), nullptr); + avl = remove_int(avl, 367); + avl = remove_int(avl, 344); + avl = remove_int(avl, 660); + avl = remove_int(avl, 448); + avl = remove_int(avl, 837); + avl = remove_int(avl, 158); + avl = grpc_avl_add(avl, box(459), box(439), nullptr); + avl = remove_int(avl, 882); + avl = remove_int(avl, 782); + avl = grpc_avl_add(avl, box(408), box(442), nullptr); + avl = grpc_avl_add(avl, box(728), box(443), nullptr); + avl = remove_int(avl, 27); + avl = grpc_avl_add(avl, box(137), box(445), nullptr); + avl = grpc_avl_add(avl, box(239), box(446), nullptr); + avl = remove_int(avl, 854); + avl = grpc_avl_add(avl, box(104), box(448), nullptr); + avl = grpc_avl_add(avl, box(823), box(449), nullptr); + avl = grpc_avl_add(avl, box(524), box(450), nullptr); + avl = grpc_avl_add(avl, box(995), box(451), nullptr); + avl = remove_int(avl, 422); + avl = remove_int(avl, 220); + avl = grpc_avl_add(avl, box(856), box(454), nullptr); + avl = remove_int(avl, 332); + avl = grpc_avl_add(avl, box(679), box(456), nullptr); + avl = remove_int(avl, 18); + avl = grpc_avl_add(avl, box(837), box(458), nullptr); + avl = remove_int(avl, 405); + avl = remove_int(avl, 877); + avl = remove_int(avl, 835); + avl = grpc_avl_add(avl, box(547), box(462), nullptr); + avl = remove_int(avl, 805); + avl = remove_int(avl, 862); + avl = grpc_avl_add(avl, box(75), box(465), nullptr); + avl = remove_int(avl, 41); + avl = grpc_avl_add(avl, box(310), box(467), nullptr); + avl = remove_int(avl, 855); + avl = grpc_avl_add(avl, box(20), box(469), nullptr); + avl = remove_int(avl, 186); + avl = remove_int(avl, 378); + avl = remove_int(avl, 442); + avl = remove_int(avl, 930); + avl = grpc_avl_add(avl, box(118), box(474), nullptr); + avl = grpc_avl_add(avl, box(96), box(475), nullptr); + avl = remove_int(avl, 854); + avl = grpc_avl_add(avl, box(65), box(477), nullptr); + avl = grpc_avl_add(avl, box(573), box(478), nullptr); + avl = grpc_avl_add(avl, box(4), box(479), nullptr); + avl = grpc_avl_add(avl, box(451), box(480), nullptr); + avl = grpc_avl_add(avl, box(774), box(481), nullptr); + avl = grpc_avl_add(avl, box(126), box(482), nullptr); + avl = remove_int(avl, 956); + avl = remove_int(avl, 591); + avl = remove_int(avl, 644); + avl = grpc_avl_add(avl, box(304), box(486), nullptr); + avl = remove_int(avl, 620); + avl = remove_int(avl, 394); + avl = grpc_avl_add(avl, box(1002), box(489), nullptr); + avl = grpc_avl_add(avl, box(837), box(490), nullptr); + avl = remove_int(avl, 485); + avl = grpc_avl_add(avl, box(1005), box(492), nullptr); + avl = remove_int(avl, 21); + avl = grpc_avl_add(avl, box(396), box(494), nullptr); + avl = remove_int(avl, 966); + avl = grpc_avl_add(avl, box(105), box(496), nullptr); + avl = grpc_avl_add(avl, box(316), box(497), nullptr); + avl = remove_int(avl, 776); + avl = grpc_avl_add(avl, box(188), box(499), nullptr); + avl = remove_int(avl, 200); + avl = grpc_avl_add(avl, box(98), box(501), nullptr); + avl = grpc_avl_add(avl, box(831), box(502), nullptr); + avl = grpc_avl_add(avl, box(227), box(503), nullptr); + avl = grpc_avl_add(avl, box(220), box(504), nullptr); + avl = remove_int(avl, 715); + avl = remove_int(avl, 279); + avl = grpc_avl_add(avl, box(701), box(507), nullptr); + avl = grpc_avl_add(avl, box(726), box(508), nullptr); + avl = grpc_avl_add(avl, box(815), box(509), nullptr); + avl = grpc_avl_add(avl, box(749), box(510), nullptr); + avl = remove_int(avl, 946); + avl = remove_int(avl, 449); + avl = remove_int(avl, 62); + avl = remove_int(avl, 487); + avl = grpc_avl_add(avl, box(545), box(515), nullptr); + avl = remove_int(avl, 59); + avl = grpc_avl_add(avl, box(168), box(517), nullptr); + avl = remove_int(avl, 337); + avl = grpc_avl_add(avl, box(69), box(519), nullptr); + avl = remove_int(avl, 600); + avl = grpc_avl_add(avl, box(591), box(521), nullptr); + avl = grpc_avl_add(avl, box(960), box(522), nullptr); + avl = grpc_avl_add(avl, box(116), box(523), nullptr); + avl = remove_int(avl, 991); + avl = grpc_avl_add(avl, box(760), box(525), nullptr); + avl = grpc_avl_add(avl, box(664), box(526), nullptr); + avl = grpc_avl_add(avl, box(547), box(527), nullptr); + avl = remove_int(avl, 922); + avl = grpc_avl_add(avl, box(290), box(529), nullptr); + avl = grpc_avl_add(avl, box(859), box(530), nullptr); + avl = grpc_avl_add(avl, box(49), box(531), nullptr); + avl = remove_int(avl, 455); + avl = remove_int(avl, 786); + avl = grpc_avl_add(avl, box(613), box(534), nullptr); + avl = grpc_avl_add(avl, box(326), box(535), nullptr); + avl = remove_int(avl, 615); + avl = grpc_avl_add(avl, box(45), box(537), nullptr); + avl = grpc_avl_add(avl, box(162), box(538), nullptr); + avl = grpc_avl_add(avl, box(189), box(539), nullptr); + avl = remove_int(avl, 68); + avl = remove_int(avl, 846); + avl = grpc_avl_add(avl, box(608), box(542), nullptr); + avl = remove_int(avl, 821); + avl = grpc_avl_add(avl, box(978), box(544), nullptr); + avl = grpc_avl_add(avl, box(892), box(545), nullptr); + avl = remove_int(avl, 924); + avl = grpc_avl_add(avl, box(708), box(547), nullptr); + avl = remove_int(avl, 135); + avl = remove_int(avl, 124); + avl = grpc_avl_add(avl, box(301), box(550), nullptr); + avl = grpc_avl_add(avl, box(939), box(551), nullptr); + avl = grpc_avl_add(avl, box(344), box(552), nullptr); + avl = remove_int(avl, 443); + avl = remove_int(avl, 122); + avl = grpc_avl_add(avl, box(636), box(555), nullptr); + avl = remove_int(avl, 558); + avl = grpc_avl_add(avl, box(923), box(557), nullptr); + avl = remove_int(avl, 827); + avl = grpc_avl_add(avl, box(649), box(559), nullptr); + avl = grpc_avl_add(avl, box(808), box(560), nullptr); + avl = remove_int(avl, 570); + avl = remove_int(avl, 434); + avl = grpc_avl_add(avl, box(40), box(563), nullptr); + avl = grpc_avl_add(avl, box(725), box(564), nullptr); + avl = remove_int(avl, 295); + avl = remove_int(avl, 615); + avl = remove_int(avl, 919); + avl = remove_int(avl, 170); + avl = remove_int(avl, 442); + avl = remove_int(avl, 971); + avl = grpc_avl_add(avl, box(483), box(571), nullptr); + avl = grpc_avl_add(avl, box(512), box(572), nullptr); + avl = remove_int(avl, 648); + avl = remove_int(avl, 78); + avl = remove_int(avl, 72); + avl = remove_int(avl, 790); + avl = remove_int(avl, 571); + avl = grpc_avl_add(avl, box(898), box(578), nullptr); + avl = remove_int(avl, 770); + avl = remove_int(avl, 776); + avl = grpc_avl_add(avl, box(602), box(581), nullptr); + avl = remove_int(avl, 251); + avl = grpc_avl_add(avl, box(303), box(583), nullptr); + avl = remove_int(avl, 837); + avl = grpc_avl_add(avl, box(714), box(585), nullptr); + avl = remove_int(avl, 800); + avl = grpc_avl_add(avl, box(266), box(587), nullptr); + avl = grpc_avl_add(avl, box(555), box(588), nullptr); + avl = remove_int(avl, 604); + avl = remove_int(avl, 163); + avl = remove_int(avl, 497); + avl = grpc_avl_add(avl, box(296), box(592), nullptr); + avl = remove_int(avl, 129); + avl = grpc_avl_add(avl, box(656), box(594), nullptr); + avl = remove_int(avl, 769); + avl = remove_int(avl, 941); + avl = grpc_avl_add(avl, box(775), box(597), nullptr); + avl = grpc_avl_add(avl, box(846), box(598), nullptr); + avl = remove_int(avl, 591); + avl = remove_int(avl, 801); + avl = remove_int(avl, 419); + avl = remove_int(avl, 455); + avl = grpc_avl_add(avl, box(866), box(603), nullptr); + avl = grpc_avl_add(avl, box(575), box(604), nullptr); + avl = grpc_avl_add(avl, box(620), box(605), nullptr); + avl = remove_int(avl, 100); + avl = remove_int(avl, 667); + avl = grpc_avl_add(avl, box(138), box(608), nullptr); + avl = grpc_avl_add(avl, box(566), box(609), nullptr); + avl = grpc_avl_add(avl, box(673), box(610), nullptr); + avl = grpc_avl_add(avl, box(178), box(611), nullptr); + avl = remove_int(avl, 659); + avl = grpc_avl_add(avl, box(759), box(613), nullptr); + avl = grpc_avl_add(avl, box(1008), box(614), nullptr); + avl = remove_int(avl, 116); + avl = grpc_avl_add(avl, box(608), box(616), nullptr); + avl = grpc_avl_add(avl, box(339), box(617), nullptr); + avl = grpc_avl_add(avl, box(197), box(618), nullptr); + avl = remove_int(avl, 25); + avl = remove_int(avl, 628); + avl = grpc_avl_add(avl, box(487), box(621), nullptr); + avl = remove_int(avl, 739); + avl = remove_int(avl, 100); + avl = remove_int(avl, 928); + avl = grpc_avl_add(avl, box(647), box(625), nullptr); + avl = remove_int(avl, 978); + avl = remove_int(avl, 143); + avl = remove_int(avl, 755); + avl = grpc_avl_add(avl, box(71), box(629), nullptr); + avl = remove_int(avl, 205); + avl = grpc_avl_add(avl, box(501), box(631), nullptr); + avl = remove_int(avl, 723); + avl = remove_int(avl, 852); + avl = remove_int(avl, 1021); + avl = remove_int(avl, 670); + avl = remove_int(avl, 500); + avl = grpc_avl_add(avl, box(330), box(637), nullptr); + avl = remove_int(avl, 264); + avl = grpc_avl_add(avl, box(69), box(639), nullptr); + avl = remove_int(avl, 73); + avl = grpc_avl_add(avl, box(745), box(641), nullptr); + avl = remove_int(avl, 518); + avl = remove_int(avl, 641); + avl = remove_int(avl, 768); + avl = grpc_avl_add(avl, box(988), box(645), nullptr); + avl = grpc_avl_add(avl, box(899), box(646), nullptr); + avl = remove_int(avl, 763); + avl = remove_int(avl, 281); + avl = remove_int(avl, 496); + avl = grpc_avl_add(avl, box(445), box(650), nullptr); + avl = remove_int(avl, 905); + avl = grpc_avl_add(avl, box(275), box(652), nullptr); + avl = grpc_avl_add(avl, box(137), box(653), nullptr); + avl = remove_int(avl, 642); + avl = grpc_avl_add(avl, box(708), box(655), nullptr); + avl = remove_int(avl, 922); + avl = grpc_avl_add(avl, box(743), box(657), nullptr); + avl = remove_int(avl, 295); + avl = remove_int(avl, 665); + avl = remove_int(avl, 48); + avl = grpc_avl_add(avl, box(1012), box(661), nullptr); + avl = remove_int(avl, 71); + avl = remove_int(avl, 523); + avl = grpc_avl_add(avl, box(319), box(664), nullptr); + avl = remove_int(avl, 632); + avl = grpc_avl_add(avl, box(137), box(666), nullptr); + avl = grpc_avl_add(avl, box(686), box(667), nullptr); + avl = grpc_avl_add(avl, box(724), box(668), nullptr); + avl = grpc_avl_add(avl, box(952), box(669), nullptr); + avl = grpc_avl_add(avl, box(5), box(670), nullptr); + avl = remove_int(avl, 35); + avl = grpc_avl_add(avl, box(43), box(672), nullptr); + avl = grpc_avl_add(avl, box(320), box(673), nullptr); + avl = grpc_avl_add(avl, box(115), box(674), nullptr); + avl = remove_int(avl, 377); + avl = remove_int(avl, 591); + avl = remove_int(avl, 87); + avl = remove_int(avl, 93); + avl = grpc_avl_add(avl, box(1016), box(679), nullptr); + avl = grpc_avl_add(avl, box(605), box(680), nullptr); + avl = grpc_avl_add(avl, box(152), box(681), nullptr); + avl = grpc_avl_add(avl, box(113), box(682), nullptr); + avl = remove_int(avl, 131); + avl = remove_int(avl, 637); + avl = grpc_avl_add(avl, box(156), box(685), nullptr); + avl = remove_int(avl, 696); + avl = grpc_avl_add(avl, box(546), box(687), nullptr); + avl = remove_int(avl, 970); + avl = remove_int(avl, 53); + avl = remove_int(avl, 827); + avl = remove_int(avl, 224); + avl = remove_int(avl, 796); + avl = remove_int(avl, 34); + avl = remove_int(avl, 922); + avl = remove_int(avl, 277); + avl = remove_int(avl, 650); + avl = remove_int(avl, 222); + avl = remove_int(avl, 244); + avl = remove_int(avl, 576); + avl = remove_int(avl, 413); + avl = grpc_avl_add(avl, box(500), box(701), nullptr); + avl = remove_int(avl, 924); + avl = grpc_avl_add(avl, box(825), box(703), nullptr); + avl = remove_int(avl, 888); + avl = remove_int(avl, 931); + avl = grpc_avl_add(avl, box(285), box(706), nullptr); + avl = remove_int(avl, 62); + avl = remove_int(avl, 444); + avl = remove_int(avl, 946); + avl = grpc_avl_add(avl, box(122), box(710), nullptr); + avl = grpc_avl_add(avl, box(846), box(711), nullptr); + avl = remove_int(avl, 628); + avl = grpc_avl_add(avl, box(511), box(713), nullptr); + avl = grpc_avl_add(avl, box(398), box(714), nullptr); + avl = remove_int(avl, 730); + avl = grpc_avl_add(avl, box(797), box(716), nullptr); + avl = remove_int(avl, 897); + avl = remove_int(avl, 228); + avl = remove_int(avl, 544); + avl = remove_int(avl, 552); + avl = remove_int(avl, 783); + avl = remove_int(avl, 583); + avl = remove_int(avl, 894); + avl = remove_int(avl, 942); + avl = grpc_avl_add(avl, box(346), box(725), nullptr); + avl = grpc_avl_add(avl, box(1015), box(726), nullptr); + avl = remove_int(avl, 813); + avl = grpc_avl_add(avl, box(213), box(728), nullptr); + avl = remove_int(avl, 468); + avl = remove_int(avl, 365); + avl = remove_int(avl, 399); + avl = grpc_avl_add(avl, box(380), box(732), nullptr); + avl = remove_int(avl, 835); + avl = remove_int(avl, 970); + avl = grpc_avl_add(avl, box(700), box(735), nullptr); + avl = grpc_avl_add(avl, box(807), box(736), nullptr); + avl = remove_int(avl, 312); + avl = remove_int(avl, 282); + avl = remove_int(avl, 370); + avl = remove_int(avl, 999); + avl = remove_int(avl, 241); + avl = remove_int(avl, 884); + avl = grpc_avl_add(avl, box(587), box(743), nullptr); + avl = grpc_avl_add(avl, box(332), box(744), nullptr); + avl = remove_int(avl, 686); + avl = remove_int(avl, 206); + avl = remove_int(avl, 835); + avl = grpc_avl_add(avl, box(334), box(748), nullptr); + avl = remove_int(avl, 171); + avl = grpc_avl_add(avl, box(1002), box(750), nullptr); + avl = grpc_avl_add(avl, box(779), box(751), nullptr); + avl = grpc_avl_add(avl, box(307), box(752), nullptr); + avl = grpc_avl_add(avl, box(127), box(753), nullptr); + avl = grpc_avl_add(avl, box(251), box(754), nullptr); + avl = remove_int(avl, 790); + avl = remove_int(avl, 189); + avl = remove_int(avl, 193); + avl = remove_int(avl, 38); + avl = remove_int(avl, 124); + avl = grpc_avl_add(avl, box(812), box(760), nullptr); + avl = remove_int(avl, 43); + avl = grpc_avl_add(avl, box(871), box(762), nullptr); + avl = grpc_avl_add(avl, box(580), box(763), nullptr); + avl = remove_int(avl, 501); + avl = remove_int(avl, 462); + avl = remove_int(avl, 599); + avl = grpc_avl_add(avl, box(240), box(767), nullptr); + avl = grpc_avl_add(avl, box(285), box(768), nullptr); + avl = grpc_avl_add(avl, box(472), box(769), nullptr); + avl = remove_int(avl, 865); + avl = remove_int(avl, 763); + avl = remove_int(avl, 245); + avl = remove_int(avl, 80); + avl = remove_int(avl, 713); + avl = remove_int(avl, 654); + avl = remove_int(avl, 1014); + avl = grpc_avl_add(avl, box(495), box(777), nullptr); + avl = grpc_avl_add(avl, box(552), box(778), nullptr); + avl = remove_int(avl, 19); + avl = remove_int(avl, 803); + avl = grpc_avl_add(avl, box(508), box(781), nullptr); + avl = remove_int(avl, 699); + avl = remove_int(avl, 260); + avl = remove_int(avl, 92); + avl = remove_int(avl, 497); + avl = grpc_avl_add(avl, box(970), box(786), nullptr); + avl = remove_int(avl, 987); + avl = remove_int(avl, 168); + avl = remove_int(avl, 476); + avl = remove_int(avl, 248); + avl = grpc_avl_add(avl, box(358), box(791), nullptr); + avl = remove_int(avl, 804); + avl = remove_int(avl, 77); + avl = remove_int(avl, 905); + avl = remove_int(avl, 362); + avl = grpc_avl_add(avl, box(578), box(796), nullptr); + avl = remove_int(avl, 38); + avl = remove_int(avl, 595); + avl = grpc_avl_add(avl, box(213), box(799), nullptr); + avl = remove_int(avl, 7); + avl = remove_int(avl, 620); + avl = grpc_avl_add(avl, box(946), box(802), nullptr); + avl = remove_int(avl, 145); + avl = grpc_avl_add(avl, box(628), box(804), nullptr); + avl = remove_int(avl, 972); + avl = grpc_avl_add(avl, box(728), box(806), nullptr); + avl = remove_int(avl, 91); + avl = grpc_avl_add(avl, box(136), box(808), nullptr); + avl = grpc_avl_add(avl, box(841), box(809), nullptr); + avl = grpc_avl_add(avl, box(265), box(810), nullptr); + avl = grpc_avl_add(avl, box(701), box(811), nullptr); + avl = grpc_avl_add(avl, box(27), box(812), nullptr); + avl = remove_int(avl, 72); + avl = remove_int(avl, 14); + avl = grpc_avl_add(avl, box(286), box(815), nullptr); + avl = remove_int(avl, 996); + avl = remove_int(avl, 998); + avl = grpc_avl_add(avl, box(466), box(818), nullptr); + avl = remove_int(avl, 1009); + avl = remove_int(avl, 741); + avl = remove_int(avl, 947); + avl = remove_int(avl, 241); + avl = remove_int(avl, 954); + avl = remove_int(avl, 183); + avl = remove_int(avl, 395); + avl = remove_int(avl, 951); + avl = grpc_avl_add(avl, box(267), box(827), nullptr); + avl = remove_int(avl, 812); + avl = grpc_avl_add(avl, box(577), box(829), nullptr); + avl = remove_int(avl, 624); + avl = remove_int(avl, 847); + avl = remove_int(avl, 745); + avl = grpc_avl_add(avl, box(491), box(833), nullptr); + avl = grpc_avl_add(avl, box(941), box(834), nullptr); + avl = remove_int(avl, 258); + avl = grpc_avl_add(avl, box(410), box(836), nullptr); + avl = grpc_avl_add(avl, box(80), box(837), nullptr); + avl = grpc_avl_add(avl, box(196), box(838), nullptr); + avl = grpc_avl_add(avl, box(5), box(839), nullptr); + avl = remove_int(avl, 782); + avl = grpc_avl_add(avl, box(827), box(841), nullptr); + avl = remove_int(avl, 472); + avl = remove_int(avl, 664); + avl = grpc_avl_add(avl, box(409), box(844), nullptr); + avl = grpc_avl_add(avl, box(62), box(845), nullptr); + avl = remove_int(avl, 56); + avl = remove_int(avl, 606); + avl = remove_int(avl, 707); + avl = remove_int(avl, 989); + avl = remove_int(avl, 549); + avl = remove_int(avl, 259); + avl = grpc_avl_add(avl, box(405), box(852), nullptr); + avl = remove_int(avl, 587); + avl = remove_int(avl, 350); + avl = grpc_avl_add(avl, box(980), box(855), nullptr); + avl = grpc_avl_add(avl, box(992), box(856), nullptr); + avl = grpc_avl_add(avl, box(818), box(857), nullptr); + avl = remove_int(avl, 853); + avl = remove_int(avl, 701); + avl = grpc_avl_add(avl, box(675), box(860), nullptr); + avl = remove_int(avl, 248); + avl = remove_int(avl, 649); + avl = grpc_avl_add(avl, box(508), box(863), nullptr); + avl = remove_int(avl, 927); + avl = grpc_avl_add(avl, box(957), box(865), nullptr); + avl = grpc_avl_add(avl, box(698), box(866), nullptr); + avl = grpc_avl_add(avl, box(388), box(867), nullptr); + avl = grpc_avl_add(avl, box(532), box(868), nullptr); + avl = grpc_avl_add(avl, box(681), box(869), nullptr); + avl = remove_int(avl, 544); + avl = remove_int(avl, 991); + avl = remove_int(avl, 397); + avl = grpc_avl_add(avl, box(954), box(873), nullptr); + avl = grpc_avl_add(avl, box(219), box(874), nullptr); + avl = grpc_avl_add(avl, box(465), box(875), nullptr); + avl = remove_int(avl, 371); + avl = grpc_avl_add(avl, box(601), box(877), nullptr); + avl = grpc_avl_add(avl, box(543), box(878), nullptr); + avl = remove_int(avl, 329); + avl = grpc_avl_add(avl, box(560), box(880), nullptr); + avl = remove_int(avl, 898); + avl = grpc_avl_add(avl, box(455), box(882), nullptr); + avl = remove_int(avl, 313); + avl = grpc_avl_add(avl, box(215), box(884), nullptr); + avl = remove_int(avl, 846); + avl = grpc_avl_add(avl, box(608), box(886), nullptr); + avl = remove_int(avl, 248); + avl = grpc_avl_add(avl, box(575), box(888), nullptr); + avl = remove_int(avl, 207); + avl = remove_int(avl, 810); + avl = remove_int(avl, 665); + avl = remove_int(avl, 361); + avl = grpc_avl_add(avl, box(154), box(893), nullptr); + avl = grpc_avl_add(avl, box(329), box(894), nullptr); + avl = grpc_avl_add(avl, box(326), box(895), nullptr); + avl = remove_int(avl, 746); + avl = remove_int(avl, 99); + avl = grpc_avl_add(avl, box(464), box(898), nullptr); + avl = grpc_avl_add(avl, box(141), box(899), nullptr); + avl = remove_int(avl, 383); + avl = grpc_avl_add(avl, box(414), box(901), nullptr); + avl = grpc_avl_add(avl, box(777), box(902), nullptr); + avl = remove_int(avl, 972); + avl = remove_int(avl, 841); + avl = remove_int(avl, 100); + avl = grpc_avl_add(avl, box(828), box(906), nullptr); + avl = remove_int(avl, 785); + avl = grpc_avl_add(avl, box(1008), box(908), nullptr); + avl = grpc_avl_add(avl, box(46), box(909), nullptr); + avl = remove_int(avl, 399); + avl = grpc_avl_add(avl, box(178), box(911), nullptr); + avl = grpc_avl_add(avl, box(573), box(912), nullptr); + avl = remove_int(avl, 299); + avl = grpc_avl_add(avl, box(690), box(914), nullptr); + avl = grpc_avl_add(avl, box(692), box(915), nullptr); + avl = remove_int(avl, 404); + avl = remove_int(avl, 16); + avl = remove_int(avl, 746); + avl = remove_int(avl, 486); + avl = remove_int(avl, 119); + avl = grpc_avl_add(avl, box(167), box(921), nullptr); + avl = remove_int(avl, 328); + avl = grpc_avl_add(avl, box(89), box(923), nullptr); + avl = remove_int(avl, 867); + avl = remove_int(avl, 626); + avl = remove_int(avl, 507); + avl = grpc_avl_add(avl, box(365), box(927), nullptr); + avl = grpc_avl_add(avl, box(58), box(928), nullptr); + avl = grpc_avl_add(avl, box(70), box(929), nullptr); + avl = remove_int(avl, 81); + avl = remove_int(avl, 797); + avl = grpc_avl_add(avl, box(846), box(932), nullptr); + avl = remove_int(avl, 642); + avl = grpc_avl_add(avl, box(777), box(934), nullptr); + avl = remove_int(avl, 107); + avl = grpc_avl_add(avl, box(691), box(936), nullptr); + avl = grpc_avl_add(avl, box(820), box(937), nullptr); + avl = grpc_avl_add(avl, box(202), box(938), nullptr); + avl = grpc_avl_add(avl, box(308), box(939), nullptr); + avl = grpc_avl_add(avl, box(20), box(940), nullptr); + avl = remove_int(avl, 289); + avl = grpc_avl_add(avl, box(714), box(942), nullptr); + avl = grpc_avl_add(avl, box(584), box(943), nullptr); + avl = remove_int(avl, 294); + avl = grpc_avl_add(avl, box(496), box(945), nullptr); + avl = grpc_avl_add(avl, box(394), box(946), nullptr); + avl = grpc_avl_add(avl, box(860), box(947), nullptr); + avl = grpc_avl_add(avl, box(58), box(948), nullptr); + avl = remove_int(avl, 784); + avl = remove_int(avl, 584); + avl = remove_int(avl, 708); + avl = grpc_avl_add(avl, box(142), box(952), nullptr); + avl = grpc_avl_add(avl, box(247), box(953), nullptr); + avl = grpc_avl_add(avl, box(389), box(954), nullptr); + avl = remove_int(avl, 390); + avl = grpc_avl_add(avl, box(465), box(956), nullptr); + avl = grpc_avl_add(avl, box(936), box(957), nullptr); + avl = grpc_avl_add(avl, box(309), box(958), nullptr); + avl = remove_int(avl, 928); + avl = remove_int(avl, 128); + avl = remove_int(avl, 979); + avl = remove_int(avl, 670); + avl = remove_int(avl, 738); + avl = remove_int(avl, 271); + avl = remove_int(avl, 540); + avl = grpc_avl_add(avl, box(365), box(966), nullptr); + avl = remove_int(avl, 82); + avl = grpc_avl_add(avl, box(728), box(968), nullptr); + avl = remove_int(avl, 852); + avl = grpc_avl_add(avl, box(884), box(970), nullptr); + avl = grpc_avl_add(avl, box(502), box(971), nullptr); + avl = remove_int(avl, 898); + avl = remove_int(avl, 481); + avl = grpc_avl_add(avl, box(911), box(974), nullptr); + avl = remove_int(avl, 787); + avl = remove_int(avl, 785); + avl = remove_int(avl, 537); + avl = remove_int(avl, 535); + avl = remove_int(avl, 136); + avl = remove_int(avl, 749); + avl = remove_int(avl, 637); + avl = remove_int(avl, 900); + avl = grpc_avl_add(avl, box(598), box(983), nullptr); + avl = remove_int(avl, 25); + avl = remove_int(avl, 697); + avl = grpc_avl_add(avl, box(645), box(986), nullptr); + avl = grpc_avl_add(avl, box(211), box(987), nullptr); + avl = grpc_avl_add(avl, box(589), box(988), nullptr); + avl = remove_int(avl, 702); + avl = grpc_avl_add(avl, box(53), box(990), nullptr); + avl = remove_int(avl, 492); + avl = remove_int(avl, 185); + avl = remove_int(avl, 246); + avl = remove_int(avl, 257); + avl = remove_int(avl, 502); + avl = remove_int(avl, 34); + avl = grpc_avl_add(avl, box(74), box(997), nullptr); + avl = grpc_avl_add(avl, box(834), box(998), nullptr); + avl = grpc_avl_add(avl, box(514), box(999), nullptr); + avl = grpc_avl_add(avl, box(75), box(1000), nullptr); + avl = remove_int(avl, 745); + avl = grpc_avl_add(avl, box(362), box(1002), nullptr); + avl = remove_int(avl, 215); + avl = grpc_avl_add(avl, box(624), box(1004), nullptr); + avl = remove_int(avl, 404); + avl = remove_int(avl, 359); + avl = remove_int(avl, 491); + avl = grpc_avl_add(avl, box(903), box(1008), nullptr); + avl = grpc_avl_add(avl, box(240), box(1009), nullptr); + avl = remove_int(avl, 95); + avl = grpc_avl_add(avl, box(119), box(1011), nullptr); + avl = grpc_avl_add(avl, box(857), box(1012), nullptr); + avl = remove_int(avl, 39); + avl = remove_int(avl, 866); + avl = grpc_avl_add(avl, box(503), box(1015), nullptr); + avl = grpc_avl_add(avl, box(740), box(1016), nullptr); + avl = remove_int(avl, 637); + avl = remove_int(avl, 156); + avl = remove_int(avl, 6); + avl = remove_int(avl, 745); + avl = remove_int(avl, 433); + avl = remove_int(avl, 283); + avl = grpc_avl_add(avl, box(625), box(1023), nullptr); + avl = remove_int(avl, 638); + avl = grpc_avl_add(avl, box(299), box(1025), nullptr); + avl = grpc_avl_add(avl, box(584), box(1026), nullptr); + avl = remove_int(avl, 863); + avl = grpc_avl_add(avl, box(612), box(1028), nullptr); + avl = grpc_avl_add(avl, box(62), box(1029), nullptr); + avl = grpc_avl_add(avl, box(432), box(1030), nullptr); + avl = remove_int(avl, 371); + avl = remove_int(avl, 790); + avl = remove_int(avl, 227); + avl = remove_int(avl, 836); + avl = grpc_avl_add(avl, box(703), box(1035), nullptr); + avl = grpc_avl_add(avl, box(644), box(1036), nullptr); + avl = remove_int(avl, 638); + avl = grpc_avl_add(avl, box(13), box(1038), nullptr); + avl = remove_int(avl, 66); + avl = remove_int(avl, 82); + avl = grpc_avl_add(avl, box(362), box(1041), nullptr); + avl = grpc_avl_add(avl, box(783), box(1042), nullptr); + avl = remove_int(avl, 60); + avl = grpc_avl_add(avl, box(80), box(1044), nullptr); + avl = grpc_avl_add(avl, box(825), box(1045), nullptr); + avl = grpc_avl_add(avl, box(688), box(1046), nullptr); + avl = grpc_avl_add(avl, box(662), box(1047), nullptr); + avl = remove_int(avl, 156); + avl = remove_int(avl, 376); + avl = remove_int(avl, 99); + avl = grpc_avl_add(avl, box(526), box(1051), nullptr); + avl = grpc_avl_add(avl, box(168), box(1052), nullptr); + avl = remove_int(avl, 646); + avl = remove_int(avl, 380); + avl = remove_int(avl, 833); + avl = grpc_avl_add(avl, box(53), box(1056), nullptr); + avl = remove_int(avl, 105); + avl = grpc_avl_add(avl, box(373), box(1058), nullptr); + avl = grpc_avl_add(avl, box(184), box(1059), nullptr); + avl = remove_int(avl, 288); + avl = grpc_avl_add(avl, box(966), box(1061), nullptr); + avl = remove_int(avl, 158); + avl = grpc_avl_add(avl, box(406), box(1063), nullptr); + avl = remove_int(avl, 470); + avl = grpc_avl_add(avl, box(283), box(1065), nullptr); + avl = grpc_avl_add(avl, box(838), box(1066), nullptr); + avl = grpc_avl_add(avl, box(288), box(1067), nullptr); + avl = grpc_avl_add(avl, box(950), box(1068), nullptr); + avl = grpc_avl_add(avl, box(163), box(1069), nullptr); + avl = remove_int(avl, 623); + avl = remove_int(avl, 769); + avl = grpc_avl_add(avl, box(144), box(1072), nullptr); + avl = grpc_avl_add(avl, box(489), box(1073), nullptr); + avl = remove_int(avl, 15); + avl = grpc_avl_add(avl, box(971), box(1075), nullptr); + avl = remove_int(avl, 660); + avl = grpc_avl_add(avl, box(255), box(1077), nullptr); + avl = remove_int(avl, 494); + avl = grpc_avl_add(avl, box(109), box(1079), nullptr); + avl = grpc_avl_add(avl, box(420), box(1080), nullptr); + avl = grpc_avl_add(avl, box(509), box(1081), nullptr); + avl = remove_int(avl, 178); + avl = grpc_avl_add(avl, box(216), box(1083), nullptr); + avl = grpc_avl_add(avl, box(707), box(1084), nullptr); + avl = grpc_avl_add(avl, box(411), box(1085), nullptr); + avl = grpc_avl_add(avl, box(352), box(1086), nullptr); + avl = remove_int(avl, 983); + avl = grpc_avl_add(avl, box(6), box(1088), nullptr); + avl = grpc_avl_add(avl, box(1014), box(1089), nullptr); + avl = remove_int(avl, 98); + avl = remove_int(avl, 325); + avl = grpc_avl_add(avl, box(851), box(1092), nullptr); + avl = remove_int(avl, 553); + avl = grpc_avl_add(avl, box(218), box(1094), nullptr); + avl = grpc_avl_add(avl, box(261), box(1095), nullptr); + avl = remove_int(avl, 31); + avl = grpc_avl_add(avl, box(872), box(1097), nullptr); + avl = remove_int(avl, 543); + avl = remove_int(avl, 314); + avl = remove_int(avl, 443); + avl = grpc_avl_add(avl, box(533), box(1101), nullptr); + avl = remove_int(avl, 881); + avl = remove_int(avl, 269); + avl = remove_int(avl, 940); + avl = remove_int(avl, 909); + avl = remove_int(avl, 197); + avl = remove_int(avl, 773); + avl = remove_int(avl, 790); + avl = remove_int(avl, 345); + avl = grpc_avl_add(avl, box(965), box(1110), nullptr); + avl = remove_int(avl, 622); + avl = grpc_avl_add(avl, box(352), box(1112), nullptr); + avl = remove_int(avl, 182); + avl = grpc_avl_add(avl, box(534), box(1114), nullptr); + avl = grpc_avl_add(avl, box(97), box(1115), nullptr); + avl = grpc_avl_add(avl, box(198), box(1116), nullptr); + avl = remove_int(avl, 750); + avl = grpc_avl_add(avl, box(98), box(1118), nullptr); + avl = remove_int(avl, 943); + avl = grpc_avl_add(avl, box(254), box(1120), nullptr); + avl = grpc_avl_add(avl, box(30), box(1121), nullptr); + avl = remove_int(avl, 14); + avl = remove_int(avl, 475); + avl = remove_int(avl, 82); + avl = grpc_avl_add(avl, box(789), box(1125), nullptr); + avl = grpc_avl_add(avl, box(402), box(1126), nullptr); + avl = remove_int(avl, 1019); + avl = grpc_avl_add(avl, box(858), box(1128), nullptr); + avl = grpc_avl_add(avl, box(625), box(1129), nullptr); + avl = remove_int(avl, 675); + avl = remove_int(avl, 323); + avl = grpc_avl_add(avl, box(329), box(1132), nullptr); + avl = remove_int(avl, 929); + avl = remove_int(avl, 44); + avl = grpc_avl_add(avl, box(443), box(1135), nullptr); + avl = grpc_avl_add(avl, box(653), box(1136), nullptr); + avl = grpc_avl_add(avl, box(750), box(1137), nullptr); + avl = grpc_avl_add(avl, box(252), box(1138), nullptr); + avl = grpc_avl_add(avl, box(449), box(1139), nullptr); + avl = remove_int(avl, 1022); + avl = remove_int(avl, 357); + avl = remove_int(avl, 602); + avl = remove_int(avl, 131); + avl = grpc_avl_add(avl, box(531), box(1144), nullptr); + avl = remove_int(avl, 806); + avl = grpc_avl_add(avl, box(455), box(1146), nullptr); + avl = remove_int(avl, 31); + avl = grpc_avl_add(avl, box(154), box(1148), nullptr); + avl = grpc_avl_add(avl, box(189), box(1149), nullptr); + avl = remove_int(avl, 786); + avl = grpc_avl_add(avl, box(496), box(1151), nullptr); + avl = grpc_avl_add(avl, box(81), box(1152), nullptr); + avl = grpc_avl_add(avl, box(59), box(1153), nullptr); + avl = remove_int(avl, 424); + avl = remove_int(avl, 668); + avl = grpc_avl_add(avl, box(723), box(1156), nullptr); + avl = grpc_avl_add(avl, box(822), box(1157), nullptr); + avl = grpc_avl_add(avl, box(354), box(1158), nullptr); + avl = remove_int(avl, 738); + avl = grpc_avl_add(avl, box(686), box(1160), nullptr); + avl = grpc_avl_add(avl, box(43), box(1161), nullptr); + avl = grpc_avl_add(avl, box(625), box(1162), nullptr); + avl = grpc_avl_add(avl, box(902), box(1163), nullptr); + avl = grpc_avl_add(avl, box(12), box(1164), nullptr); + avl = grpc_avl_add(avl, box(977), box(1165), nullptr); + avl = grpc_avl_add(avl, box(699), box(1166), nullptr); + avl = grpc_avl_add(avl, box(189), box(1167), nullptr); + avl = remove_int(avl, 672); + avl = remove_int(avl, 90); + avl = remove_int(avl, 757); + avl = remove_int(avl, 494); + avl = grpc_avl_add(avl, box(759), box(1172), nullptr); + avl = remove_int(avl, 758); + avl = remove_int(avl, 222); + avl = grpc_avl_add(avl, box(975), box(1175), nullptr); + avl = remove_int(avl, 993); + avl = grpc_avl_add(avl, box(2), box(1177), nullptr); + avl = grpc_avl_add(avl, box(70), box(1178), nullptr); + avl = remove_int(avl, 350); + avl = remove_int(avl, 972); + avl = remove_int(avl, 880); + avl = grpc_avl_add(avl, box(753), box(1182), nullptr); + avl = remove_int(avl, 404); + avl = grpc_avl_add(avl, box(294), box(1184), nullptr); + avl = remove_int(avl, 474); + avl = grpc_avl_add(avl, box(228), box(1186), nullptr); + avl = grpc_avl_add(avl, box(484), box(1187), nullptr); + avl = remove_int(avl, 238); + avl = remove_int(avl, 53); + avl = remove_int(avl, 691); + avl = grpc_avl_add(avl, box(345), box(1191), nullptr); + avl = remove_int(avl, 0); + avl = grpc_avl_add(avl, box(230), box(1193), nullptr); + avl = remove_int(avl, 227); + avl = remove_int(avl, 152); + avl = grpc_avl_add(avl, box(884), box(1196), nullptr); + avl = remove_int(avl, 823); + avl = remove_int(avl, 53); + avl = grpc_avl_add(avl, box(1015), box(1199), nullptr); + avl = grpc_avl_add(avl, box(697), box(1200), nullptr); + avl = grpc_avl_add(avl, box(376), box(1201), nullptr); + avl = remove_int(avl, 411); + avl = grpc_avl_add(avl, box(888), box(1203), nullptr); + avl = remove_int(avl, 55); + avl = grpc_avl_add(avl, box(85), box(1205), nullptr); + avl = remove_int(avl, 947); + avl = remove_int(avl, 382); + avl = remove_int(avl, 777); + avl = grpc_avl_add(avl, box(1017), box(1209), nullptr); + avl = grpc_avl_add(avl, box(169), box(1210), nullptr); + avl = grpc_avl_add(avl, box(156), box(1211), nullptr); + avl = remove_int(avl, 153); + avl = remove_int(avl, 642); + avl = remove_int(avl, 158); + avl = grpc_avl_add(avl, box(554), box(1215), nullptr); + avl = grpc_avl_add(avl, box(76), box(1216), nullptr); + avl = grpc_avl_add(avl, box(756), box(1217), nullptr); + avl = remove_int(avl, 767); + avl = remove_int(avl, 112); + avl = remove_int(avl, 539); + avl = remove_int(avl, 544); + avl = remove_int(avl, 628); + avl = remove_int(avl, 385); + avl = remove_int(avl, 514); + avl = remove_int(avl, 362); + avl = grpc_avl_add(avl, box(523), box(1226), nullptr); + avl = grpc_avl_add(avl, box(712), box(1227), nullptr); + avl = grpc_avl_add(avl, box(474), box(1228), nullptr); + avl = grpc_avl_add(avl, box(882), box(1229), nullptr); + avl = grpc_avl_add(avl, box(965), box(1230), nullptr); + avl = remove_int(avl, 464); + avl = grpc_avl_add(avl, box(319), box(1232), nullptr); + avl = grpc_avl_add(avl, box(504), box(1233), nullptr); + avl = remove_int(avl, 818); + avl = grpc_avl_add(avl, box(884), box(1235), nullptr); + avl = grpc_avl_add(avl, box(813), box(1236), nullptr); + avl = grpc_avl_add(avl, box(795), box(1237), nullptr); + avl = remove_int(avl, 306); + avl = grpc_avl_add(avl, box(799), box(1239), nullptr); + avl = remove_int(avl, 534); + avl = grpc_avl_add(avl, box(480), box(1241), nullptr); + avl = grpc_avl_add(avl, box(656), box(1242), nullptr); + avl = grpc_avl_add(avl, box(709), box(1243), nullptr); + avl = grpc_avl_add(avl, box(500), box(1244), nullptr); + avl = remove_int(avl, 740); + avl = grpc_avl_add(avl, box(980), box(1246), nullptr); + avl = grpc_avl_add(avl, box(458), box(1247), nullptr); + avl = remove_int(avl, 377); + avl = remove_int(avl, 338); + avl = grpc_avl_add(avl, box(554), box(1250), nullptr); + avl = grpc_avl_add(avl, box(504), box(1251), nullptr); + avl = grpc_avl_add(avl, box(603), box(1252), nullptr); + avl = grpc_avl_add(avl, box(761), box(1253), nullptr); + avl = remove_int(avl, 431); + avl = grpc_avl_add(avl, box(707), box(1255), nullptr); + avl = grpc_avl_add(avl, box(673), box(1256), nullptr); + avl = remove_int(avl, 998); + avl = remove_int(avl, 332); + avl = remove_int(avl, 413); + avl = remove_int(avl, 227); + avl = remove_int(avl, 249); + avl = remove_int(avl, 309); + avl = remove_int(avl, 459); + avl = grpc_avl_add(avl, box(645), box(1264), nullptr); + avl = remove_int(avl, 858); + avl = remove_int(avl, 997); + avl = grpc_avl_add(avl, box(519), box(1267), nullptr); + avl = remove_int(avl, 614); + avl = remove_int(avl, 462); + avl = remove_int(avl, 792); + avl = grpc_avl_add(avl, box(987), box(1271), nullptr); + avl = grpc_avl_add(avl, box(309), box(1272), nullptr); + avl = remove_int(avl, 747); + avl = grpc_avl_add(avl, box(621), box(1274), nullptr); + avl = grpc_avl_add(avl, box(450), box(1275), nullptr); + avl = remove_int(avl, 265); + avl = remove_int(avl, 8); + avl = remove_int(avl, 383); + avl = grpc_avl_add(avl, box(238), box(1279), nullptr); + avl = remove_int(avl, 241); + avl = grpc_avl_add(avl, box(180), box(1281), nullptr); + avl = grpc_avl_add(avl, box(411), box(1282), nullptr); + avl = grpc_avl_add(avl, box(791), box(1283), nullptr); + avl = grpc_avl_add(avl, box(955), box(1284), nullptr); + avl = remove_int(avl, 24); + avl = remove_int(avl, 375); + avl = grpc_avl_add(avl, box(140), box(1287), nullptr); + avl = remove_int(avl, 949); + avl = grpc_avl_add(avl, box(301), box(1289), nullptr); + avl = grpc_avl_add(avl, box(0), box(1290), nullptr); + avl = remove_int(avl, 371); + avl = remove_int(avl, 427); + avl = remove_int(avl, 841); + avl = remove_int(avl, 847); + avl = grpc_avl_add(avl, box(814), box(1295), nullptr); + avl = grpc_avl_add(avl, box(127), box(1296), nullptr); + avl = grpc_avl_add(avl, box(279), box(1297), nullptr); + avl = remove_int(avl, 669); + avl = remove_int(avl, 541); + avl = remove_int(avl, 275); + avl = remove_int(avl, 299); + avl = remove_int(avl, 552); + avl = grpc_avl_add(avl, box(310), box(1303), nullptr); + avl = grpc_avl_add(avl, box(304), box(1304), nullptr); + avl = grpc_avl_add(avl, box(1), box(1305), nullptr); + avl = grpc_avl_add(avl, box(339), box(1306), nullptr); + avl = remove_int(avl, 570); + avl = remove_int(avl, 752); + avl = remove_int(avl, 552); + avl = remove_int(avl, 442); + avl = remove_int(avl, 639); + avl = grpc_avl_add(avl, box(313), box(1312), nullptr); + avl = remove_int(avl, 85); + avl = grpc_avl_add(avl, box(964), box(1314), nullptr); + avl = grpc_avl_add(avl, box(559), box(1315), nullptr); + avl = remove_int(avl, 167); + avl = grpc_avl_add(avl, box(866), box(1317), nullptr); + avl = remove_int(avl, 275); + avl = grpc_avl_add(avl, box(173), box(1319), nullptr); + avl = grpc_avl_add(avl, box(765), box(1320), nullptr); + avl = remove_int(avl, 883); + avl = grpc_avl_add(avl, box(547), box(1322), nullptr); + avl = grpc_avl_add(avl, box(847), box(1323), nullptr); + avl = remove_int(avl, 817); + avl = remove_int(avl, 850); + avl = remove_int(avl, 718); + avl = grpc_avl_add(avl, box(806), box(1327), nullptr); + avl = grpc_avl_add(avl, box(360), box(1328), nullptr); + avl = remove_int(avl, 991); + avl = grpc_avl_add(avl, box(493), box(1330), nullptr); + avl = remove_int(avl, 516); + avl = grpc_avl_add(avl, box(361), box(1332), nullptr); + avl = remove_int(avl, 355); + avl = grpc_avl_add(avl, box(512), box(1334), nullptr); + avl = grpc_avl_add(avl, box(191), box(1335), nullptr); + avl = remove_int(avl, 703); + avl = grpc_avl_add(avl, box(333), box(1337), nullptr); + avl = remove_int(avl, 481); + avl = grpc_avl_add(avl, box(501), box(1339), nullptr); + avl = remove_int(avl, 532); + avl = remove_int(avl, 510); + avl = grpc_avl_add(avl, box(793), box(1342), nullptr); + avl = grpc_avl_add(avl, box(234), box(1343), nullptr); + avl = remove_int(avl, 159); + avl = remove_int(avl, 429); + avl = remove_int(avl, 728); + avl = remove_int(avl, 288); + avl = grpc_avl_add(avl, box(281), box(1348), nullptr); + avl = grpc_avl_add(avl, box(702), box(1349), nullptr); + avl = grpc_avl_add(avl, box(149), box(1350), nullptr); + avl = remove_int(avl, 22); + avl = remove_int(avl, 944); + avl = remove_int(avl, 55); + avl = remove_int(avl, 512); + avl = remove_int(avl, 676); + avl = remove_int(avl, 884); + avl = grpc_avl_add(avl, box(246), box(1357), nullptr); + avl = grpc_avl_add(avl, box(455), box(1358), nullptr); + avl = remove_int(avl, 782); + avl = remove_int(avl, 682); + avl = grpc_avl_add(avl, box(243), box(1361), nullptr); + avl = grpc_avl_add(avl, box(109), box(1362), nullptr); + avl = grpc_avl_add(avl, box(452), box(1363), nullptr); + avl = remove_int(avl, 151); + avl = grpc_avl_add(avl, box(159), box(1365), nullptr); + avl = remove_int(avl, 1023); + avl = grpc_avl_add(avl, box(129), box(1367), nullptr); + avl = grpc_avl_add(avl, box(537), box(1368), nullptr); + avl = remove_int(avl, 321); + avl = grpc_avl_add(avl, box(740), box(1370), nullptr); + avl = remove_int(avl, 45); + avl = remove_int(avl, 136); + avl = grpc_avl_add(avl, box(229), box(1373), nullptr); + avl = remove_int(avl, 772); + avl = grpc_avl_add(avl, box(181), box(1375), nullptr); + avl = remove_int(avl, 175); + avl = grpc_avl_add(avl, box(817), box(1377), nullptr); + avl = remove_int(avl, 956); + avl = grpc_avl_add(avl, box(675), box(1379), nullptr); + avl = grpc_avl_add(avl, box(375), box(1380), nullptr); + avl = remove_int(avl, 384); + avl = grpc_avl_add(avl, box(1016), box(1382), nullptr); + avl = remove_int(avl, 295); + avl = remove_int(avl, 697); + avl = remove_int(avl, 554); + avl = remove_int(avl, 590); + avl = remove_int(avl, 1014); + avl = grpc_avl_add(avl, box(890), box(1388), nullptr); + avl = grpc_avl_add(avl, box(293), box(1389), nullptr); + avl = remove_int(avl, 207); + avl = remove_int(avl, 46); + avl = grpc_avl_add(avl, box(899), box(1392), nullptr); + avl = grpc_avl_add(avl, box(666), box(1393), nullptr); + avl = grpc_avl_add(avl, box(85), box(1394), nullptr); + avl = grpc_avl_add(avl, box(914), box(1395), nullptr); + avl = grpc_avl_add(avl, box(128), box(1396), nullptr); + avl = grpc_avl_add(avl, box(835), box(1397), nullptr); + avl = grpc_avl_add(avl, box(787), box(1398), nullptr); + avl = grpc_avl_add(avl, box(649), box(1399), nullptr); + avl = grpc_avl_add(avl, box(723), box(1400), nullptr); + avl = remove_int(avl, 874); + avl = grpc_avl_add(avl, box(778), box(1402), nullptr); + avl = grpc_avl_add(avl, box(1015), box(1403), nullptr); + avl = grpc_avl_add(avl, box(59), box(1404), nullptr); + avl = grpc_avl_add(avl, box(259), box(1405), nullptr); + avl = grpc_avl_add(avl, box(758), box(1406), nullptr); + avl = remove_int(avl, 648); + avl = grpc_avl_add(avl, box(145), box(1408), nullptr); + avl = grpc_avl_add(avl, box(440), box(1409), nullptr); + avl = remove_int(avl, 608); + avl = remove_int(avl, 690); + avl = grpc_avl_add(avl, box(605), box(1412), nullptr); + avl = remove_int(avl, 856); + avl = remove_int(avl, 608); + avl = grpc_avl_add(avl, box(829), box(1415), nullptr); + avl = grpc_avl_add(avl, box(660), box(1416), nullptr); + avl = remove_int(avl, 596); + avl = grpc_avl_add(avl, box(519), box(1418), nullptr); + avl = grpc_avl_add(avl, box(35), box(1419), nullptr); + avl = grpc_avl_add(avl, box(871), box(1420), nullptr); + avl = remove_int(avl, 845); + avl = grpc_avl_add(avl, box(600), box(1422), nullptr); + avl = grpc_avl_add(avl, box(215), box(1423), nullptr); + avl = remove_int(avl, 761); + avl = grpc_avl_add(avl, box(975), box(1425), nullptr); + avl = remove_int(avl, 987); + avl = grpc_avl_add(avl, box(58), box(1427), nullptr); + avl = remove_int(avl, 119); + avl = grpc_avl_add(avl, box(937), box(1429), nullptr); + avl = grpc_avl_add(avl, box(372), box(1430), nullptr); + avl = grpc_avl_add(avl, box(11), box(1431), nullptr); + avl = grpc_avl_add(avl, box(398), box(1432), nullptr); + avl = grpc_avl_add(avl, box(423), box(1433), nullptr); + avl = remove_int(avl, 171); + avl = grpc_avl_add(avl, box(473), box(1435), nullptr); + avl = remove_int(avl, 752); + avl = remove_int(avl, 625); + avl = remove_int(avl, 764); + avl = remove_int(avl, 49); + avl = grpc_avl_add(avl, box(472), box(1440), nullptr); + avl = remove_int(avl, 847); + avl = remove_int(avl, 642); + avl = remove_int(avl, 1004); + avl = remove_int(avl, 795); + avl = remove_int(avl, 465); + avl = grpc_avl_add(avl, box(636), box(1446), nullptr); + avl = remove_int(avl, 152); + avl = grpc_avl_add(avl, box(61), box(1448), nullptr); + avl = remove_int(avl, 929); + avl = remove_int(avl, 9); + avl = grpc_avl_add(avl, box(251), box(1451), nullptr); + avl = grpc_avl_add(avl, box(672), box(1452), nullptr); + avl = grpc_avl_add(avl, box(66), box(1453), nullptr); + avl = remove_int(avl, 693); + avl = remove_int(avl, 914); + avl = remove_int(avl, 116); + avl = remove_int(avl, 577); + avl = grpc_avl_add(avl, box(618), box(1458), nullptr); + avl = grpc_avl_add(avl, box(495), box(1459), nullptr); + avl = remove_int(avl, 450); + avl = grpc_avl_add(avl, box(533), box(1461), nullptr); + avl = grpc_avl_add(avl, box(414), box(1462), nullptr); + avl = remove_int(avl, 74); + avl = remove_int(avl, 236); + avl = grpc_avl_add(avl, box(707), box(1465), nullptr); + avl = grpc_avl_add(avl, box(357), box(1466), nullptr); + avl = grpc_avl_add(avl, box(1007), box(1467), nullptr); + avl = grpc_avl_add(avl, box(811), box(1468), nullptr); + avl = grpc_avl_add(avl, box(418), box(1469), nullptr); + avl = grpc_avl_add(avl, box(164), box(1470), nullptr); + avl = grpc_avl_add(avl, box(622), box(1471), nullptr); + avl = remove_int(avl, 22); + avl = remove_int(avl, 14); + avl = remove_int(avl, 732); + avl = remove_int(avl, 7); + avl = remove_int(avl, 447); + avl = grpc_avl_add(avl, box(221), box(1477), nullptr); + avl = grpc_avl_add(avl, box(202), box(1478), nullptr); + avl = grpc_avl_add(avl, box(312), box(1479), nullptr); + avl = remove_int(avl, 274); + avl = grpc_avl_add(avl, box(684), box(1481), nullptr); + avl = grpc_avl_add(avl, box(954), box(1482), nullptr); + avl = grpc_avl_add(avl, box(637), box(1483), nullptr); + avl = remove_int(avl, 716); + avl = grpc_avl_add(avl, box(198), box(1485), nullptr); + avl = remove_int(avl, 340); + avl = remove_int(avl, 137); + avl = remove_int(avl, 995); + avl = remove_int(avl, 1004); + avl = grpc_avl_add(avl, box(661), box(1490), nullptr); + avl = grpc_avl_add(avl, box(862), box(1491), nullptr); + avl = remove_int(avl, 527); + avl = grpc_avl_add(avl, box(945), box(1493), nullptr); + avl = remove_int(avl, 355); + avl = remove_int(avl, 144); + avl = grpc_avl_add(avl, box(229), box(1496), nullptr); + avl = grpc_avl_add(avl, box(237), box(1497), nullptr); + avl = remove_int(avl, 471); + avl = remove_int(avl, 901); + avl = grpc_avl_add(avl, box(905), box(1500), nullptr); + avl = remove_int(avl, 19); + avl = remove_int(avl, 896); + avl = remove_int(avl, 585); + avl = remove_int(avl, 308); + avl = grpc_avl_add(avl, box(547), box(1505), nullptr); + avl = grpc_avl_add(avl, box(552), box(1506), nullptr); + avl = grpc_avl_add(avl, box(30), box(1507), nullptr); + avl = grpc_avl_add(avl, box(445), box(1508), nullptr); + avl = remove_int(avl, 785); + avl = remove_int(avl, 185); + avl = grpc_avl_add(avl, box(405), box(1511), nullptr); + avl = grpc_avl_add(avl, box(733), box(1512), nullptr); + avl = grpc_avl_add(avl, box(573), box(1513), nullptr); + avl = grpc_avl_add(avl, box(492), box(1514), nullptr); + avl = grpc_avl_add(avl, box(343), box(1515), nullptr); + avl = grpc_avl_add(avl, box(527), box(1516), nullptr); + avl = grpc_avl_add(avl, box(596), box(1517), nullptr); + avl = grpc_avl_add(avl, box(519), box(1518), nullptr); + avl = remove_int(avl, 243); + avl = remove_int(avl, 722); + avl = grpc_avl_add(avl, box(772), box(1521), nullptr); + avl = remove_int(avl, 152); + avl = remove_int(avl, 305); + avl = grpc_avl_add(avl, box(754), box(1524), nullptr); + avl = grpc_avl_add(avl, box(373), box(1525), nullptr); + avl = remove_int(avl, 995); + avl = grpc_avl_add(avl, box(329), box(1527), nullptr); + avl = remove_int(avl, 397); + avl = grpc_avl_add(avl, box(884), box(1529), nullptr); + avl = remove_int(avl, 329); + avl = remove_int(avl, 240); + avl = grpc_avl_add(avl, box(566), box(1532), nullptr); + avl = grpc_avl_add(avl, box(232), box(1533), nullptr); + avl = remove_int(avl, 993); + avl = grpc_avl_add(avl, box(888), box(1535), nullptr); + avl = remove_int(avl, 242); + avl = grpc_avl_add(avl, box(941), box(1537), nullptr); + avl = remove_int(avl, 415); + avl = grpc_avl_add(avl, box(992), box(1539), nullptr); + avl = remove_int(avl, 289); + avl = grpc_avl_add(avl, box(60), box(1541), nullptr); + avl = grpc_avl_add(avl, box(97), box(1542), nullptr); + avl = remove_int(avl, 965); + avl = remove_int(avl, 267); + avl = remove_int(avl, 360); + avl = grpc_avl_add(avl, box(5), box(1546), nullptr); + avl = remove_int(avl, 429); + avl = grpc_avl_add(avl, box(412), box(1548), nullptr); + avl = remove_int(avl, 632); + avl = remove_int(avl, 113); + avl = grpc_avl_add(avl, box(48), box(1551), nullptr); + avl = grpc_avl_add(avl, box(108), box(1552), nullptr); + avl = grpc_avl_add(avl, box(750), box(1553), nullptr); + avl = remove_int(avl, 188); + avl = grpc_avl_add(avl, box(668), box(1555), nullptr); + avl = remove_int(avl, 37); + avl = remove_int(avl, 737); + avl = grpc_avl_add(avl, box(93), box(1558), nullptr); + avl = grpc_avl_add(avl, box(628), box(1559), nullptr); + avl = grpc_avl_add(avl, box(480), box(1560), nullptr); + avl = remove_int(avl, 958); + avl = remove_int(avl, 565); + avl = remove_int(avl, 32); + avl = remove_int(avl, 1); + avl = remove_int(avl, 335); + avl = grpc_avl_add(avl, box(136), box(1566), nullptr); + avl = grpc_avl_add(avl, box(469), box(1567), nullptr); + avl = remove_int(avl, 349); + avl = grpc_avl_add(avl, box(768), box(1569), nullptr); + avl = grpc_avl_add(avl, box(915), box(1570), nullptr); + avl = remove_int(avl, 1014); + avl = grpc_avl_add(avl, box(117), box(1572), nullptr); + avl = remove_int(avl, 62); + avl = grpc_avl_add(avl, box(382), box(1574), nullptr); + avl = remove_int(avl, 571); + avl = grpc_avl_add(avl, box(655), box(1576), nullptr); + avl = grpc_avl_add(avl, box(323), box(1577), nullptr); + avl = remove_int(avl, 869); + avl = remove_int(avl, 151); + avl = grpc_avl_add(avl, box(1019), box(1580), nullptr); + avl = grpc_avl_add(avl, box(984), box(1581), nullptr); + avl = grpc_avl_add(avl, box(870), box(1582), nullptr); + avl = grpc_avl_add(avl, box(376), box(1583), nullptr); + avl = remove_int(avl, 625); + avl = grpc_avl_add(avl, box(733), box(1585), nullptr); + avl = remove_int(avl, 532); + avl = remove_int(avl, 444); + avl = grpc_avl_add(avl, box(428), box(1588), nullptr); + avl = grpc_avl_add(avl, box(860), box(1589), nullptr); + avl = grpc_avl_add(avl, box(173), box(1590), nullptr); + avl = remove_int(avl, 649); + avl = remove_int(avl, 913); + avl = remove_int(avl, 1); + avl = remove_int(avl, 304); + avl = grpc_avl_add(avl, box(604), box(1595), nullptr); + avl = grpc_avl_add(avl, box(639), box(1596), nullptr); + avl = remove_int(avl, 431); + avl = grpc_avl_add(avl, box(993), box(1598), nullptr); + avl = remove_int(avl, 681); + avl = remove_int(avl, 927); + avl = grpc_avl_add(avl, box(87), box(1601), nullptr); + avl = grpc_avl_add(avl, box(91), box(1602), nullptr); + avl = remove_int(avl, 61); + avl = remove_int(avl, 14); + avl = remove_int(avl, 305); + avl = remove_int(avl, 304); + avl = remove_int(avl, 1016); + avl = grpc_avl_add(avl, box(903), box(1608), nullptr); + avl = grpc_avl_add(avl, box(951), box(1609), nullptr); + avl = grpc_avl_add(avl, box(146), box(1610), nullptr); + avl = grpc_avl_add(avl, box(482), box(1611), nullptr); + avl = grpc_avl_add(avl, box(71), box(1612), nullptr); + avl = remove_int(avl, 246); + avl = remove_int(avl, 696); + avl = grpc_avl_add(avl, box(636), box(1615), nullptr); + avl = grpc_avl_add(avl, box(295), box(1616), nullptr); + avl = remove_int(avl, 11); + avl = remove_int(avl, 231); + avl = grpc_avl_add(avl, box(905), box(1619), nullptr); + avl = grpc_avl_add(avl, box(993), box(1620), nullptr); + avl = grpc_avl_add(avl, box(433), box(1621), nullptr); + avl = grpc_avl_add(avl, box(117), box(1622), nullptr); + avl = grpc_avl_add(avl, box(467), box(1623), nullptr); + avl = remove_int(avl, 419); + avl = grpc_avl_add(avl, box(179), box(1625), nullptr); + avl = remove_int(avl, 926); + avl = remove_int(avl, 326); + avl = grpc_avl_add(avl, box(551), box(1628), nullptr); + avl = remove_int(avl, 14); + avl = remove_int(avl, 476); + avl = remove_int(avl, 823); + avl = grpc_avl_add(avl, box(350), box(1632), nullptr); + avl = grpc_avl_add(avl, box(133), box(1633), nullptr); + avl = remove_int(avl, 906); + avl = grpc_avl_add(avl, box(827), box(1635), nullptr); + avl = grpc_avl_add(avl, box(201), box(1636), nullptr); + avl = remove_int(avl, 124); + avl = remove_int(avl, 662); + avl = grpc_avl_add(avl, box(314), box(1639), nullptr); + avl = grpc_avl_add(avl, box(986), box(1640), nullptr); + avl = grpc_avl_add(avl, box(622), box(1641), nullptr); + avl = remove_int(avl, 130); + avl = grpc_avl_add(avl, box(861), box(1643), nullptr); + avl = remove_int(avl, 497); + avl = remove_int(avl, 905); + avl = grpc_avl_add(avl, box(502), box(1646), nullptr); + avl = remove_int(avl, 721); + avl = grpc_avl_add(avl, box(514), box(1648), nullptr); + avl = grpc_avl_add(avl, box(410), box(1649), nullptr); + avl = remove_int(avl, 869); + avl = remove_int(avl, 247); + avl = grpc_avl_add(avl, box(450), box(1652), nullptr); + avl = remove_int(avl, 364); + avl = grpc_avl_add(avl, box(963), box(1654), nullptr); + avl = grpc_avl_add(avl, box(146), box(1655), nullptr); + avl = remove_int(avl, 147); + avl = remove_int(avl, 789); + avl = grpc_avl_add(avl, box(693), box(1658), nullptr); + avl = grpc_avl_add(avl, box(959), box(1659), nullptr); + avl = remove_int(avl, 478); + avl = grpc_avl_add(avl, box(116), box(1661), nullptr); + avl = grpc_avl_add(avl, box(520), box(1662), nullptr); + avl = grpc_avl_add(avl, box(809), box(1663), nullptr); + avl = grpc_avl_add(avl, box(667), box(1664), nullptr); + avl = grpc_avl_add(avl, box(406), box(1665), nullptr); + avl = remove_int(avl, 409); + avl = grpc_avl_add(avl, box(558), box(1667), nullptr); + avl = grpc_avl_add(avl, box(0), box(1668), nullptr); + avl = grpc_avl_add(avl, box(948), box(1669), nullptr); + avl = grpc_avl_add(avl, box(576), box(1670), nullptr); + avl = remove_int(avl, 864); + avl = remove_int(avl, 840); + avl = remove_int(avl, 1001); + avl = grpc_avl_add(avl, box(232), box(1674), nullptr); + avl = remove_int(avl, 676); + avl = remove_int(avl, 752); + avl = remove_int(avl, 667); + avl = remove_int(avl, 605); + avl = grpc_avl_add(avl, box(258), box(1679), nullptr); + avl = grpc_avl_add(avl, box(648), box(1680), nullptr); + avl = grpc_avl_add(avl, box(761), box(1681), nullptr); + avl = remove_int(avl, 293); + avl = remove_int(avl, 893); + avl = grpc_avl_add(avl, box(194), box(1684), nullptr); + avl = remove_int(avl, 233); + avl = grpc_avl_add(avl, box(888), box(1686), nullptr); + avl = remove_int(avl, 470); + avl = remove_int(avl, 703); + avl = remove_int(avl, 190); + avl = remove_int(avl, 359); + avl = grpc_avl_add(avl, box(621), box(1691), nullptr); + avl = remove_int(avl, 634); + avl = remove_int(avl, 335); + avl = grpc_avl_add(avl, box(718), box(1694), nullptr); + avl = grpc_avl_add(avl, box(463), box(1695), nullptr); + avl = grpc_avl_add(avl, box(233), box(1696), nullptr); + avl = remove_int(avl, 376); + avl = remove_int(avl, 496); + avl = remove_int(avl, 819); + avl = remove_int(avl, 38); + avl = remove_int(avl, 436); + avl = remove_int(avl, 102); + avl = grpc_avl_add(avl, box(607), box(1703), nullptr); + avl = remove_int(avl, 329); + avl = grpc_avl_add(avl, box(716), box(1705), nullptr); + avl = remove_int(avl, 639); + avl = remove_int(avl, 775); + avl = remove_int(avl, 578); + avl = remove_int(avl, 464); + avl = remove_int(avl, 679); + avl = remove_int(avl, 615); + avl = remove_int(avl, 104); + avl = grpc_avl_add(avl, box(414), box(1713), nullptr); + avl = grpc_avl_add(avl, box(212), box(1714), nullptr); + avl = grpc_avl_add(avl, box(266), box(1715), nullptr); + avl = grpc_avl_add(avl, box(238), box(1716), nullptr); + avl = remove_int(avl, 153); + avl = grpc_avl_add(avl, box(585), box(1718), nullptr); + avl = remove_int(avl, 121); + avl = grpc_avl_add(avl, box(534), box(1720), nullptr); + avl = remove_int(avl, 579); + avl = grpc_avl_add(avl, box(127), box(1722), nullptr); + avl = grpc_avl_add(avl, box(399), box(1723), nullptr); + avl = remove_int(avl, 417); + avl = grpc_avl_add(avl, box(978), box(1725), nullptr); + avl = grpc_avl_add(avl, box(768), box(1726), nullptr); + avl = remove_int(avl, 985); + avl = grpc_avl_add(avl, box(536), box(1728), nullptr); + avl = grpc_avl_add(avl, box(449), box(1729), nullptr); + avl = grpc_avl_add(avl, box(586), box(1730), nullptr); + avl = remove_int(avl, 998); + avl = remove_int(avl, 394); + avl = remove_int(avl, 141); + avl = grpc_avl_add(avl, box(889), box(1734), nullptr); + avl = grpc_avl_add(avl, box(871), box(1735), nullptr); + avl = grpc_avl_add(avl, box(76), box(1736), nullptr); + avl = grpc_avl_add(avl, box(549), box(1737), nullptr); + avl = grpc_avl_add(avl, box(757), box(1738), nullptr); + avl = remove_int(avl, 908); + avl = grpc_avl_add(avl, box(789), box(1740), nullptr); + avl = remove_int(avl, 224); + avl = grpc_avl_add(avl, box(407), box(1742), nullptr); + avl = grpc_avl_add(avl, box(381), box(1743), nullptr); + avl = grpc_avl_add(avl, box(561), box(1744), nullptr); + avl = grpc_avl_add(avl, box(667), box(1745), nullptr); + avl = grpc_avl_add(avl, box(522), box(1746), nullptr); + avl = grpc_avl_add(avl, box(948), box(1747), nullptr); + avl = remove_int(avl, 770); + avl = grpc_avl_add(avl, box(872), box(1749), nullptr); + avl = grpc_avl_add(avl, box(327), box(1750), nullptr); + avl = remove_int(avl, 10); + avl = grpc_avl_add(avl, box(122), box(1752), nullptr); + avl = remove_int(avl, 606); + avl = grpc_avl_add(avl, box(485), box(1754), nullptr); + avl = remove_int(avl, 6); + avl = grpc_avl_add(avl, box(329), box(1756), nullptr); + avl = grpc_avl_add(avl, box(783), box(1757), nullptr); + avl = remove_int(avl, 416); + avl = grpc_avl_add(avl, box(656), box(1759), nullptr); + avl = grpc_avl_add(avl, box(971), box(1760), nullptr); + avl = grpc_avl_add(avl, box(77), box(1761), nullptr); + avl = grpc_avl_add(avl, box(942), box(1762), nullptr); + avl = remove_int(avl, 361); + avl = grpc_avl_add(avl, box(66), box(1764), nullptr); + avl = grpc_avl_add(avl, box(299), box(1765), nullptr); + avl = grpc_avl_add(avl, box(929), box(1766), nullptr); + avl = grpc_avl_add(avl, box(797), box(1767), nullptr); + avl = remove_int(avl, 869); + avl = remove_int(avl, 907); + avl = grpc_avl_add(avl, box(870), box(1770), nullptr); + avl = remove_int(avl, 580); + avl = remove_int(avl, 120); + avl = grpc_avl_add(avl, box(913), box(1773), nullptr); + avl = remove_int(avl, 480); + avl = grpc_avl_add(avl, box(489), box(1775), nullptr); + avl = remove_int(avl, 845); + avl = grpc_avl_add(avl, box(896), box(1777), nullptr); + avl = remove_int(avl, 567); + avl = remove_int(avl, 427); + avl = grpc_avl_add(avl, box(443), box(1780), nullptr); + avl = grpc_avl_add(avl, box(3), box(1781), nullptr); + avl = remove_int(avl, 12); + avl = grpc_avl_add(avl, box(376), box(1783), nullptr); + avl = grpc_avl_add(avl, box(155), box(1784), nullptr); + avl = grpc_avl_add(avl, box(188), box(1785), nullptr); + avl = grpc_avl_add(avl, box(149), box(1786), nullptr); + avl = grpc_avl_add(avl, box(178), box(1787), nullptr); + avl = remove_int(avl, 84); + avl = grpc_avl_add(avl, box(805), box(1789), nullptr); + avl = grpc_avl_add(avl, box(612), box(1790), nullptr); + avl = remove_int(avl, 991); + avl = grpc_avl_add(avl, box(837), box(1792), nullptr); + avl = remove_int(avl, 173); + avl = remove_int(avl, 72); + avl = grpc_avl_add(avl, box(1014), box(1795), nullptr); + avl = remove_int(avl, 303); + avl = grpc_avl_add(avl, box(865), box(1797), nullptr); + avl = grpc_avl_add(avl, box(793), box(1798), nullptr); + avl = remove_int(avl, 173); + avl = remove_int(avl, 477); + avl = grpc_avl_add(avl, box(950), box(1801), nullptr); + avl = grpc_avl_add(avl, box(105), box(1802), nullptr); + avl = grpc_avl_add(avl, box(895), box(1803), nullptr); + avl = grpc_avl_add(avl, box(171), box(1804), nullptr); + avl = grpc_avl_add(avl, box(753), box(1805), nullptr); + avl = grpc_avl_add(avl, box(946), box(1806), nullptr); + avl = remove_int(avl, 194); + avl = remove_int(avl, 559); + avl = remove_int(avl, 116); + avl = grpc_avl_add(avl, box(968), box(1810), nullptr); + avl = remove_int(avl, 124); + avl = remove_int(avl, 99); + avl = grpc_avl_add(avl, box(563), box(1813), nullptr); + avl = remove_int(avl, 182); + avl = grpc_avl_add(avl, box(816), box(1815), nullptr); + avl = remove_int(avl, 73); + avl = remove_int(avl, 261); + avl = grpc_avl_add(avl, box(847), box(1818), nullptr); + avl = grpc_avl_add(avl, box(368), box(1819), nullptr); + avl = grpc_avl_add(avl, box(808), box(1820), nullptr); + avl = grpc_avl_add(avl, box(779), box(1821), nullptr); + avl = remove_int(avl, 818); + avl = grpc_avl_add(avl, box(466), box(1823), nullptr); + avl = remove_int(avl, 316); + avl = grpc_avl_add(avl, box(986), box(1825), nullptr); + avl = grpc_avl_add(avl, box(688), box(1826), nullptr); + avl = grpc_avl_add(avl, box(509), box(1827), nullptr); + avl = grpc_avl_add(avl, box(51), box(1828), nullptr); + avl = remove_int(avl, 655); + avl = remove_int(avl, 785); + avl = remove_int(avl, 893); + avl = grpc_avl_add(avl, box(167), box(1832), nullptr); + avl = remove_int(avl, 13); + avl = remove_int(avl, 263); + avl = grpc_avl_add(avl, box(1009), box(1835), nullptr); + avl = remove_int(avl, 480); + avl = remove_int(avl, 778); + avl = remove_int(avl, 713); + avl = remove_int(avl, 628); + avl = grpc_avl_add(avl, box(803), box(1840), nullptr); + avl = remove_int(avl, 267); + avl = grpc_avl_add(avl, box(676), box(1842), nullptr); + avl = grpc_avl_add(avl, box(231), box(1843), nullptr); + avl = grpc_avl_add(avl, box(824), box(1844), nullptr); + avl = remove_int(avl, 961); + avl = grpc_avl_add(avl, box(311), box(1846), nullptr); + avl = grpc_avl_add(avl, box(420), box(1847), nullptr); + avl = grpc_avl_add(avl, box(960), box(1848), nullptr); + avl = grpc_avl_add(avl, box(468), box(1849), nullptr); + avl = grpc_avl_add(avl, box(815), box(1850), nullptr); + avl = remove_int(avl, 247); + avl = remove_int(avl, 194); + avl = grpc_avl_add(avl, box(546), box(1853), nullptr); + avl = remove_int(avl, 222); + avl = remove_int(avl, 914); + avl = remove_int(avl, 741); + avl = grpc_avl_add(avl, box(470), box(1857), nullptr); + avl = grpc_avl_add(avl, box(933), box(1858), nullptr); + avl = grpc_avl_add(avl, box(97), box(1859), nullptr); + avl = remove_int(avl, 564); + avl = remove_int(avl, 295); + avl = grpc_avl_add(avl, box(864), box(1862), nullptr); + avl = remove_int(avl, 329); + avl = grpc_avl_add(avl, box(124), box(1864), nullptr); + avl = grpc_avl_add(avl, box(1000), box(1865), nullptr); + avl = grpc_avl_add(avl, box(228), box(1866), nullptr); + avl = grpc_avl_add(avl, box(187), box(1867), nullptr); + avl = remove_int(avl, 224); + avl = remove_int(avl, 306); + avl = remove_int(avl, 884); + avl = grpc_avl_add(avl, box(449), box(1871), nullptr); + avl = grpc_avl_add(avl, box(353), box(1872), nullptr); + avl = grpc_avl_add(avl, box(994), box(1873), nullptr); + avl = grpc_avl_add(avl, box(596), box(1874), nullptr); + avl = grpc_avl_add(avl, box(996), box(1875), nullptr); + avl = grpc_avl_add(avl, box(101), box(1876), nullptr); + avl = grpc_avl_add(avl, box(1012), box(1877), nullptr); + avl = grpc_avl_add(avl, box(982), box(1878), nullptr); + avl = grpc_avl_add(avl, box(742), box(1879), nullptr); + avl = remove_int(avl, 92); + avl = remove_int(avl, 1022); + avl = grpc_avl_add(avl, box(941), box(1882), nullptr); + avl = remove_int(avl, 742); + avl = remove_int(avl, 919); + avl = grpc_avl_add(avl, box(588), box(1885), nullptr); + avl = remove_int(avl, 221); + avl = grpc_avl_add(avl, box(356), box(1887), nullptr); + avl = grpc_avl_add(avl, box(932), box(1888), nullptr); + avl = remove_int(avl, 837); + avl = grpc_avl_add(avl, box(394), box(1890), nullptr); + avl = grpc_avl_add(avl, box(642), box(1891), nullptr); + avl = grpc_avl_add(avl, box(52), box(1892), nullptr); + avl = grpc_avl_add(avl, box(437), box(1893), nullptr); + avl = grpc_avl_add(avl, box(948), box(1894), nullptr); + avl = grpc_avl_add(avl, box(93), box(1895), nullptr); + avl = remove_int(avl, 873); + avl = remove_int(avl, 336); + avl = remove_int(avl, 277); + avl = remove_int(avl, 932); + avl = grpc_avl_add(avl, box(80), box(1900), nullptr); + avl = grpc_avl_add(avl, box(952), box(1901), nullptr); + avl = grpc_avl_add(avl, box(510), box(1902), nullptr); + avl = remove_int(avl, 876); + avl = remove_int(avl, 612); + avl = grpc_avl_add(avl, box(923), box(1905), nullptr); + avl = grpc_avl_add(avl, box(475), box(1906), nullptr); + avl = remove_int(avl, 478); + avl = remove_int(avl, 148); + avl = grpc_avl_add(avl, box(538), box(1909), nullptr); + avl = remove_int(avl, 47); + avl = grpc_avl_add(avl, box(89), box(1911), nullptr); + avl = remove_int(avl, 723); + avl = grpc_avl_add(avl, box(687), box(1913), nullptr); + avl = grpc_avl_add(avl, box(480), box(1914), nullptr); + avl = grpc_avl_add(avl, box(149), box(1915), nullptr); + avl = remove_int(avl, 68); + avl = remove_int(avl, 862); + avl = remove_int(avl, 363); + avl = grpc_avl_add(avl, box(996), box(1919), nullptr); + avl = remove_int(avl, 380); + avl = grpc_avl_add(avl, box(957), box(1921), nullptr); + avl = remove_int(avl, 413); + avl = grpc_avl_add(avl, box(360), box(1923), nullptr); + avl = grpc_avl_add(avl, box(304), box(1924), nullptr); + avl = grpc_avl_add(avl, box(634), box(1925), nullptr); + avl = grpc_avl_add(avl, box(506), box(1926), nullptr); + avl = remove_int(avl, 248); + avl = grpc_avl_add(avl, box(124), box(1928), nullptr); + avl = grpc_avl_add(avl, box(181), box(1929), nullptr); + avl = remove_int(avl, 507); + avl = grpc_avl_add(avl, box(141), box(1931), nullptr); + avl = remove_int(avl, 409); + avl = remove_int(avl, 129); + avl = remove_int(avl, 694); + avl = remove_int(avl, 723); + avl = grpc_avl_add(avl, box(998), box(1936), nullptr); + avl = grpc_avl_add(avl, box(906), box(1937), nullptr); + avl = grpc_avl_add(avl, box(44), box(1938), nullptr); + avl = remove_int(avl, 949); + avl = remove_int(avl, 117); + avl = grpc_avl_add(avl, box(700), box(1941), nullptr); + avl = grpc_avl_add(avl, box(258), box(1942), nullptr); + avl = remove_int(avl, 828); + avl = grpc_avl_add(avl, box(860), box(1944), nullptr); + avl = grpc_avl_add(avl, box(987), box(1945), nullptr); + avl = grpc_avl_add(avl, box(316), box(1946), nullptr); + avl = grpc_avl_add(avl, box(919), box(1947), nullptr); + avl = remove_int(avl, 84); + avl = grpc_avl_add(avl, box(473), box(1949), nullptr); + avl = remove_int(avl, 127); + avl = remove_int(avl, 829); + avl = remove_int(avl, 829); + avl = grpc_avl_add(avl, box(488), box(1953), nullptr); + avl = grpc_avl_add(avl, box(954), box(1954), nullptr); + avl = remove_int(avl, 198); + avl = remove_int(avl, 972); + avl = remove_int(avl, 670); + avl = grpc_avl_add(avl, box(822), box(1958), nullptr); + avl = remove_int(avl, 589); + avl = remove_int(avl, 459); + avl = grpc_avl_add(avl, box(1003), box(1961), nullptr); + avl = grpc_avl_add(avl, box(657), box(1962), nullptr); + avl = grpc_avl_add(avl, box(477), box(1963), nullptr); + avl = grpc_avl_add(avl, box(923), box(1964), nullptr); + avl = remove_int(avl, 496); + avl = remove_int(avl, 99); + avl = grpc_avl_add(avl, box(127), box(1967), nullptr); + avl = grpc_avl_add(avl, box(1013), box(1968), nullptr); + avl = grpc_avl_add(avl, box(778), box(1969), nullptr); + avl = remove_int(avl, 5); + avl = remove_int(avl, 990); + avl = remove_int(avl, 850); + avl = remove_int(avl, 160); + avl = remove_int(avl, 86); + avl = grpc_avl_add(avl, box(283), box(1975), nullptr); + avl = remove_int(avl, 278); + avl = remove_int(avl, 297); + avl = remove_int(avl, 137); + avl = remove_int(avl, 653); + avl = grpc_avl_add(avl, box(702), box(1980), nullptr); + avl = remove_int(avl, 63); + avl = remove_int(avl, 427); + avl = remove_int(avl, 706); + avl = remove_int(avl, 806); + avl = grpc_avl_add(avl, box(335), box(1985), nullptr); + avl = grpc_avl_add(avl, box(412), box(1986), nullptr); + avl = remove_int(avl, 766); + avl = remove_int(avl, 937); + avl = remove_int(avl, 886); + avl = remove_int(avl, 652); + avl = grpc_avl_add(avl, box(545), box(1991), nullptr); + avl = grpc_avl_add(avl, box(408), box(1992), nullptr); + avl = grpc_avl_add(avl, box(841), box(1993), nullptr); + avl = remove_int(avl, 593); + avl = grpc_avl_add(avl, box(582), box(1995), nullptr); + avl = grpc_avl_add(avl, box(597), box(1996), nullptr); + avl = remove_int(avl, 49); + avl = remove_int(avl, 835); + avl = grpc_avl_add(avl, box(417), box(1999), nullptr); + avl = grpc_avl_add(avl, box(191), box(2000), nullptr); + avl = remove_int(avl, 406); + avl = grpc_avl_add(avl, box(30), box(2002), nullptr); + avl = remove_int(avl, 841); + avl = remove_int(avl, 50); + avl = grpc_avl_add(avl, box(967), box(2005), nullptr); + avl = grpc_avl_add(avl, box(849), box(2006), nullptr); + avl = remove_int(avl, 608); + avl = grpc_avl_add(avl, box(306), box(2008), nullptr); + avl = remove_int(avl, 779); + avl = grpc_avl_add(avl, box(897), box(2010), nullptr); + avl = grpc_avl_add(avl, box(147), box(2011), nullptr); + avl = remove_int(avl, 982); + avl = grpc_avl_add(avl, box(470), box(2013), nullptr); + avl = remove_int(avl, 951); + avl = grpc_avl_add(avl, box(388), box(2015), nullptr); + avl = remove_int(avl, 616); + avl = remove_int(avl, 721); + avl = remove_int(avl, 942); + avl = remove_int(avl, 589); + avl = grpc_avl_add(avl, box(218), box(2020), nullptr); + avl = remove_int(avl, 671); + avl = grpc_avl_add(avl, box(1020), box(2022), nullptr); + avl = remove_int(avl, 277); + avl = grpc_avl_add(avl, box(681), box(2024), nullptr); + avl = grpc_avl_add(avl, box(179), box(2025), nullptr); + avl = grpc_avl_add(avl, box(370), box(2026), nullptr); + avl = grpc_avl_add(avl, box(0), box(2027), nullptr); + avl = remove_int(avl, 523); + avl = grpc_avl_add(avl, box(99), box(2029), nullptr); + avl = grpc_avl_add(avl, box(334), box(2030), nullptr); + avl = grpc_avl_add(avl, box(569), box(2031), nullptr); + avl = grpc_avl_add(avl, box(257), box(2032), nullptr); + avl = remove_int(avl, 572); + avl = grpc_avl_add(avl, box(805), box(2034), nullptr); + avl = grpc_avl_add(avl, box(143), box(2035), nullptr); + avl = grpc_avl_add(avl, box(670), box(2036), nullptr); + avl = remove_int(avl, 42); + avl = grpc_avl_add(avl, box(46), box(2038), nullptr); + avl = remove_int(avl, 970); + avl = grpc_avl_add(avl, box(353), box(2040), nullptr); + avl = remove_int(avl, 258); + avl = grpc_avl_add(avl, box(451), box(2042), nullptr); + avl = grpc_avl_add(avl, box(28), box(2043), nullptr); + avl = grpc_avl_add(avl, box(729), box(2044), nullptr); + avl = grpc_avl_add(avl, box(401), box(2045), nullptr); + avl = grpc_avl_add(avl, box(614), box(2046), nullptr); + avl = remove_int(avl, 990); + avl = remove_int(avl, 212); + avl = remove_int(avl, 22); + avl = remove_int(avl, 677); + avl = grpc_avl_add(avl, box(1016), box(2051), nullptr); + avl = grpc_avl_add(avl, box(980), box(2052), nullptr); + avl = grpc_avl_add(avl, box(990), box(2053), nullptr); + avl = grpc_avl_add(avl, box(355), box(2054), nullptr); + avl = remove_int(avl, 730); + avl = remove_int(avl, 37); + avl = grpc_avl_add(avl, box(407), box(2057), nullptr); + avl = grpc_avl_add(avl, box(222), box(2058), nullptr); + avl = grpc_avl_add(avl, box(439), box(2059), nullptr); + avl = grpc_avl_add(avl, box(563), box(2060), nullptr); + avl = remove_int(avl, 992); + avl = remove_int(avl, 786); + avl = grpc_avl_add(avl, box(1), box(2063), nullptr); + avl = grpc_avl_add(avl, box(473), box(2064), nullptr); + avl = grpc_avl_add(avl, box(992), box(2065), nullptr); + avl = remove_int(avl, 190); + avl = remove_int(avl, 450); + avl = remove_int(avl, 1020); + avl = remove_int(avl, 149); + avl = grpc_avl_add(avl, box(329), box(2070), nullptr); + avl = grpc_avl_add(avl, box(35), box(2071), nullptr); + avl = remove_int(avl, 843); + avl = grpc_avl_add(avl, box(855), box(2073), nullptr); + avl = remove_int(avl, 878); + avl = grpc_avl_add(avl, box(993), box(2075), nullptr); + avl = grpc_avl_add(avl, box(87), box(2076), nullptr); + avl = grpc_avl_add(avl, box(572), box(2077), nullptr); + avl = remove_int(avl, 896); + avl = grpc_avl_add(avl, box(849), box(2079), nullptr); + avl = remove_int(avl, 597); + avl = grpc_avl_add(avl, box(472), box(2081), nullptr); + avl = remove_int(avl, 778); + avl = remove_int(avl, 934); + avl = remove_int(avl, 314); + avl = grpc_avl_add(avl, box(101), box(2085), nullptr); + avl = remove_int(avl, 938); + avl = remove_int(avl, 1010); + avl = grpc_avl_add(avl, box(579), box(2088), nullptr); + avl = remove_int(avl, 798); + avl = remove_int(avl, 88); + avl = grpc_avl_add(avl, box(851), box(2091), nullptr); + avl = remove_int(avl, 705); + avl = grpc_avl_add(avl, box(26), box(2093), nullptr); + avl = remove_int(avl, 973); + avl = grpc_avl_add(avl, box(923), box(2095), nullptr); + avl = remove_int(avl, 668); + avl = grpc_avl_add(avl, box(310), box(2097), nullptr); + avl = grpc_avl_add(avl, box(269), box(2098), nullptr); + avl = remove_int(avl, 173); + avl = grpc_avl_add(avl, box(279), box(2100), nullptr); + avl = remove_int(avl, 203); + avl = grpc_avl_add(avl, box(411), box(2102), nullptr); + avl = remove_int(avl, 950); + avl = grpc_avl_add(avl, box(6), box(2104), nullptr); + avl = remove_int(avl, 400); + avl = remove_int(avl, 468); + avl = remove_int(avl, 271); + avl = grpc_avl_add(avl, box(627), box(2108), nullptr); + avl = remove_int(avl, 727); + avl = remove_int(avl, 148); + avl = remove_int(avl, 98); + avl = remove_int(avl, 997); + avl = remove_int(avl, 215); + avl = remove_int(avl, 628); + avl = remove_int(avl, 826); + avl = remove_int(avl, 664); + avl = grpc_avl_add(avl, box(76), box(2117), nullptr); + avl = remove_int(avl, 194); + avl = remove_int(avl, 18); + avl = grpc_avl_add(avl, box(727), box(2120), nullptr); + avl = remove_int(avl, 295); + avl = grpc_avl_add(avl, box(645), box(2122), nullptr); + avl = remove_int(avl, 321); + avl = remove_int(avl, 863); + avl = grpc_avl_add(avl, box(824), box(2125), nullptr); + avl = grpc_avl_add(avl, box(651), box(2126), nullptr); + avl = grpc_avl_add(avl, box(804), box(2127), nullptr); + avl = remove_int(avl, 307); + avl = grpc_avl_add(avl, box(867), box(2129), nullptr); + avl = remove_int(avl, 384); + avl = grpc_avl_add(avl, box(819), box(2131), nullptr); + avl = remove_int(avl, 674); + avl = grpc_avl_add(avl, box(76), box(2133), nullptr); + avl = remove_int(avl, 898); + avl = grpc_avl_add(avl, box(45), box(2135), nullptr); + avl = grpc_avl_add(avl, box(512), box(2136), nullptr); + avl = remove_int(avl, 773); + avl = remove_int(avl, 907); + avl = remove_int(avl, 382); + avl = remove_int(avl, 95); + avl = remove_int(avl, 734); + avl = remove_int(avl, 81); + avl = grpc_avl_add(avl, box(348), box(2143), nullptr); + avl = remove_int(avl, 509); + avl = remove_int(avl, 301); + avl = grpc_avl_add(avl, box(861), box(2146), nullptr); + avl = grpc_avl_add(avl, box(918), box(2147), nullptr); + avl = remove_int(avl, 992); + avl = grpc_avl_add(avl, box(356), box(2149), nullptr); + avl = remove_int(avl, 64); + avl = remove_int(avl, 444); + avl = remove_int(avl, 741); + avl = grpc_avl_add(avl, box(710), box(2153), nullptr); + avl = grpc_avl_add(avl, box(264), box(2154), nullptr); + avl = remove_int(avl, 347); + avl = remove_int(avl, 250); + avl = grpc_avl_add(avl, box(82), box(2157), nullptr); + avl = grpc_avl_add(avl, box(571), box(2158), nullptr); + avl = remove_int(avl, 721); + avl = remove_int(avl, 622); + avl = grpc_avl_add(avl, box(950), box(2161), nullptr); + avl = grpc_avl_add(avl, box(94), box(2162), nullptr); + avl = remove_int(avl, 970); + avl = grpc_avl_add(avl, box(815), box(2164), nullptr); + avl = remove_int(avl, 930); + avl = remove_int(avl, 703); + avl = grpc_avl_add(avl, box(432), box(2167), nullptr); + avl = remove_int(avl, 544); + avl = grpc_avl_add(avl, box(21), box(2169), nullptr); + avl = grpc_avl_add(avl, box(186), box(2170), nullptr); + avl = remove_int(avl, 143); + avl = grpc_avl_add(avl, box(425), box(2172), nullptr); + avl = remove_int(avl, 769); + avl = grpc_avl_add(avl, box(656), box(2174), nullptr); + avl = remove_int(avl, 29); + avl = grpc_avl_add(avl, box(464), box(2176), nullptr); + avl = remove_int(avl, 713); + avl = grpc_avl_add(avl, box(800), box(2178), nullptr); + avl = remove_int(avl, 621); + avl = grpc_avl_add(avl, box(962), box(2180), nullptr); + avl = remove_int(avl, 448); + avl = grpc_avl_add(avl, box(878), box(2182), nullptr); + avl = remove_int(avl, 39); + avl = remove_int(avl, 999); + avl = grpc_avl_add(avl, box(182), box(2185), nullptr); + avl = grpc_avl_add(avl, box(429), box(2186), nullptr); + avl = grpc_avl_add(avl, box(598), box(2187), nullptr); + avl = remove_int(avl, 551); + avl = grpc_avl_add(avl, box(827), box(2189), nullptr); + avl = grpc_avl_add(avl, box(809), box(2190), nullptr); + avl = remove_int(avl, 438); + avl = remove_int(avl, 811); + avl = grpc_avl_add(avl, box(808), box(2193), nullptr); + avl = grpc_avl_add(avl, box(788), box(2194), nullptr); + avl = remove_int(avl, 156); + avl = grpc_avl_add(avl, box(933), box(2196), nullptr); + avl = grpc_avl_add(avl, box(344), box(2197), nullptr); + avl = remove_int(avl, 460); + avl = grpc_avl_add(avl, box(161), box(2199), nullptr); + avl = grpc_avl_add(avl, box(444), box(2200), nullptr); + avl = remove_int(avl, 597); + avl = remove_int(avl, 668); + avl = grpc_avl_add(avl, box(703), box(2203), nullptr); + avl = remove_int(avl, 515); + avl = grpc_avl_add(avl, box(380), box(2205), nullptr); + avl = grpc_avl_add(avl, box(338), box(2206), nullptr); + avl = remove_int(avl, 550); + avl = remove_int(avl, 946); + avl = remove_int(avl, 714); + avl = remove_int(avl, 739); + avl = grpc_avl_add(avl, box(413), box(2211), nullptr); + avl = remove_int(avl, 450); + avl = grpc_avl_add(avl, box(411), box(2213), nullptr); + avl = grpc_avl_add(avl, box(117), box(2214), nullptr); + avl = grpc_avl_add(avl, box(322), box(2215), nullptr); + avl = grpc_avl_add(avl, box(915), box(2216), nullptr); + avl = grpc_avl_add(avl, box(410), box(2217), nullptr); + avl = grpc_avl_add(avl, box(66), box(2218), nullptr); + avl = remove_int(avl, 756); + avl = remove_int(avl, 596); + avl = grpc_avl_add(avl, box(882), box(2221), nullptr); + avl = grpc_avl_add(avl, box(930), box(2222), nullptr); + avl = grpc_avl_add(avl, box(36), box(2223), nullptr); + avl = remove_int(avl, 742); + avl = grpc_avl_add(avl, box(539), box(2225), nullptr); + avl = grpc_avl_add(avl, box(596), box(2226), nullptr); + avl = remove_int(avl, 82); + avl = remove_int(avl, 686); + avl = remove_int(avl, 933); + avl = remove_int(avl, 42); + avl = remove_int(avl, 340); + avl = grpc_avl_add(avl, box(126), box(2232), nullptr); + avl = grpc_avl_add(avl, box(493), box(2233), nullptr); + avl = grpc_avl_add(avl, box(839), box(2234), nullptr); + avl = remove_int(avl, 774); + avl = grpc_avl_add(avl, box(337), box(2236), nullptr); + avl = remove_int(avl, 322); + avl = grpc_avl_add(avl, box(16), box(2238), nullptr); + avl = remove_int(avl, 73); + avl = remove_int(avl, 85); + avl = remove_int(avl, 191); + avl = remove_int(avl, 541); + avl = grpc_avl_add(avl, box(704), box(2243), nullptr); + avl = remove_int(avl, 767); + avl = remove_int(avl, 1006); + avl = remove_int(avl, 844); + avl = remove_int(avl, 742); + avl = grpc_avl_add(avl, box(48), box(2248), nullptr); + avl = grpc_avl_add(avl, box(138), box(2249), nullptr); + avl = grpc_avl_add(avl, box(437), box(2250), nullptr); + avl = grpc_avl_add(avl, box(275), box(2251), nullptr); + avl = remove_int(avl, 520); + avl = grpc_avl_add(avl, box(1019), box(2253), nullptr); + avl = remove_int(avl, 955); + avl = grpc_avl_add(avl, box(270), box(2255), nullptr); + avl = remove_int(avl, 680); + avl = remove_int(avl, 698); + avl = grpc_avl_add(avl, box(735), box(2258), nullptr); + avl = grpc_avl_add(avl, box(400), box(2259), nullptr); + avl = remove_int(avl, 991); + avl = grpc_avl_add(avl, box(263), box(2261), nullptr); + avl = remove_int(avl, 704); + avl = grpc_avl_add(avl, box(757), box(2263), nullptr); + avl = remove_int(avl, 194); + avl = remove_int(avl, 616); + avl = remove_int(avl, 784); + avl = grpc_avl_add(avl, box(382), box(2267), nullptr); + avl = grpc_avl_add(avl, box(464), box(2268), nullptr); + avl = grpc_avl_add(avl, box(817), box(2269), nullptr); + avl = remove_int(avl, 445); + avl = grpc_avl_add(avl, box(412), box(2271), nullptr); + avl = remove_int(avl, 525); + avl = grpc_avl_add(avl, box(299), box(2273), nullptr); + avl = grpc_avl_add(avl, box(464), box(2274), nullptr); + avl = grpc_avl_add(avl, box(715), box(2275), nullptr); + avl = remove_int(avl, 58); + avl = remove_int(avl, 218); + avl = grpc_avl_add(avl, box(961), box(2278), nullptr); + avl = grpc_avl_add(avl, box(491), box(2279), nullptr); + avl = remove_int(avl, 846); + avl = grpc_avl_add(avl, box(762), box(2281), nullptr); + avl = remove_int(avl, 974); + avl = remove_int(avl, 887); + avl = grpc_avl_add(avl, box(498), box(2284), nullptr); + avl = remove_int(avl, 810); + avl = remove_int(avl, 743); + avl = remove_int(avl, 22); + avl = remove_int(avl, 284); + avl = grpc_avl_add(avl, box(482), box(2289), nullptr); + avl = grpc_avl_add(avl, box(1021), box(2290), nullptr); + avl = remove_int(avl, 155); + avl = remove_int(avl, 128); + avl = grpc_avl_add(avl, box(819), box(2293), nullptr); + avl = grpc_avl_add(avl, box(324), box(2294), nullptr); + avl = remove_int(avl, 196); + avl = remove_int(avl, 370); + avl = remove_int(avl, 753); + avl = remove_int(avl, 56); + avl = remove_int(avl, 735); + avl = grpc_avl_add(avl, box(272), box(2300), nullptr); + avl = grpc_avl_add(avl, box(474), box(2301), nullptr); + avl = grpc_avl_add(avl, box(719), box(2302), nullptr); + avl = grpc_avl_add(avl, box(236), box(2303), nullptr); + avl = remove_int(avl, 818); + avl = grpc_avl_add(avl, box(727), box(2305), nullptr); + avl = remove_int(avl, 892); + avl = remove_int(avl, 871); + avl = remove_int(avl, 231); + avl = grpc_avl_add(avl, box(62), box(2309), nullptr); + avl = grpc_avl_add(avl, box(953), box(2310), nullptr); + avl = remove_int(avl, 701); + avl = grpc_avl_add(avl, box(193), box(2312), nullptr); + avl = remove_int(avl, 619); + avl = remove_int(avl, 22); + avl = remove_int(avl, 804); + avl = remove_int(avl, 851); + avl = grpc_avl_add(avl, box(286), box(2317), nullptr); + avl = grpc_avl_add(avl, box(751), box(2318), nullptr); + avl = remove_int(avl, 525); + avl = grpc_avl_add(avl, box(217), box(2320), nullptr); + avl = remove_int(avl, 336); + avl = grpc_avl_add(avl, box(86), box(2322), nullptr); + avl = grpc_avl_add(avl, box(81), box(2323), nullptr); + avl = grpc_avl_add(avl, box(850), box(2324), nullptr); + avl = remove_int(avl, 872); + avl = grpc_avl_add(avl, box(402), box(2326), nullptr); + avl = grpc_avl_add(avl, box(54), box(2327), nullptr); + avl = grpc_avl_add(avl, box(980), box(2328), nullptr); + avl = grpc_avl_add(avl, box(845), box(2329), nullptr); + avl = remove_int(avl, 1004); + avl = remove_int(avl, 273); + avl = remove_int(avl, 879); + avl = grpc_avl_add(avl, box(354), box(2333), nullptr); + avl = grpc_avl_add(avl, box(58), box(2334), nullptr); + avl = grpc_avl_add(avl, box(127), box(2335), nullptr); + avl = remove_int(avl, 84); + avl = grpc_avl_add(avl, box(360), box(2337), nullptr); + avl = remove_int(avl, 648); + avl = remove_int(avl, 488); + avl = remove_int(avl, 585); + avl = remove_int(avl, 230); + avl = grpc_avl_add(avl, box(887), box(2342), nullptr); + avl = remove_int(avl, 558); + avl = remove_int(avl, 958); + avl = grpc_avl_add(avl, box(822), box(2345), nullptr); + avl = remove_int(avl, 1004); + avl = remove_int(avl, 747); + avl = grpc_avl_add(avl, box(631), box(2348), nullptr); + avl = grpc_avl_add(avl, box(442), box(2349), nullptr); + avl = remove_int(avl, 957); + avl = remove_int(avl, 964); + avl = grpc_avl_add(avl, box(10), box(2352), nullptr); + avl = remove_int(avl, 189); + avl = grpc_avl_add(avl, box(742), box(2354), nullptr); + avl = remove_int(avl, 108); + avl = grpc_avl_add(avl, box(1014), box(2356), nullptr); + avl = remove_int(avl, 266); + avl = remove_int(avl, 623); + avl = remove_int(avl, 697); + avl = grpc_avl_add(avl, box(180), box(2360), nullptr); + avl = remove_int(avl, 472); + avl = grpc_avl_add(avl, box(567), box(2362), nullptr); + avl = remove_int(avl, 1020); + avl = remove_int(avl, 273); + avl = grpc_avl_add(avl, box(864), box(2365), nullptr); + avl = grpc_avl_add(avl, box(1009), box(2366), nullptr); + avl = remove_int(avl, 224); + avl = remove_int(avl, 81); + avl = grpc_avl_add(avl, box(653), box(2369), nullptr); + avl = remove_int(avl, 67); + avl = remove_int(avl, 102); + avl = remove_int(avl, 76); + avl = remove_int(avl, 935); + avl = remove_int(avl, 169); + avl = remove_int(avl, 232); + avl = remove_int(avl, 79); + avl = grpc_avl_add(avl, box(509), box(2377), nullptr); + avl = remove_int(avl, 900); + avl = remove_int(avl, 822); + avl = remove_int(avl, 945); + avl = remove_int(avl, 356); + avl = grpc_avl_add(avl, box(443), box(2382), nullptr); + avl = grpc_avl_add(avl, box(925), box(2383), nullptr); + avl = remove_int(avl, 994); + avl = remove_int(avl, 324); + avl = grpc_avl_add(avl, box(291), box(2386), nullptr); + avl = remove_int(avl, 94); + avl = remove_int(avl, 795); + avl = remove_int(avl, 42); + avl = grpc_avl_add(avl, box(613), box(2390), nullptr); + avl = remove_int(avl, 289); + avl = grpc_avl_add(avl, box(980), box(2392), nullptr); + avl = remove_int(avl, 316); + avl = grpc_avl_add(avl, box(281), box(2394), nullptr); + avl = grpc_avl_add(avl, box(1006), box(2395), nullptr); + avl = remove_int(avl, 776); + avl = grpc_avl_add(avl, box(108), box(2397), nullptr); + avl = grpc_avl_add(avl, box(918), box(2398), nullptr); + avl = remove_int(avl, 721); + avl = remove_int(avl, 563); + avl = grpc_avl_add(avl, box(925), box(2401), nullptr); + avl = remove_int(avl, 448); + avl = remove_int(avl, 198); + avl = remove_int(avl, 1); + avl = grpc_avl_add(avl, box(160), box(2405), nullptr); + avl = remove_int(avl, 515); + avl = grpc_avl_add(avl, box(284), box(2407), nullptr); + avl = grpc_avl_add(avl, box(225), box(2408), nullptr); + avl = remove_int(avl, 304); + avl = grpc_avl_add(avl, box(714), box(2410), nullptr); + avl = grpc_avl_add(avl, box(708), box(2411), nullptr); + avl = grpc_avl_add(avl, box(624), box(2412), nullptr); + avl = remove_int(avl, 662); + avl = remove_int(avl, 825); + avl = remove_int(avl, 383); + avl = remove_int(avl, 381); + avl = grpc_avl_add(avl, box(194), box(2417), nullptr); + avl = remove_int(avl, 280); + avl = remove_int(avl, 25); + avl = remove_int(avl, 633); + avl = grpc_avl_add(avl, box(897), box(2421), nullptr); + avl = remove_int(avl, 636); + avl = remove_int(avl, 596); + avl = remove_int(avl, 757); + avl = remove_int(avl, 343); + avl = remove_int(avl, 162); + avl = remove_int(avl, 913); + avl = remove_int(avl, 843); + avl = remove_int(avl, 280); + avl = remove_int(avl, 911); + avl = grpc_avl_add(avl, box(1008), box(2431), nullptr); + avl = remove_int(avl, 948); + avl = remove_int(avl, 74); + avl = remove_int(avl, 571); + avl = grpc_avl_add(avl, box(486), box(2435), nullptr); + avl = grpc_avl_add(avl, box(285), box(2436), nullptr); + avl = remove_int(avl, 304); + avl = remove_int(avl, 516); + avl = grpc_avl_add(avl, box(758), box(2439), nullptr); + avl = grpc_avl_add(avl, box(776), box(2440), nullptr); + avl = remove_int(avl, 696); + avl = grpc_avl_add(avl, box(104), box(2442), nullptr); + avl = grpc_avl_add(avl, box(700), box(2443), nullptr); + avl = grpc_avl_add(avl, box(114), box(2444), nullptr); + avl = grpc_avl_add(avl, box(567), box(2445), nullptr); + avl = remove_int(avl, 620); + avl = grpc_avl_add(avl, box(270), box(2447), nullptr); + avl = remove_int(avl, 730); + avl = grpc_avl_add(avl, box(749), box(2449), nullptr); + avl = grpc_avl_add(avl, box(443), box(2450), nullptr); + avl = remove_int(avl, 457); + avl = grpc_avl_add(avl, box(571), box(2452), nullptr); + avl = grpc_avl_add(avl, box(626), box(2453), nullptr); + avl = remove_int(avl, 638); + avl = remove_int(avl, 313); + + grpc_avl_unref(avl, nullptr); +} + +static void test_stress(int amount_of_stress) { + int added[1024]; + int i, j; + int deletions = 0; + grpc_avl avl; + + unsigned seed = (unsigned)time(nullptr); + + gpr_log(GPR_DEBUG, "test_stress amount=%d seed=%u", amount_of_stress, seed); + + srand((unsigned)time(nullptr)); + avl = grpc_avl_create(&int_int_vtable); + + memset(added, 0, sizeof(added)); + + for (i = 1; deletions < amount_of_stress; i++) { + int idx = rand() % (int)GPR_ARRAY_SIZE(added); + GPR_ASSERT(i); + if (rand() < RAND_MAX / 2) { + added[idx] = i; + printf("avl = grpc_avl_add(avl, box(%d), box(%d), NULL); /* d=%d */\n", + idx, i, deletions); + avl = grpc_avl_add(avl, box(idx), box(i), nullptr); + } else { + deletions += (added[idx] != 0); + added[idx] = 0; + printf("avl = remove_int(avl, %d); /* d=%d */\n", idx, deletions); + avl = remove_int(avl, idx); + } + for (j = 0; j < (int)GPR_ARRAY_SIZE(added); j++) { + if (added[j] != 0) { + check_get(avl, j, added[j]); + } else { + check_negget(avl, j); + } + } + } + + grpc_avl_unref(avl, nullptr); +} + +int main(int argc, char* argv[]) { + grpc_test_init(argc, argv); + + test_get(); + test_ll(); + test_lr(); + test_rr(); + test_rl(); + test_unbalanced(); + test_replace(); + test_remove(); + test_badcase1(); + test_badcase2(); + test_badcase3(); + test_stress(10); + + return 0; +} diff --git a/test/core/gpr/BUILD b/test/core/gpr/BUILD index 1be1036d04..90ac658cdc 100644 --- a/test/core/gpr/BUILD +++ b/test/core/gpr/BUILD @@ -28,16 +28,6 @@ grpc_cc_test( ], ) -grpc_cc_test( - name = "avl_test", - srcs = ["avl_test.cc"], - language = "C++", - deps = [ - "//:gpr", - "//test/core/util:gpr_test_util", - ], -) - grpc_cc_test( name = "cmdline_test", srcs = ["cmdline_test.cc"], diff --git a/test/core/gpr/avl_test.cc b/test/core/gpr/avl_test.cc deleted file mode 100644 index 0fcbbd00da..0000000000 --- a/test/core/gpr/avl_test.cc +++ /dev/null @@ -1,3659 +0,0 @@ -/* - * - * Copyright 2015 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include "src/core/lib/gpr/avl.h" - -#include -#include - -#include -#include - -#include "src/core/lib/gpr/useful.h" -#include "test/core/util/test_config.h" - -static int* box(int x) { - int* b = static_cast(gpr_malloc(sizeof(*b))); - *b = x; - return b; -} - -static long int_compare(void* int1, void* int2, void* unused) { - return (*(int*)int1) - (*(int*)int2); -} -static void* int_copy(void* p, void* unused) { return box(*(int*)p); } - -static void destroy(void* p, void* unused) { gpr_free(p); } - -static const gpr_avl_vtable int_int_vtable = {destroy, int_copy, int_compare, - destroy, int_copy}; - -static void check_get(gpr_avl avl, int key, int value) { - int* k = box(key); - GPR_ASSERT(*(int*)gpr_avl_get(avl, k, nullptr) == value); - gpr_free(k); -} - -static void check_negget(gpr_avl avl, int key) { - int* k = box(key); - GPR_ASSERT(gpr_avl_get(avl, k, nullptr) == nullptr); - gpr_free(k); -} - -static gpr_avl remove_int(gpr_avl avl, int key) { - int* k = box(key); - avl = gpr_avl_remove(avl, k, nullptr); - gpr_free(k); - return avl; -} - -static void test_get(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_get"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(1), box(11), nullptr); - avl = gpr_avl_add(avl, box(2), box(22), nullptr); - avl = gpr_avl_add(avl, box(3), box(33), nullptr); - check_get(avl, 1, 11); - check_get(avl, 2, 22); - check_get(avl, 3, 33); - check_negget(avl, 4); - gpr_avl_unref(avl, nullptr); -} - -static void test_ll(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_ll"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(5), box(1), nullptr); - avl = gpr_avl_add(avl, box(4), box(2), nullptr); - avl = gpr_avl_add(avl, box(3), box(3), nullptr); - GPR_ASSERT(*(int*)avl.root->key == 4); - GPR_ASSERT(*(int*)avl.root->left->key == 3); - GPR_ASSERT(*(int*)avl.root->right->key == 5); - gpr_avl_unref(avl, nullptr); -} - -static void test_lr(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_lr"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(5), box(1), nullptr); - avl = gpr_avl_add(avl, box(3), box(2), nullptr); - avl = gpr_avl_add(avl, box(4), box(3), nullptr); - GPR_ASSERT(*(int*)avl.root->key == 4); - GPR_ASSERT(*(int*)avl.root->left->key == 3); - GPR_ASSERT(*(int*)avl.root->right->key == 5); - gpr_avl_unref(avl, nullptr); -} - -static void test_rr(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_rr"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(3), box(1), nullptr); - avl = gpr_avl_add(avl, box(4), box(2), nullptr); - avl = gpr_avl_add(avl, box(5), box(3), nullptr); - GPR_ASSERT(*(int*)avl.root->key == 4); - GPR_ASSERT(*(int*)avl.root->left->key == 3); - GPR_ASSERT(*(int*)avl.root->right->key == 5); - gpr_avl_unref(avl, nullptr); -} - -static void test_rl(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_rl"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(3), box(1), nullptr); - avl = gpr_avl_add(avl, box(5), box(2), nullptr); - avl = gpr_avl_add(avl, box(4), box(3), nullptr); - GPR_ASSERT(*(int*)avl.root->key == 4); - GPR_ASSERT(*(int*)avl.root->left->key == 3); - GPR_ASSERT(*(int*)avl.root->right->key == 5); - gpr_avl_unref(avl, nullptr); -} - -static void test_unbalanced(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_unbalanced"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(5), box(1), nullptr); - avl = gpr_avl_add(avl, box(4), box(2), nullptr); - avl = gpr_avl_add(avl, box(3), box(3), nullptr); - avl = gpr_avl_add(avl, box(2), box(4), nullptr); - avl = gpr_avl_add(avl, box(1), box(5), nullptr); - GPR_ASSERT(*(int*)avl.root->key == 4); - GPR_ASSERT(*(int*)avl.root->left->key == 2); - GPR_ASSERT(*(int*)avl.root->left->left->key == 1); - GPR_ASSERT(*(int*)avl.root->left->right->key == 3); - GPR_ASSERT(*(int*)avl.root->right->key == 5); - gpr_avl_unref(avl, nullptr); -} - -static void test_replace(void) { - gpr_avl avl; - gpr_log(GPR_DEBUG, "test_replace"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(1), box(1), nullptr); - avl = gpr_avl_add(avl, box(1), box(2), nullptr); - check_get(avl, 1, 2); - check_negget(avl, 2); - gpr_avl_unref(avl, nullptr); -} - -static void test_remove(void) { - gpr_avl avl; - gpr_avl avl3, avl4, avl5, avln; - gpr_log(GPR_DEBUG, "test_remove"); - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(3), box(1), nullptr); - avl = gpr_avl_add(avl, box(4), box(2), nullptr); - avl = gpr_avl_add(avl, box(5), box(3), nullptr); - - avl3 = remove_int(gpr_avl_ref(avl, nullptr), 3); - avl4 = remove_int(gpr_avl_ref(avl, nullptr), 4); - avl5 = remove_int(gpr_avl_ref(avl, nullptr), 5); - avln = remove_int(gpr_avl_ref(avl, nullptr), 1); - - gpr_avl_unref(avl, nullptr); - - check_negget(avl3, 3); - check_get(avl3, 4, 2); - check_get(avl3, 5, 3); - gpr_avl_unref(avl3, nullptr); - - check_get(avl4, 3, 1); - check_negget(avl4, 4); - check_get(avl4, 5, 3); - gpr_avl_unref(avl4, nullptr); - - check_get(avl5, 3, 1); - check_get(avl5, 4, 2); - check_negget(avl5, 5); - gpr_avl_unref(avl5, nullptr); - - check_get(avln, 3, 1); - check_get(avln, 4, 2); - check_get(avln, 5, 3); - gpr_avl_unref(avln, nullptr); -} - -static void test_badcase1(void) { - gpr_avl avl; - - gpr_log(GPR_DEBUG, "test_badcase1"); - - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(88), box(1), nullptr); - avl = remove_int(avl, 643); - avl = remove_int(avl, 983); - avl = gpr_avl_add(avl, box(985), box(4), nullptr); - avl = gpr_avl_add(avl, box(640), box(5), nullptr); - avl = gpr_avl_add(avl, box(41), box(6), nullptr); - avl = gpr_avl_add(avl, box(112), box(7), nullptr); - avl = gpr_avl_add(avl, box(342), box(8), nullptr); - avl = remove_int(avl, 1013); - avl = gpr_avl_add(avl, box(434), box(10), nullptr); - avl = gpr_avl_add(avl, box(520), box(11), nullptr); - avl = gpr_avl_add(avl, box(231), box(12), nullptr); - avl = gpr_avl_add(avl, box(852), box(13), nullptr); - avl = remove_int(avl, 461); - avl = gpr_avl_add(avl, box(108), box(15), nullptr); - avl = gpr_avl_add(avl, box(806), box(16), nullptr); - avl = gpr_avl_add(avl, box(827), box(17), nullptr); - avl = remove_int(avl, 796); - avl = gpr_avl_add(avl, box(340), box(19), nullptr); - avl = gpr_avl_add(avl, box(498), box(20), nullptr); - avl = gpr_avl_add(avl, box(203), box(21), nullptr); - avl = gpr_avl_add(avl, box(751), box(22), nullptr); - avl = gpr_avl_add(avl, box(150), box(23), nullptr); - avl = remove_int(avl, 237); - avl = gpr_avl_add(avl, box(830), box(25), nullptr); - avl = remove_int(avl, 1007); - avl = remove_int(avl, 394); - avl = gpr_avl_add(avl, box(65), box(28), nullptr); - avl = remove_int(avl, 904); - avl = remove_int(avl, 123); - avl = gpr_avl_add(avl, box(238), box(31), nullptr); - avl = gpr_avl_add(avl, box(184), box(32), nullptr); - avl = remove_int(avl, 331); - avl = gpr_avl_add(avl, box(827), box(34), nullptr); - - check_get(avl, 830, 25); - - gpr_avl_unref(avl, nullptr); -} - -static void test_badcase2(void) { - gpr_avl avl; - - gpr_log(GPR_DEBUG, "test_badcase2"); - - avl = gpr_avl_create(&int_int_vtable); - avl = gpr_avl_add(avl, box(288), box(1), nullptr); - avl = remove_int(avl, 415); - avl = gpr_avl_add(avl, box(953), box(3), nullptr); - avl = gpr_avl_add(avl, box(101), box(4), nullptr); - avl = gpr_avl_add(avl, box(516), box(5), nullptr); - avl = gpr_avl_add(avl, box(547), box(6), nullptr); - avl = gpr_avl_add(avl, box(467), box(7), nullptr); - avl = gpr_avl_add(avl, box(793), box(8), nullptr); - avl = remove_int(avl, 190); - avl = gpr_avl_add(avl, box(687), box(10), nullptr); - avl = gpr_avl_add(avl, box(242), box(11), nullptr); - avl = gpr_avl_add(avl, box(142), box(12), nullptr); - avl = remove_int(avl, 705); - avl = remove_int(avl, 578); - avl = remove_int(avl, 767); - avl = remove_int(avl, 183); - avl = gpr_avl_add(avl, box(950), box(17), nullptr); - avl = gpr_avl_add(avl, box(622), box(18), nullptr); - avl = remove_int(avl, 513); - avl = remove_int(avl, 429); - avl = gpr_avl_add(avl, box(205), box(21), nullptr); - avl = remove_int(avl, 663); - avl = remove_int(avl, 953); - avl = remove_int(avl, 892); - avl = gpr_avl_add(avl, box(236), box(25), nullptr); - avl = remove_int(avl, 982); - avl = remove_int(avl, 201); - avl = remove_int(avl, 684); - avl = gpr_avl_add(avl, box(572), box(29), nullptr); - avl = remove_int(avl, 817); - avl = gpr_avl_add(avl, box(970), box(31), nullptr); - avl = remove_int(avl, 347); - avl = remove_int(avl, 574); - avl = gpr_avl_add(avl, box(752), box(34), nullptr); - avl = gpr_avl_add(avl, box(670), box(35), nullptr); - avl = gpr_avl_add(avl, box(69), box(36), nullptr); - avl = remove_int(avl, 111); - avl = remove_int(avl, 523); - avl = gpr_avl_add(avl, box(141), box(39), nullptr); - avl = remove_int(avl, 159); - avl = gpr_avl_add(avl, box(947), box(41), nullptr); - avl = gpr_avl_add(avl, box(855), box(42), nullptr); - avl = remove_int(avl, 218); - avl = remove_int(avl, 6); - avl = gpr_avl_add(avl, box(753), box(45), nullptr); - avl = remove_int(avl, 82); - avl = remove_int(avl, 799); - avl = gpr_avl_add(avl, box(572), box(48), nullptr); - avl = remove_int(avl, 376); - avl = remove_int(avl, 413); - avl = gpr_avl_add(avl, box(458), box(51), nullptr); - avl = remove_int(avl, 897); - avl = gpr_avl_add(avl, box(191), box(53), nullptr); - avl = gpr_avl_add(avl, box(609), box(54), nullptr); - avl = remove_int(avl, 787); - avl = remove_int(avl, 710); - avl = remove_int(avl, 886); - avl = remove_int(avl, 835); - avl = remove_int(avl, 33); - avl = gpr_avl_add(avl, box(871), box(60), nullptr); - avl = remove_int(avl, 641); - avl = gpr_avl_add(avl, box(462), box(62), nullptr); - avl = remove_int(avl, 359); - avl = remove_int(avl, 767); - avl = gpr_avl_add(avl, box(310), box(65), nullptr); - avl = remove_int(avl, 757); - avl = remove_int(avl, 639); - avl = remove_int(avl, 314); - avl = gpr_avl_add(avl, box(2), box(69), nullptr); - avl = remove_int(avl, 138); - avl = gpr_avl_add(avl, box(669), box(71), nullptr); - avl = remove_int(avl, 477); - avl = gpr_avl_add(avl, box(366), box(73), nullptr); - avl = gpr_avl_add(avl, box(612), box(74), nullptr); - avl = gpr_avl_add(avl, box(106), box(75), nullptr); - avl = remove_int(avl, 161); - avl = gpr_avl_add(avl, box(388), box(77), nullptr); - avl = gpr_avl_add(avl, box(141), box(78), nullptr); - avl = remove_int(avl, 633); - avl = remove_int(avl, 459); - avl = gpr_avl_add(avl, box(40), box(81), nullptr); - avl = remove_int(avl, 689); - avl = gpr_avl_add(avl, box(823), box(83), nullptr); - avl = remove_int(avl, 485); - avl = gpr_avl_add(avl, box(903), box(85), nullptr); - avl = gpr_avl_add(avl, box(592), box(86), nullptr); - avl = remove_int(avl, 448); - avl = gpr_avl_add(avl, box(56), box(88), nullptr); - avl = remove_int(avl, 333); - avl = gpr_avl_add(avl, box(189), box(90), nullptr); - avl = gpr_avl_add(avl, box(103), box(91), nullptr); - avl = remove_int(avl, 164); - avl = remove_int(avl, 974); - avl = gpr_avl_add(avl, box(215), box(94), nullptr); - avl = remove_int(avl, 189); - avl = remove_int(avl, 504); - avl = gpr_avl_add(avl, box(868), box(97), nullptr); - avl = remove_int(avl, 909); - avl = remove_int(avl, 148); - avl = remove_int(avl, 469); - avl = gpr_avl_add(avl, box(994), box(101), nullptr); - avl = gpr_avl_add(avl, box(576), box(102), nullptr); - avl = remove_int(avl, 82); - avl = remove_int(avl, 209); - avl = gpr_avl_add(avl, box(276), box(105), nullptr); - avl = remove_int(avl, 856); - avl = gpr_avl_add(avl, box(750), box(107), nullptr); - avl = remove_int(avl, 871); - avl = gpr_avl_add(avl, box(301), box(109), nullptr); - avl = remove_int(avl, 260); - avl = remove_int(avl, 737); - avl = remove_int(avl, 719); - avl = gpr_avl_add(avl, box(933), box(113), nullptr); - avl = gpr_avl_add(avl, box(225), box(114), nullptr); - avl = gpr_avl_add(avl, box(975), box(115), nullptr); - avl = gpr_avl_add(avl, box(86), box(116), nullptr); - avl = remove_int(avl, 732); - avl = gpr_avl_add(avl, box(340), box(118), nullptr); - avl = gpr_avl_add(avl, box(271), box(119), nullptr); - avl = remove_int(avl, 206); - avl = gpr_avl_add(avl, box(949), box(121), nullptr); - avl = gpr_avl_add(avl, box(927), box(122), nullptr); - avl = gpr_avl_add(avl, box(34), box(123), nullptr); - avl = gpr_avl_add(avl, box(351), box(124), nullptr); - avl = remove_int(avl, 836); - avl = gpr_avl_add(avl, box(825), box(126), nullptr); - avl = gpr_avl_add(avl, box(352), box(127), nullptr); - avl = remove_int(avl, 107); - avl = remove_int(avl, 101); - avl = gpr_avl_add(avl, box(320), box(130), nullptr); - avl = gpr_avl_add(avl, box(3), box(131), nullptr); - avl = remove_int(avl, 998); - avl = remove_int(avl, 44); - avl = gpr_avl_add(avl, box(525), box(134), nullptr); - avl = gpr_avl_add(avl, box(864), box(135), nullptr); - avl = gpr_avl_add(avl, box(863), box(136), nullptr); - avl = remove_int(avl, 770); - avl = gpr_avl_add(avl, box(440), box(138), nullptr); - avl = remove_int(avl, 516); - avl = gpr_avl_add(avl, box(116), box(140), nullptr); - avl = remove_int(avl, 380); - avl = gpr_avl_add(avl, box(878), box(142), nullptr); - avl = remove_int(avl, 439); - avl = gpr_avl_add(avl, box(994), box(144), nullptr); - avl = remove_int(avl, 294); - avl = remove_int(avl, 593); - avl = gpr_avl_add(avl, box(696), box(147), nullptr); - avl = remove_int(avl, 8); - avl = gpr_avl_add(avl, box(881), box(149), nullptr); - avl = remove_int(avl, 32); - avl = remove_int(avl, 242); - avl = gpr_avl_add(avl, box(487), box(152), nullptr); - avl = gpr_avl_add(avl, box(637), box(153), nullptr); - avl = gpr_avl_add(avl, box(793), box(154), nullptr); - avl = gpr_avl_add(avl, box(696), box(155), nullptr); - avl = remove_int(avl, 458); - avl = gpr_avl_add(avl, box(828), box(157), nullptr); - avl = remove_int(avl, 784); - avl = remove_int(avl, 274); - avl = gpr_avl_add(avl, box(783), box(160), nullptr); - avl = remove_int(avl, 21); - avl = gpr_avl_add(avl, box(866), box(162), nullptr); - avl = remove_int(avl, 919); - avl = gpr_avl_add(avl, box(435), box(164), nullptr); - avl = remove_int(avl, 385); - avl = gpr_avl_add(avl, box(475), box(166), nullptr); - avl = remove_int(avl, 339); - avl = gpr_avl_add(avl, box(615), box(168), nullptr); - avl = remove_int(avl, 866); - avl = remove_int(avl, 82); - avl = remove_int(avl, 271); - avl = gpr_avl_add(avl, box(590), box(172), nullptr); - avl = gpr_avl_add(avl, box(852), box(173), nullptr); - avl = remove_int(avl, 318); - avl = remove_int(avl, 82); - avl = gpr_avl_add(avl, box(672), box(176), nullptr); - avl = remove_int(avl, 430); - avl = gpr_avl_add(avl, box(821), box(178), nullptr); - avl = gpr_avl_add(avl, box(365), box(179), nullptr); - avl = remove_int(avl, 78); - avl = gpr_avl_add(avl, box(700), box(181), nullptr); - avl = gpr_avl_add(avl, box(353), box(182), nullptr); - avl = remove_int(avl, 492); - avl = gpr_avl_add(avl, box(991), box(184), nullptr); - avl = remove_int(avl, 330); - avl = gpr_avl_add(avl, box(873), box(186), nullptr); - avl = remove_int(avl, 589); - avl = gpr_avl_add(avl, box(676), box(188), nullptr); - avl = gpr_avl_add(avl, box(790), box(189), nullptr); - avl = remove_int(avl, 521); - avl = remove_int(avl, 47); - avl = gpr_avl_add(avl, box(976), box(192), nullptr); - avl = gpr_avl_add(avl, box(683), box(193), nullptr); - avl = remove_int(avl, 803); - avl = remove_int(avl, 1006); - avl = gpr_avl_add(avl, box(775), box(196), nullptr); - avl = gpr_avl_add(avl, box(411), box(197), nullptr); - avl = gpr_avl_add(avl, box(697), box(198), nullptr); - avl = remove_int(avl, 50); - avl = gpr_avl_add(avl, box(213), box(200), nullptr); - avl = remove_int(avl, 714); - avl = gpr_avl_add(avl, box(981), box(202), nullptr); - avl = gpr_avl_add(avl, box(502), box(203), nullptr); - avl = gpr_avl_add(avl, box(697), box(204), nullptr); - avl = gpr_avl_add(avl, box(603), box(205), nullptr); - avl = gpr_avl_add(avl, box(117), box(206), nullptr); - avl = remove_int(avl, 363); - avl = gpr_avl_add(avl, box(104), box(208), nullptr); - avl = remove_int(avl, 842); - avl = gpr_avl_add(avl, box(48), box(210), nullptr); - avl = remove_int(avl, 764); - avl = gpr_avl_add(avl, box(482), box(212), nullptr); - avl = gpr_avl_add(avl, box(928), box(213), nullptr); - avl = gpr_avl_add(avl, box(30), box(214), nullptr); - avl = gpr_avl_add(avl, box(820), box(215), nullptr); - avl = gpr_avl_add(avl, box(334), box(216), nullptr); - avl = remove_int(avl, 306); - avl = gpr_avl_add(avl, box(789), box(218), nullptr); - avl = remove_int(avl, 924); - avl = gpr_avl_add(avl, box(53), box(220), nullptr); - avl = remove_int(avl, 657); - avl = gpr_avl_add(avl, box(130), box(222), nullptr); - avl = gpr_avl_add(avl, box(239), box(223), nullptr); - avl = remove_int(avl, 20); - avl = gpr_avl_add(avl, box(117), box(225), nullptr); - avl = remove_int(avl, 882); - avl = remove_int(avl, 891); - avl = gpr_avl_add(avl, box(9), box(228), nullptr); - avl = gpr_avl_add(avl, box(496), box(229), nullptr); - avl = gpr_avl_add(avl, box(750), box(230), nullptr); - avl = gpr_avl_add(avl, box(283), box(231), nullptr); - avl = gpr_avl_add(avl, box(802), box(232), nullptr); - avl = remove_int(avl, 352); - avl = gpr_avl_add(avl, box(374), box(234), nullptr); - avl = gpr_avl_add(avl, box(6), box(235), nullptr); - avl = gpr_avl_add(avl, box(756), box(236), nullptr); - avl = gpr_avl_add(avl, box(597), box(237), nullptr); - avl = gpr_avl_add(avl, box(661), box(238), nullptr); - avl = remove_int(avl, 96); - avl = gpr_avl_add(avl, box(894), box(240), nullptr); - avl = remove_int(avl, 749); - avl = gpr_avl_add(avl, box(71), box(242), nullptr); - avl = remove_int(avl, 68); - avl = gpr_avl_add(avl, box(388), box(244), nullptr); - avl = remove_int(avl, 119); - avl = remove_int(avl, 856); - avl = gpr_avl_add(avl, box(176), box(247), nullptr); - avl = gpr_avl_add(avl, box(993), box(248), nullptr); - avl = remove_int(avl, 178); - avl = remove_int(avl, 781); - avl = remove_int(avl, 771); - avl = remove_int(avl, 848); - avl = remove_int(avl, 376); - avl = remove_int(avl, 157); - avl = remove_int(avl, 142); - avl = remove_int(avl, 686); - avl = gpr_avl_add(avl, box(779), box(257), nullptr); - avl = gpr_avl_add(avl, box(484), box(258), nullptr); - avl = remove_int(avl, 837); - avl = gpr_avl_add(avl, box(388), box(260), nullptr); - avl = remove_int(avl, 987); - avl = gpr_avl_add(avl, box(336), box(262), nullptr); - avl = remove_int(avl, 855); - avl = gpr_avl_add(avl, box(668), box(264), nullptr); - avl = remove_int(avl, 648); - avl = gpr_avl_add(avl, box(193), box(266), nullptr); - avl = remove_int(avl, 939); - avl = gpr_avl_add(avl, box(740), box(268), nullptr); - avl = gpr_avl_add(avl, box(503), box(269), nullptr); - avl = gpr_avl_add(avl, box(765), box(270), nullptr); - avl = remove_int(avl, 924); - avl = remove_int(avl, 513); - avl = gpr_avl_add(avl, box(161), box(273), nullptr); - avl = gpr_avl_add(avl, box(502), box(274), nullptr); - avl = gpr_avl_add(avl, box(846), box(275), nullptr); - avl = remove_int(avl, 931); - avl = gpr_avl_add(avl, box(87), box(277), nullptr); - avl = gpr_avl_add(avl, box(949), box(278), nullptr); - avl = gpr_avl_add(avl, box(548), box(279), nullptr); - avl = gpr_avl_add(avl, box(951), box(280), nullptr); - avl = remove_int(avl, 1018); - avl = remove_int(avl, 568); - avl = gpr_avl_add(avl, box(138), box(283), nullptr); - avl = gpr_avl_add(avl, box(202), box(284), nullptr); - avl = gpr_avl_add(avl, box(157), box(285), nullptr); - avl = gpr_avl_add(avl, box(264), box(286), nullptr); - avl = gpr_avl_add(avl, box(370), box(287), nullptr); - avl = remove_int(avl, 736); - avl = remove_int(avl, 751); - avl = remove_int(avl, 506); - avl = remove_int(avl, 81); - avl = remove_int(avl, 358); - avl = remove_int(avl, 657); - avl = remove_int(avl, 86); - avl = gpr_avl_add(avl, box(876), box(295), nullptr); - avl = remove_int(avl, 354); - avl = gpr_avl_add(avl, box(134), box(297), nullptr); - avl = remove_int(avl, 781); - avl = remove_int(avl, 183); - avl = gpr_avl_add(avl, box(914), box(300), nullptr); - avl = remove_int(avl, 926); - avl = remove_int(avl, 398); - avl = remove_int(avl, 932); - avl = remove_int(avl, 804); - avl = remove_int(avl, 326); - avl = gpr_avl_add(avl, box(208), box(306), nullptr); - avl = gpr_avl_add(avl, box(699), box(307), nullptr); - avl = remove_int(avl, 576); - avl = remove_int(avl, 850); - avl = remove_int(avl, 514); - avl = remove_int(avl, 676); - avl = remove_int(avl, 549); - avl = remove_int(avl, 767); - avl = gpr_avl_add(avl, box(58), box(314), nullptr); - avl = gpr_avl_add(avl, box(265), box(315), nullptr); - avl = gpr_avl_add(avl, box(268), box(316), nullptr); - avl = gpr_avl_add(avl, box(103), box(317), nullptr); - avl = gpr_avl_add(avl, box(440), box(318), nullptr); - avl = remove_int(avl, 777); - avl = gpr_avl_add(avl, box(670), box(320), nullptr); - avl = remove_int(avl, 506); - avl = remove_int(avl, 487); - avl = gpr_avl_add(avl, box(421), box(323), nullptr); - avl = remove_int(avl, 514); - avl = gpr_avl_add(avl, box(701), box(325), nullptr); - avl = remove_int(avl, 949); - avl = remove_int(avl, 872); - avl = remove_int(avl, 139); - avl = gpr_avl_add(avl, box(781), box(329), nullptr); - avl = gpr_avl_add(avl, box(543), box(330), nullptr); - avl = gpr_avl_add(avl, box(147), box(331), nullptr); - avl = remove_int(avl, 190); - avl = gpr_avl_add(avl, box(453), box(333), nullptr); - avl = remove_int(avl, 262); - avl = remove_int(avl, 850); - avl = remove_int(avl, 286); - avl = remove_int(avl, 787); - avl = gpr_avl_add(avl, box(514), box(338), nullptr); - avl = remove_int(avl, 812); - avl = gpr_avl_add(avl, box(431), box(340), nullptr); - avl = gpr_avl_add(avl, box(8), box(341), nullptr); - avl = remove_int(avl, 843); - avl = gpr_avl_add(avl, box(831), box(343), nullptr); - avl = remove_int(avl, 472); - avl = remove_int(avl, 157); - avl = gpr_avl_add(avl, box(612), box(346), nullptr); - avl = gpr_avl_add(avl, box(802), box(347), nullptr); - avl = remove_int(avl, 554); - avl = gpr_avl_add(avl, box(409), box(349), nullptr); - avl = gpr_avl_add(avl, box(439), box(350), nullptr); - avl = gpr_avl_add(avl, box(725), box(351), nullptr); - avl = gpr_avl_add(avl, box(568), box(352), nullptr); - avl = remove_int(avl, 475); - avl = remove_int(avl, 672); - avl = remove_int(avl, 62); - avl = remove_int(avl, 753); - avl = gpr_avl_add(avl, box(435), box(357), nullptr); - avl = gpr_avl_add(avl, box(950), box(358), nullptr); - avl = gpr_avl_add(avl, box(532), box(359), nullptr); - avl = gpr_avl_add(avl, box(832), box(360), nullptr); - avl = remove_int(avl, 390); - avl = gpr_avl_add(avl, box(993), box(362), nullptr); - avl = remove_int(avl, 198); - avl = remove_int(avl, 401); - avl = gpr_avl_add(avl, box(316), box(365), nullptr); - avl = remove_int(avl, 843); - avl = gpr_avl_add(avl, box(541), box(367), nullptr); - avl = gpr_avl_add(avl, box(505), box(368), nullptr); - avl = remove_int(avl, 445); - avl = remove_int(avl, 256); - avl = gpr_avl_add(avl, box(232), box(371), nullptr); - avl = remove_int(avl, 577); - avl = remove_int(avl, 558); - avl = gpr_avl_add(avl, box(910), box(374), nullptr); - avl = remove_int(avl, 902); - avl = remove_int(avl, 755); - avl = remove_int(avl, 114); - avl = remove_int(avl, 438); - avl = remove_int(avl, 224); - avl = gpr_avl_add(avl, box(920), box(380), nullptr); - avl = gpr_avl_add(avl, box(655), box(381), nullptr); - avl = remove_int(avl, 557); - avl = remove_int(avl, 102); - avl = remove_int(avl, 165); - avl = gpr_avl_add(avl, box(191), box(385), nullptr); - avl = remove_int(avl, 30); - avl = gpr_avl_add(avl, box(406), box(387), nullptr); - avl = gpr_avl_add(avl, box(66), box(388), nullptr); - avl = gpr_avl_add(avl, box(87), box(389), nullptr); - avl = remove_int(avl, 7); - avl = remove_int(avl, 671); - avl = gpr_avl_add(avl, box(234), box(392), nullptr); - avl = remove_int(avl, 463); - avl = gpr_avl_add(avl, box(75), box(394), nullptr); - avl = gpr_avl_add(avl, box(487), box(395), nullptr); - avl = remove_int(avl, 203); - avl = gpr_avl_add(avl, box(711), box(397), nullptr); - avl = remove_int(avl, 291); - avl = remove_int(avl, 798); - avl = remove_int(avl, 337); - avl = gpr_avl_add(avl, box(877), box(401), nullptr); - avl = gpr_avl_add(avl, box(388), box(402), nullptr); - avl = remove_int(avl, 975); - avl = gpr_avl_add(avl, box(200), box(404), nullptr); - avl = gpr_avl_add(avl, box(408), box(405), nullptr); - avl = gpr_avl_add(avl, box(3), box(406), nullptr); - avl = gpr_avl_add(avl, box(971), box(407), nullptr); - avl = remove_int(avl, 841); - avl = remove_int(avl, 910); - avl = remove_int(avl, 74); - avl = remove_int(avl, 888); - avl = gpr_avl_add(avl, box(492), box(412), nullptr); - avl = remove_int(avl, 14); - avl = remove_int(avl, 364); - avl = gpr_avl_add(avl, box(215), box(415), nullptr); - avl = remove_int(avl, 778); - avl = remove_int(avl, 45); - avl = gpr_avl_add(avl, box(328), box(418), nullptr); - avl = gpr_avl_add(avl, box(597), box(419), nullptr); - avl = remove_int(avl, 34); - avl = gpr_avl_add(avl, box(736), box(421), nullptr); - avl = remove_int(avl, 37); - avl = gpr_avl_add(avl, box(275), box(423), nullptr); - avl = gpr_avl_add(avl, box(70), box(424), nullptr); - avl = gpr_avl_add(avl, box(771), box(425), nullptr); - avl = remove_int(avl, 536); - avl = remove_int(avl, 421); - avl = gpr_avl_add(avl, box(186), box(428), nullptr); - avl = gpr_avl_add(avl, box(788), box(429), nullptr); - avl = gpr_avl_add(avl, box(224), box(430), nullptr); - avl = remove_int(avl, 228); - avl = gpr_avl_add(avl, box(48), box(432), nullptr); - avl = gpr_avl_add(avl, box(120), box(433), nullptr); - avl = gpr_avl_add(avl, box(269), box(434), nullptr); - avl = gpr_avl_add(avl, box(904), box(435), nullptr); - avl = remove_int(avl, 699); - avl = gpr_avl_add(avl, box(340), box(437), nullptr); - avl = remove_int(avl, 276); - avl = gpr_avl_add(avl, box(591), box(439), nullptr); - avl = gpr_avl_add(avl, box(778), box(440), nullptr); - avl = remove_int(avl, 490); - avl = remove_int(avl, 973); - avl = gpr_avl_add(avl, box(294), box(443), nullptr); - avl = gpr_avl_add(avl, box(323), box(444), nullptr); - avl = remove_int(avl, 685); - avl = gpr_avl_add(avl, box(38), box(446), nullptr); - avl = gpr_avl_add(avl, box(525), box(447), nullptr); - avl = remove_int(avl, 162); - avl = gpr_avl_add(avl, box(462), box(449), nullptr); - avl = gpr_avl_add(avl, box(340), box(450), nullptr); - avl = remove_int(avl, 734); - avl = remove_int(avl, 959); - avl = gpr_avl_add(avl, box(752), box(453), nullptr); - avl = gpr_avl_add(avl, box(667), box(454), nullptr); - avl = remove_int(avl, 558); - avl = remove_int(avl, 657); - avl = gpr_avl_add(avl, box(711), box(457), nullptr); - avl = remove_int(avl, 937); - avl = gpr_avl_add(avl, box(741), box(459), nullptr); - avl = gpr_avl_add(avl, box(40), box(460), nullptr); - avl = remove_int(avl, 784); - avl = gpr_avl_add(avl, box(292), box(462), nullptr); - avl = remove_int(avl, 164); - avl = remove_int(avl, 931); - avl = remove_int(avl, 886); - avl = gpr_avl_add(avl, box(968), box(466), nullptr); - avl = remove_int(avl, 263); - avl = gpr_avl_add(avl, box(647), box(468), nullptr); - avl = gpr_avl_add(avl, box(92), box(469), nullptr); - avl = remove_int(avl, 310); - avl = gpr_avl_add(avl, box(711), box(471), nullptr); - avl = gpr_avl_add(avl, box(675), box(472), nullptr); - avl = remove_int(avl, 549); - avl = gpr_avl_add(avl, box(380), box(474), nullptr); - avl = remove_int(avl, 825); - avl = gpr_avl_add(avl, box(668), box(476), nullptr); - avl = remove_int(avl, 498); - avl = gpr_avl_add(avl, box(870), box(478), nullptr); - avl = gpr_avl_add(avl, box(391), box(479), nullptr); - avl = gpr_avl_add(avl, box(264), box(480), nullptr); - avl = remove_int(avl, 1); - avl = remove_int(avl, 849); - avl = remove_int(avl, 88); - avl = remove_int(avl, 255); - avl = remove_int(avl, 763); - avl = remove_int(avl, 831); - avl = gpr_avl_add(avl, box(508), box(487), nullptr); - avl = remove_int(avl, 849); - avl = remove_int(avl, 47); - avl = gpr_avl_add(avl, box(299), box(490), nullptr); - avl = remove_int(avl, 625); - avl = remove_int(avl, 433); - avl = remove_int(avl, 904); - avl = remove_int(avl, 761); - avl = gpr_avl_add(avl, box(33), box(495), nullptr); - avl = gpr_avl_add(avl, box(524), box(496), nullptr); - avl = remove_int(avl, 210); - avl = remove_int(avl, 299); - avl = gpr_avl_add(avl, box(823), box(499), nullptr); - avl = remove_int(avl, 479); - avl = remove_int(avl, 96); - avl = remove_int(avl, 1013); - avl = gpr_avl_add(avl, box(768), box(503), nullptr); - avl = remove_int(avl, 638); - avl = remove_int(avl, 20); - avl = gpr_avl_add(avl, box(663), box(506), nullptr); - avl = remove_int(avl, 882); - avl = gpr_avl_add(avl, box(745), box(508), nullptr); - avl = remove_int(avl, 352); - avl = gpr_avl_add(avl, box(10), box(510), nullptr); - avl = remove_int(avl, 484); - avl = gpr_avl_add(avl, box(420), box(512), nullptr); - avl = gpr_avl_add(avl, box(884), box(513), nullptr); - avl = gpr_avl_add(avl, box(993), box(514), nullptr); - avl = gpr_avl_add(avl, box(251), box(515), nullptr); - avl = remove_int(avl, 222); - avl = gpr_avl_add(avl, box(734), box(517), nullptr); - avl = gpr_avl_add(avl, box(952), box(518), nullptr); - avl = remove_int(avl, 26); - avl = remove_int(avl, 270); - avl = remove_int(avl, 481); - avl = remove_int(avl, 693); - avl = remove_int(avl, 1006); - avl = gpr_avl_add(avl, box(77), box(524), nullptr); - avl = remove_int(avl, 897); - avl = gpr_avl_add(avl, box(719), box(526), nullptr); - avl = gpr_avl_add(avl, box(622), box(527), nullptr); - avl = remove_int(avl, 28); - avl = remove_int(avl, 836); - avl = remove_int(avl, 142); - avl = gpr_avl_add(avl, box(445), box(531), nullptr); - avl = gpr_avl_add(avl, box(410), box(532), nullptr); - avl = remove_int(avl, 575); - avl = gpr_avl_add(avl, box(634), box(534), nullptr); - avl = gpr_avl_add(avl, box(906), box(535), nullptr); - avl = remove_int(avl, 649); - avl = gpr_avl_add(avl, box(813), box(537), nullptr); - avl = remove_int(avl, 702); - avl = remove_int(avl, 732); - avl = gpr_avl_add(avl, box(105), box(540), nullptr); - avl = gpr_avl_add(avl, box(867), box(541), nullptr); - avl = remove_int(avl, 964); - avl = remove_int(avl, 941); - avl = gpr_avl_add(avl, box(947), box(544), nullptr); - avl = remove_int(avl, 990); - avl = gpr_avl_add(avl, box(816), box(546), nullptr); - avl = remove_int(avl, 429); - avl = remove_int(avl, 567); - avl = remove_int(avl, 541); - avl = remove_int(avl, 583); - avl = gpr_avl_add(avl, box(57), box(551), nullptr); - avl = gpr_avl_add(avl, box(786), box(552), nullptr); - avl = gpr_avl_add(avl, box(526), box(553), nullptr); - avl = remove_int(avl, 642); - avl = remove_int(avl, 220); - avl = remove_int(avl, 840); - avl = remove_int(avl, 548); - avl = gpr_avl_add(avl, box(528), box(558), nullptr); - avl = gpr_avl_add(avl, box(749), box(559), nullptr); - avl = gpr_avl_add(avl, box(194), box(560), nullptr); - avl = remove_int(avl, 517); - avl = gpr_avl_add(avl, box(102), box(562), nullptr); - avl = remove_int(avl, 189); - avl = gpr_avl_add(avl, box(927), box(564), nullptr); - avl = remove_int(avl, 846); - avl = remove_int(avl, 130); - avl = gpr_avl_add(avl, box(694), box(567), nullptr); - avl = remove_int(avl, 750); - avl = gpr_avl_add(avl, box(357), box(569), nullptr); - avl = remove_int(avl, 431); - avl = remove_int(avl, 91); - avl = gpr_avl_add(avl, box(640), box(572), nullptr); - avl = remove_int(avl, 4); - avl = gpr_avl_add(avl, box(81), box(574), nullptr); - avl = gpr_avl_add(avl, box(595), box(575), nullptr); - avl = remove_int(avl, 444); - avl = remove_int(avl, 262); - avl = remove_int(avl, 11); - avl = gpr_avl_add(avl, box(192), box(579), nullptr); - avl = gpr_avl_add(avl, box(158), box(580), nullptr); - avl = remove_int(avl, 401); - avl = remove_int(avl, 918); - avl = gpr_avl_add(avl, box(180), box(583), nullptr); - avl = remove_int(avl, 268); - avl = gpr_avl_add(avl, box(1012), box(585), nullptr); - avl = gpr_avl_add(avl, box(90), box(586), nullptr); - avl = gpr_avl_add(avl, box(946), box(587), nullptr); - avl = remove_int(avl, 719); - avl = gpr_avl_add(avl, box(874), box(589), nullptr); - avl = gpr_avl_add(avl, box(679), box(590), nullptr); - avl = remove_int(avl, 53); - avl = remove_int(avl, 534); - avl = gpr_avl_add(avl, box(646), box(593), nullptr); - avl = gpr_avl_add(avl, box(767), box(594), nullptr); - avl = gpr_avl_add(avl, box(460), box(595), nullptr); - avl = gpr_avl_add(avl, box(852), box(596), nullptr); - avl = gpr_avl_add(avl, box(189), box(597), nullptr); - avl = remove_int(avl, 932); - avl = remove_int(avl, 366); - avl = remove_int(avl, 907); - avl = gpr_avl_add(avl, box(875), box(601), nullptr); - avl = gpr_avl_add(avl, box(434), box(602), nullptr); - avl = gpr_avl_add(avl, box(704), box(603), nullptr); - avl = gpr_avl_add(avl, box(724), box(604), nullptr); - avl = gpr_avl_add(avl, box(930), box(605), nullptr); - avl = gpr_avl_add(avl, box(1000), box(606), nullptr); - avl = remove_int(avl, 479); - avl = gpr_avl_add(avl, box(275), box(608), nullptr); - avl = remove_int(avl, 32); - avl = gpr_avl_add(avl, box(939), box(610), nullptr); - avl = remove_int(avl, 943); - avl = remove_int(avl, 329); - avl = gpr_avl_add(avl, box(490), box(613), nullptr); - avl = remove_int(avl, 477); - avl = remove_int(avl, 414); - avl = remove_int(avl, 187); - avl = remove_int(avl, 334); - avl = gpr_avl_add(avl, box(40), box(618), nullptr); - avl = remove_int(avl, 751); - avl = gpr_avl_add(avl, box(568), box(620), nullptr); - avl = gpr_avl_add(avl, box(120), box(621), nullptr); - avl = gpr_avl_add(avl, box(617), box(622), nullptr); - avl = gpr_avl_add(avl, box(32), box(623), nullptr); - avl = remove_int(avl, 701); - avl = gpr_avl_add(avl, box(910), box(625), nullptr); - avl = remove_int(avl, 557); - avl = remove_int(avl, 361); - avl = remove_int(avl, 937); - avl = remove_int(avl, 100); - avl = remove_int(avl, 684); - avl = gpr_avl_add(avl, box(751), box(631), nullptr); - avl = remove_int(avl, 781); - avl = remove_int(avl, 469); - avl = remove_int(avl, 75); - avl = remove_int(avl, 561); - avl = gpr_avl_add(avl, box(854), box(636), nullptr); - avl = remove_int(avl, 164); - avl = remove_int(avl, 258); - avl = remove_int(avl, 315); - avl = remove_int(avl, 261); - avl = gpr_avl_add(avl, box(552), box(641), nullptr); - avl = gpr_avl_add(avl, box(6), box(642), nullptr); - avl = gpr_avl_add(avl, box(680), box(643), nullptr); - avl = remove_int(avl, 741); - avl = remove_int(avl, 309); - avl = remove_int(avl, 272); - avl = gpr_avl_add(avl, box(249), box(647), nullptr); - avl = remove_int(avl, 97); - avl = remove_int(avl, 850); - avl = gpr_avl_add(avl, box(915), box(650), nullptr); - avl = gpr_avl_add(avl, box(816), box(651), nullptr); - avl = gpr_avl_add(avl, box(45), box(652), nullptr); - avl = gpr_avl_add(avl, box(168), box(653), nullptr); - avl = remove_int(avl, 153); - avl = remove_int(avl, 239); - avl = gpr_avl_add(avl, box(684), box(656), nullptr); - avl = gpr_avl_add(avl, box(208), box(657), nullptr); - avl = gpr_avl_add(avl, box(681), box(658), nullptr); - avl = gpr_avl_add(avl, box(609), box(659), nullptr); - avl = gpr_avl_add(avl, box(645), box(660), nullptr); - avl = remove_int(avl, 799); - avl = gpr_avl_add(avl, box(955), box(662), nullptr); - avl = gpr_avl_add(avl, box(946), box(663), nullptr); - avl = gpr_avl_add(avl, box(744), box(664), nullptr); - avl = gpr_avl_add(avl, box(201), box(665), nullptr); - avl = gpr_avl_add(avl, box(136), box(666), nullptr); - avl = remove_int(avl, 357); - avl = gpr_avl_add(avl, box(974), box(668), nullptr); - avl = remove_int(avl, 485); - avl = gpr_avl_add(avl, box(1009), box(670), nullptr); - avl = gpr_avl_add(avl, box(517), box(671), nullptr); - avl = remove_int(avl, 491); - avl = gpr_avl_add(avl, box(336), box(673), nullptr); - avl = gpr_avl_add(avl, box(589), box(674), nullptr); - avl = remove_int(avl, 546); - avl = remove_int(avl, 840); - avl = remove_int(avl, 104); - avl = remove_int(avl, 347); - avl = gpr_avl_add(avl, box(801), box(679), nullptr); - avl = remove_int(avl, 799); - avl = remove_int(avl, 702); - avl = remove_int(avl, 996); - avl = remove_int(avl, 93); - avl = gpr_avl_add(avl, box(561), box(684), nullptr); - avl = gpr_avl_add(avl, box(25), box(685), nullptr); - avl = remove_int(avl, 278); - avl = gpr_avl_add(avl, box(191), box(687), nullptr); - avl = remove_int(avl, 243); - avl = remove_int(avl, 918); - avl = remove_int(avl, 449); - avl = gpr_avl_add(avl, box(19), box(691), nullptr); - avl = gpr_avl_add(avl, box(762), box(692), nullptr); - avl = gpr_avl_add(avl, box(13), box(693), nullptr); - avl = gpr_avl_add(avl, box(151), box(694), nullptr); - avl = gpr_avl_add(avl, box(152), box(695), nullptr); - avl = gpr_avl_add(avl, box(793), box(696), nullptr); - avl = remove_int(avl, 862); - avl = remove_int(avl, 890); - avl = gpr_avl_add(avl, box(687), box(699), nullptr); - avl = gpr_avl_add(avl, box(509), box(700), nullptr); - avl = gpr_avl_add(avl, box(973), box(701), nullptr); - avl = remove_int(avl, 230); - avl = gpr_avl_add(avl, box(532), box(703), nullptr); - avl = remove_int(avl, 668); - avl = gpr_avl_add(avl, box(281), box(705), nullptr); - avl = gpr_avl_add(avl, box(867), box(706), nullptr); - avl = gpr_avl_add(avl, box(359), box(707), nullptr); - avl = remove_int(avl, 425); - avl = gpr_avl_add(avl, box(691), box(709), nullptr); - avl = gpr_avl_add(avl, box(163), box(710), nullptr); - avl = gpr_avl_add(avl, box(502), box(711), nullptr); - avl = remove_int(avl, 674); - avl = gpr_avl_add(avl, box(697), box(713), nullptr); - avl = remove_int(avl, 271); - avl = gpr_avl_add(avl, box(968), box(715), nullptr); - avl = gpr_avl_add(avl, box(48), box(716), nullptr); - avl = remove_int(avl, 543); - avl = gpr_avl_add(avl, box(35), box(718), nullptr); - avl = gpr_avl_add(avl, box(751), box(719), nullptr); - avl = gpr_avl_add(avl, box(478), box(720), nullptr); - avl = remove_int(avl, 797); - avl = remove_int(avl, 309); - avl = gpr_avl_add(avl, box(927), box(723), nullptr); - avl = remove_int(avl, 504); - avl = gpr_avl_add(avl, box(286), box(725), nullptr); - avl = gpr_avl_add(avl, box(413), box(726), nullptr); - avl = gpr_avl_add(avl, box(599), box(727), nullptr); - avl = remove_int(avl, 105); - avl = remove_int(avl, 605); - avl = gpr_avl_add(avl, box(632), box(730), nullptr); - avl = gpr_avl_add(avl, box(133), box(731), nullptr); - avl = remove_int(avl, 443); - avl = gpr_avl_add(avl, box(958), box(733), nullptr); - avl = gpr_avl_add(avl, box(729), box(734), nullptr); - avl = remove_int(avl, 158); - avl = gpr_avl_add(avl, box(694), box(736), nullptr); - avl = gpr_avl_add(avl, box(505), box(737), nullptr); - avl = remove_int(avl, 63); - avl = remove_int(avl, 714); - avl = gpr_avl_add(avl, box(1002), box(740), nullptr); - avl = remove_int(avl, 211); - avl = gpr_avl_add(avl, box(765), box(742), nullptr); - avl = gpr_avl_add(avl, box(455), box(743), nullptr); - avl = remove_int(avl, 59); - avl = remove_int(avl, 224); - avl = gpr_avl_add(avl, box(586), box(746), nullptr); - avl = gpr_avl_add(avl, box(348), box(747), nullptr); - avl = remove_int(avl, 10); - avl = remove_int(avl, 484); - avl = gpr_avl_add(avl, box(968), box(750), nullptr); - avl = gpr_avl_add(avl, box(923), box(751), nullptr); - avl = remove_int(avl, 573); - avl = remove_int(avl, 617); - avl = gpr_avl_add(avl, box(812), box(754), nullptr); - avl = gpr_avl_add(avl, box(179), box(755), nullptr); - avl = remove_int(avl, 284); - avl = remove_int(avl, 157); - avl = remove_int(avl, 177); - avl = remove_int(avl, 896); - avl = gpr_avl_add(avl, box(649), box(760), nullptr); - avl = gpr_avl_add(avl, box(927), box(761), nullptr); - avl = gpr_avl_add(avl, box(454), box(762), nullptr); - avl = gpr_avl_add(avl, box(217), box(763), nullptr); - avl = remove_int(avl, 534); - avl = gpr_avl_add(avl, box(180), box(765), nullptr); - avl = gpr_avl_add(avl, box(319), box(766), nullptr); - avl = remove_int(avl, 92); - avl = gpr_avl_add(avl, box(483), box(768), nullptr); - avl = remove_int(avl, 504); - avl = remove_int(avl, 1017); - avl = remove_int(avl, 37); - avl = remove_int(avl, 50); - avl = gpr_avl_add(avl, box(302), box(773), nullptr); - avl = remove_int(avl, 807); - avl = gpr_avl_add(avl, box(463), box(775), nullptr); - avl = gpr_avl_add(avl, box(271), box(776), nullptr); - avl = gpr_avl_add(avl, box(644), box(777), nullptr); - avl = remove_int(avl, 618); - avl = gpr_avl_add(avl, box(166), box(779), nullptr); - avl = gpr_avl_add(avl, box(538), box(780), nullptr); - avl = remove_int(avl, 606); - avl = gpr_avl_add(avl, box(425), box(782), nullptr); - avl = remove_int(avl, 725); - avl = remove_int(avl, 383); - avl = gpr_avl_add(avl, box(155), box(785), nullptr); - avl = remove_int(avl, 889); - avl = gpr_avl_add(avl, box(653), box(787), nullptr); - avl = remove_int(avl, 386); - avl = gpr_avl_add(avl, box(142), box(789), nullptr); - avl = remove_int(avl, 107); - avl = remove_int(avl, 603); - avl = remove_int(avl, 971); - avl = gpr_avl_add(avl, box(80), box(793), nullptr); - avl = gpr_avl_add(avl, box(61), box(794), nullptr); - avl = gpr_avl_add(avl, box(693), box(795), nullptr); - avl = gpr_avl_add(avl, box(592), box(796), nullptr); - avl = gpr_avl_add(avl, box(433), box(797), nullptr); - avl = gpr_avl_add(avl, box(973), box(798), nullptr); - avl = remove_int(avl, 901); - avl = remove_int(avl, 340); - avl = remove_int(avl, 709); - avl = gpr_avl_add(avl, box(224), box(802), nullptr); - avl = remove_int(avl, 120); - avl = remove_int(avl, 271); - avl = gpr_avl_add(avl, box(780), box(805), nullptr); - avl = gpr_avl_add(avl, box(867), box(806), nullptr); - avl = gpr_avl_add(avl, box(756), box(807), nullptr); - avl = gpr_avl_add(avl, box(583), box(808), nullptr); - avl = gpr_avl_add(avl, box(356), box(809), nullptr); - avl = gpr_avl_add(avl, box(58), box(810), nullptr); - avl = remove_int(avl, 219); - avl = gpr_avl_add(avl, box(301), box(812), nullptr); - avl = remove_int(avl, 643); - avl = remove_int(avl, 787); - avl = remove_int(avl, 583); - avl = remove_int(avl, 552); - avl = remove_int(avl, 308); - avl = remove_int(avl, 608); - avl = remove_int(avl, 363); - avl = remove_int(avl, 690); - avl = gpr_avl_add(avl, box(233), box(821), nullptr); - avl = gpr_avl_add(avl, box(479), box(822), nullptr); - avl = gpr_avl_add(avl, box(323), box(823), nullptr); - avl = gpr_avl_add(avl, box(802), box(824), nullptr); - avl = remove_int(avl, 682); - avl = remove_int(avl, 705); - avl = remove_int(avl, 487); - avl = gpr_avl_add(avl, box(530), box(828), nullptr); - avl = gpr_avl_add(avl, box(232), box(829), nullptr); - avl = remove_int(avl, 627); - avl = gpr_avl_add(avl, box(396), box(831), nullptr); - avl = gpr_avl_add(avl, box(61), box(832), nullptr); - avl = gpr_avl_add(avl, box(932), box(833), nullptr); - avl = gpr_avl_add(avl, box(108), box(834), nullptr); - avl = gpr_avl_add(avl, box(524), box(835), nullptr); - avl = remove_int(avl, 390); - avl = remove_int(avl, 307); - avl = gpr_avl_add(avl, box(722), box(838), nullptr); - avl = gpr_avl_add(avl, box(907), box(839), nullptr); - avl = remove_int(avl, 286); - avl = remove_int(avl, 337); - avl = remove_int(avl, 443); - avl = gpr_avl_add(avl, box(973), box(843), nullptr); - avl = remove_int(avl, 930); - avl = remove_int(avl, 242); - avl = gpr_avl_add(avl, box(997), box(846), nullptr); - avl = gpr_avl_add(avl, box(689), box(847), nullptr); - avl = remove_int(avl, 318); - avl = gpr_avl_add(avl, box(703), box(849), nullptr); - avl = gpr_avl_add(avl, box(868), box(850), nullptr); - avl = gpr_avl_add(avl, box(200), box(851), nullptr); - avl = gpr_avl_add(avl, box(960), box(852), nullptr); - avl = gpr_avl_add(avl, box(80), box(853), nullptr); - avl = remove_int(avl, 113); - avl = gpr_avl_add(avl, box(135), box(855), nullptr); - avl = remove_int(avl, 529); - avl = gpr_avl_add(avl, box(366), box(857), nullptr); - avl = remove_int(avl, 272); - avl = gpr_avl_add(avl, box(921), box(859), nullptr); - avl = remove_int(avl, 497); - avl = gpr_avl_add(avl, box(712), box(861), nullptr); - avl = remove_int(avl, 777); - avl = remove_int(avl, 505); - avl = remove_int(avl, 974); - avl = remove_int(avl, 497); - avl = gpr_avl_add(avl, box(388), box(866), nullptr); - avl = gpr_avl_add(avl, box(29), box(867), nullptr); - avl = gpr_avl_add(avl, box(180), box(868), nullptr); - avl = gpr_avl_add(avl, box(983), box(869), nullptr); - avl = gpr_avl_add(avl, box(72), box(870), nullptr); - avl = gpr_avl_add(avl, box(693), box(871), nullptr); - avl = gpr_avl_add(avl, box(567), box(872), nullptr); - avl = remove_int(avl, 549); - avl = remove_int(avl, 351); - avl = gpr_avl_add(avl, box(1019), box(875), nullptr); - avl = remove_int(avl, 585); - avl = remove_int(avl, 294); - avl = remove_int(avl, 61); - avl = gpr_avl_add(avl, box(409), box(879), nullptr); - avl = gpr_avl_add(avl, box(984), box(880), nullptr); - avl = gpr_avl_add(avl, box(830), box(881), nullptr); - avl = remove_int(avl, 579); - avl = gpr_avl_add(avl, box(672), box(883), nullptr); - avl = remove_int(avl, 968); - - gpr_avl_unref(avl, nullptr); -} - -static void test_badcase3(void) { - gpr_avl avl; - - gpr_log(GPR_DEBUG, "test_badcase3"); - - avl = gpr_avl_create(&int_int_vtable); - avl = remove_int(avl, 624); - avl = gpr_avl_add(avl, box(59), box(2), nullptr); - avl = gpr_avl_add(avl, box(494), box(3), nullptr); - avl = gpr_avl_add(avl, box(226), box(4), nullptr); - avl = remove_int(avl, 524); - avl = gpr_avl_add(avl, box(540), box(6), nullptr); - avl = remove_int(avl, 1008); - avl = gpr_avl_add(avl, box(502), box(8), nullptr); - avl = remove_int(avl, 267); - avl = remove_int(avl, 764); - avl = remove_int(avl, 443); - avl = gpr_avl_add(avl, box(8), box(12), nullptr); - avl = remove_int(avl, 291); - avl = remove_int(avl, 796); - avl = remove_int(avl, 1002); - avl = gpr_avl_add(avl, box(778), box(16), nullptr); - avl = remove_int(avl, 621); - avl = remove_int(avl, 891); - avl = remove_int(avl, 880); - avl = gpr_avl_add(avl, box(197), box(20), nullptr); - avl = gpr_avl_add(avl, box(441), box(21), nullptr); - avl = gpr_avl_add(avl, box(719), box(22), nullptr); - avl = remove_int(avl, 109); - avl = gpr_avl_add(avl, box(458), box(24), nullptr); - avl = remove_int(avl, 86); - avl = gpr_avl_add(avl, box(897), box(26), nullptr); - avl = gpr_avl_add(avl, box(997), box(27), nullptr); - avl = remove_int(avl, 235); - avl = remove_int(avl, 425); - avl = remove_int(avl, 186); - avl = gpr_avl_add(avl, box(887), box(31), nullptr); - avl = gpr_avl_add(avl, box(1005), box(32), nullptr); - avl = gpr_avl_add(avl, box(778), box(33), nullptr); - avl = gpr_avl_add(avl, box(575), box(34), nullptr); - avl = remove_int(avl, 966); - avl = remove_int(avl, 1015); - avl = gpr_avl_add(avl, box(486), box(37), nullptr); - avl = gpr_avl_add(avl, box(809), box(38), nullptr); - avl = gpr_avl_add(avl, box(907), box(39), nullptr); - avl = gpr_avl_add(avl, box(971), box(40), nullptr); - avl = remove_int(avl, 441); - avl = remove_int(avl, 498); - avl = gpr_avl_add(avl, box(727), box(43), nullptr); - avl = remove_int(avl, 679); - avl = remove_int(avl, 740); - avl = remove_int(avl, 532); - avl = gpr_avl_add(avl, box(805), box(47), nullptr); - avl = remove_int(avl, 64); - avl = gpr_avl_add(avl, box(362), box(49), nullptr); - avl = gpr_avl_add(avl, box(170), box(50), nullptr); - avl = gpr_avl_add(avl, box(389), box(51), nullptr); - avl = gpr_avl_add(avl, box(689), box(52), nullptr); - avl = remove_int(avl, 871); - avl = gpr_avl_add(avl, box(447), box(54), nullptr); - avl = remove_int(avl, 718); - avl = gpr_avl_add(avl, box(724), box(56), nullptr); - avl = remove_int(avl, 215); - avl = gpr_avl_add(avl, box(550), box(58), nullptr); - avl = remove_int(avl, 932); - avl = gpr_avl_add(avl, box(47), box(60), nullptr); - avl = remove_int(avl, 46); - avl = remove_int(avl, 229); - avl = gpr_avl_add(avl, box(68), box(63), nullptr); - avl = gpr_avl_add(avl, box(387), box(64), nullptr); - avl = remove_int(avl, 933); - avl = remove_int(avl, 736); - avl = remove_int(avl, 719); - avl = gpr_avl_add(avl, box(150), box(68), nullptr); - avl = remove_int(avl, 875); - avl = remove_int(avl, 298); - avl = gpr_avl_add(avl, box(991), box(71), nullptr); - avl = remove_int(avl, 705); - avl = gpr_avl_add(avl, box(197), box(73), nullptr); - avl = gpr_avl_add(avl, box(101), box(74), nullptr); - avl = remove_int(avl, 436); - avl = gpr_avl_add(avl, box(755), box(76), nullptr); - avl = gpr_avl_add(avl, box(727), box(77), nullptr); - avl = remove_int(avl, 309); - avl = remove_int(avl, 253); - avl = gpr_avl_add(avl, box(203), box(80), nullptr); - avl = remove_int(avl, 231); - avl = gpr_avl_add(avl, box(461), box(82), nullptr); - avl = remove_int(avl, 316); - avl = remove_int(avl, 493); - avl = gpr_avl_add(avl, box(184), box(85), nullptr); - avl = remove_int(avl, 737); - avl = gpr_avl_add(avl, box(790), box(87), nullptr); - avl = gpr_avl_add(avl, box(335), box(88), nullptr); - avl = remove_int(avl, 649); - avl = gpr_avl_add(avl, box(69), box(90), nullptr); - avl = remove_int(avl, 585); - avl = remove_int(avl, 543); - avl = gpr_avl_add(avl, box(784), box(93), nullptr); - avl = gpr_avl_add(avl, box(60), box(94), nullptr); - avl = gpr_avl_add(avl, box(525), box(95), nullptr); - avl = gpr_avl_add(avl, box(177), box(96), nullptr); - avl = gpr_avl_add(avl, box(178), box(97), nullptr); - avl = gpr_avl_add(avl, box(683), box(98), nullptr); - avl = gpr_avl_add(avl, box(226), box(99), nullptr); - avl = gpr_avl_add(avl, box(662), box(100), nullptr); - avl = remove_int(avl, 944); - avl = gpr_avl_add(avl, box(562), box(102), nullptr); - avl = gpr_avl_add(avl, box(793), box(103), nullptr); - avl = remove_int(avl, 673); - avl = gpr_avl_add(avl, box(310), box(105), nullptr); - avl = remove_int(avl, 479); - avl = remove_int(avl, 543); - avl = remove_int(avl, 159); - avl = remove_int(avl, 850); - avl = gpr_avl_add(avl, box(318), box(110), nullptr); - avl = gpr_avl_add(avl, box(483), box(111), nullptr); - avl = gpr_avl_add(avl, box(84), box(112), nullptr); - avl = remove_int(avl, 109); - avl = gpr_avl_add(avl, box(132), box(114), nullptr); - avl = gpr_avl_add(avl, box(920), box(115), nullptr); - avl = remove_int(avl, 746); - avl = gpr_avl_add(avl, box(145), box(117), nullptr); - avl = gpr_avl_add(avl, box(526), box(118), nullptr); - avl = remove_int(avl, 158); - avl = gpr_avl_add(avl, box(332), box(120), nullptr); - avl = gpr_avl_add(avl, box(918), box(121), nullptr); - avl = remove_int(avl, 339); - avl = gpr_avl_add(avl, box(809), box(123), nullptr); - avl = gpr_avl_add(avl, box(742), box(124), nullptr); - avl = gpr_avl_add(avl, box(718), box(125), nullptr); - avl = remove_int(avl, 988); - avl = remove_int(avl, 531); - avl = remove_int(avl, 840); - avl = gpr_avl_add(avl, box(816), box(129), nullptr); - avl = gpr_avl_add(avl, box(976), box(130), nullptr); - avl = remove_int(avl, 743); - avl = remove_int(avl, 528); - avl = remove_int(avl, 982); - avl = gpr_avl_add(avl, box(803), box(134), nullptr); - avl = gpr_avl_add(avl, box(205), box(135), nullptr); - avl = gpr_avl_add(avl, box(584), box(136), nullptr); - avl = remove_int(avl, 923); - avl = remove_int(avl, 538); - avl = remove_int(avl, 398); - avl = remove_int(avl, 320); - avl = remove_int(avl, 292); - avl = gpr_avl_add(avl, box(270), box(142), nullptr); - avl = gpr_avl_add(avl, box(333), box(143), nullptr); - avl = remove_int(avl, 439); - avl = gpr_avl_add(avl, box(35), box(145), nullptr); - avl = gpr_avl_add(avl, box(837), box(146), nullptr); - avl = remove_int(avl, 65); - avl = remove_int(avl, 642); - avl = remove_int(avl, 371); - avl = remove_int(avl, 140); - avl = remove_int(avl, 533); - avl = remove_int(avl, 676); - avl = gpr_avl_add(avl, box(624), box(153), nullptr); - avl = gpr_avl_add(avl, box(116), box(154), nullptr); - avl = gpr_avl_add(avl, box(446), box(155), nullptr); - avl = remove_int(avl, 91); - avl = remove_int(avl, 721); - avl = remove_int(avl, 537); - avl = gpr_avl_add(avl, box(448), box(159), nullptr); - avl = remove_int(avl, 155); - avl = remove_int(avl, 344); - avl = remove_int(avl, 237); - avl = gpr_avl_add(avl, box(309), box(163), nullptr); - avl = gpr_avl_add(avl, box(434), box(164), nullptr); - avl = gpr_avl_add(avl, box(277), box(165), nullptr); - avl = remove_int(avl, 233); - avl = gpr_avl_add(avl, box(275), box(167), nullptr); - avl = gpr_avl_add(avl, box(218), box(168), nullptr); - avl = gpr_avl_add(avl, box(76), box(169), nullptr); - avl = gpr_avl_add(avl, box(898), box(170), nullptr); - avl = remove_int(avl, 771); - avl = gpr_avl_add(avl, box(237), box(172), nullptr); - avl = remove_int(avl, 327); - avl = gpr_avl_add(avl, box(499), box(174), nullptr); - avl = remove_int(avl, 727); - avl = remove_int(avl, 234); - avl = remove_int(avl, 623); - avl = remove_int(avl, 458); - avl = remove_int(avl, 326); - avl = remove_int(avl, 589); - avl = gpr_avl_add(avl, box(442), box(181), nullptr); - avl = remove_int(avl, 389); - avl = gpr_avl_add(avl, box(708), box(183), nullptr); - avl = gpr_avl_add(avl, box(594), box(184), nullptr); - avl = gpr_avl_add(avl, box(942), box(185), nullptr); - avl = gpr_avl_add(avl, box(282), box(186), nullptr); - avl = remove_int(avl, 434); - avl = remove_int(avl, 134); - avl = remove_int(avl, 270); - avl = remove_int(avl, 512); - avl = remove_int(avl, 265); - avl = remove_int(avl, 21); - avl = remove_int(avl, 193); - avl = remove_int(avl, 797); - avl = remove_int(avl, 347); - avl = gpr_avl_add(avl, box(99), box(196), nullptr); - avl = gpr_avl_add(avl, box(161), box(197), nullptr); - avl = remove_int(avl, 484); - avl = gpr_avl_add(avl, box(72), box(199), nullptr); - avl = remove_int(avl, 629); - avl = gpr_avl_add(avl, box(522), box(201), nullptr); - avl = remove_int(avl, 679); - avl = gpr_avl_add(avl, box(407), box(203), nullptr); - avl = remove_int(avl, 693); - avl = gpr_avl_add(avl, box(424), box(205), nullptr); - avl = gpr_avl_add(avl, box(651), box(206), nullptr); - avl = gpr_avl_add(avl, box(927), box(207), nullptr); - avl = remove_int(avl, 553); - avl = gpr_avl_add(avl, box(128), box(209), nullptr); - avl = gpr_avl_add(avl, box(616), box(210), nullptr); - avl = gpr_avl_add(avl, box(690), box(211), nullptr); - avl = remove_int(avl, 241); - avl = remove_int(avl, 179); - avl = gpr_avl_add(avl, box(697), box(214), nullptr); - avl = remove_int(avl, 779); - avl = gpr_avl_add(avl, box(241), box(216), nullptr); - avl = remove_int(avl, 190); - avl = remove_int(avl, 210); - avl = gpr_avl_add(avl, box(711), box(219), nullptr); - avl = remove_int(avl, 251); - avl = remove_int(avl, 61); - avl = gpr_avl_add(avl, box(800), box(222), nullptr); - avl = remove_int(avl, 551); - avl = gpr_avl_add(avl, box(61), box(224), nullptr); - avl = gpr_avl_add(avl, box(656), box(225), nullptr); - avl = remove_int(avl, 130); - avl = remove_int(avl, 368); - avl = remove_int(avl, 150); - avl = remove_int(avl, 73); - avl = gpr_avl_add(avl, box(799), box(230), nullptr); - avl = gpr_avl_add(avl, box(125), box(231), nullptr); - avl = remove_int(avl, 107); - avl = gpr_avl_add(avl, box(938), box(233), nullptr); - avl = gpr_avl_add(avl, box(914), box(234), nullptr); - avl = gpr_avl_add(avl, box(197), box(235), nullptr); - avl = remove_int(avl, 736); - avl = gpr_avl_add(avl, box(20), box(237), nullptr); - avl = remove_int(avl, 224); - avl = remove_int(avl, 841); - avl = gpr_avl_add(avl, box(226), box(240), nullptr); - avl = remove_int(avl, 963); - avl = remove_int(avl, 796); - avl = remove_int(avl, 728); - avl = gpr_avl_add(avl, box(855), box(244), nullptr); - avl = gpr_avl_add(avl, box(769), box(245), nullptr); - avl = gpr_avl_add(avl, box(631), box(246), nullptr); - avl = remove_int(avl, 648); - avl = gpr_avl_add(avl, box(187), box(248), nullptr); - avl = gpr_avl_add(avl, box(31), box(249), nullptr); - avl = remove_int(avl, 163); - avl = gpr_avl_add(avl, box(218), box(251), nullptr); - avl = gpr_avl_add(avl, box(488), box(252), nullptr); - avl = gpr_avl_add(avl, box(387), box(253), nullptr); - avl = gpr_avl_add(avl, box(809), box(254), nullptr); - avl = gpr_avl_add(avl, box(997), box(255), nullptr); - avl = remove_int(avl, 678); - avl = gpr_avl_add(avl, box(368), box(257), nullptr); - avl = gpr_avl_add(avl, box(220), box(258), nullptr); - avl = gpr_avl_add(avl, box(373), box(259), nullptr); - avl = remove_int(avl, 874); - avl = remove_int(avl, 682); - avl = remove_int(avl, 1014); - avl = remove_int(avl, 195); - avl = gpr_avl_add(avl, box(868), box(264), nullptr); - avl = remove_int(avl, 254); - avl = remove_int(avl, 456); - avl = gpr_avl_add(avl, box(906), box(267), nullptr); - avl = remove_int(avl, 711); - avl = gpr_avl_add(avl, box(632), box(269), nullptr); - avl = remove_int(avl, 474); - avl = gpr_avl_add(avl, box(508), box(271), nullptr); - avl = gpr_avl_add(avl, box(518), box(272), nullptr); - avl = remove_int(avl, 579); - avl = remove_int(avl, 948); - avl = gpr_avl_add(avl, box(789), box(275), nullptr); - avl = gpr_avl_add(avl, box(48), box(276), nullptr); - avl = gpr_avl_add(avl, box(256), box(277), nullptr); - avl = gpr_avl_add(avl, box(754), box(278), nullptr); - avl = remove_int(avl, 215); - avl = gpr_avl_add(avl, box(679), box(280), nullptr); - avl = gpr_avl_add(avl, box(606), box(281), nullptr); - avl = remove_int(avl, 941); - avl = remove_int(avl, 31); - avl = gpr_avl_add(avl, box(758), box(284), nullptr); - avl = remove_int(avl, 101); - avl = gpr_avl_add(avl, box(244), box(286), nullptr); - avl = gpr_avl_add(avl, box(337), box(287), nullptr); - avl = gpr_avl_add(avl, box(461), box(288), nullptr); - avl = remove_int(avl, 476); - avl = gpr_avl_add(avl, box(845), box(290), nullptr); - avl = remove_int(avl, 160); - avl = gpr_avl_add(avl, box(690), box(292), nullptr); - avl = remove_int(avl, 931); - avl = gpr_avl_add(avl, box(869), box(294), nullptr); - avl = gpr_avl_add(avl, box(1019), box(295), nullptr); - avl = remove_int(avl, 591); - avl = remove_int(avl, 635); - avl = remove_int(avl, 67); - avl = gpr_avl_add(avl, box(113), box(299), nullptr); - avl = remove_int(avl, 305); - avl = gpr_avl_add(avl, box(10), box(301), nullptr); - avl = remove_int(avl, 823); - avl = remove_int(avl, 288); - avl = remove_int(avl, 239); - avl = gpr_avl_add(avl, box(646), box(305), nullptr); - avl = gpr_avl_add(avl, box(1006), box(306), nullptr); - avl = gpr_avl_add(avl, box(954), box(307), nullptr); - avl = gpr_avl_add(avl, box(199), box(308), nullptr); - avl = gpr_avl_add(avl, box(69), box(309), nullptr); - avl = gpr_avl_add(avl, box(984), box(310), nullptr); - avl = remove_int(avl, 568); - avl = remove_int(avl, 666); - avl = remove_int(avl, 37); - avl = gpr_avl_add(avl, box(845), box(314), nullptr); - avl = remove_int(avl, 535); - avl = remove_int(avl, 365); - avl = remove_int(avl, 676); - avl = remove_int(avl, 892); - avl = remove_int(avl, 425); - avl = remove_int(avl, 704); - avl = remove_int(avl, 168); - avl = gpr_avl_add(avl, box(853), box(322), nullptr); - avl = gpr_avl_add(avl, box(335), box(323), nullptr); - avl = gpr_avl_add(avl, box(961), box(324), nullptr); - avl = gpr_avl_add(avl, box(73), box(325), nullptr); - avl = remove_int(avl, 469); - avl = gpr_avl_add(avl, box(449), box(327), nullptr); - avl = remove_int(avl, 821); - avl = gpr_avl_add(avl, box(845), box(329), nullptr); - avl = remove_int(avl, 637); - avl = gpr_avl_add(avl, box(769), box(331), nullptr); - avl = gpr_avl_add(avl, box(901), box(332), nullptr); - avl = remove_int(avl, 142); - avl = remove_int(avl, 361); - avl = remove_int(avl, 876); - avl = gpr_avl_add(avl, box(614), box(336), nullptr); - avl = gpr_avl_add(avl, box(729), box(337), nullptr); - avl = remove_int(avl, 120); - avl = remove_int(avl, 473); - avl = remove_int(avl, 445); - avl = gpr_avl_add(avl, box(978), box(341), nullptr); - avl = gpr_avl_add(avl, box(164), box(342), nullptr); - avl = gpr_avl_add(avl, box(1), box(343), nullptr); - avl = remove_int(avl, 890); - avl = gpr_avl_add(avl, box(605), box(345), nullptr); - avl = gpr_avl_add(avl, box(178), box(346), nullptr); - avl = gpr_avl_add(avl, box(481), box(347), nullptr); - avl = gpr_avl_add(avl, box(772), box(348), nullptr); - avl = remove_int(avl, 824); - avl = remove_int(avl, 167); - avl = remove_int(avl, 151); - avl = gpr_avl_add(avl, box(698), box(352), nullptr); - avl = gpr_avl_add(avl, box(202), box(353), nullptr); - avl = gpr_avl_add(avl, box(921), box(354), nullptr); - avl = gpr_avl_add(avl, box(875), box(355), nullptr); - avl = remove_int(avl, 197); - avl = remove_int(avl, 232); - avl = gpr_avl_add(avl, box(209), box(358), nullptr); - avl = remove_int(avl, 324); - avl = remove_int(avl, 56); - avl = remove_int(avl, 579); - avl = remove_int(avl, 255); - avl = remove_int(avl, 290); - avl = gpr_avl_add(avl, box(661), box(364), nullptr); - avl = gpr_avl_add(avl, box(113), box(365), nullptr); - avl = remove_int(avl, 767); - avl = gpr_avl_add(avl, box(586), box(367), nullptr); - avl = gpr_avl_add(avl, box(121), box(368), nullptr); - avl = remove_int(avl, 235); - avl = remove_int(avl, 439); - avl = remove_int(avl, 360); - avl = gpr_avl_add(avl, box(916), box(372), nullptr); - avl = remove_int(avl, 999); - avl = gpr_avl_add(avl, box(825), box(374), nullptr); - avl = gpr_avl_add(avl, box(177), box(375), nullptr); - avl = remove_int(avl, 204); - avl = remove_int(avl, 92); - avl = gpr_avl_add(avl, box(794), box(378), nullptr); - avl = gpr_avl_add(avl, box(463), box(379), nullptr); - avl = gpr_avl_add(avl, box(472), box(380), nullptr); - avl = remove_int(avl, 235); - avl = gpr_avl_add(avl, box(840), box(382), nullptr); - avl = remove_int(avl, 657); - avl = gpr_avl_add(avl, box(586), box(384), nullptr); - avl = gpr_avl_add(avl, box(979), box(385), nullptr); - avl = remove_int(avl, 979); - avl = gpr_avl_add(avl, box(639), box(387), nullptr); - avl = remove_int(avl, 907); - avl = remove_int(avl, 973); - avl = gpr_avl_add(avl, box(913), box(390), nullptr); - avl = gpr_avl_add(avl, box(566), box(391), nullptr); - avl = gpr_avl_add(avl, box(883), box(392), nullptr); - avl = gpr_avl_add(avl, box(552), box(393), nullptr); - avl = gpr_avl_add(avl, box(16), box(394), nullptr); - avl = remove_int(avl, 60); - avl = gpr_avl_add(avl, box(567), box(396), nullptr); - avl = gpr_avl_add(avl, box(705), box(397), nullptr); - avl = gpr_avl_add(avl, box(94), box(398), nullptr); - avl = remove_int(avl, 321); - avl = gpr_avl_add(avl, box(207), box(400), nullptr); - avl = gpr_avl_add(avl, box(682), box(401), nullptr); - avl = gpr_avl_add(avl, box(592), box(402), nullptr); - avl = gpr_avl_add(avl, box(10), box(403), nullptr); - avl = remove_int(avl, 911); - avl = remove_int(avl, 161); - avl = gpr_avl_add(avl, box(86), box(406), nullptr); - avl = remove_int(avl, 893); - avl = remove_int(avl, 362); - avl = gpr_avl_add(avl, box(599), box(409), nullptr); - avl = remove_int(avl, 413); - avl = gpr_avl_add(avl, box(867), box(411), nullptr); - avl = remove_int(avl, 955); - avl = gpr_avl_add(avl, box(341), box(413), nullptr); - avl = gpr_avl_add(avl, box(887), box(414), nullptr); - avl = remove_int(avl, 706); - avl = gpr_avl_add(avl, box(939), box(416), nullptr); - avl = remove_int(avl, 233); - avl = remove_int(avl, 662); - avl = remove_int(avl, 984); - avl = remove_int(avl, 203); - avl = gpr_avl_add(avl, box(326), box(421), nullptr); - avl = remove_int(avl, 848); - avl = gpr_avl_add(avl, box(235), box(423), nullptr); - avl = remove_int(avl, 617); - avl = gpr_avl_add(avl, box(565), box(425), nullptr); - avl = remove_int(avl, 469); - avl = gpr_avl_add(avl, box(988), box(427), nullptr); - avl = remove_int(avl, 957); - avl = gpr_avl_add(avl, box(426), box(429), nullptr); - avl = remove_int(avl, 967); - avl = gpr_avl_add(avl, box(890), box(431), nullptr); - avl = gpr_avl_add(avl, box(473), box(432), nullptr); - avl = remove_int(avl, 367); - avl = remove_int(avl, 344); - avl = remove_int(avl, 660); - avl = remove_int(avl, 448); - avl = remove_int(avl, 837); - avl = remove_int(avl, 158); - avl = gpr_avl_add(avl, box(459), box(439), nullptr); - avl = remove_int(avl, 882); - avl = remove_int(avl, 782); - avl = gpr_avl_add(avl, box(408), box(442), nullptr); - avl = gpr_avl_add(avl, box(728), box(443), nullptr); - avl = remove_int(avl, 27); - avl = gpr_avl_add(avl, box(137), box(445), nullptr); - avl = gpr_avl_add(avl, box(239), box(446), nullptr); - avl = remove_int(avl, 854); - avl = gpr_avl_add(avl, box(104), box(448), nullptr); - avl = gpr_avl_add(avl, box(823), box(449), nullptr); - avl = gpr_avl_add(avl, box(524), box(450), nullptr); - avl = gpr_avl_add(avl, box(995), box(451), nullptr); - avl = remove_int(avl, 422); - avl = remove_int(avl, 220); - avl = gpr_avl_add(avl, box(856), box(454), nullptr); - avl = remove_int(avl, 332); - avl = gpr_avl_add(avl, box(679), box(456), nullptr); - avl = remove_int(avl, 18); - avl = gpr_avl_add(avl, box(837), box(458), nullptr); - avl = remove_int(avl, 405); - avl = remove_int(avl, 877); - avl = remove_int(avl, 835); - avl = gpr_avl_add(avl, box(547), box(462), nullptr); - avl = remove_int(avl, 805); - avl = remove_int(avl, 862); - avl = gpr_avl_add(avl, box(75), box(465), nullptr); - avl = remove_int(avl, 41); - avl = gpr_avl_add(avl, box(310), box(467), nullptr); - avl = remove_int(avl, 855); - avl = gpr_avl_add(avl, box(20), box(469), nullptr); - avl = remove_int(avl, 186); - avl = remove_int(avl, 378); - avl = remove_int(avl, 442); - avl = remove_int(avl, 930); - avl = gpr_avl_add(avl, box(118), box(474), nullptr); - avl = gpr_avl_add(avl, box(96), box(475), nullptr); - avl = remove_int(avl, 854); - avl = gpr_avl_add(avl, box(65), box(477), nullptr); - avl = gpr_avl_add(avl, box(573), box(478), nullptr); - avl = gpr_avl_add(avl, box(4), box(479), nullptr); - avl = gpr_avl_add(avl, box(451), box(480), nullptr); - avl = gpr_avl_add(avl, box(774), box(481), nullptr); - avl = gpr_avl_add(avl, box(126), box(482), nullptr); - avl = remove_int(avl, 956); - avl = remove_int(avl, 591); - avl = remove_int(avl, 644); - avl = gpr_avl_add(avl, box(304), box(486), nullptr); - avl = remove_int(avl, 620); - avl = remove_int(avl, 394); - avl = gpr_avl_add(avl, box(1002), box(489), nullptr); - avl = gpr_avl_add(avl, box(837), box(490), nullptr); - avl = remove_int(avl, 485); - avl = gpr_avl_add(avl, box(1005), box(492), nullptr); - avl = remove_int(avl, 21); - avl = gpr_avl_add(avl, box(396), box(494), nullptr); - avl = remove_int(avl, 966); - avl = gpr_avl_add(avl, box(105), box(496), nullptr); - avl = gpr_avl_add(avl, box(316), box(497), nullptr); - avl = remove_int(avl, 776); - avl = gpr_avl_add(avl, box(188), box(499), nullptr); - avl = remove_int(avl, 200); - avl = gpr_avl_add(avl, box(98), box(501), nullptr); - avl = gpr_avl_add(avl, box(831), box(502), nullptr); - avl = gpr_avl_add(avl, box(227), box(503), nullptr); - avl = gpr_avl_add(avl, box(220), box(504), nullptr); - avl = remove_int(avl, 715); - avl = remove_int(avl, 279); - avl = gpr_avl_add(avl, box(701), box(507), nullptr); - avl = gpr_avl_add(avl, box(726), box(508), nullptr); - avl = gpr_avl_add(avl, box(815), box(509), nullptr); - avl = gpr_avl_add(avl, box(749), box(510), nullptr); - avl = remove_int(avl, 946); - avl = remove_int(avl, 449); - avl = remove_int(avl, 62); - avl = remove_int(avl, 487); - avl = gpr_avl_add(avl, box(545), box(515), nullptr); - avl = remove_int(avl, 59); - avl = gpr_avl_add(avl, box(168), box(517), nullptr); - avl = remove_int(avl, 337); - avl = gpr_avl_add(avl, box(69), box(519), nullptr); - avl = remove_int(avl, 600); - avl = gpr_avl_add(avl, box(591), box(521), nullptr); - avl = gpr_avl_add(avl, box(960), box(522), nullptr); - avl = gpr_avl_add(avl, box(116), box(523), nullptr); - avl = remove_int(avl, 991); - avl = gpr_avl_add(avl, box(760), box(525), nullptr); - avl = gpr_avl_add(avl, box(664), box(526), nullptr); - avl = gpr_avl_add(avl, box(547), box(527), nullptr); - avl = remove_int(avl, 922); - avl = gpr_avl_add(avl, box(290), box(529), nullptr); - avl = gpr_avl_add(avl, box(859), box(530), nullptr); - avl = gpr_avl_add(avl, box(49), box(531), nullptr); - avl = remove_int(avl, 455); - avl = remove_int(avl, 786); - avl = gpr_avl_add(avl, box(613), box(534), nullptr); - avl = gpr_avl_add(avl, box(326), box(535), nullptr); - avl = remove_int(avl, 615); - avl = gpr_avl_add(avl, box(45), box(537), nullptr); - avl = gpr_avl_add(avl, box(162), box(538), nullptr); - avl = gpr_avl_add(avl, box(189), box(539), nullptr); - avl = remove_int(avl, 68); - avl = remove_int(avl, 846); - avl = gpr_avl_add(avl, box(608), box(542), nullptr); - avl = remove_int(avl, 821); - avl = gpr_avl_add(avl, box(978), box(544), nullptr); - avl = gpr_avl_add(avl, box(892), box(545), nullptr); - avl = remove_int(avl, 924); - avl = gpr_avl_add(avl, box(708), box(547), nullptr); - avl = remove_int(avl, 135); - avl = remove_int(avl, 124); - avl = gpr_avl_add(avl, box(301), box(550), nullptr); - avl = gpr_avl_add(avl, box(939), box(551), nullptr); - avl = gpr_avl_add(avl, box(344), box(552), nullptr); - avl = remove_int(avl, 443); - avl = remove_int(avl, 122); - avl = gpr_avl_add(avl, box(636), box(555), nullptr); - avl = remove_int(avl, 558); - avl = gpr_avl_add(avl, box(923), box(557), nullptr); - avl = remove_int(avl, 827); - avl = gpr_avl_add(avl, box(649), box(559), nullptr); - avl = gpr_avl_add(avl, box(808), box(560), nullptr); - avl = remove_int(avl, 570); - avl = remove_int(avl, 434); - avl = gpr_avl_add(avl, box(40), box(563), nullptr); - avl = gpr_avl_add(avl, box(725), box(564), nullptr); - avl = remove_int(avl, 295); - avl = remove_int(avl, 615); - avl = remove_int(avl, 919); - avl = remove_int(avl, 170); - avl = remove_int(avl, 442); - avl = remove_int(avl, 971); - avl = gpr_avl_add(avl, box(483), box(571), nullptr); - avl = gpr_avl_add(avl, box(512), box(572), nullptr); - avl = remove_int(avl, 648); - avl = remove_int(avl, 78); - avl = remove_int(avl, 72); - avl = remove_int(avl, 790); - avl = remove_int(avl, 571); - avl = gpr_avl_add(avl, box(898), box(578), nullptr); - avl = remove_int(avl, 770); - avl = remove_int(avl, 776); - avl = gpr_avl_add(avl, box(602), box(581), nullptr); - avl = remove_int(avl, 251); - avl = gpr_avl_add(avl, box(303), box(583), nullptr); - avl = remove_int(avl, 837); - avl = gpr_avl_add(avl, box(714), box(585), nullptr); - avl = remove_int(avl, 800); - avl = gpr_avl_add(avl, box(266), box(587), nullptr); - avl = gpr_avl_add(avl, box(555), box(588), nullptr); - avl = remove_int(avl, 604); - avl = remove_int(avl, 163); - avl = remove_int(avl, 497); - avl = gpr_avl_add(avl, box(296), box(592), nullptr); - avl = remove_int(avl, 129); - avl = gpr_avl_add(avl, box(656), box(594), nullptr); - avl = remove_int(avl, 769); - avl = remove_int(avl, 941); - avl = gpr_avl_add(avl, box(775), box(597), nullptr); - avl = gpr_avl_add(avl, box(846), box(598), nullptr); - avl = remove_int(avl, 591); - avl = remove_int(avl, 801); - avl = remove_int(avl, 419); - avl = remove_int(avl, 455); - avl = gpr_avl_add(avl, box(866), box(603), nullptr); - avl = gpr_avl_add(avl, box(575), box(604), nullptr); - avl = gpr_avl_add(avl, box(620), box(605), nullptr); - avl = remove_int(avl, 100); - avl = remove_int(avl, 667); - avl = gpr_avl_add(avl, box(138), box(608), nullptr); - avl = gpr_avl_add(avl, box(566), box(609), nullptr); - avl = gpr_avl_add(avl, box(673), box(610), nullptr); - avl = gpr_avl_add(avl, box(178), box(611), nullptr); - avl = remove_int(avl, 659); - avl = gpr_avl_add(avl, box(759), box(613), nullptr); - avl = gpr_avl_add(avl, box(1008), box(614), nullptr); - avl = remove_int(avl, 116); - avl = gpr_avl_add(avl, box(608), box(616), nullptr); - avl = gpr_avl_add(avl, box(339), box(617), nullptr); - avl = gpr_avl_add(avl, box(197), box(618), nullptr); - avl = remove_int(avl, 25); - avl = remove_int(avl, 628); - avl = gpr_avl_add(avl, box(487), box(621), nullptr); - avl = remove_int(avl, 739); - avl = remove_int(avl, 100); - avl = remove_int(avl, 928); - avl = gpr_avl_add(avl, box(647), box(625), nullptr); - avl = remove_int(avl, 978); - avl = remove_int(avl, 143); - avl = remove_int(avl, 755); - avl = gpr_avl_add(avl, box(71), box(629), nullptr); - avl = remove_int(avl, 205); - avl = gpr_avl_add(avl, box(501), box(631), nullptr); - avl = remove_int(avl, 723); - avl = remove_int(avl, 852); - avl = remove_int(avl, 1021); - avl = remove_int(avl, 670); - avl = remove_int(avl, 500); - avl = gpr_avl_add(avl, box(330), box(637), nullptr); - avl = remove_int(avl, 264); - avl = gpr_avl_add(avl, box(69), box(639), nullptr); - avl = remove_int(avl, 73); - avl = gpr_avl_add(avl, box(745), box(641), nullptr); - avl = remove_int(avl, 518); - avl = remove_int(avl, 641); - avl = remove_int(avl, 768); - avl = gpr_avl_add(avl, box(988), box(645), nullptr); - avl = gpr_avl_add(avl, box(899), box(646), nullptr); - avl = remove_int(avl, 763); - avl = remove_int(avl, 281); - avl = remove_int(avl, 496); - avl = gpr_avl_add(avl, box(445), box(650), nullptr); - avl = remove_int(avl, 905); - avl = gpr_avl_add(avl, box(275), box(652), nullptr); - avl = gpr_avl_add(avl, box(137), box(653), nullptr); - avl = remove_int(avl, 642); - avl = gpr_avl_add(avl, box(708), box(655), nullptr); - avl = remove_int(avl, 922); - avl = gpr_avl_add(avl, box(743), box(657), nullptr); - avl = remove_int(avl, 295); - avl = remove_int(avl, 665); - avl = remove_int(avl, 48); - avl = gpr_avl_add(avl, box(1012), box(661), nullptr); - avl = remove_int(avl, 71); - avl = remove_int(avl, 523); - avl = gpr_avl_add(avl, box(319), box(664), nullptr); - avl = remove_int(avl, 632); - avl = gpr_avl_add(avl, box(137), box(666), nullptr); - avl = gpr_avl_add(avl, box(686), box(667), nullptr); - avl = gpr_avl_add(avl, box(724), box(668), nullptr); - avl = gpr_avl_add(avl, box(952), box(669), nullptr); - avl = gpr_avl_add(avl, box(5), box(670), nullptr); - avl = remove_int(avl, 35); - avl = gpr_avl_add(avl, box(43), box(672), nullptr); - avl = gpr_avl_add(avl, box(320), box(673), nullptr); - avl = gpr_avl_add(avl, box(115), box(674), nullptr); - avl = remove_int(avl, 377); - avl = remove_int(avl, 591); - avl = remove_int(avl, 87); - avl = remove_int(avl, 93); - avl = gpr_avl_add(avl, box(1016), box(679), nullptr); - avl = gpr_avl_add(avl, box(605), box(680), nullptr); - avl = gpr_avl_add(avl, box(152), box(681), nullptr); - avl = gpr_avl_add(avl, box(113), box(682), nullptr); - avl = remove_int(avl, 131); - avl = remove_int(avl, 637); - avl = gpr_avl_add(avl, box(156), box(685), nullptr); - avl = remove_int(avl, 696); - avl = gpr_avl_add(avl, box(546), box(687), nullptr); - avl = remove_int(avl, 970); - avl = remove_int(avl, 53); - avl = remove_int(avl, 827); - avl = remove_int(avl, 224); - avl = remove_int(avl, 796); - avl = remove_int(avl, 34); - avl = remove_int(avl, 922); - avl = remove_int(avl, 277); - avl = remove_int(avl, 650); - avl = remove_int(avl, 222); - avl = remove_int(avl, 244); - avl = remove_int(avl, 576); - avl = remove_int(avl, 413); - avl = gpr_avl_add(avl, box(500), box(701), nullptr); - avl = remove_int(avl, 924); - avl = gpr_avl_add(avl, box(825), box(703), nullptr); - avl = remove_int(avl, 888); - avl = remove_int(avl, 931); - avl = gpr_avl_add(avl, box(285), box(706), nullptr); - avl = remove_int(avl, 62); - avl = remove_int(avl, 444); - avl = remove_int(avl, 946); - avl = gpr_avl_add(avl, box(122), box(710), nullptr); - avl = gpr_avl_add(avl, box(846), box(711), nullptr); - avl = remove_int(avl, 628); - avl = gpr_avl_add(avl, box(511), box(713), nullptr); - avl = gpr_avl_add(avl, box(398), box(714), nullptr); - avl = remove_int(avl, 730); - avl = gpr_avl_add(avl, box(797), box(716), nullptr); - avl = remove_int(avl, 897); - avl = remove_int(avl, 228); - avl = remove_int(avl, 544); - avl = remove_int(avl, 552); - avl = remove_int(avl, 783); - avl = remove_int(avl, 583); - avl = remove_int(avl, 894); - avl = remove_int(avl, 942); - avl = gpr_avl_add(avl, box(346), box(725), nullptr); - avl = gpr_avl_add(avl, box(1015), box(726), nullptr); - avl = remove_int(avl, 813); - avl = gpr_avl_add(avl, box(213), box(728), nullptr); - avl = remove_int(avl, 468); - avl = remove_int(avl, 365); - avl = remove_int(avl, 399); - avl = gpr_avl_add(avl, box(380), box(732), nullptr); - avl = remove_int(avl, 835); - avl = remove_int(avl, 970); - avl = gpr_avl_add(avl, box(700), box(735), nullptr); - avl = gpr_avl_add(avl, box(807), box(736), nullptr); - avl = remove_int(avl, 312); - avl = remove_int(avl, 282); - avl = remove_int(avl, 370); - avl = remove_int(avl, 999); - avl = remove_int(avl, 241); - avl = remove_int(avl, 884); - avl = gpr_avl_add(avl, box(587), box(743), nullptr); - avl = gpr_avl_add(avl, box(332), box(744), nullptr); - avl = remove_int(avl, 686); - avl = remove_int(avl, 206); - avl = remove_int(avl, 835); - avl = gpr_avl_add(avl, box(334), box(748), nullptr); - avl = remove_int(avl, 171); - avl = gpr_avl_add(avl, box(1002), box(750), nullptr); - avl = gpr_avl_add(avl, box(779), box(751), nullptr); - avl = gpr_avl_add(avl, box(307), box(752), nullptr); - avl = gpr_avl_add(avl, box(127), box(753), nullptr); - avl = gpr_avl_add(avl, box(251), box(754), nullptr); - avl = remove_int(avl, 790); - avl = remove_int(avl, 189); - avl = remove_int(avl, 193); - avl = remove_int(avl, 38); - avl = remove_int(avl, 124); - avl = gpr_avl_add(avl, box(812), box(760), nullptr); - avl = remove_int(avl, 43); - avl = gpr_avl_add(avl, box(871), box(762), nullptr); - avl = gpr_avl_add(avl, box(580), box(763), nullptr); - avl = remove_int(avl, 501); - avl = remove_int(avl, 462); - avl = remove_int(avl, 599); - avl = gpr_avl_add(avl, box(240), box(767), nullptr); - avl = gpr_avl_add(avl, box(285), box(768), nullptr); - avl = gpr_avl_add(avl, box(472), box(769), nullptr); - avl = remove_int(avl, 865); - avl = remove_int(avl, 763); - avl = remove_int(avl, 245); - avl = remove_int(avl, 80); - avl = remove_int(avl, 713); - avl = remove_int(avl, 654); - avl = remove_int(avl, 1014); - avl = gpr_avl_add(avl, box(495), box(777), nullptr); - avl = gpr_avl_add(avl, box(552), box(778), nullptr); - avl = remove_int(avl, 19); - avl = remove_int(avl, 803); - avl = gpr_avl_add(avl, box(508), box(781), nullptr); - avl = remove_int(avl, 699); - avl = remove_int(avl, 260); - avl = remove_int(avl, 92); - avl = remove_int(avl, 497); - avl = gpr_avl_add(avl, box(970), box(786), nullptr); - avl = remove_int(avl, 987); - avl = remove_int(avl, 168); - avl = remove_int(avl, 476); - avl = remove_int(avl, 248); - avl = gpr_avl_add(avl, box(358), box(791), nullptr); - avl = remove_int(avl, 804); - avl = remove_int(avl, 77); - avl = remove_int(avl, 905); - avl = remove_int(avl, 362); - avl = gpr_avl_add(avl, box(578), box(796), nullptr); - avl = remove_int(avl, 38); - avl = remove_int(avl, 595); - avl = gpr_avl_add(avl, box(213), box(799), nullptr); - avl = remove_int(avl, 7); - avl = remove_int(avl, 620); - avl = gpr_avl_add(avl, box(946), box(802), nullptr); - avl = remove_int(avl, 145); - avl = gpr_avl_add(avl, box(628), box(804), nullptr); - avl = remove_int(avl, 972); - avl = gpr_avl_add(avl, box(728), box(806), nullptr); - avl = remove_int(avl, 91); - avl = gpr_avl_add(avl, box(136), box(808), nullptr); - avl = gpr_avl_add(avl, box(841), box(809), nullptr); - avl = gpr_avl_add(avl, box(265), box(810), nullptr); - avl = gpr_avl_add(avl, box(701), box(811), nullptr); - avl = gpr_avl_add(avl, box(27), box(812), nullptr); - avl = remove_int(avl, 72); - avl = remove_int(avl, 14); - avl = gpr_avl_add(avl, box(286), box(815), nullptr); - avl = remove_int(avl, 996); - avl = remove_int(avl, 998); - avl = gpr_avl_add(avl, box(466), box(818), nullptr); - avl = remove_int(avl, 1009); - avl = remove_int(avl, 741); - avl = remove_int(avl, 947); - avl = remove_int(avl, 241); - avl = remove_int(avl, 954); - avl = remove_int(avl, 183); - avl = remove_int(avl, 395); - avl = remove_int(avl, 951); - avl = gpr_avl_add(avl, box(267), box(827), nullptr); - avl = remove_int(avl, 812); - avl = gpr_avl_add(avl, box(577), box(829), nullptr); - avl = remove_int(avl, 624); - avl = remove_int(avl, 847); - avl = remove_int(avl, 745); - avl = gpr_avl_add(avl, box(491), box(833), nullptr); - avl = gpr_avl_add(avl, box(941), box(834), nullptr); - avl = remove_int(avl, 258); - avl = gpr_avl_add(avl, box(410), box(836), nullptr); - avl = gpr_avl_add(avl, box(80), box(837), nullptr); - avl = gpr_avl_add(avl, box(196), box(838), nullptr); - avl = gpr_avl_add(avl, box(5), box(839), nullptr); - avl = remove_int(avl, 782); - avl = gpr_avl_add(avl, box(827), box(841), nullptr); - avl = remove_int(avl, 472); - avl = remove_int(avl, 664); - avl = gpr_avl_add(avl, box(409), box(844), nullptr); - avl = gpr_avl_add(avl, box(62), box(845), nullptr); - avl = remove_int(avl, 56); - avl = remove_int(avl, 606); - avl = remove_int(avl, 707); - avl = remove_int(avl, 989); - avl = remove_int(avl, 549); - avl = remove_int(avl, 259); - avl = gpr_avl_add(avl, box(405), box(852), nullptr); - avl = remove_int(avl, 587); - avl = remove_int(avl, 350); - avl = gpr_avl_add(avl, box(980), box(855), nullptr); - avl = gpr_avl_add(avl, box(992), box(856), nullptr); - avl = gpr_avl_add(avl, box(818), box(857), nullptr); - avl = remove_int(avl, 853); - avl = remove_int(avl, 701); - avl = gpr_avl_add(avl, box(675), box(860), nullptr); - avl = remove_int(avl, 248); - avl = remove_int(avl, 649); - avl = gpr_avl_add(avl, box(508), box(863), nullptr); - avl = remove_int(avl, 927); - avl = gpr_avl_add(avl, box(957), box(865), nullptr); - avl = gpr_avl_add(avl, box(698), box(866), nullptr); - avl = gpr_avl_add(avl, box(388), box(867), nullptr); - avl = gpr_avl_add(avl, box(532), box(868), nullptr); - avl = gpr_avl_add(avl, box(681), box(869), nullptr); - avl = remove_int(avl, 544); - avl = remove_int(avl, 991); - avl = remove_int(avl, 397); - avl = gpr_avl_add(avl, box(954), box(873), nullptr); - avl = gpr_avl_add(avl, box(219), box(874), nullptr); - avl = gpr_avl_add(avl, box(465), box(875), nullptr); - avl = remove_int(avl, 371); - avl = gpr_avl_add(avl, box(601), box(877), nullptr); - avl = gpr_avl_add(avl, box(543), box(878), nullptr); - avl = remove_int(avl, 329); - avl = gpr_avl_add(avl, box(560), box(880), nullptr); - avl = remove_int(avl, 898); - avl = gpr_avl_add(avl, box(455), box(882), nullptr); - avl = remove_int(avl, 313); - avl = gpr_avl_add(avl, box(215), box(884), nullptr); - avl = remove_int(avl, 846); - avl = gpr_avl_add(avl, box(608), box(886), nullptr); - avl = remove_int(avl, 248); - avl = gpr_avl_add(avl, box(575), box(888), nullptr); - avl = remove_int(avl, 207); - avl = remove_int(avl, 810); - avl = remove_int(avl, 665); - avl = remove_int(avl, 361); - avl = gpr_avl_add(avl, box(154), box(893), nullptr); - avl = gpr_avl_add(avl, box(329), box(894), nullptr); - avl = gpr_avl_add(avl, box(326), box(895), nullptr); - avl = remove_int(avl, 746); - avl = remove_int(avl, 99); - avl = gpr_avl_add(avl, box(464), box(898), nullptr); - avl = gpr_avl_add(avl, box(141), box(899), nullptr); - avl = remove_int(avl, 383); - avl = gpr_avl_add(avl, box(414), box(901), nullptr); - avl = gpr_avl_add(avl, box(777), box(902), nullptr); - avl = remove_int(avl, 972); - avl = remove_int(avl, 841); - avl = remove_int(avl, 100); - avl = gpr_avl_add(avl, box(828), box(906), nullptr); - avl = remove_int(avl, 785); - avl = gpr_avl_add(avl, box(1008), box(908), nullptr); - avl = gpr_avl_add(avl, box(46), box(909), nullptr); - avl = remove_int(avl, 399); - avl = gpr_avl_add(avl, box(178), box(911), nullptr); - avl = gpr_avl_add(avl, box(573), box(912), nullptr); - avl = remove_int(avl, 299); - avl = gpr_avl_add(avl, box(690), box(914), nullptr); - avl = gpr_avl_add(avl, box(692), box(915), nullptr); - avl = remove_int(avl, 404); - avl = remove_int(avl, 16); - avl = remove_int(avl, 746); - avl = remove_int(avl, 486); - avl = remove_int(avl, 119); - avl = gpr_avl_add(avl, box(167), box(921), nullptr); - avl = remove_int(avl, 328); - avl = gpr_avl_add(avl, box(89), box(923), nullptr); - avl = remove_int(avl, 867); - avl = remove_int(avl, 626); - avl = remove_int(avl, 507); - avl = gpr_avl_add(avl, box(365), box(927), nullptr); - avl = gpr_avl_add(avl, box(58), box(928), nullptr); - avl = gpr_avl_add(avl, box(70), box(929), nullptr); - avl = remove_int(avl, 81); - avl = remove_int(avl, 797); - avl = gpr_avl_add(avl, box(846), box(932), nullptr); - avl = remove_int(avl, 642); - avl = gpr_avl_add(avl, box(777), box(934), nullptr); - avl = remove_int(avl, 107); - avl = gpr_avl_add(avl, box(691), box(936), nullptr); - avl = gpr_avl_add(avl, box(820), box(937), nullptr); - avl = gpr_avl_add(avl, box(202), box(938), nullptr); - avl = gpr_avl_add(avl, box(308), box(939), nullptr); - avl = gpr_avl_add(avl, box(20), box(940), nullptr); - avl = remove_int(avl, 289); - avl = gpr_avl_add(avl, box(714), box(942), nullptr); - avl = gpr_avl_add(avl, box(584), box(943), nullptr); - avl = remove_int(avl, 294); - avl = gpr_avl_add(avl, box(496), box(945), nullptr); - avl = gpr_avl_add(avl, box(394), box(946), nullptr); - avl = gpr_avl_add(avl, box(860), box(947), nullptr); - avl = gpr_avl_add(avl, box(58), box(948), nullptr); - avl = remove_int(avl, 784); - avl = remove_int(avl, 584); - avl = remove_int(avl, 708); - avl = gpr_avl_add(avl, box(142), box(952), nullptr); - avl = gpr_avl_add(avl, box(247), box(953), nullptr); - avl = gpr_avl_add(avl, box(389), box(954), nullptr); - avl = remove_int(avl, 390); - avl = gpr_avl_add(avl, box(465), box(956), nullptr); - avl = gpr_avl_add(avl, box(936), box(957), nullptr); - avl = gpr_avl_add(avl, box(309), box(958), nullptr); - avl = remove_int(avl, 928); - avl = remove_int(avl, 128); - avl = remove_int(avl, 979); - avl = remove_int(avl, 670); - avl = remove_int(avl, 738); - avl = remove_int(avl, 271); - avl = remove_int(avl, 540); - avl = gpr_avl_add(avl, box(365), box(966), nullptr); - avl = remove_int(avl, 82); - avl = gpr_avl_add(avl, box(728), box(968), nullptr); - avl = remove_int(avl, 852); - avl = gpr_avl_add(avl, box(884), box(970), nullptr); - avl = gpr_avl_add(avl, box(502), box(971), nullptr); - avl = remove_int(avl, 898); - avl = remove_int(avl, 481); - avl = gpr_avl_add(avl, box(911), box(974), nullptr); - avl = remove_int(avl, 787); - avl = remove_int(avl, 785); - avl = remove_int(avl, 537); - avl = remove_int(avl, 535); - avl = remove_int(avl, 136); - avl = remove_int(avl, 749); - avl = remove_int(avl, 637); - avl = remove_int(avl, 900); - avl = gpr_avl_add(avl, box(598), box(983), nullptr); - avl = remove_int(avl, 25); - avl = remove_int(avl, 697); - avl = gpr_avl_add(avl, box(645), box(986), nullptr); - avl = gpr_avl_add(avl, box(211), box(987), nullptr); - avl = gpr_avl_add(avl, box(589), box(988), nullptr); - avl = remove_int(avl, 702); - avl = gpr_avl_add(avl, box(53), box(990), nullptr); - avl = remove_int(avl, 492); - avl = remove_int(avl, 185); - avl = remove_int(avl, 246); - avl = remove_int(avl, 257); - avl = remove_int(avl, 502); - avl = remove_int(avl, 34); - avl = gpr_avl_add(avl, box(74), box(997), nullptr); - avl = gpr_avl_add(avl, box(834), box(998), nullptr); - avl = gpr_avl_add(avl, box(514), box(999), nullptr); - avl = gpr_avl_add(avl, box(75), box(1000), nullptr); - avl = remove_int(avl, 745); - avl = gpr_avl_add(avl, box(362), box(1002), nullptr); - avl = remove_int(avl, 215); - avl = gpr_avl_add(avl, box(624), box(1004), nullptr); - avl = remove_int(avl, 404); - avl = remove_int(avl, 359); - avl = remove_int(avl, 491); - avl = gpr_avl_add(avl, box(903), box(1008), nullptr); - avl = gpr_avl_add(avl, box(240), box(1009), nullptr); - avl = remove_int(avl, 95); - avl = gpr_avl_add(avl, box(119), box(1011), nullptr); - avl = gpr_avl_add(avl, box(857), box(1012), nullptr); - avl = remove_int(avl, 39); - avl = remove_int(avl, 866); - avl = gpr_avl_add(avl, box(503), box(1015), nullptr); - avl = gpr_avl_add(avl, box(740), box(1016), nullptr); - avl = remove_int(avl, 637); - avl = remove_int(avl, 156); - avl = remove_int(avl, 6); - avl = remove_int(avl, 745); - avl = remove_int(avl, 433); - avl = remove_int(avl, 283); - avl = gpr_avl_add(avl, box(625), box(1023), nullptr); - avl = remove_int(avl, 638); - avl = gpr_avl_add(avl, box(299), box(1025), nullptr); - avl = gpr_avl_add(avl, box(584), box(1026), nullptr); - avl = remove_int(avl, 863); - avl = gpr_avl_add(avl, box(612), box(1028), nullptr); - avl = gpr_avl_add(avl, box(62), box(1029), nullptr); - avl = gpr_avl_add(avl, box(432), box(1030), nullptr); - avl = remove_int(avl, 371); - avl = remove_int(avl, 790); - avl = remove_int(avl, 227); - avl = remove_int(avl, 836); - avl = gpr_avl_add(avl, box(703), box(1035), nullptr); - avl = gpr_avl_add(avl, box(644), box(1036), nullptr); - avl = remove_int(avl, 638); - avl = gpr_avl_add(avl, box(13), box(1038), nullptr); - avl = remove_int(avl, 66); - avl = remove_int(avl, 82); - avl = gpr_avl_add(avl, box(362), box(1041), nullptr); - avl = gpr_avl_add(avl, box(783), box(1042), nullptr); - avl = remove_int(avl, 60); - avl = gpr_avl_add(avl, box(80), box(1044), nullptr); - avl = gpr_avl_add(avl, box(825), box(1045), nullptr); - avl = gpr_avl_add(avl, box(688), box(1046), nullptr); - avl = gpr_avl_add(avl, box(662), box(1047), nullptr); - avl = remove_int(avl, 156); - avl = remove_int(avl, 376); - avl = remove_int(avl, 99); - avl = gpr_avl_add(avl, box(526), box(1051), nullptr); - avl = gpr_avl_add(avl, box(168), box(1052), nullptr); - avl = remove_int(avl, 646); - avl = remove_int(avl, 380); - avl = remove_int(avl, 833); - avl = gpr_avl_add(avl, box(53), box(1056), nullptr); - avl = remove_int(avl, 105); - avl = gpr_avl_add(avl, box(373), box(1058), nullptr); - avl = gpr_avl_add(avl, box(184), box(1059), nullptr); - avl = remove_int(avl, 288); - avl = gpr_avl_add(avl, box(966), box(1061), nullptr); - avl = remove_int(avl, 158); - avl = gpr_avl_add(avl, box(406), box(1063), nullptr); - avl = remove_int(avl, 470); - avl = gpr_avl_add(avl, box(283), box(1065), nullptr); - avl = gpr_avl_add(avl, box(838), box(1066), nullptr); - avl = gpr_avl_add(avl, box(288), box(1067), nullptr); - avl = gpr_avl_add(avl, box(950), box(1068), nullptr); - avl = gpr_avl_add(avl, box(163), box(1069), nullptr); - avl = remove_int(avl, 623); - avl = remove_int(avl, 769); - avl = gpr_avl_add(avl, box(144), box(1072), nullptr); - avl = gpr_avl_add(avl, box(489), box(1073), nullptr); - avl = remove_int(avl, 15); - avl = gpr_avl_add(avl, box(971), box(1075), nullptr); - avl = remove_int(avl, 660); - avl = gpr_avl_add(avl, box(255), box(1077), nullptr); - avl = remove_int(avl, 494); - avl = gpr_avl_add(avl, box(109), box(1079), nullptr); - avl = gpr_avl_add(avl, box(420), box(1080), nullptr); - avl = gpr_avl_add(avl, box(509), box(1081), nullptr); - avl = remove_int(avl, 178); - avl = gpr_avl_add(avl, box(216), box(1083), nullptr); - avl = gpr_avl_add(avl, box(707), box(1084), nullptr); - avl = gpr_avl_add(avl, box(411), box(1085), nullptr); - avl = gpr_avl_add(avl, box(352), box(1086), nullptr); - avl = remove_int(avl, 983); - avl = gpr_avl_add(avl, box(6), box(1088), nullptr); - avl = gpr_avl_add(avl, box(1014), box(1089), nullptr); - avl = remove_int(avl, 98); - avl = remove_int(avl, 325); - avl = gpr_avl_add(avl, box(851), box(1092), nullptr); - avl = remove_int(avl, 553); - avl = gpr_avl_add(avl, box(218), box(1094), nullptr); - avl = gpr_avl_add(avl, box(261), box(1095), nullptr); - avl = remove_int(avl, 31); - avl = gpr_avl_add(avl, box(872), box(1097), nullptr); - avl = remove_int(avl, 543); - avl = remove_int(avl, 314); - avl = remove_int(avl, 443); - avl = gpr_avl_add(avl, box(533), box(1101), nullptr); - avl = remove_int(avl, 881); - avl = remove_int(avl, 269); - avl = remove_int(avl, 940); - avl = remove_int(avl, 909); - avl = remove_int(avl, 197); - avl = remove_int(avl, 773); - avl = remove_int(avl, 790); - avl = remove_int(avl, 345); - avl = gpr_avl_add(avl, box(965), box(1110), nullptr); - avl = remove_int(avl, 622); - avl = gpr_avl_add(avl, box(352), box(1112), nullptr); - avl = remove_int(avl, 182); - avl = gpr_avl_add(avl, box(534), box(1114), nullptr); - avl = gpr_avl_add(avl, box(97), box(1115), nullptr); - avl = gpr_avl_add(avl, box(198), box(1116), nullptr); - avl = remove_int(avl, 750); - avl = gpr_avl_add(avl, box(98), box(1118), nullptr); - avl = remove_int(avl, 943); - avl = gpr_avl_add(avl, box(254), box(1120), nullptr); - avl = gpr_avl_add(avl, box(30), box(1121), nullptr); - avl = remove_int(avl, 14); - avl = remove_int(avl, 475); - avl = remove_int(avl, 82); - avl = gpr_avl_add(avl, box(789), box(1125), nullptr); - avl = gpr_avl_add(avl, box(402), box(1126), nullptr); - avl = remove_int(avl, 1019); - avl = gpr_avl_add(avl, box(858), box(1128), nullptr); - avl = gpr_avl_add(avl, box(625), box(1129), nullptr); - avl = remove_int(avl, 675); - avl = remove_int(avl, 323); - avl = gpr_avl_add(avl, box(329), box(1132), nullptr); - avl = remove_int(avl, 929); - avl = remove_int(avl, 44); - avl = gpr_avl_add(avl, box(443), box(1135), nullptr); - avl = gpr_avl_add(avl, box(653), box(1136), nullptr); - avl = gpr_avl_add(avl, box(750), box(1137), nullptr); - avl = gpr_avl_add(avl, box(252), box(1138), nullptr); - avl = gpr_avl_add(avl, box(449), box(1139), nullptr); - avl = remove_int(avl, 1022); - avl = remove_int(avl, 357); - avl = remove_int(avl, 602); - avl = remove_int(avl, 131); - avl = gpr_avl_add(avl, box(531), box(1144), nullptr); - avl = remove_int(avl, 806); - avl = gpr_avl_add(avl, box(455), box(1146), nullptr); - avl = remove_int(avl, 31); - avl = gpr_avl_add(avl, box(154), box(1148), nullptr); - avl = gpr_avl_add(avl, box(189), box(1149), nullptr); - avl = remove_int(avl, 786); - avl = gpr_avl_add(avl, box(496), box(1151), nullptr); - avl = gpr_avl_add(avl, box(81), box(1152), nullptr); - avl = gpr_avl_add(avl, box(59), box(1153), nullptr); - avl = remove_int(avl, 424); - avl = remove_int(avl, 668); - avl = gpr_avl_add(avl, box(723), box(1156), nullptr); - avl = gpr_avl_add(avl, box(822), box(1157), nullptr); - avl = gpr_avl_add(avl, box(354), box(1158), nullptr); - avl = remove_int(avl, 738); - avl = gpr_avl_add(avl, box(686), box(1160), nullptr); - avl = gpr_avl_add(avl, box(43), box(1161), nullptr); - avl = gpr_avl_add(avl, box(625), box(1162), nullptr); - avl = gpr_avl_add(avl, box(902), box(1163), nullptr); - avl = gpr_avl_add(avl, box(12), box(1164), nullptr); - avl = gpr_avl_add(avl, box(977), box(1165), nullptr); - avl = gpr_avl_add(avl, box(699), box(1166), nullptr); - avl = gpr_avl_add(avl, box(189), box(1167), nullptr); - avl = remove_int(avl, 672); - avl = remove_int(avl, 90); - avl = remove_int(avl, 757); - avl = remove_int(avl, 494); - avl = gpr_avl_add(avl, box(759), box(1172), nullptr); - avl = remove_int(avl, 758); - avl = remove_int(avl, 222); - avl = gpr_avl_add(avl, box(975), box(1175), nullptr); - avl = remove_int(avl, 993); - avl = gpr_avl_add(avl, box(2), box(1177), nullptr); - avl = gpr_avl_add(avl, box(70), box(1178), nullptr); - avl = remove_int(avl, 350); - avl = remove_int(avl, 972); - avl = remove_int(avl, 880); - avl = gpr_avl_add(avl, box(753), box(1182), nullptr); - avl = remove_int(avl, 404); - avl = gpr_avl_add(avl, box(294), box(1184), nullptr); - avl = remove_int(avl, 474); - avl = gpr_avl_add(avl, box(228), box(1186), nullptr); - avl = gpr_avl_add(avl, box(484), box(1187), nullptr); - avl = remove_int(avl, 238); - avl = remove_int(avl, 53); - avl = remove_int(avl, 691); - avl = gpr_avl_add(avl, box(345), box(1191), nullptr); - avl = remove_int(avl, 0); - avl = gpr_avl_add(avl, box(230), box(1193), nullptr); - avl = remove_int(avl, 227); - avl = remove_int(avl, 152); - avl = gpr_avl_add(avl, box(884), box(1196), nullptr); - avl = remove_int(avl, 823); - avl = remove_int(avl, 53); - avl = gpr_avl_add(avl, box(1015), box(1199), nullptr); - avl = gpr_avl_add(avl, box(697), box(1200), nullptr); - avl = gpr_avl_add(avl, box(376), box(1201), nullptr); - avl = remove_int(avl, 411); - avl = gpr_avl_add(avl, box(888), box(1203), nullptr); - avl = remove_int(avl, 55); - avl = gpr_avl_add(avl, box(85), box(1205), nullptr); - avl = remove_int(avl, 947); - avl = remove_int(avl, 382); - avl = remove_int(avl, 777); - avl = gpr_avl_add(avl, box(1017), box(1209), nullptr); - avl = gpr_avl_add(avl, box(169), box(1210), nullptr); - avl = gpr_avl_add(avl, box(156), box(1211), nullptr); - avl = remove_int(avl, 153); - avl = remove_int(avl, 642); - avl = remove_int(avl, 158); - avl = gpr_avl_add(avl, box(554), box(1215), nullptr); - avl = gpr_avl_add(avl, box(76), box(1216), nullptr); - avl = gpr_avl_add(avl, box(756), box(1217), nullptr); - avl = remove_int(avl, 767); - avl = remove_int(avl, 112); - avl = remove_int(avl, 539); - avl = remove_int(avl, 544); - avl = remove_int(avl, 628); - avl = remove_int(avl, 385); - avl = remove_int(avl, 514); - avl = remove_int(avl, 362); - avl = gpr_avl_add(avl, box(523), box(1226), nullptr); - avl = gpr_avl_add(avl, box(712), box(1227), nullptr); - avl = gpr_avl_add(avl, box(474), box(1228), nullptr); - avl = gpr_avl_add(avl, box(882), box(1229), nullptr); - avl = gpr_avl_add(avl, box(965), box(1230), nullptr); - avl = remove_int(avl, 464); - avl = gpr_avl_add(avl, box(319), box(1232), nullptr); - avl = gpr_avl_add(avl, box(504), box(1233), nullptr); - avl = remove_int(avl, 818); - avl = gpr_avl_add(avl, box(884), box(1235), nullptr); - avl = gpr_avl_add(avl, box(813), box(1236), nullptr); - avl = gpr_avl_add(avl, box(795), box(1237), nullptr); - avl = remove_int(avl, 306); - avl = gpr_avl_add(avl, box(799), box(1239), nullptr); - avl = remove_int(avl, 534); - avl = gpr_avl_add(avl, box(480), box(1241), nullptr); - avl = gpr_avl_add(avl, box(656), box(1242), nullptr); - avl = gpr_avl_add(avl, box(709), box(1243), nullptr); - avl = gpr_avl_add(avl, box(500), box(1244), nullptr); - avl = remove_int(avl, 740); - avl = gpr_avl_add(avl, box(980), box(1246), nullptr); - avl = gpr_avl_add(avl, box(458), box(1247), nullptr); - avl = remove_int(avl, 377); - avl = remove_int(avl, 338); - avl = gpr_avl_add(avl, box(554), box(1250), nullptr); - avl = gpr_avl_add(avl, box(504), box(1251), nullptr); - avl = gpr_avl_add(avl, box(603), box(1252), nullptr); - avl = gpr_avl_add(avl, box(761), box(1253), nullptr); - avl = remove_int(avl, 431); - avl = gpr_avl_add(avl, box(707), box(1255), nullptr); - avl = gpr_avl_add(avl, box(673), box(1256), nullptr); - avl = remove_int(avl, 998); - avl = remove_int(avl, 332); - avl = remove_int(avl, 413); - avl = remove_int(avl, 227); - avl = remove_int(avl, 249); - avl = remove_int(avl, 309); - avl = remove_int(avl, 459); - avl = gpr_avl_add(avl, box(645), box(1264), nullptr); - avl = remove_int(avl, 858); - avl = remove_int(avl, 997); - avl = gpr_avl_add(avl, box(519), box(1267), nullptr); - avl = remove_int(avl, 614); - avl = remove_int(avl, 462); - avl = remove_int(avl, 792); - avl = gpr_avl_add(avl, box(987), box(1271), nullptr); - avl = gpr_avl_add(avl, box(309), box(1272), nullptr); - avl = remove_int(avl, 747); - avl = gpr_avl_add(avl, box(621), box(1274), nullptr); - avl = gpr_avl_add(avl, box(450), box(1275), nullptr); - avl = remove_int(avl, 265); - avl = remove_int(avl, 8); - avl = remove_int(avl, 383); - avl = gpr_avl_add(avl, box(238), box(1279), nullptr); - avl = remove_int(avl, 241); - avl = gpr_avl_add(avl, box(180), box(1281), nullptr); - avl = gpr_avl_add(avl, box(411), box(1282), nullptr); - avl = gpr_avl_add(avl, box(791), box(1283), nullptr); - avl = gpr_avl_add(avl, box(955), box(1284), nullptr); - avl = remove_int(avl, 24); - avl = remove_int(avl, 375); - avl = gpr_avl_add(avl, box(140), box(1287), nullptr); - avl = remove_int(avl, 949); - avl = gpr_avl_add(avl, box(301), box(1289), nullptr); - avl = gpr_avl_add(avl, box(0), box(1290), nullptr); - avl = remove_int(avl, 371); - avl = remove_int(avl, 427); - avl = remove_int(avl, 841); - avl = remove_int(avl, 847); - avl = gpr_avl_add(avl, box(814), box(1295), nullptr); - avl = gpr_avl_add(avl, box(127), box(1296), nullptr); - avl = gpr_avl_add(avl, box(279), box(1297), nullptr); - avl = remove_int(avl, 669); - avl = remove_int(avl, 541); - avl = remove_int(avl, 275); - avl = remove_int(avl, 299); - avl = remove_int(avl, 552); - avl = gpr_avl_add(avl, box(310), box(1303), nullptr); - avl = gpr_avl_add(avl, box(304), box(1304), nullptr); - avl = gpr_avl_add(avl, box(1), box(1305), nullptr); - avl = gpr_avl_add(avl, box(339), box(1306), nullptr); - avl = remove_int(avl, 570); - avl = remove_int(avl, 752); - avl = remove_int(avl, 552); - avl = remove_int(avl, 442); - avl = remove_int(avl, 639); - avl = gpr_avl_add(avl, box(313), box(1312), nullptr); - avl = remove_int(avl, 85); - avl = gpr_avl_add(avl, box(964), box(1314), nullptr); - avl = gpr_avl_add(avl, box(559), box(1315), nullptr); - avl = remove_int(avl, 167); - avl = gpr_avl_add(avl, box(866), box(1317), nullptr); - avl = remove_int(avl, 275); - avl = gpr_avl_add(avl, box(173), box(1319), nullptr); - avl = gpr_avl_add(avl, box(765), box(1320), nullptr); - avl = remove_int(avl, 883); - avl = gpr_avl_add(avl, box(547), box(1322), nullptr); - avl = gpr_avl_add(avl, box(847), box(1323), nullptr); - avl = remove_int(avl, 817); - avl = remove_int(avl, 850); - avl = remove_int(avl, 718); - avl = gpr_avl_add(avl, box(806), box(1327), nullptr); - avl = gpr_avl_add(avl, box(360), box(1328), nullptr); - avl = remove_int(avl, 991); - avl = gpr_avl_add(avl, box(493), box(1330), nullptr); - avl = remove_int(avl, 516); - avl = gpr_avl_add(avl, box(361), box(1332), nullptr); - avl = remove_int(avl, 355); - avl = gpr_avl_add(avl, box(512), box(1334), nullptr); - avl = gpr_avl_add(avl, box(191), box(1335), nullptr); - avl = remove_int(avl, 703); - avl = gpr_avl_add(avl, box(333), box(1337), nullptr); - avl = remove_int(avl, 481); - avl = gpr_avl_add(avl, box(501), box(1339), nullptr); - avl = remove_int(avl, 532); - avl = remove_int(avl, 510); - avl = gpr_avl_add(avl, box(793), box(1342), nullptr); - avl = gpr_avl_add(avl, box(234), box(1343), nullptr); - avl = remove_int(avl, 159); - avl = remove_int(avl, 429); - avl = remove_int(avl, 728); - avl = remove_int(avl, 288); - avl = gpr_avl_add(avl, box(281), box(1348), nullptr); - avl = gpr_avl_add(avl, box(702), box(1349), nullptr); - avl = gpr_avl_add(avl, box(149), box(1350), nullptr); - avl = remove_int(avl, 22); - avl = remove_int(avl, 944); - avl = remove_int(avl, 55); - avl = remove_int(avl, 512); - avl = remove_int(avl, 676); - avl = remove_int(avl, 884); - avl = gpr_avl_add(avl, box(246), box(1357), nullptr); - avl = gpr_avl_add(avl, box(455), box(1358), nullptr); - avl = remove_int(avl, 782); - avl = remove_int(avl, 682); - avl = gpr_avl_add(avl, box(243), box(1361), nullptr); - avl = gpr_avl_add(avl, box(109), box(1362), nullptr); - avl = gpr_avl_add(avl, box(452), box(1363), nullptr); - avl = remove_int(avl, 151); - avl = gpr_avl_add(avl, box(159), box(1365), nullptr); - avl = remove_int(avl, 1023); - avl = gpr_avl_add(avl, box(129), box(1367), nullptr); - avl = gpr_avl_add(avl, box(537), box(1368), nullptr); - avl = remove_int(avl, 321); - avl = gpr_avl_add(avl, box(740), box(1370), nullptr); - avl = remove_int(avl, 45); - avl = remove_int(avl, 136); - avl = gpr_avl_add(avl, box(229), box(1373), nullptr); - avl = remove_int(avl, 772); - avl = gpr_avl_add(avl, box(181), box(1375), nullptr); - avl = remove_int(avl, 175); - avl = gpr_avl_add(avl, box(817), box(1377), nullptr); - avl = remove_int(avl, 956); - avl = gpr_avl_add(avl, box(675), box(1379), nullptr); - avl = gpr_avl_add(avl, box(375), box(1380), nullptr); - avl = remove_int(avl, 384); - avl = gpr_avl_add(avl, box(1016), box(1382), nullptr); - avl = remove_int(avl, 295); - avl = remove_int(avl, 697); - avl = remove_int(avl, 554); - avl = remove_int(avl, 590); - avl = remove_int(avl, 1014); - avl = gpr_avl_add(avl, box(890), box(1388), nullptr); - avl = gpr_avl_add(avl, box(293), box(1389), nullptr); - avl = remove_int(avl, 207); - avl = remove_int(avl, 46); - avl = gpr_avl_add(avl, box(899), box(1392), nullptr); - avl = gpr_avl_add(avl, box(666), box(1393), nullptr); - avl = gpr_avl_add(avl, box(85), box(1394), nullptr); - avl = gpr_avl_add(avl, box(914), box(1395), nullptr); - avl = gpr_avl_add(avl, box(128), box(1396), nullptr); - avl = gpr_avl_add(avl, box(835), box(1397), nullptr); - avl = gpr_avl_add(avl, box(787), box(1398), nullptr); - avl = gpr_avl_add(avl, box(649), box(1399), nullptr); - avl = gpr_avl_add(avl, box(723), box(1400), nullptr); - avl = remove_int(avl, 874); - avl = gpr_avl_add(avl, box(778), box(1402), nullptr); - avl = gpr_avl_add(avl, box(1015), box(1403), nullptr); - avl = gpr_avl_add(avl, box(59), box(1404), nullptr); - avl = gpr_avl_add(avl, box(259), box(1405), nullptr); - avl = gpr_avl_add(avl, box(758), box(1406), nullptr); - avl = remove_int(avl, 648); - avl = gpr_avl_add(avl, box(145), box(1408), nullptr); - avl = gpr_avl_add(avl, box(440), box(1409), nullptr); - avl = remove_int(avl, 608); - avl = remove_int(avl, 690); - avl = gpr_avl_add(avl, box(605), box(1412), nullptr); - avl = remove_int(avl, 856); - avl = remove_int(avl, 608); - avl = gpr_avl_add(avl, box(829), box(1415), nullptr); - avl = gpr_avl_add(avl, box(660), box(1416), nullptr); - avl = remove_int(avl, 596); - avl = gpr_avl_add(avl, box(519), box(1418), nullptr); - avl = gpr_avl_add(avl, box(35), box(1419), nullptr); - avl = gpr_avl_add(avl, box(871), box(1420), nullptr); - avl = remove_int(avl, 845); - avl = gpr_avl_add(avl, box(600), box(1422), nullptr); - avl = gpr_avl_add(avl, box(215), box(1423), nullptr); - avl = remove_int(avl, 761); - avl = gpr_avl_add(avl, box(975), box(1425), nullptr); - avl = remove_int(avl, 987); - avl = gpr_avl_add(avl, box(58), box(1427), nullptr); - avl = remove_int(avl, 119); - avl = gpr_avl_add(avl, box(937), box(1429), nullptr); - avl = gpr_avl_add(avl, box(372), box(1430), nullptr); - avl = gpr_avl_add(avl, box(11), box(1431), nullptr); - avl = gpr_avl_add(avl, box(398), box(1432), nullptr); - avl = gpr_avl_add(avl, box(423), box(1433), nullptr); - avl = remove_int(avl, 171); - avl = gpr_avl_add(avl, box(473), box(1435), nullptr); - avl = remove_int(avl, 752); - avl = remove_int(avl, 625); - avl = remove_int(avl, 764); - avl = remove_int(avl, 49); - avl = gpr_avl_add(avl, box(472), box(1440), nullptr); - avl = remove_int(avl, 847); - avl = remove_int(avl, 642); - avl = remove_int(avl, 1004); - avl = remove_int(avl, 795); - avl = remove_int(avl, 465); - avl = gpr_avl_add(avl, box(636), box(1446), nullptr); - avl = remove_int(avl, 152); - avl = gpr_avl_add(avl, box(61), box(1448), nullptr); - avl = remove_int(avl, 929); - avl = remove_int(avl, 9); - avl = gpr_avl_add(avl, box(251), box(1451), nullptr); - avl = gpr_avl_add(avl, box(672), box(1452), nullptr); - avl = gpr_avl_add(avl, box(66), box(1453), nullptr); - avl = remove_int(avl, 693); - avl = remove_int(avl, 914); - avl = remove_int(avl, 116); - avl = remove_int(avl, 577); - avl = gpr_avl_add(avl, box(618), box(1458), nullptr); - avl = gpr_avl_add(avl, box(495), box(1459), nullptr); - avl = remove_int(avl, 450); - avl = gpr_avl_add(avl, box(533), box(1461), nullptr); - avl = gpr_avl_add(avl, box(414), box(1462), nullptr); - avl = remove_int(avl, 74); - avl = remove_int(avl, 236); - avl = gpr_avl_add(avl, box(707), box(1465), nullptr); - avl = gpr_avl_add(avl, box(357), box(1466), nullptr); - avl = gpr_avl_add(avl, box(1007), box(1467), nullptr); - avl = gpr_avl_add(avl, box(811), box(1468), nullptr); - avl = gpr_avl_add(avl, box(418), box(1469), nullptr); - avl = gpr_avl_add(avl, box(164), box(1470), nullptr); - avl = gpr_avl_add(avl, box(622), box(1471), nullptr); - avl = remove_int(avl, 22); - avl = remove_int(avl, 14); - avl = remove_int(avl, 732); - avl = remove_int(avl, 7); - avl = remove_int(avl, 447); - avl = gpr_avl_add(avl, box(221), box(1477), nullptr); - avl = gpr_avl_add(avl, box(202), box(1478), nullptr); - avl = gpr_avl_add(avl, box(312), box(1479), nullptr); - avl = remove_int(avl, 274); - avl = gpr_avl_add(avl, box(684), box(1481), nullptr); - avl = gpr_avl_add(avl, box(954), box(1482), nullptr); - avl = gpr_avl_add(avl, box(637), box(1483), nullptr); - avl = remove_int(avl, 716); - avl = gpr_avl_add(avl, box(198), box(1485), nullptr); - avl = remove_int(avl, 340); - avl = remove_int(avl, 137); - avl = remove_int(avl, 995); - avl = remove_int(avl, 1004); - avl = gpr_avl_add(avl, box(661), box(1490), nullptr); - avl = gpr_avl_add(avl, box(862), box(1491), nullptr); - avl = remove_int(avl, 527); - avl = gpr_avl_add(avl, box(945), box(1493), nullptr); - avl = remove_int(avl, 355); - avl = remove_int(avl, 144); - avl = gpr_avl_add(avl, box(229), box(1496), nullptr); - avl = gpr_avl_add(avl, box(237), box(1497), nullptr); - avl = remove_int(avl, 471); - avl = remove_int(avl, 901); - avl = gpr_avl_add(avl, box(905), box(1500), nullptr); - avl = remove_int(avl, 19); - avl = remove_int(avl, 896); - avl = remove_int(avl, 585); - avl = remove_int(avl, 308); - avl = gpr_avl_add(avl, box(547), box(1505), nullptr); - avl = gpr_avl_add(avl, box(552), box(1506), nullptr); - avl = gpr_avl_add(avl, box(30), box(1507), nullptr); - avl = gpr_avl_add(avl, box(445), box(1508), nullptr); - avl = remove_int(avl, 785); - avl = remove_int(avl, 185); - avl = gpr_avl_add(avl, box(405), box(1511), nullptr); - avl = gpr_avl_add(avl, box(733), box(1512), nullptr); - avl = gpr_avl_add(avl, box(573), box(1513), nullptr); - avl = gpr_avl_add(avl, box(492), box(1514), nullptr); - avl = gpr_avl_add(avl, box(343), box(1515), nullptr); - avl = gpr_avl_add(avl, box(527), box(1516), nullptr); - avl = gpr_avl_add(avl, box(596), box(1517), nullptr); - avl = gpr_avl_add(avl, box(519), box(1518), nullptr); - avl = remove_int(avl, 243); - avl = remove_int(avl, 722); - avl = gpr_avl_add(avl, box(772), box(1521), nullptr); - avl = remove_int(avl, 152); - avl = remove_int(avl, 305); - avl = gpr_avl_add(avl, box(754), box(1524), nullptr); - avl = gpr_avl_add(avl, box(373), box(1525), nullptr); - avl = remove_int(avl, 995); - avl = gpr_avl_add(avl, box(329), box(1527), nullptr); - avl = remove_int(avl, 397); - avl = gpr_avl_add(avl, box(884), box(1529), nullptr); - avl = remove_int(avl, 329); - avl = remove_int(avl, 240); - avl = gpr_avl_add(avl, box(566), box(1532), nullptr); - avl = gpr_avl_add(avl, box(232), box(1533), nullptr); - avl = remove_int(avl, 993); - avl = gpr_avl_add(avl, box(888), box(1535), nullptr); - avl = remove_int(avl, 242); - avl = gpr_avl_add(avl, box(941), box(1537), nullptr); - avl = remove_int(avl, 415); - avl = gpr_avl_add(avl, box(992), box(1539), nullptr); - avl = remove_int(avl, 289); - avl = gpr_avl_add(avl, box(60), box(1541), nullptr); - avl = gpr_avl_add(avl, box(97), box(1542), nullptr); - avl = remove_int(avl, 965); - avl = remove_int(avl, 267); - avl = remove_int(avl, 360); - avl = gpr_avl_add(avl, box(5), box(1546), nullptr); - avl = remove_int(avl, 429); - avl = gpr_avl_add(avl, box(412), box(1548), nullptr); - avl = remove_int(avl, 632); - avl = remove_int(avl, 113); - avl = gpr_avl_add(avl, box(48), box(1551), nullptr); - avl = gpr_avl_add(avl, box(108), box(1552), nullptr); - avl = gpr_avl_add(avl, box(750), box(1553), nullptr); - avl = remove_int(avl, 188); - avl = gpr_avl_add(avl, box(668), box(1555), nullptr); - avl = remove_int(avl, 37); - avl = remove_int(avl, 737); - avl = gpr_avl_add(avl, box(93), box(1558), nullptr); - avl = gpr_avl_add(avl, box(628), box(1559), nullptr); - avl = gpr_avl_add(avl, box(480), box(1560), nullptr); - avl = remove_int(avl, 958); - avl = remove_int(avl, 565); - avl = remove_int(avl, 32); - avl = remove_int(avl, 1); - avl = remove_int(avl, 335); - avl = gpr_avl_add(avl, box(136), box(1566), nullptr); - avl = gpr_avl_add(avl, box(469), box(1567), nullptr); - avl = remove_int(avl, 349); - avl = gpr_avl_add(avl, box(768), box(1569), nullptr); - avl = gpr_avl_add(avl, box(915), box(1570), nullptr); - avl = remove_int(avl, 1014); - avl = gpr_avl_add(avl, box(117), box(1572), nullptr); - avl = remove_int(avl, 62); - avl = gpr_avl_add(avl, box(382), box(1574), nullptr); - avl = remove_int(avl, 571); - avl = gpr_avl_add(avl, box(655), box(1576), nullptr); - avl = gpr_avl_add(avl, box(323), box(1577), nullptr); - avl = remove_int(avl, 869); - avl = remove_int(avl, 151); - avl = gpr_avl_add(avl, box(1019), box(1580), nullptr); - avl = gpr_avl_add(avl, box(984), box(1581), nullptr); - avl = gpr_avl_add(avl, box(870), box(1582), nullptr); - avl = gpr_avl_add(avl, box(376), box(1583), nullptr); - avl = remove_int(avl, 625); - avl = gpr_avl_add(avl, box(733), box(1585), nullptr); - avl = remove_int(avl, 532); - avl = remove_int(avl, 444); - avl = gpr_avl_add(avl, box(428), box(1588), nullptr); - avl = gpr_avl_add(avl, box(860), box(1589), nullptr); - avl = gpr_avl_add(avl, box(173), box(1590), nullptr); - avl = remove_int(avl, 649); - avl = remove_int(avl, 913); - avl = remove_int(avl, 1); - avl = remove_int(avl, 304); - avl = gpr_avl_add(avl, box(604), box(1595), nullptr); - avl = gpr_avl_add(avl, box(639), box(1596), nullptr); - avl = remove_int(avl, 431); - avl = gpr_avl_add(avl, box(993), box(1598), nullptr); - avl = remove_int(avl, 681); - avl = remove_int(avl, 927); - avl = gpr_avl_add(avl, box(87), box(1601), nullptr); - avl = gpr_avl_add(avl, box(91), box(1602), nullptr); - avl = remove_int(avl, 61); - avl = remove_int(avl, 14); - avl = remove_int(avl, 305); - avl = remove_int(avl, 304); - avl = remove_int(avl, 1016); - avl = gpr_avl_add(avl, box(903), box(1608), nullptr); - avl = gpr_avl_add(avl, box(951), box(1609), nullptr); - avl = gpr_avl_add(avl, box(146), box(1610), nullptr); - avl = gpr_avl_add(avl, box(482), box(1611), nullptr); - avl = gpr_avl_add(avl, box(71), box(1612), nullptr); - avl = remove_int(avl, 246); - avl = remove_int(avl, 696); - avl = gpr_avl_add(avl, box(636), box(1615), nullptr); - avl = gpr_avl_add(avl, box(295), box(1616), nullptr); - avl = remove_int(avl, 11); - avl = remove_int(avl, 231); - avl = gpr_avl_add(avl, box(905), box(1619), nullptr); - avl = gpr_avl_add(avl, box(993), box(1620), nullptr); - avl = gpr_avl_add(avl, box(433), box(1621), nullptr); - avl = gpr_avl_add(avl, box(117), box(1622), nullptr); - avl = gpr_avl_add(avl, box(467), box(1623), nullptr); - avl = remove_int(avl, 419); - avl = gpr_avl_add(avl, box(179), box(1625), nullptr); - avl = remove_int(avl, 926); - avl = remove_int(avl, 326); - avl = gpr_avl_add(avl, box(551), box(1628), nullptr); - avl = remove_int(avl, 14); - avl = remove_int(avl, 476); - avl = remove_int(avl, 823); - avl = gpr_avl_add(avl, box(350), box(1632), nullptr); - avl = gpr_avl_add(avl, box(133), box(1633), nullptr); - avl = remove_int(avl, 906); - avl = gpr_avl_add(avl, box(827), box(1635), nullptr); - avl = gpr_avl_add(avl, box(201), box(1636), nullptr); - avl = remove_int(avl, 124); - avl = remove_int(avl, 662); - avl = gpr_avl_add(avl, box(314), box(1639), nullptr); - avl = gpr_avl_add(avl, box(986), box(1640), nullptr); - avl = gpr_avl_add(avl, box(622), box(1641), nullptr); - avl = remove_int(avl, 130); - avl = gpr_avl_add(avl, box(861), box(1643), nullptr); - avl = remove_int(avl, 497); - avl = remove_int(avl, 905); - avl = gpr_avl_add(avl, box(502), box(1646), nullptr); - avl = remove_int(avl, 721); - avl = gpr_avl_add(avl, box(514), box(1648), nullptr); - avl = gpr_avl_add(avl, box(410), box(1649), nullptr); - avl = remove_int(avl, 869); - avl = remove_int(avl, 247); - avl = gpr_avl_add(avl, box(450), box(1652), nullptr); - avl = remove_int(avl, 364); - avl = gpr_avl_add(avl, box(963), box(1654), nullptr); - avl = gpr_avl_add(avl, box(146), box(1655), nullptr); - avl = remove_int(avl, 147); - avl = remove_int(avl, 789); - avl = gpr_avl_add(avl, box(693), box(1658), nullptr); - avl = gpr_avl_add(avl, box(959), box(1659), nullptr); - avl = remove_int(avl, 478); - avl = gpr_avl_add(avl, box(116), box(1661), nullptr); - avl = gpr_avl_add(avl, box(520), box(1662), nullptr); - avl = gpr_avl_add(avl, box(809), box(1663), nullptr); - avl = gpr_avl_add(avl, box(667), box(1664), nullptr); - avl = gpr_avl_add(avl, box(406), box(1665), nullptr); - avl = remove_int(avl, 409); - avl = gpr_avl_add(avl, box(558), box(1667), nullptr); - avl = gpr_avl_add(avl, box(0), box(1668), nullptr); - avl = gpr_avl_add(avl, box(948), box(1669), nullptr); - avl = gpr_avl_add(avl, box(576), box(1670), nullptr); - avl = remove_int(avl, 864); - avl = remove_int(avl, 840); - avl = remove_int(avl, 1001); - avl = gpr_avl_add(avl, box(232), box(1674), nullptr); - avl = remove_int(avl, 676); - avl = remove_int(avl, 752); - avl = remove_int(avl, 667); - avl = remove_int(avl, 605); - avl = gpr_avl_add(avl, box(258), box(1679), nullptr); - avl = gpr_avl_add(avl, box(648), box(1680), nullptr); - avl = gpr_avl_add(avl, box(761), box(1681), nullptr); - avl = remove_int(avl, 293); - avl = remove_int(avl, 893); - avl = gpr_avl_add(avl, box(194), box(1684), nullptr); - avl = remove_int(avl, 233); - avl = gpr_avl_add(avl, box(888), box(1686), nullptr); - avl = remove_int(avl, 470); - avl = remove_int(avl, 703); - avl = remove_int(avl, 190); - avl = remove_int(avl, 359); - avl = gpr_avl_add(avl, box(621), box(1691), nullptr); - avl = remove_int(avl, 634); - avl = remove_int(avl, 335); - avl = gpr_avl_add(avl, box(718), box(1694), nullptr); - avl = gpr_avl_add(avl, box(463), box(1695), nullptr); - avl = gpr_avl_add(avl, box(233), box(1696), nullptr); - avl = remove_int(avl, 376); - avl = remove_int(avl, 496); - avl = remove_int(avl, 819); - avl = remove_int(avl, 38); - avl = remove_int(avl, 436); - avl = remove_int(avl, 102); - avl = gpr_avl_add(avl, box(607), box(1703), nullptr); - avl = remove_int(avl, 329); - avl = gpr_avl_add(avl, box(716), box(1705), nullptr); - avl = remove_int(avl, 639); - avl = remove_int(avl, 775); - avl = remove_int(avl, 578); - avl = remove_int(avl, 464); - avl = remove_int(avl, 679); - avl = remove_int(avl, 615); - avl = remove_int(avl, 104); - avl = gpr_avl_add(avl, box(414), box(1713), nullptr); - avl = gpr_avl_add(avl, box(212), box(1714), nullptr); - avl = gpr_avl_add(avl, box(266), box(1715), nullptr); - avl = gpr_avl_add(avl, box(238), box(1716), nullptr); - avl = remove_int(avl, 153); - avl = gpr_avl_add(avl, box(585), box(1718), nullptr); - avl = remove_int(avl, 121); - avl = gpr_avl_add(avl, box(534), box(1720), nullptr); - avl = remove_int(avl, 579); - avl = gpr_avl_add(avl, box(127), box(1722), nullptr); - avl = gpr_avl_add(avl, box(399), box(1723), nullptr); - avl = remove_int(avl, 417); - avl = gpr_avl_add(avl, box(978), box(1725), nullptr); - avl = gpr_avl_add(avl, box(768), box(1726), nullptr); - avl = remove_int(avl, 985); - avl = gpr_avl_add(avl, box(536), box(1728), nullptr); - avl = gpr_avl_add(avl, box(449), box(1729), nullptr); - avl = gpr_avl_add(avl, box(586), box(1730), nullptr); - avl = remove_int(avl, 998); - avl = remove_int(avl, 394); - avl = remove_int(avl, 141); - avl = gpr_avl_add(avl, box(889), box(1734), nullptr); - avl = gpr_avl_add(avl, box(871), box(1735), nullptr); - avl = gpr_avl_add(avl, box(76), box(1736), nullptr); - avl = gpr_avl_add(avl, box(549), box(1737), nullptr); - avl = gpr_avl_add(avl, box(757), box(1738), nullptr); - avl = remove_int(avl, 908); - avl = gpr_avl_add(avl, box(789), box(1740), nullptr); - avl = remove_int(avl, 224); - avl = gpr_avl_add(avl, box(407), box(1742), nullptr); - avl = gpr_avl_add(avl, box(381), box(1743), nullptr); - avl = gpr_avl_add(avl, box(561), box(1744), nullptr); - avl = gpr_avl_add(avl, box(667), box(1745), nullptr); - avl = gpr_avl_add(avl, box(522), box(1746), nullptr); - avl = gpr_avl_add(avl, box(948), box(1747), nullptr); - avl = remove_int(avl, 770); - avl = gpr_avl_add(avl, box(872), box(1749), nullptr); - avl = gpr_avl_add(avl, box(327), box(1750), nullptr); - avl = remove_int(avl, 10); - avl = gpr_avl_add(avl, box(122), box(1752), nullptr); - avl = remove_int(avl, 606); - avl = gpr_avl_add(avl, box(485), box(1754), nullptr); - avl = remove_int(avl, 6); - avl = gpr_avl_add(avl, box(329), box(1756), nullptr); - avl = gpr_avl_add(avl, box(783), box(1757), nullptr); - avl = remove_int(avl, 416); - avl = gpr_avl_add(avl, box(656), box(1759), nullptr); - avl = gpr_avl_add(avl, box(971), box(1760), nullptr); - avl = gpr_avl_add(avl, box(77), box(1761), nullptr); - avl = gpr_avl_add(avl, box(942), box(1762), nullptr); - avl = remove_int(avl, 361); - avl = gpr_avl_add(avl, box(66), box(1764), nullptr); - avl = gpr_avl_add(avl, box(299), box(1765), nullptr); - avl = gpr_avl_add(avl, box(929), box(1766), nullptr); - avl = gpr_avl_add(avl, box(797), box(1767), nullptr); - avl = remove_int(avl, 869); - avl = remove_int(avl, 907); - avl = gpr_avl_add(avl, box(870), box(1770), nullptr); - avl = remove_int(avl, 580); - avl = remove_int(avl, 120); - avl = gpr_avl_add(avl, box(913), box(1773), nullptr); - avl = remove_int(avl, 480); - avl = gpr_avl_add(avl, box(489), box(1775), nullptr); - avl = remove_int(avl, 845); - avl = gpr_avl_add(avl, box(896), box(1777), nullptr); - avl = remove_int(avl, 567); - avl = remove_int(avl, 427); - avl = gpr_avl_add(avl, box(443), box(1780), nullptr); - avl = gpr_avl_add(avl, box(3), box(1781), nullptr); - avl = remove_int(avl, 12); - avl = gpr_avl_add(avl, box(376), box(1783), nullptr); - avl = gpr_avl_add(avl, box(155), box(1784), nullptr); - avl = gpr_avl_add(avl, box(188), box(1785), nullptr); - avl = gpr_avl_add(avl, box(149), box(1786), nullptr); - avl = gpr_avl_add(avl, box(178), box(1787), nullptr); - avl = remove_int(avl, 84); - avl = gpr_avl_add(avl, box(805), box(1789), nullptr); - avl = gpr_avl_add(avl, box(612), box(1790), nullptr); - avl = remove_int(avl, 991); - avl = gpr_avl_add(avl, box(837), box(1792), nullptr); - avl = remove_int(avl, 173); - avl = remove_int(avl, 72); - avl = gpr_avl_add(avl, box(1014), box(1795), nullptr); - avl = remove_int(avl, 303); - avl = gpr_avl_add(avl, box(865), box(1797), nullptr); - avl = gpr_avl_add(avl, box(793), box(1798), nullptr); - avl = remove_int(avl, 173); - avl = remove_int(avl, 477); - avl = gpr_avl_add(avl, box(950), box(1801), nullptr); - avl = gpr_avl_add(avl, box(105), box(1802), nullptr); - avl = gpr_avl_add(avl, box(895), box(1803), nullptr); - avl = gpr_avl_add(avl, box(171), box(1804), nullptr); - avl = gpr_avl_add(avl, box(753), box(1805), nullptr); - avl = gpr_avl_add(avl, box(946), box(1806), nullptr); - avl = remove_int(avl, 194); - avl = remove_int(avl, 559); - avl = remove_int(avl, 116); - avl = gpr_avl_add(avl, box(968), box(1810), nullptr); - avl = remove_int(avl, 124); - avl = remove_int(avl, 99); - avl = gpr_avl_add(avl, box(563), box(1813), nullptr); - avl = remove_int(avl, 182); - avl = gpr_avl_add(avl, box(816), box(1815), nullptr); - avl = remove_int(avl, 73); - avl = remove_int(avl, 261); - avl = gpr_avl_add(avl, box(847), box(1818), nullptr); - avl = gpr_avl_add(avl, box(368), box(1819), nullptr); - avl = gpr_avl_add(avl, box(808), box(1820), nullptr); - avl = gpr_avl_add(avl, box(779), box(1821), nullptr); - avl = remove_int(avl, 818); - avl = gpr_avl_add(avl, box(466), box(1823), nullptr); - avl = remove_int(avl, 316); - avl = gpr_avl_add(avl, box(986), box(1825), nullptr); - avl = gpr_avl_add(avl, box(688), box(1826), nullptr); - avl = gpr_avl_add(avl, box(509), box(1827), nullptr); - avl = gpr_avl_add(avl, box(51), box(1828), nullptr); - avl = remove_int(avl, 655); - avl = remove_int(avl, 785); - avl = remove_int(avl, 893); - avl = gpr_avl_add(avl, box(167), box(1832), nullptr); - avl = remove_int(avl, 13); - avl = remove_int(avl, 263); - avl = gpr_avl_add(avl, box(1009), box(1835), nullptr); - avl = remove_int(avl, 480); - avl = remove_int(avl, 778); - avl = remove_int(avl, 713); - avl = remove_int(avl, 628); - avl = gpr_avl_add(avl, box(803), box(1840), nullptr); - avl = remove_int(avl, 267); - avl = gpr_avl_add(avl, box(676), box(1842), nullptr); - avl = gpr_avl_add(avl, box(231), box(1843), nullptr); - avl = gpr_avl_add(avl, box(824), box(1844), nullptr); - avl = remove_int(avl, 961); - avl = gpr_avl_add(avl, box(311), box(1846), nullptr); - avl = gpr_avl_add(avl, box(420), box(1847), nullptr); - avl = gpr_avl_add(avl, box(960), box(1848), nullptr); - avl = gpr_avl_add(avl, box(468), box(1849), nullptr); - avl = gpr_avl_add(avl, box(815), box(1850), nullptr); - avl = remove_int(avl, 247); - avl = remove_int(avl, 194); - avl = gpr_avl_add(avl, box(546), box(1853), nullptr); - avl = remove_int(avl, 222); - avl = remove_int(avl, 914); - avl = remove_int(avl, 741); - avl = gpr_avl_add(avl, box(470), box(1857), nullptr); - avl = gpr_avl_add(avl, box(933), box(1858), nullptr); - avl = gpr_avl_add(avl, box(97), box(1859), nullptr); - avl = remove_int(avl, 564); - avl = remove_int(avl, 295); - avl = gpr_avl_add(avl, box(864), box(1862), nullptr); - avl = remove_int(avl, 329); - avl = gpr_avl_add(avl, box(124), box(1864), nullptr); - avl = gpr_avl_add(avl, box(1000), box(1865), nullptr); - avl = gpr_avl_add(avl, box(228), box(1866), nullptr); - avl = gpr_avl_add(avl, box(187), box(1867), nullptr); - avl = remove_int(avl, 224); - avl = remove_int(avl, 306); - avl = remove_int(avl, 884); - avl = gpr_avl_add(avl, box(449), box(1871), nullptr); - avl = gpr_avl_add(avl, box(353), box(1872), nullptr); - avl = gpr_avl_add(avl, box(994), box(1873), nullptr); - avl = gpr_avl_add(avl, box(596), box(1874), nullptr); - avl = gpr_avl_add(avl, box(996), box(1875), nullptr); - avl = gpr_avl_add(avl, box(101), box(1876), nullptr); - avl = gpr_avl_add(avl, box(1012), box(1877), nullptr); - avl = gpr_avl_add(avl, box(982), box(1878), nullptr); - avl = gpr_avl_add(avl, box(742), box(1879), nullptr); - avl = remove_int(avl, 92); - avl = remove_int(avl, 1022); - avl = gpr_avl_add(avl, box(941), box(1882), nullptr); - avl = remove_int(avl, 742); - avl = remove_int(avl, 919); - avl = gpr_avl_add(avl, box(588), box(1885), nullptr); - avl = remove_int(avl, 221); - avl = gpr_avl_add(avl, box(356), box(1887), nullptr); - avl = gpr_avl_add(avl, box(932), box(1888), nullptr); - avl = remove_int(avl, 837); - avl = gpr_avl_add(avl, box(394), box(1890), nullptr); - avl = gpr_avl_add(avl, box(642), box(1891), nullptr); - avl = gpr_avl_add(avl, box(52), box(1892), nullptr); - avl = gpr_avl_add(avl, box(437), box(1893), nullptr); - avl = gpr_avl_add(avl, box(948), box(1894), nullptr); - avl = gpr_avl_add(avl, box(93), box(1895), nullptr); - avl = remove_int(avl, 873); - avl = remove_int(avl, 336); - avl = remove_int(avl, 277); - avl = remove_int(avl, 932); - avl = gpr_avl_add(avl, box(80), box(1900), nullptr); - avl = gpr_avl_add(avl, box(952), box(1901), nullptr); - avl = gpr_avl_add(avl, box(510), box(1902), nullptr); - avl = remove_int(avl, 876); - avl = remove_int(avl, 612); - avl = gpr_avl_add(avl, box(923), box(1905), nullptr); - avl = gpr_avl_add(avl, box(475), box(1906), nullptr); - avl = remove_int(avl, 478); - avl = remove_int(avl, 148); - avl = gpr_avl_add(avl, box(538), box(1909), nullptr); - avl = remove_int(avl, 47); - avl = gpr_avl_add(avl, box(89), box(1911), nullptr); - avl = remove_int(avl, 723); - avl = gpr_avl_add(avl, box(687), box(1913), nullptr); - avl = gpr_avl_add(avl, box(480), box(1914), nullptr); - avl = gpr_avl_add(avl, box(149), box(1915), nullptr); - avl = remove_int(avl, 68); - avl = remove_int(avl, 862); - avl = remove_int(avl, 363); - avl = gpr_avl_add(avl, box(996), box(1919), nullptr); - avl = remove_int(avl, 380); - avl = gpr_avl_add(avl, box(957), box(1921), nullptr); - avl = remove_int(avl, 413); - avl = gpr_avl_add(avl, box(360), box(1923), nullptr); - avl = gpr_avl_add(avl, box(304), box(1924), nullptr); - avl = gpr_avl_add(avl, box(634), box(1925), nullptr); - avl = gpr_avl_add(avl, box(506), box(1926), nullptr); - avl = remove_int(avl, 248); - avl = gpr_avl_add(avl, box(124), box(1928), nullptr); - avl = gpr_avl_add(avl, box(181), box(1929), nullptr); - avl = remove_int(avl, 507); - avl = gpr_avl_add(avl, box(141), box(1931), nullptr); - avl = remove_int(avl, 409); - avl = remove_int(avl, 129); - avl = remove_int(avl, 694); - avl = remove_int(avl, 723); - avl = gpr_avl_add(avl, box(998), box(1936), nullptr); - avl = gpr_avl_add(avl, box(906), box(1937), nullptr); - avl = gpr_avl_add(avl, box(44), box(1938), nullptr); - avl = remove_int(avl, 949); - avl = remove_int(avl, 117); - avl = gpr_avl_add(avl, box(700), box(1941), nullptr); - avl = gpr_avl_add(avl, box(258), box(1942), nullptr); - avl = remove_int(avl, 828); - avl = gpr_avl_add(avl, box(860), box(1944), nullptr); - avl = gpr_avl_add(avl, box(987), box(1945), nullptr); - avl = gpr_avl_add(avl, box(316), box(1946), nullptr); - avl = gpr_avl_add(avl, box(919), box(1947), nullptr); - avl = remove_int(avl, 84); - avl = gpr_avl_add(avl, box(473), box(1949), nullptr); - avl = remove_int(avl, 127); - avl = remove_int(avl, 829); - avl = remove_int(avl, 829); - avl = gpr_avl_add(avl, box(488), box(1953), nullptr); - avl = gpr_avl_add(avl, box(954), box(1954), nullptr); - avl = remove_int(avl, 198); - avl = remove_int(avl, 972); - avl = remove_int(avl, 670); - avl = gpr_avl_add(avl, box(822), box(1958), nullptr); - avl = remove_int(avl, 589); - avl = remove_int(avl, 459); - avl = gpr_avl_add(avl, box(1003), box(1961), nullptr); - avl = gpr_avl_add(avl, box(657), box(1962), nullptr); - avl = gpr_avl_add(avl, box(477), box(1963), nullptr); - avl = gpr_avl_add(avl, box(923), box(1964), nullptr); - avl = remove_int(avl, 496); - avl = remove_int(avl, 99); - avl = gpr_avl_add(avl, box(127), box(1967), nullptr); - avl = gpr_avl_add(avl, box(1013), box(1968), nullptr); - avl = gpr_avl_add(avl, box(778), box(1969), nullptr); - avl = remove_int(avl, 5); - avl = remove_int(avl, 990); - avl = remove_int(avl, 850); - avl = remove_int(avl, 160); - avl = remove_int(avl, 86); - avl = gpr_avl_add(avl, box(283), box(1975), nullptr); - avl = remove_int(avl, 278); - avl = remove_int(avl, 297); - avl = remove_int(avl, 137); - avl = remove_int(avl, 653); - avl = gpr_avl_add(avl, box(702), box(1980), nullptr); - avl = remove_int(avl, 63); - avl = remove_int(avl, 427); - avl = remove_int(avl, 706); - avl = remove_int(avl, 806); - avl = gpr_avl_add(avl, box(335), box(1985), nullptr); - avl = gpr_avl_add(avl, box(412), box(1986), nullptr); - avl = remove_int(avl, 766); - avl = remove_int(avl, 937); - avl = remove_int(avl, 886); - avl = remove_int(avl, 652); - avl = gpr_avl_add(avl, box(545), box(1991), nullptr); - avl = gpr_avl_add(avl, box(408), box(1992), nullptr); - avl = gpr_avl_add(avl, box(841), box(1993), nullptr); - avl = remove_int(avl, 593); - avl = gpr_avl_add(avl, box(582), box(1995), nullptr); - avl = gpr_avl_add(avl, box(597), box(1996), nullptr); - avl = remove_int(avl, 49); - avl = remove_int(avl, 835); - avl = gpr_avl_add(avl, box(417), box(1999), nullptr); - avl = gpr_avl_add(avl, box(191), box(2000), nullptr); - avl = remove_int(avl, 406); - avl = gpr_avl_add(avl, box(30), box(2002), nullptr); - avl = remove_int(avl, 841); - avl = remove_int(avl, 50); - avl = gpr_avl_add(avl, box(967), box(2005), nullptr); - avl = gpr_avl_add(avl, box(849), box(2006), nullptr); - avl = remove_int(avl, 608); - avl = gpr_avl_add(avl, box(306), box(2008), nullptr); - avl = remove_int(avl, 779); - avl = gpr_avl_add(avl, box(897), box(2010), nullptr); - avl = gpr_avl_add(avl, box(147), box(2011), nullptr); - avl = remove_int(avl, 982); - avl = gpr_avl_add(avl, box(470), box(2013), nullptr); - avl = remove_int(avl, 951); - avl = gpr_avl_add(avl, box(388), box(2015), nullptr); - avl = remove_int(avl, 616); - avl = remove_int(avl, 721); - avl = remove_int(avl, 942); - avl = remove_int(avl, 589); - avl = gpr_avl_add(avl, box(218), box(2020), nullptr); - avl = remove_int(avl, 671); - avl = gpr_avl_add(avl, box(1020), box(2022), nullptr); - avl = remove_int(avl, 277); - avl = gpr_avl_add(avl, box(681), box(2024), nullptr); - avl = gpr_avl_add(avl, box(179), box(2025), nullptr); - avl = gpr_avl_add(avl, box(370), box(2026), nullptr); - avl = gpr_avl_add(avl, box(0), box(2027), nullptr); - avl = remove_int(avl, 523); - avl = gpr_avl_add(avl, box(99), box(2029), nullptr); - avl = gpr_avl_add(avl, box(334), box(2030), nullptr); - avl = gpr_avl_add(avl, box(569), box(2031), nullptr); - avl = gpr_avl_add(avl, box(257), box(2032), nullptr); - avl = remove_int(avl, 572); - avl = gpr_avl_add(avl, box(805), box(2034), nullptr); - avl = gpr_avl_add(avl, box(143), box(2035), nullptr); - avl = gpr_avl_add(avl, box(670), box(2036), nullptr); - avl = remove_int(avl, 42); - avl = gpr_avl_add(avl, box(46), box(2038), nullptr); - avl = remove_int(avl, 970); - avl = gpr_avl_add(avl, box(353), box(2040), nullptr); - avl = remove_int(avl, 258); - avl = gpr_avl_add(avl, box(451), box(2042), nullptr); - avl = gpr_avl_add(avl, box(28), box(2043), nullptr); - avl = gpr_avl_add(avl, box(729), box(2044), nullptr); - avl = gpr_avl_add(avl, box(401), box(2045), nullptr); - avl = gpr_avl_add(avl, box(614), box(2046), nullptr); - avl = remove_int(avl, 990); - avl = remove_int(avl, 212); - avl = remove_int(avl, 22); - avl = remove_int(avl, 677); - avl = gpr_avl_add(avl, box(1016), box(2051), nullptr); - avl = gpr_avl_add(avl, box(980), box(2052), nullptr); - avl = gpr_avl_add(avl, box(990), box(2053), nullptr); - avl = gpr_avl_add(avl, box(355), box(2054), nullptr); - avl = remove_int(avl, 730); - avl = remove_int(avl, 37); - avl = gpr_avl_add(avl, box(407), box(2057), nullptr); - avl = gpr_avl_add(avl, box(222), box(2058), nullptr); - avl = gpr_avl_add(avl, box(439), box(2059), nullptr); - avl = gpr_avl_add(avl, box(563), box(2060), nullptr); - avl = remove_int(avl, 992); - avl = remove_int(avl, 786); - avl = gpr_avl_add(avl, box(1), box(2063), nullptr); - avl = gpr_avl_add(avl, box(473), box(2064), nullptr); - avl = gpr_avl_add(avl, box(992), box(2065), nullptr); - avl = remove_int(avl, 190); - avl = remove_int(avl, 450); - avl = remove_int(avl, 1020); - avl = remove_int(avl, 149); - avl = gpr_avl_add(avl, box(329), box(2070), nullptr); - avl = gpr_avl_add(avl, box(35), box(2071), nullptr); - avl = remove_int(avl, 843); - avl = gpr_avl_add(avl, box(855), box(2073), nullptr); - avl = remove_int(avl, 878); - avl = gpr_avl_add(avl, box(993), box(2075), nullptr); - avl = gpr_avl_add(avl, box(87), box(2076), nullptr); - avl = gpr_avl_add(avl, box(572), box(2077), nullptr); - avl = remove_int(avl, 896); - avl = gpr_avl_add(avl, box(849), box(2079), nullptr); - avl = remove_int(avl, 597); - avl = gpr_avl_add(avl, box(472), box(2081), nullptr); - avl = remove_int(avl, 778); - avl = remove_int(avl, 934); - avl = remove_int(avl, 314); - avl = gpr_avl_add(avl, box(101), box(2085), nullptr); - avl = remove_int(avl, 938); - avl = remove_int(avl, 1010); - avl = gpr_avl_add(avl, box(579), box(2088), nullptr); - avl = remove_int(avl, 798); - avl = remove_int(avl, 88); - avl = gpr_avl_add(avl, box(851), box(2091), nullptr); - avl = remove_int(avl, 705); - avl = gpr_avl_add(avl, box(26), box(2093), nullptr); - avl = remove_int(avl, 973); - avl = gpr_avl_add(avl, box(923), box(2095), nullptr); - avl = remove_int(avl, 668); - avl = gpr_avl_add(avl, box(310), box(2097), nullptr); - avl = gpr_avl_add(avl, box(269), box(2098), nullptr); - avl = remove_int(avl, 173); - avl = gpr_avl_add(avl, box(279), box(2100), nullptr); - avl = remove_int(avl, 203); - avl = gpr_avl_add(avl, box(411), box(2102), nullptr); - avl = remove_int(avl, 950); - avl = gpr_avl_add(avl, box(6), box(2104), nullptr); - avl = remove_int(avl, 400); - avl = remove_int(avl, 468); - avl = remove_int(avl, 271); - avl = gpr_avl_add(avl, box(627), box(2108), nullptr); - avl = remove_int(avl, 727); - avl = remove_int(avl, 148); - avl = remove_int(avl, 98); - avl = remove_int(avl, 997); - avl = remove_int(avl, 215); - avl = remove_int(avl, 628); - avl = remove_int(avl, 826); - avl = remove_int(avl, 664); - avl = gpr_avl_add(avl, box(76), box(2117), nullptr); - avl = remove_int(avl, 194); - avl = remove_int(avl, 18); - avl = gpr_avl_add(avl, box(727), box(2120), nullptr); - avl = remove_int(avl, 295); - avl = gpr_avl_add(avl, box(645), box(2122), nullptr); - avl = remove_int(avl, 321); - avl = remove_int(avl, 863); - avl = gpr_avl_add(avl, box(824), box(2125), nullptr); - avl = gpr_avl_add(avl, box(651), box(2126), nullptr); - avl = gpr_avl_add(avl, box(804), box(2127), nullptr); - avl = remove_int(avl, 307); - avl = gpr_avl_add(avl, box(867), box(2129), nullptr); - avl = remove_int(avl, 384); - avl = gpr_avl_add(avl, box(819), box(2131), nullptr); - avl = remove_int(avl, 674); - avl = gpr_avl_add(avl, box(76), box(2133), nullptr); - avl = remove_int(avl, 898); - avl = gpr_avl_add(avl, box(45), box(2135), nullptr); - avl = gpr_avl_add(avl, box(512), box(2136), nullptr); - avl = remove_int(avl, 773); - avl = remove_int(avl, 907); - avl = remove_int(avl, 382); - avl = remove_int(avl, 95); - avl = remove_int(avl, 734); - avl = remove_int(avl, 81); - avl = gpr_avl_add(avl, box(348), box(2143), nullptr); - avl = remove_int(avl, 509); - avl = remove_int(avl, 301); - avl = gpr_avl_add(avl, box(861), box(2146), nullptr); - avl = gpr_avl_add(avl, box(918), box(2147), nullptr); - avl = remove_int(avl, 992); - avl = gpr_avl_add(avl, box(356), box(2149), nullptr); - avl = remove_int(avl, 64); - avl = remove_int(avl, 444); - avl = remove_int(avl, 741); - avl = gpr_avl_add(avl, box(710), box(2153), nullptr); - avl = gpr_avl_add(avl, box(264), box(2154), nullptr); - avl = remove_int(avl, 347); - avl = remove_int(avl, 250); - avl = gpr_avl_add(avl, box(82), box(2157), nullptr); - avl = gpr_avl_add(avl, box(571), box(2158), nullptr); - avl = remove_int(avl, 721); - avl = remove_int(avl, 622); - avl = gpr_avl_add(avl, box(950), box(2161), nullptr); - avl = gpr_avl_add(avl, box(94), box(2162), nullptr); - avl = remove_int(avl, 970); - avl = gpr_avl_add(avl, box(815), box(2164), nullptr); - avl = remove_int(avl, 930); - avl = remove_int(avl, 703); - avl = gpr_avl_add(avl, box(432), box(2167), nullptr); - avl = remove_int(avl, 544); - avl = gpr_avl_add(avl, box(21), box(2169), nullptr); - avl = gpr_avl_add(avl, box(186), box(2170), nullptr); - avl = remove_int(avl, 143); - avl = gpr_avl_add(avl, box(425), box(2172), nullptr); - avl = remove_int(avl, 769); - avl = gpr_avl_add(avl, box(656), box(2174), nullptr); - avl = remove_int(avl, 29); - avl = gpr_avl_add(avl, box(464), box(2176), nullptr); - avl = remove_int(avl, 713); - avl = gpr_avl_add(avl, box(800), box(2178), nullptr); - avl = remove_int(avl, 621); - avl = gpr_avl_add(avl, box(962), box(2180), nullptr); - avl = remove_int(avl, 448); - avl = gpr_avl_add(avl, box(878), box(2182), nullptr); - avl = remove_int(avl, 39); - avl = remove_int(avl, 999); - avl = gpr_avl_add(avl, box(182), box(2185), nullptr); - avl = gpr_avl_add(avl, box(429), box(2186), nullptr); - avl = gpr_avl_add(avl, box(598), box(2187), nullptr); - avl = remove_int(avl, 551); - avl = gpr_avl_add(avl, box(827), box(2189), nullptr); - avl = gpr_avl_add(avl, box(809), box(2190), nullptr); - avl = remove_int(avl, 438); - avl = remove_int(avl, 811); - avl = gpr_avl_add(avl, box(808), box(2193), nullptr); - avl = gpr_avl_add(avl, box(788), box(2194), nullptr); - avl = remove_int(avl, 156); - avl = gpr_avl_add(avl, box(933), box(2196), nullptr); - avl = gpr_avl_add(avl, box(344), box(2197), nullptr); - avl = remove_int(avl, 460); - avl = gpr_avl_add(avl, box(161), box(2199), nullptr); - avl = gpr_avl_add(avl, box(444), box(2200), nullptr); - avl = remove_int(avl, 597); - avl = remove_int(avl, 668); - avl = gpr_avl_add(avl, box(703), box(2203), nullptr); - avl = remove_int(avl, 515); - avl = gpr_avl_add(avl, box(380), box(2205), nullptr); - avl = gpr_avl_add(avl, box(338), box(2206), nullptr); - avl = remove_int(avl, 550); - avl = remove_int(avl, 946); - avl = remove_int(avl, 714); - avl = remove_int(avl, 739); - avl = gpr_avl_add(avl, box(413), box(2211), nullptr); - avl = remove_int(avl, 450); - avl = gpr_avl_add(avl, box(411), box(2213), nullptr); - avl = gpr_avl_add(avl, box(117), box(2214), nullptr); - avl = gpr_avl_add(avl, box(322), box(2215), nullptr); - avl = gpr_avl_add(avl, box(915), box(2216), nullptr); - avl = gpr_avl_add(avl, box(410), box(2217), nullptr); - avl = gpr_avl_add(avl, box(66), box(2218), nullptr); - avl = remove_int(avl, 756); - avl = remove_int(avl, 596); - avl = gpr_avl_add(avl, box(882), box(2221), nullptr); - avl = gpr_avl_add(avl, box(930), box(2222), nullptr); - avl = gpr_avl_add(avl, box(36), box(2223), nullptr); - avl = remove_int(avl, 742); - avl = gpr_avl_add(avl, box(539), box(2225), nullptr); - avl = gpr_avl_add(avl, box(596), box(2226), nullptr); - avl = remove_int(avl, 82); - avl = remove_int(avl, 686); - avl = remove_int(avl, 933); - avl = remove_int(avl, 42); - avl = remove_int(avl, 340); - avl = gpr_avl_add(avl, box(126), box(2232), nullptr); - avl = gpr_avl_add(avl, box(493), box(2233), nullptr); - avl = gpr_avl_add(avl, box(839), box(2234), nullptr); - avl = remove_int(avl, 774); - avl = gpr_avl_add(avl, box(337), box(2236), nullptr); - avl = remove_int(avl, 322); - avl = gpr_avl_add(avl, box(16), box(2238), nullptr); - avl = remove_int(avl, 73); - avl = remove_int(avl, 85); - avl = remove_int(avl, 191); - avl = remove_int(avl, 541); - avl = gpr_avl_add(avl, box(704), box(2243), nullptr); - avl = remove_int(avl, 767); - avl = remove_int(avl, 1006); - avl = remove_int(avl, 844); - avl = remove_int(avl, 742); - avl = gpr_avl_add(avl, box(48), box(2248), nullptr); - avl = gpr_avl_add(avl, box(138), box(2249), nullptr); - avl = gpr_avl_add(avl, box(437), box(2250), nullptr); - avl = gpr_avl_add(avl, box(275), box(2251), nullptr); - avl = remove_int(avl, 520); - avl = gpr_avl_add(avl, box(1019), box(2253), nullptr); - avl = remove_int(avl, 955); - avl = gpr_avl_add(avl, box(270), box(2255), nullptr); - avl = remove_int(avl, 680); - avl = remove_int(avl, 698); - avl = gpr_avl_add(avl, box(735), box(2258), nullptr); - avl = gpr_avl_add(avl, box(400), box(2259), nullptr); - avl = remove_int(avl, 991); - avl = gpr_avl_add(avl, box(263), box(2261), nullptr); - avl = remove_int(avl, 704); - avl = gpr_avl_add(avl, box(757), box(2263), nullptr); - avl = remove_int(avl, 194); - avl = remove_int(avl, 616); - avl = remove_int(avl, 784); - avl = gpr_avl_add(avl, box(382), box(2267), nullptr); - avl = gpr_avl_add(avl, box(464), box(2268), nullptr); - avl = gpr_avl_add(avl, box(817), box(2269), nullptr); - avl = remove_int(avl, 445); - avl = gpr_avl_add(avl, box(412), box(2271), nullptr); - avl = remove_int(avl, 525); - avl = gpr_avl_add(avl, box(299), box(2273), nullptr); - avl = gpr_avl_add(avl, box(464), box(2274), nullptr); - avl = gpr_avl_add(avl, box(715), box(2275), nullptr); - avl = remove_int(avl, 58); - avl = remove_int(avl, 218); - avl = gpr_avl_add(avl, box(961), box(2278), nullptr); - avl = gpr_avl_add(avl, box(491), box(2279), nullptr); - avl = remove_int(avl, 846); - avl = gpr_avl_add(avl, box(762), box(2281), nullptr); - avl = remove_int(avl, 974); - avl = remove_int(avl, 887); - avl = gpr_avl_add(avl, box(498), box(2284), nullptr); - avl = remove_int(avl, 810); - avl = remove_int(avl, 743); - avl = remove_int(avl, 22); - avl = remove_int(avl, 284); - avl = gpr_avl_add(avl, box(482), box(2289), nullptr); - avl = gpr_avl_add(avl, box(1021), box(2290), nullptr); - avl = remove_int(avl, 155); - avl = remove_int(avl, 128); - avl = gpr_avl_add(avl, box(819), box(2293), nullptr); - avl = gpr_avl_add(avl, box(324), box(2294), nullptr); - avl = remove_int(avl, 196); - avl = remove_int(avl, 370); - avl = remove_int(avl, 753); - avl = remove_int(avl, 56); - avl = remove_int(avl, 735); - avl = gpr_avl_add(avl, box(272), box(2300), nullptr); - avl = gpr_avl_add(avl, box(474), box(2301), nullptr); - avl = gpr_avl_add(avl, box(719), box(2302), nullptr); - avl = gpr_avl_add(avl, box(236), box(2303), nullptr); - avl = remove_int(avl, 818); - avl = gpr_avl_add(avl, box(727), box(2305), nullptr); - avl = remove_int(avl, 892); - avl = remove_int(avl, 871); - avl = remove_int(avl, 231); - avl = gpr_avl_add(avl, box(62), box(2309), nullptr); - avl = gpr_avl_add(avl, box(953), box(2310), nullptr); - avl = remove_int(avl, 701); - avl = gpr_avl_add(avl, box(193), box(2312), nullptr); - avl = remove_int(avl, 619); - avl = remove_int(avl, 22); - avl = remove_int(avl, 804); - avl = remove_int(avl, 851); - avl = gpr_avl_add(avl, box(286), box(2317), nullptr); - avl = gpr_avl_add(avl, box(751), box(2318), nullptr); - avl = remove_int(avl, 525); - avl = gpr_avl_add(avl, box(217), box(2320), nullptr); - avl = remove_int(avl, 336); - avl = gpr_avl_add(avl, box(86), box(2322), nullptr); - avl = gpr_avl_add(avl, box(81), box(2323), nullptr); - avl = gpr_avl_add(avl, box(850), box(2324), nullptr); - avl = remove_int(avl, 872); - avl = gpr_avl_add(avl, box(402), box(2326), nullptr); - avl = gpr_avl_add(avl, box(54), box(2327), nullptr); - avl = gpr_avl_add(avl, box(980), box(2328), nullptr); - avl = gpr_avl_add(avl, box(845), box(2329), nullptr); - avl = remove_int(avl, 1004); - avl = remove_int(avl, 273); - avl = remove_int(avl, 879); - avl = gpr_avl_add(avl, box(354), box(2333), nullptr); - avl = gpr_avl_add(avl, box(58), box(2334), nullptr); - avl = gpr_avl_add(avl, box(127), box(2335), nullptr); - avl = remove_int(avl, 84); - avl = gpr_avl_add(avl, box(360), box(2337), nullptr); - avl = remove_int(avl, 648); - avl = remove_int(avl, 488); - avl = remove_int(avl, 585); - avl = remove_int(avl, 230); - avl = gpr_avl_add(avl, box(887), box(2342), nullptr); - avl = remove_int(avl, 558); - avl = remove_int(avl, 958); - avl = gpr_avl_add(avl, box(822), box(2345), nullptr); - avl = remove_int(avl, 1004); - avl = remove_int(avl, 747); - avl = gpr_avl_add(avl, box(631), box(2348), nullptr); - avl = gpr_avl_add(avl, box(442), box(2349), nullptr); - avl = remove_int(avl, 957); - avl = remove_int(avl, 964); - avl = gpr_avl_add(avl, box(10), box(2352), nullptr); - avl = remove_int(avl, 189); - avl = gpr_avl_add(avl, box(742), box(2354), nullptr); - avl = remove_int(avl, 108); - avl = gpr_avl_add(avl, box(1014), box(2356), nullptr); - avl = remove_int(avl, 266); - avl = remove_int(avl, 623); - avl = remove_int(avl, 697); - avl = gpr_avl_add(avl, box(180), box(2360), nullptr); - avl = remove_int(avl, 472); - avl = gpr_avl_add(avl, box(567), box(2362), nullptr); - avl = remove_int(avl, 1020); - avl = remove_int(avl, 273); - avl = gpr_avl_add(avl, box(864), box(2365), nullptr); - avl = gpr_avl_add(avl, box(1009), box(2366), nullptr); - avl = remove_int(avl, 224); - avl = remove_int(avl, 81); - avl = gpr_avl_add(avl, box(653), box(2369), nullptr); - avl = remove_int(avl, 67); - avl = remove_int(avl, 102); - avl = remove_int(avl, 76); - avl = remove_int(avl, 935); - avl = remove_int(avl, 169); - avl = remove_int(avl, 232); - avl = remove_int(avl, 79); - avl = gpr_avl_add(avl, box(509), box(2377), nullptr); - avl = remove_int(avl, 900); - avl = remove_int(avl, 822); - avl = remove_int(avl, 945); - avl = remove_int(avl, 356); - avl = gpr_avl_add(avl, box(443), box(2382), nullptr); - avl = gpr_avl_add(avl, box(925), box(2383), nullptr); - avl = remove_int(avl, 994); - avl = remove_int(avl, 324); - avl = gpr_avl_add(avl, box(291), box(2386), nullptr); - avl = remove_int(avl, 94); - avl = remove_int(avl, 795); - avl = remove_int(avl, 42); - avl = gpr_avl_add(avl, box(613), box(2390), nullptr); - avl = remove_int(avl, 289); - avl = gpr_avl_add(avl, box(980), box(2392), nullptr); - avl = remove_int(avl, 316); - avl = gpr_avl_add(avl, box(281), box(2394), nullptr); - avl = gpr_avl_add(avl, box(1006), box(2395), nullptr); - avl = remove_int(avl, 776); - avl = gpr_avl_add(avl, box(108), box(2397), nullptr); - avl = gpr_avl_add(avl, box(918), box(2398), nullptr); - avl = remove_int(avl, 721); - avl = remove_int(avl, 563); - avl = gpr_avl_add(avl, box(925), box(2401), nullptr); - avl = remove_int(avl, 448); - avl = remove_int(avl, 198); - avl = remove_int(avl, 1); - avl = gpr_avl_add(avl, box(160), box(2405), nullptr); - avl = remove_int(avl, 515); - avl = gpr_avl_add(avl, box(284), box(2407), nullptr); - avl = gpr_avl_add(avl, box(225), box(2408), nullptr); - avl = remove_int(avl, 304); - avl = gpr_avl_add(avl, box(714), box(2410), nullptr); - avl = gpr_avl_add(avl, box(708), box(2411), nullptr); - avl = gpr_avl_add(avl, box(624), box(2412), nullptr); - avl = remove_int(avl, 662); - avl = remove_int(avl, 825); - avl = remove_int(avl, 383); - avl = remove_int(avl, 381); - avl = gpr_avl_add(avl, box(194), box(2417), nullptr); - avl = remove_int(avl, 280); - avl = remove_int(avl, 25); - avl = remove_int(avl, 633); - avl = gpr_avl_add(avl, box(897), box(2421), nullptr); - avl = remove_int(avl, 636); - avl = remove_int(avl, 596); - avl = remove_int(avl, 757); - avl = remove_int(avl, 343); - avl = remove_int(avl, 162); - avl = remove_int(avl, 913); - avl = remove_int(avl, 843); - avl = remove_int(avl, 280); - avl = remove_int(avl, 911); - avl = gpr_avl_add(avl, box(1008), box(2431), nullptr); - avl = remove_int(avl, 948); - avl = remove_int(avl, 74); - avl = remove_int(avl, 571); - avl = gpr_avl_add(avl, box(486), box(2435), nullptr); - avl = gpr_avl_add(avl, box(285), box(2436), nullptr); - avl = remove_int(avl, 304); - avl = remove_int(avl, 516); - avl = gpr_avl_add(avl, box(758), box(2439), nullptr); - avl = gpr_avl_add(avl, box(776), box(2440), nullptr); - avl = remove_int(avl, 696); - avl = gpr_avl_add(avl, box(104), box(2442), nullptr); - avl = gpr_avl_add(avl, box(700), box(2443), nullptr); - avl = gpr_avl_add(avl, box(114), box(2444), nullptr); - avl = gpr_avl_add(avl, box(567), box(2445), nullptr); - avl = remove_int(avl, 620); - avl = gpr_avl_add(avl, box(270), box(2447), nullptr); - avl = remove_int(avl, 730); - avl = gpr_avl_add(avl, box(749), box(2449), nullptr); - avl = gpr_avl_add(avl, box(443), box(2450), nullptr); - avl = remove_int(avl, 457); - avl = gpr_avl_add(avl, box(571), box(2452), nullptr); - avl = gpr_avl_add(avl, box(626), box(2453), nullptr); - avl = remove_int(avl, 638); - avl = remove_int(avl, 313); - - gpr_avl_unref(avl, nullptr); -} - -static void test_stress(int amount_of_stress) { - int added[1024]; - int i, j; - int deletions = 0; - gpr_avl avl; - - unsigned seed = (unsigned)time(nullptr); - - gpr_log(GPR_DEBUG, "test_stress amount=%d seed=%u", amount_of_stress, seed); - - srand((unsigned)time(nullptr)); - avl = gpr_avl_create(&int_int_vtable); - - memset(added, 0, sizeof(added)); - - for (i = 1; deletions < amount_of_stress; i++) { - int idx = rand() % (int)GPR_ARRAY_SIZE(added); - GPR_ASSERT(i); - if (rand() < RAND_MAX / 2) { - added[idx] = i; - printf("avl = gpr_avl_add(avl, box(%d), box(%d), NULL); /* d=%d */\n", - idx, i, deletions); - avl = gpr_avl_add(avl, box(idx), box(i), nullptr); - } else { - deletions += (added[idx] != 0); - added[idx] = 0; - printf("avl = remove_int(avl, %d); /* d=%d */\n", idx, deletions); - avl = remove_int(avl, idx); - } - for (j = 0; j < (int)GPR_ARRAY_SIZE(added); j++) { - if (added[j] != 0) { - check_get(avl, j, added[j]); - } else { - check_negget(avl, j); - } - } - } - - gpr_avl_unref(avl, nullptr); -} - -int main(int argc, char* argv[]) { - grpc_test_init(argc, argv); - - test_get(); - test_ll(); - test_lr(); - test_rr(); - test_rl(); - test_unbalanced(); - test_replace(); - test_remove(); - test_badcase1(); - test_badcase2(); - test_badcase3(); - test_stress(10); - - return 0; -} diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index 3ff0baaacc..356bda0fd5 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -932,6 +932,7 @@ include/grpc/support/tls_msvc.h \ include/grpc/support/tls_pthread.h \ include/grpc/support/workaround_list.h \ src/core/ext/transport/inproc/inproc_transport.h \ +src/core/lib/avl/avl.h \ src/core/lib/backoff/backoff.h \ src/core/lib/channel/channel_args.h \ src/core/lib/channel/channel_stack.h \ @@ -951,7 +952,6 @@ src/core/lib/debug/stats.h \ src/core/lib/debug/stats_data.h \ src/core/lib/debug/trace.h \ src/core/lib/gpr/arena.h \ -src/core/lib/gpr/avl.h \ src/core/lib/gpr/env.h \ src/core/lib/gpr/fork.h \ src/core/lib/gpr/mpscq.h \ diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index c929475d50..9614a31c17 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -1029,6 +1029,8 @@ src/core/ext/transport/inproc/inproc_plugin.cc \ src/core/ext/transport/inproc/inproc_transport.cc \ src/core/ext/transport/inproc/inproc_transport.h \ src/core/lib/README.md \ +src/core/lib/avl/avl.cc \ +src/core/lib/avl/avl.h \ src/core/lib/backoff/backoff.cc \ src/core/lib/backoff/backoff.h \ src/core/lib/channel/README.md \ @@ -1071,8 +1073,6 @@ src/core/lib/gpr/alloc.cc \ src/core/lib/gpr/arena.cc \ src/core/lib/gpr/arena.h \ src/core/lib/gpr/atm.cc \ -src/core/lib/gpr/avl.cc \ -src/core/lib/gpr/avl.h \ src/core/lib/gpr/cmdline.cc \ src/core/lib/gpr/cpu_iphone.cc \ src/core/lib/gpr/cpu_linux.cc \ diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json index c0a27cf665..8067748fed 100644 --- a/tools/run_tests/generated/sources_and_headers.json +++ b/tools/run_tests/generated/sources_and_headers.json @@ -82,6 +82,22 @@ "third_party": false, "type": "target" }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc" + ], + "headers": [], + "is_filegroup": false, + "language": "c", + "name": "avl_test", + "src": [ + "test/core/avl/avl_test.cc" + ], + "third_party": false, + "type": "target" + }, { "deps": [ "gpr", @@ -587,21 +603,6 @@ "third_party": false, "type": "target" }, - { - "deps": [ - "gpr", - "gpr_test_util" - ], - "headers": [], - "is_filegroup": false, - "language": "c", - "name": "gpr_avl_test", - "src": [ - "test/core/gpr/avl_test.cc" - ], - "third_party": false, - "type": "target" - }, { "deps": [ "gpr", @@ -8171,7 +8172,6 @@ "src/core/lib/gpr/alloc.cc", "src/core/lib/gpr/arena.cc", "src/core/lib/gpr/atm.cc", - "src/core/lib/gpr/avl.cc", "src/core/lib/gpr/cmdline.cc", "src/core/lib/gpr/cpu_iphone.cc", "src/core/lib/gpr/cpu_linux.cc", @@ -8246,7 +8246,6 @@ "include/grpc/support/tls_msvc.h", "include/grpc/support/tls_pthread.h", "src/core/lib/gpr/arena.h", - "src/core/lib/gpr/avl.h", "src/core/lib/gpr/env.h", "src/core/lib/gpr/fork.h", "src/core/lib/gpr/mpscq.h", @@ -8295,7 +8294,6 @@ "include/grpc/support/tls_msvc.h", "include/grpc/support/tls_pthread.h", "src/core/lib/gpr/arena.h", - "src/core/lib/gpr/avl.h", "src/core/lib/gpr/env.h", "src/core/lib/gpr/fork.h", "src/core/lib/gpr/mpscq.h", @@ -8398,6 +8396,7 @@ "language": "c", "name": "grpc_base", "src": [ + "src/core/lib/avl/avl.cc", "src/core/lib/backoff/backoff.cc", "src/core/lib/channel/channel_args.cc", "src/core/lib/channel/channel_stack.cc", @@ -8556,6 +8555,7 @@ "include/grpc/slice_buffer.h", "include/grpc/status.h", "include/grpc/support/workaround_list.h", + "src/core/lib/avl/avl.h", "src/core/lib/backoff/backoff.h", "src/core/lib/channel/channel_args.h", "src/core/lib/channel/channel_stack.h", @@ -8698,6 +8698,7 @@ "include/grpc/slice_buffer.h", "include/grpc/status.h", "include/grpc/support/workaround_list.h", + "src/core/lib/avl/avl.h", "src/core/lib/backoff/backoff.h", "src/core/lib/channel/channel_args.h", "src/core/lib/channel/channel_stack.h", diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json index 87c0e260b3..077b4a8ed9 100644 --- a/tools/run_tests/generated/tests.json +++ b/tools/run_tests/generated/tests.json @@ -97,6 +97,30 @@ ], "uses_polling": false }, + { + "args": [], + "benchmark": false, + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "exclude_iomgrs": [], + "flaky": false, + "gtest": false, + "language": "c", + "name": "avl_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "uses_polling": false + }, { "args": [], "benchmark": false, @@ -719,30 +743,6 @@ ], "uses_polling": true }, - { - "args": [], - "benchmark": false, - "ci_platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "cpu_cost": 1.0, - "exclude_configs": [], - "exclude_iomgrs": [], - "flaky": false, - "gtest": false, - "language": "c", - "name": "gpr_avl_test", - "platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "uses_polling": false - }, { "args": [], "benchmark": false, -- cgit v1.2.3 From 804f339338695879b7529c6d7f1d46c6bfdec19d Mon Sep 17 00:00:00 2001 From: Vijay Pai Date: Thu, 8 Feb 2018 12:08:45 -0800 Subject: Fix header guard --- src/core/lib/avl/avl.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/core/lib/avl/avl.h b/src/core/lib/avl/avl.h index 03d9bfd7bd..df5d2e89ec 100644 --- a/src/core/lib/avl/avl.h +++ b/src/core/lib/avl/avl.h @@ -16,8 +16,8 @@ * */ -#ifndef GRPC_CORE_LIB_GRPC_AVL_H -#define GRPC_CORE_LIB_GRPC_AVL_H +#ifndef GRPC_CORE_LIB_AVL_AVL_H +#define GRPC_CORE_LIB_AVL_AVL_H #include @@ -89,4 +89,4 @@ int grpc_avl_maybe_get(grpc_avl avl, void* key, void** value, void* user_data); /** Return 1 if avl is empty, 0 otherwise */ int grpc_avl_is_empty(grpc_avl avl); -#endif /* GRPC_CORE_LIB_GRPC_AVL_H */ +#endif /* GRPC_CORE_LIB_AVL_AVL_H */ -- cgit v1.2.3