From 2867309dfd0f7366a232f37b5187b04dcd415c4b Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Mon, 9 Mar 2026 13:46:09 -0700 Subject: [PATCH 01/17] Pin submodule --- client-sdk-rust~ | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client-sdk-rust~ b/client-sdk-rust~ index 14c86b74..5150309f 160000 --- a/client-sdk-rust~ +++ b/client-sdk-rust~ @@ -1 +1 @@ -Subproject commit 14c86b74d68bdafb0a32ce71d13d53447a1ce549 +Subproject commit 5150309fd69f660d61c0b858921ae446ba6c2530 From bc226ecf0b5442eea46f98a68cf233fbc3978997 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Mon, 9 Mar 2026 13:48:33 -0700 Subject: [PATCH 02/17] Generate FFI proto --- BuildScripts~/generate_proto.sh | 3 +- Runtime/Scripts/Proto/AudioFrame.cs | 232 +- Runtime/Scripts/Proto/DataStream.cs | 913 +++- Runtime/Scripts/Proto/DataTrack.cs | 6069 ++++++++++++++++++++++++++ Runtime/Scripts/Proto/Ffi.cs | 1419 ++++-- Runtime/Scripts/Proto/Participant.cs | 734 +++- Runtime/Scripts/Proto/Room.cs | 2534 +++++++++-- Runtime/Scripts/Proto/Rpc.cs | 92 +- Runtime/Scripts/Proto/Track.cs | 143 +- 9 files changed, 11108 insertions(+), 1031 deletions(-) create mode 100644 Runtime/Scripts/Proto/DataTrack.cs diff --git a/BuildScripts~/generate_proto.sh b/BuildScripts~/generate_proto.sh index 2e5005b0..ebbcf047 100755 --- a/BuildScripts~/generate_proto.sh +++ b/BuildScripts~/generate_proto.sh @@ -17,4 +17,5 @@ protoc \ $FFI_PROTOCOL/e2ee.proto \ $FFI_PROTOCOL/stats.proto \ $FFI_PROTOCOL/rpc.proto \ - $FFI_PROTOCOL/data_stream.proto \ No newline at end of file + $FFI_PROTOCOL/data_stream.proto \ + $FFI_PROTOCOL/data_track.proto \ No newline at end of file diff --git a/Runtime/Scripts/Proto/AudioFrame.cs b/Runtime/Scripts/Proto/AudioFrame.cs index a6fedcec..fe8255c8 100644 --- a/Runtime/Scripts/Proto/AudioFrame.cs +++ b/Runtime/Scripts/Proto/AudioFrame.cs @@ -46,94 +46,94 @@ static AudioFrameReflection() { "aW9ucxITCgtzYW1wbGVfcmF0ZRgDIAIoDRIUCgxudW1fY2hhbm5lbHMYBCAC", "KA0SFQoNcXVldWVfc2l6ZV9tcxgFIAEoDSJJChZOZXdBdWRpb1NvdXJjZVJl", "c3BvbnNlEi8KBnNvdXJjZRgBIAIoCzIfLmxpdmVraXQucHJvdG8uT3duZWRB", - "dWRpb1NvdXJjZSJmChhDYXB0dXJlQXVkaW9GcmFtZVJlcXVlc3QSFQoNc291", - "cmNlX2hhbmRsZRgBIAIoBBIzCgZidWZmZXIYAiACKAsyIy5saXZla2l0LnBy", - "b3RvLkF1ZGlvRnJhbWVCdWZmZXJJbmZvIi0KGUNhcHR1cmVBdWRpb0ZyYW1l", - "UmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQiPAoZQ2FwdHVyZUF1ZGlvRnJh", - "bWVDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSIw", - "ChdDbGVhckF1ZGlvQnVmZmVyUmVxdWVzdBIVCg1zb3VyY2VfaGFuZGxlGAEg", - "AigEIhoKGENsZWFyQXVkaW9CdWZmZXJSZXNwb25zZSIaChhOZXdBdWRpb1Jl", - "c2FtcGxlclJlcXVlc3QiUgoZTmV3QXVkaW9SZXNhbXBsZXJSZXNwb25zZRI1", - "CglyZXNhbXBsZXIYASACKAsyIi5saXZla2l0LnByb3RvLk93bmVkQXVkaW9S", - "ZXNhbXBsZXIikwEKF1JlbWl4QW5kUmVzYW1wbGVSZXF1ZXN0EhgKEHJlc2Ft", - "cGxlcl9oYW5kbGUYASACKAQSMwoGYnVmZmVyGAIgAigLMiMubGl2ZWtpdC5w", - "cm90by5BdWRpb0ZyYW1lQnVmZmVySW5mbxIUCgxudW1fY2hhbm5lbHMYAyAC", - "KA0SEwoLc2FtcGxlX3JhdGUYBCACKA0iUAoYUmVtaXhBbmRSZXNhbXBsZVJl", - "c3BvbnNlEjQKBmJ1ZmZlchgBIAIoCzIkLmxpdmVraXQucHJvdG8uT3duZWRB", - "dWRpb0ZyYW1lQnVmZmVyIpUBCg1OZXdBcG1SZXF1ZXN0Eh4KFmVjaG9fY2Fu", - "Y2VsbGVyX2VuYWJsZWQYASACKAgSHwoXZ2Fpbl9jb250cm9sbGVyX2VuYWJs", - "ZWQYAiACKAgSIAoYaGlnaF9wYXNzX2ZpbHRlcl9lbmFibGVkGAMgAigIEiEK", - "GW5vaXNlX3N1cHByZXNzaW9uX2VuYWJsZWQYBCACKAgiNgoOTmV3QXBtUmVz", - "cG9uc2USJAoDYXBtGAEgAigLMhcubGl2ZWtpdC5wcm90by5Pd25lZEFwbSJ4", - "ChdBcG1Qcm9jZXNzU3RyZWFtUmVxdWVzdBISCgphcG1faGFuZGxlGAEgAigE", - "EhAKCGRhdGFfcHRyGAIgAigEEgwKBHNpemUYAyACKA0SEwoLc2FtcGxlX3Jh", - "dGUYBCACKA0SFAoMbnVtX2NoYW5uZWxzGAUgAigNIikKGEFwbVByb2Nlc3NT", - "dHJlYW1SZXNwb25zZRINCgVlcnJvchgBIAEoCSJ/Ch5BcG1Qcm9jZXNzUmV2", - "ZXJzZVN0cmVhbVJlcXVlc3QSEgoKYXBtX2hhbmRsZRgBIAIoBBIQCghkYXRh", - "X3B0chgCIAIoBBIMCgRzaXplGAMgAigNEhMKC3NhbXBsZV9yYXRlGAQgAigN", - "EhQKDG51bV9jaGFubmVscxgFIAIoDSIwCh9BcG1Qcm9jZXNzUmV2ZXJzZVN0", - "cmVhbVJlc3BvbnNlEg0KBWVycm9yGAEgASgJIkAKGEFwbVNldFN0cmVhbURl", - "bGF5UmVxdWVzdBISCgphcG1faGFuZGxlGAEgAigEEhAKCGRlbGF5X21zGAIg", - "AigFIioKGUFwbVNldFN0cmVhbURlbGF5UmVzcG9uc2USDQoFZXJyb3IYASAB", - "KAkinAIKFk5ld1NveFJlc2FtcGxlclJlcXVlc3QSEgoKaW5wdXRfcmF0ZRgB", - "IAIoARITCgtvdXRwdXRfcmF0ZRgCIAIoARIUCgxudW1fY2hhbm5lbHMYAyAC", - "KA0SPAoPaW5wdXRfZGF0YV90eXBlGAQgAigOMiMubGl2ZWtpdC5wcm90by5T", - "b3hSZXNhbXBsZXJEYXRhVHlwZRI9ChBvdXRwdXRfZGF0YV90eXBlGAUgAigO", - "MiMubGl2ZWtpdC5wcm90by5Tb3hSZXNhbXBsZXJEYXRhVHlwZRI3Cg5xdWFs", - "aXR5X3JlY2lwZRgGIAIoDjIfLmxpdmVraXQucHJvdG8uU294UXVhbGl0eVJl", - "Y2lwZRINCgVmbGFncxgHIAEoDSJsChdOZXdTb3hSZXNhbXBsZXJSZXNwb25z", - "ZRI1CglyZXNhbXBsZXIYASABKAsyIC5saXZla2l0LnByb3RvLk93bmVkU294", - "UmVzYW1wbGVySAASDwoFZXJyb3IYAiABKAlIAEIJCgdtZXNzYWdlIlMKF1B1", - "c2hTb3hSZXNhbXBsZXJSZXF1ZXN0EhgKEHJlc2FtcGxlcl9oYW5kbGUYASAC", - "KAQSEAoIZGF0YV9wdHIYAiACKAQSDAoEc2l6ZRgDIAIoDSJLChhQdXNoU294", - "UmVzYW1wbGVyUmVzcG9uc2USEgoKb3V0cHV0X3B0chgBIAIoBBIMCgRzaXpl", - "GAIgAigNEg0KBWVycm9yGAMgASgJIjQKGEZsdXNoU294UmVzYW1wbGVyUmVx", - "dWVzdBIYChByZXNhbXBsZXJfaGFuZGxlGAEgAigEIkwKGUZsdXNoU294UmVz", - "YW1wbGVyUmVzcG9uc2USEgoKb3V0cHV0X3B0chgBIAIoBBIMCgRzaXplGAIg", - "AigNEg0KBWVycm9yGAMgASgJInAKFEF1ZGlvRnJhbWVCdWZmZXJJbmZvEhAK", - "CGRhdGFfcHRyGAEgAigEEhQKDG51bV9jaGFubmVscxgCIAIoDRITCgtzYW1w", - "bGVfcmF0ZRgDIAIoDRIbChNzYW1wbGVzX3Blcl9jaGFubmVsGAQgAigNInkK", - "FU93bmVkQXVkaW9GcmFtZUJ1ZmZlchItCgZoYW5kbGUYASACKAsyHS5saXZl", - "a2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEjEKBGluZm8YAiACKAsyIy5saXZl", - "a2l0LnByb3RvLkF1ZGlvRnJhbWVCdWZmZXJJbmZvIj8KD0F1ZGlvU3RyZWFt", - "SW5mbxIsCgR0eXBlGAEgAigOMh4ubGl2ZWtpdC5wcm90by5BdWRpb1N0cmVh", - "bVR5cGUibwoQT3duZWRBdWRpb1N0cmVhbRItCgZoYW5kbGUYASACKAsyHS5s", - "aXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEiwKBGluZm8YAiACKAsyHi5s", - "aXZla2l0LnByb3RvLkF1ZGlvU3RyZWFtSW5mbyKfAQoQQXVkaW9TdHJlYW1F", - "dmVudBIVCg1zdHJlYW1faGFuZGxlGAEgAigEEjsKDmZyYW1lX3JlY2VpdmVk", - "GAIgASgLMiEubGl2ZWtpdC5wcm90by5BdWRpb0ZyYW1lUmVjZWl2ZWRIABIs", - "CgNlb3MYAyABKAsyHS5saXZla2l0LnByb3RvLkF1ZGlvU3RyZWFtRU9TSABC", - "CQoHbWVzc2FnZSJJChJBdWRpb0ZyYW1lUmVjZWl2ZWQSMwoFZnJhbWUYASAC", - "KAsyJC5saXZla2l0LnByb3RvLk93bmVkQXVkaW9GcmFtZUJ1ZmZlciIQCg5B", - "dWRpb1N0cmVhbUVPUyJlChJBdWRpb1NvdXJjZU9wdGlvbnMSGQoRZWNob19j", - "YW5jZWxsYXRpb24YASACKAgSGQoRbm9pc2Vfc3VwcHJlc3Npb24YAiACKAgS", - "GQoRYXV0b19nYWluX2NvbnRyb2wYAyACKAgiPwoPQXVkaW9Tb3VyY2VJbmZv", - "EiwKBHR5cGUYAiACKA4yHi5saXZla2l0LnByb3RvLkF1ZGlvU291cmNlVHlw", - "ZSJvChBPd25lZEF1ZGlvU291cmNlEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVr", - "aXQucHJvdG8uRmZpT3duZWRIYW5kbGUSLAoEaW5mbxgCIAIoCzIeLmxpdmVr", - "aXQucHJvdG8uQXVkaW9Tb3VyY2VJbmZvIhQKEkF1ZGlvUmVzYW1wbGVySW5m", - "byJ1ChNPd25lZEF1ZGlvUmVzYW1wbGVyEi0KBmhhbmRsZRgBIAIoCzIdLmxp", - "dmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUSLwoEaW5mbxgCIAIoCzIhLmxp", - "dmVraXQucHJvdG8uQXVkaW9SZXNhbXBsZXJJbmZvIjkKCE93bmVkQXBtEi0K", - "BmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUi", - "EgoQU294UmVzYW1wbGVySW5mbyJxChFPd25lZFNveFJlc2FtcGxlchItCgZo", - "YW5kbGUYASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEi0K", - "BGluZm8YAiACKAsyHy5saXZla2l0LnByb3RvLlNveFJlc2FtcGxlckluZm8i", - "XAocTG9hZEF1ZGlvRmlsdGVyUGx1Z2luUmVxdWVzdBITCgtwbHVnaW5fcGF0", - "aBgBIAIoCRIUCgxkZXBlbmRlbmNpZXMYAiADKAkSEQoJbW9kdWxlX2lkGAMg", - "AigJIi4KHUxvYWRBdWRpb0ZpbHRlclBsdWdpblJlc3BvbnNlEg0KBWVycm9y", - "GAEgASgJKkoKFFNveFJlc2FtcGxlckRhdGFUeXBlEhgKFFNPWFJfREFUQVRZ", - "UEVfSU5UMTZJEAASGAoUU09YUl9EQVRBVFlQRV9JTlQxNlMQASqLAQoQU294", - "UXVhbGl0eVJlY2lwZRIWChJTT1hSX1FVQUxJVFlfUVVJQ0sQABIUChBTT1hS", - "X1FVQUxJVFlfTE9XEAESFwoTU09YUl9RVUFMSVRZX01FRElVTRACEhUKEVNP", - "WFJfUVVBTElUWV9ISUdIEAMSGQoVU09YUl9RVUFMSVRZX1ZFUllISUdIEAQq", - "lwEKC1NveEZsYWdCaXRzEhYKElNPWFJfUk9MTE9GRl9TTUFMTBAAEhcKE1NP", - "WFJfUk9MTE9GRl9NRURJVU0QARIVChFTT1hSX1JPTExPRkZfTk9ORRACEhgK", - "FFNPWFJfSElHSF9QUkVDX0NMT0NLEAMSGQoVU09YUl9ET1VCTEVfUFJFQ0lT", - "SU9OEAQSCwoHU09YUl9WUhAFKkEKD0F1ZGlvU3RyZWFtVHlwZRIXChNBVURJ", - "T19TVFJFQU1fTkFUSVZFEAASFQoRQVVESU9fU1RSRUFNX0hUTUwQASoqCg9B", - "dWRpb1NvdXJjZVR5cGUSFwoTQVVESU9fU09VUkNFX05BVElWRRAAQhCqAg1M", - "aXZlS2l0LlByb3Rv")); + "dWRpb1NvdXJjZSKAAQoYQ2FwdHVyZUF1ZGlvRnJhbWVSZXF1ZXN0EhUKDXNv", + "dXJjZV9oYW5kbGUYASACKAQSMwoGYnVmZmVyGAIgAigLMiMubGl2ZWtpdC5w", + "cm90by5BdWRpb0ZyYW1lQnVmZmVySW5mbxIYChByZXF1ZXN0X2FzeW5jX2lk", + "GAMgASgEIi0KGUNhcHR1cmVBdWRpb0ZyYW1lUmVzcG9uc2USEAoIYXN5bmNf", + "aWQYASACKAQiPAoZQ2FwdHVyZUF1ZGlvRnJhbWVDYWxsYmFjaxIQCghhc3lu", + "Y19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSIwChdDbGVhckF1ZGlvQnVmZmVy", + "UmVxdWVzdBIVCg1zb3VyY2VfaGFuZGxlGAEgAigEIhoKGENsZWFyQXVkaW9C", + "dWZmZXJSZXNwb25zZSIaChhOZXdBdWRpb1Jlc2FtcGxlclJlcXVlc3QiUgoZ", + "TmV3QXVkaW9SZXNhbXBsZXJSZXNwb25zZRI1CglyZXNhbXBsZXIYASACKAsy", + "Ii5saXZla2l0LnByb3RvLk93bmVkQXVkaW9SZXNhbXBsZXIikwEKF1JlbWl4", + "QW5kUmVzYW1wbGVSZXF1ZXN0EhgKEHJlc2FtcGxlcl9oYW5kbGUYASACKAQS", + "MwoGYnVmZmVyGAIgAigLMiMubGl2ZWtpdC5wcm90by5BdWRpb0ZyYW1lQnVm", + "ZmVySW5mbxIUCgxudW1fY2hhbm5lbHMYAyACKA0SEwoLc2FtcGxlX3JhdGUY", + "BCACKA0iUAoYUmVtaXhBbmRSZXNhbXBsZVJlc3BvbnNlEjQKBmJ1ZmZlchgB", + "IAIoCzIkLmxpdmVraXQucHJvdG8uT3duZWRBdWRpb0ZyYW1lQnVmZmVyIpUB", + "Cg1OZXdBcG1SZXF1ZXN0Eh4KFmVjaG9fY2FuY2VsbGVyX2VuYWJsZWQYASAC", + "KAgSHwoXZ2Fpbl9jb250cm9sbGVyX2VuYWJsZWQYAiACKAgSIAoYaGlnaF9w", + "YXNzX2ZpbHRlcl9lbmFibGVkGAMgAigIEiEKGW5vaXNlX3N1cHByZXNzaW9u", + "X2VuYWJsZWQYBCACKAgiNgoOTmV3QXBtUmVzcG9uc2USJAoDYXBtGAEgAigL", + "MhcubGl2ZWtpdC5wcm90by5Pd25lZEFwbSJ4ChdBcG1Qcm9jZXNzU3RyZWFt", + "UmVxdWVzdBISCgphcG1faGFuZGxlGAEgAigEEhAKCGRhdGFfcHRyGAIgAigE", + "EgwKBHNpemUYAyACKA0SEwoLc2FtcGxlX3JhdGUYBCACKA0SFAoMbnVtX2No", + "YW5uZWxzGAUgAigNIikKGEFwbVByb2Nlc3NTdHJlYW1SZXNwb25zZRINCgVl", + "cnJvchgBIAEoCSJ/Ch5BcG1Qcm9jZXNzUmV2ZXJzZVN0cmVhbVJlcXVlc3QS", + "EgoKYXBtX2hhbmRsZRgBIAIoBBIQCghkYXRhX3B0chgCIAIoBBIMCgRzaXpl", + "GAMgAigNEhMKC3NhbXBsZV9yYXRlGAQgAigNEhQKDG51bV9jaGFubmVscxgF", + "IAIoDSIwCh9BcG1Qcm9jZXNzUmV2ZXJzZVN0cmVhbVJlc3BvbnNlEg0KBWVy", + "cm9yGAEgASgJIkAKGEFwbVNldFN0cmVhbURlbGF5UmVxdWVzdBISCgphcG1f", + "aGFuZGxlGAEgAigEEhAKCGRlbGF5X21zGAIgAigFIioKGUFwbVNldFN0cmVh", + "bURlbGF5UmVzcG9uc2USDQoFZXJyb3IYASABKAkinAIKFk5ld1NveFJlc2Ft", + "cGxlclJlcXVlc3QSEgoKaW5wdXRfcmF0ZRgBIAIoARITCgtvdXRwdXRfcmF0", + "ZRgCIAIoARIUCgxudW1fY2hhbm5lbHMYAyACKA0SPAoPaW5wdXRfZGF0YV90", + "eXBlGAQgAigOMiMubGl2ZWtpdC5wcm90by5Tb3hSZXNhbXBsZXJEYXRhVHlw", + "ZRI9ChBvdXRwdXRfZGF0YV90eXBlGAUgAigOMiMubGl2ZWtpdC5wcm90by5T", + "b3hSZXNhbXBsZXJEYXRhVHlwZRI3Cg5xdWFsaXR5X3JlY2lwZRgGIAIoDjIf", + "LmxpdmVraXQucHJvdG8uU294UXVhbGl0eVJlY2lwZRINCgVmbGFncxgHIAEo", + "DSJsChdOZXdTb3hSZXNhbXBsZXJSZXNwb25zZRI1CglyZXNhbXBsZXIYASAB", + "KAsyIC5saXZla2l0LnByb3RvLk93bmVkU294UmVzYW1wbGVySAASDwoFZXJy", + "b3IYAiABKAlIAEIJCgdtZXNzYWdlIlMKF1B1c2hTb3hSZXNhbXBsZXJSZXF1", + "ZXN0EhgKEHJlc2FtcGxlcl9oYW5kbGUYASACKAQSEAoIZGF0YV9wdHIYAiAC", + "KAQSDAoEc2l6ZRgDIAIoDSJLChhQdXNoU294UmVzYW1wbGVyUmVzcG9uc2US", + "EgoKb3V0cHV0X3B0chgBIAIoBBIMCgRzaXplGAIgAigNEg0KBWVycm9yGAMg", + "ASgJIjQKGEZsdXNoU294UmVzYW1wbGVyUmVxdWVzdBIYChByZXNhbXBsZXJf", + "aGFuZGxlGAEgAigEIkwKGUZsdXNoU294UmVzYW1wbGVyUmVzcG9uc2USEgoK", + "b3V0cHV0X3B0chgBIAIoBBIMCgRzaXplGAIgAigNEg0KBWVycm9yGAMgASgJ", + "InAKFEF1ZGlvRnJhbWVCdWZmZXJJbmZvEhAKCGRhdGFfcHRyGAEgAigEEhQK", + "DG51bV9jaGFubmVscxgCIAIoDRITCgtzYW1wbGVfcmF0ZRgDIAIoDRIbChNz", + "YW1wbGVzX3Blcl9jaGFubmVsGAQgAigNInkKFU93bmVkQXVkaW9GcmFtZUJ1", + "ZmZlchItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVk", + "SGFuZGxlEjEKBGluZm8YAiACKAsyIy5saXZla2l0LnByb3RvLkF1ZGlvRnJh", + "bWVCdWZmZXJJbmZvIj8KD0F1ZGlvU3RyZWFtSW5mbxIsCgR0eXBlGAEgAigO", + "Mh4ubGl2ZWtpdC5wcm90by5BdWRpb1N0cmVhbVR5cGUibwoQT3duZWRBdWRp", + "b1N0cmVhbRItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93", + "bmVkSGFuZGxlEiwKBGluZm8YAiACKAsyHi5saXZla2l0LnByb3RvLkF1ZGlv", + "U3RyZWFtSW5mbyKfAQoQQXVkaW9TdHJlYW1FdmVudBIVCg1zdHJlYW1faGFu", + "ZGxlGAEgAigEEjsKDmZyYW1lX3JlY2VpdmVkGAIgASgLMiEubGl2ZWtpdC5w", + "cm90by5BdWRpb0ZyYW1lUmVjZWl2ZWRIABIsCgNlb3MYAyABKAsyHS5saXZl", + "a2l0LnByb3RvLkF1ZGlvU3RyZWFtRU9TSABCCQoHbWVzc2FnZSJJChJBdWRp", + "b0ZyYW1lUmVjZWl2ZWQSMwoFZnJhbWUYASACKAsyJC5saXZla2l0LnByb3Rv", + "Lk93bmVkQXVkaW9GcmFtZUJ1ZmZlciIQCg5BdWRpb1N0cmVhbUVPUyJlChJB", + "dWRpb1NvdXJjZU9wdGlvbnMSGQoRZWNob19jYW5jZWxsYXRpb24YASACKAgS", + "GQoRbm9pc2Vfc3VwcHJlc3Npb24YAiACKAgSGQoRYXV0b19nYWluX2NvbnRy", + "b2wYAyACKAgiPwoPQXVkaW9Tb3VyY2VJbmZvEiwKBHR5cGUYAiACKA4yHi5s", + "aXZla2l0LnByb3RvLkF1ZGlvU291cmNlVHlwZSJvChBPd25lZEF1ZGlvU291", + "cmNlEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3duZWRI", + "YW5kbGUSLAoEaW5mbxgCIAIoCzIeLmxpdmVraXQucHJvdG8uQXVkaW9Tb3Vy", + "Y2VJbmZvIhQKEkF1ZGlvUmVzYW1wbGVySW5mbyJ1ChNPd25lZEF1ZGlvUmVz", + "YW1wbGVyEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3du", + "ZWRIYW5kbGUSLwoEaW5mbxgCIAIoCzIhLmxpdmVraXQucHJvdG8uQXVkaW9S", + "ZXNhbXBsZXJJbmZvIjkKCE93bmVkQXBtEi0KBmhhbmRsZRgBIAIoCzIdLmxp", + "dmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUiEgoQU294UmVzYW1wbGVySW5m", + "byJxChFPd25lZFNveFJlc2FtcGxlchItCgZoYW5kbGUYASACKAsyHS5saXZl", + "a2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEi0KBGluZm8YAiACKAsyHy5saXZl", + "a2l0LnByb3RvLlNveFJlc2FtcGxlckluZm8iXAocTG9hZEF1ZGlvRmlsdGVy", + "UGx1Z2luUmVxdWVzdBITCgtwbHVnaW5fcGF0aBgBIAIoCRIUCgxkZXBlbmRl", + "bmNpZXMYAiADKAkSEQoJbW9kdWxlX2lkGAMgAigJIi4KHUxvYWRBdWRpb0Zp", + "bHRlclBsdWdpblJlc3BvbnNlEg0KBWVycm9yGAEgASgJKkoKFFNveFJlc2Ft", + "cGxlckRhdGFUeXBlEhgKFFNPWFJfREFUQVRZUEVfSU5UMTZJEAASGAoUU09Y", + "Ul9EQVRBVFlQRV9JTlQxNlMQASqLAQoQU294UXVhbGl0eVJlY2lwZRIWChJT", + "T1hSX1FVQUxJVFlfUVVJQ0sQABIUChBTT1hSX1FVQUxJVFlfTE9XEAESFwoT", + "U09YUl9RVUFMSVRZX01FRElVTRACEhUKEVNPWFJfUVVBTElUWV9ISUdIEAMS", + "GQoVU09YUl9RVUFMSVRZX1ZFUllISUdIEAQqlwEKC1NveEZsYWdCaXRzEhYK", + "ElNPWFJfUk9MTE9GRl9TTUFMTBAAEhcKE1NPWFJfUk9MTE9GRl9NRURJVU0Q", + "ARIVChFTT1hSX1JPTExPRkZfTk9ORRACEhgKFFNPWFJfSElHSF9QUkVDX0NM", + "T0NLEAMSGQoVU09YUl9ET1VCTEVfUFJFQ0lTSU9OEAQSCwoHU09YUl9WUhAF", + "KkEKD0F1ZGlvU3RyZWFtVHlwZRIXChNBVURJT19TVFJFQU1fTkFUSVZFEAAS", + "FQoRQVVESU9fU1RSRUFNX0hUTUwQASoqCg9BdWRpb1NvdXJjZVR5cGUSFwoT", + "QVVESU9fU09VUkNFX05BVElWRRAAQhCqAg1MaXZlS2l0LlByb3Rv")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.SoxResamplerDataType), typeof(global::LiveKit.Proto.SoxQualityRecipe), typeof(global::LiveKit.Proto.SoxFlagBits), typeof(global::LiveKit.Proto.AudioStreamType), typeof(global::LiveKit.Proto.AudioSourceType), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -143,7 +143,7 @@ static AudioFrameReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioStreamFromParticipantResponse), global::LiveKit.Proto.AudioStreamFromParticipantResponse.Parser, new[]{ "Stream" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewAudioSourceRequest), global::LiveKit.Proto.NewAudioSourceRequest.Parser, new[]{ "Type", "Options", "SampleRate", "NumChannels", "QueueSizeMs" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewAudioSourceResponse), global::LiveKit.Proto.NewAudioSourceResponse.Parser, new[]{ "Source" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CaptureAudioFrameRequest), global::LiveKit.Proto.CaptureAudioFrameRequest.Parser, new[]{ "SourceHandle", "Buffer" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CaptureAudioFrameRequest), global::LiveKit.Proto.CaptureAudioFrameRequest.Parser, new[]{ "SourceHandle", "Buffer", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CaptureAudioFrameResponse), global::LiveKit.Proto.CaptureAudioFrameResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CaptureAudioFrameCallback), global::LiveKit.Proto.CaptureAudioFrameCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ClearAudioBufferRequest), global::LiveKit.Proto.ClearAudioBufferRequest.Parser, new[]{ "SourceHandle" }, null, null, null, null), @@ -2395,7 +2395,7 @@ public void MergeFrom(pb::CodedInputStream input) { } /// - /// Push a frame to an AudioSource + /// Push a frame to an AudioSource /// The data provided must be available as long as the client receive the callback. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] @@ -2437,6 +2437,7 @@ public CaptureAudioFrameRequest(CaptureAudioFrameRequest other) : this() { _hasBits0 = other._hasBits0; sourceHandle_ = other.sourceHandle_; buffer_ = other.buffer_ != null ? other.buffer_.Clone() : null; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -2485,6 +2486,33 @@ public void ClearSourceHandle() { } } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 3; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -2502,6 +2530,7 @@ public bool Equals(CaptureAudioFrameRequest other) { } if (SourceHandle != other.SourceHandle) return false; if (!object.Equals(Buffer, other.Buffer)) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2511,6 +2540,7 @@ public override int GetHashCode() { int hash = 1; if (HasSourceHandle) hash ^= SourceHandle.GetHashCode(); if (buffer_ != null) hash ^= Buffer.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -2537,6 +2567,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteMessage(Buffer); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2555,6 +2589,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteMessage(Buffer); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2571,6 +2609,9 @@ public int CalculateSize() { if (buffer_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Buffer); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2592,6 +2633,9 @@ public void MergeFrom(CaptureAudioFrameRequest other) { } Buffer.MergeFrom(other.Buffer); } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -2622,6 +2666,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Buffer); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -2652,6 +2700,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Buffer); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } diff --git a/Runtime/Scripts/Proto/DataStream.cs b/Runtime/Scripts/Proto/DataStream.cs index da037c6c..68c9114b 100644 --- a/Runtime/Scripts/Proto/DataStream.cs +++ b/Runtime/Scripts/Proto/DataStream.cs @@ -30,142 +30,149 @@ static DataStreamReflection() { "BGluZm8YAiACKAsyHS5saXZla2l0LnByb3RvLlRleHRTdHJlYW1JbmZvIj8K", "JlRleHRTdHJlYW1SZWFkZXJSZWFkSW5jcmVtZW50YWxSZXF1ZXN0EhUKDXJl", "YWRlcl9oYW5kbGUYASACKAQiKQonVGV4dFN0cmVhbVJlYWRlclJlYWRJbmNy", - "ZW1lbnRhbFJlc3BvbnNlIjcKHlRleHRTdHJlYW1SZWFkZXJSZWFkQWxsUmVx", - "dWVzdBIVCg1yZWFkZXJfaGFuZGxlGAEgAigEIjMKH1RleHRTdHJlYW1SZWFk", - "ZXJSZWFkQWxsUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQifQofVGV4dFN0", - "cmVhbVJlYWRlclJlYWRBbGxDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIR", - "Cgdjb250ZW50GAIgASgJSAASKwoFZXJyb3IYAyABKAsyGi5saXZla2l0LnBy", - "b3RvLlN0cmVhbUVycm9ySABCCAoGcmVzdWx0IrMBChVUZXh0U3RyZWFtUmVh", - "ZGVyRXZlbnQSFQoNcmVhZGVyX2hhbmRsZRgBIAIoBBJGCg5jaHVua19yZWNl", - "aXZlZBgCIAEoCzIsLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbVJlYWRlckNo", - "dW5rUmVjZWl2ZWRIABIxCgNlb3MYAyABKAsyIi5saXZla2l0LnByb3RvLlRl", - "eHRTdHJlYW1SZWFkZXJFT1NIAEIICgZkZXRhaWwiMAodVGV4dFN0cmVhbVJl", - "YWRlckNodW5rUmVjZWl2ZWQSDwoHY29udGVudBgBIAIoCSJAChNUZXh0U3Ry", - "ZWFtUmVhZGVyRU9TEikKBWVycm9yGAEgASgLMhoubGl2ZWtpdC5wcm90by5T", - "dHJlYW1FcnJvciJzChVPd25lZEJ5dGVTdHJlYW1SZWFkZXISLQoGaGFuZGxl", - "GAEgAigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25lZEhhbmRsZRIrCgRpbmZv", - "GAIgAigLMh0ubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtSW5mbyI/CiZCeXRl", - "U3RyZWFtUmVhZGVyUmVhZEluY3JlbWVudGFsUmVxdWVzdBIVCg1yZWFkZXJf", - "aGFuZGxlGAEgAigEIikKJ0J5dGVTdHJlYW1SZWFkZXJSZWFkSW5jcmVtZW50", - "YWxSZXNwb25zZSI3Ch5CeXRlU3RyZWFtUmVhZGVyUmVhZEFsbFJlcXVlc3QS", - "FQoNcmVhZGVyX2hhbmRsZRgBIAIoBCIzCh9CeXRlU3RyZWFtUmVhZGVyUmVh", - "ZEFsbFJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIn0KH0J5dGVTdHJlYW1S", - "ZWFkZXJSZWFkQWxsQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSEQoHY29u", - "dGVudBgCIAEoDEgAEisKBWVycm9yGAMgASgLMhoubGl2ZWtpdC5wcm90by5T", - "dHJlYW1FcnJvckgAQggKBnJlc3VsdCJlCiJCeXRlU3RyZWFtUmVhZGVyV3Jp", - "dGVUb0ZpbGVSZXF1ZXN0EhUKDXJlYWRlcl9oYW5kbGUYASACKAQSEQoJZGly", - "ZWN0b3J5GAMgASgJEhUKDW5hbWVfb3ZlcnJpZGUYBCABKAkiNwojQnl0ZVN0", - "cmVhbVJlYWRlcldyaXRlVG9GaWxlUmVzcG9uc2USEAoIYXN5bmNfaWQYASAC", - "KAQigwEKI0J5dGVTdHJlYW1SZWFkZXJXcml0ZVRvRmlsZUNhbGxiYWNrEhAK", - "CGFzeW5jX2lkGAEgAigEEhMKCWZpbGVfcGF0aBgCIAEoCUgAEisKBWVycm9y", - "GAMgASgLMhoubGl2ZWtpdC5wcm90by5TdHJlYW1FcnJvckgAQggKBnJlc3Vs", - "dCKzAQoVQnl0ZVN0cmVhbVJlYWRlckV2ZW50EhUKDXJlYWRlcl9oYW5kbGUY", - "ASACKAQSRgoOY2h1bmtfcmVjZWl2ZWQYAiABKAsyLC5saXZla2l0LnByb3Rv", - "LkJ5dGVTdHJlYW1SZWFkZXJDaHVua1JlY2VpdmVkSAASMQoDZW9zGAMgASgL", - "MiIubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyRU9TSABCCAoGZGV0", - "YWlsIjAKHUJ5dGVTdHJlYW1SZWFkZXJDaHVua1JlY2VpdmVkEg8KB2NvbnRl", - "bnQYASACKAwiQAoTQnl0ZVN0cmVhbVJlYWRlckVPUxIpCgVlcnJvchgBIAEo", - "CzIaLmxpdmVraXQucHJvdG8uU3RyZWFtRXJyb3IifwoVU3RyZWFtU2VuZEZp", - "bGVSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIx", - "CgdvcHRpb25zGAIgAigLMiAubGl2ZWtpdC5wcm90by5TdHJlYW1CeXRlT3B0", - "aW9ucxIRCglmaWxlX3BhdGgYAyACKAkiKgoWU3RyZWFtU2VuZEZpbGVSZXNw", - "b25zZRIQCghhc3luY19pZBgBIAIoBCKQAQoWU3RyZWFtU2VuZEZpbGVDYWxs", - "YmFjaxIQCghhc3luY19pZBgBIAIoBBItCgRpbmZvGAIgASgLMh0ubGl2ZWtp", - "dC5wcm90by5CeXRlU3RyZWFtSW5mb0gAEisKBWVycm9yGAMgASgLMhoubGl2", - "ZWtpdC5wcm90by5TdHJlYW1FcnJvckgAQggKBnJlc3VsdCJ8ChZTdHJlYW1T", - "ZW5kQnl0ZXNSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgB", - "IAIoBBIxCgdvcHRpb25zGAIgAigLMiAubGl2ZWtpdC5wcm90by5TdHJlYW1C", - "eXRlT3B0aW9ucxINCgVieXRlcxgDIAIoDCIrChdTdHJlYW1TZW5kQnl0ZXNS", - "ZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCKRAQoXU3RyZWFtU2VuZEJ5dGVz", - "Q2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSLQoEaW5mbxgCIAEoCzIdLmxp", - "dmVraXQucHJvdG8uQnl0ZVN0cmVhbUluZm9IABIrCgVlcnJvchgDIAEoCzIa", - "LmxpdmVraXQucHJvdG8uU3RyZWFtRXJyb3JIAEIICgZyZXN1bHQiegoVU3Ry", - "ZWFtU2VuZFRleHRSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRs", - "ZRgBIAIoBBIxCgdvcHRpb25zGAIgAigLMiAubGl2ZWtpdC5wcm90by5TdHJl", - "YW1UZXh0T3B0aW9ucxIMCgR0ZXh0GAMgAigJIioKFlN0cmVhbVNlbmRUZXh0", - "UmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQikAEKFlN0cmVhbVNlbmRUZXh0", - "Q2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSLQoEaW5mbxgCIAEoCzIdLmxp", - "dmVraXQucHJvdG8uVGV4dFN0cmVhbUluZm9IABIrCgVlcnJvchgDIAEoCzIa", - "LmxpdmVraXQucHJvdG8uU3RyZWFtRXJyb3JIAEIICgZyZXN1bHQicwoVT3du", - "ZWRCeXRlU3RyZWFtV3JpdGVyEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQu", - "cHJvdG8uRmZpT3duZWRIYW5kbGUSKwoEaW5mbxgCIAIoCzIdLmxpdmVraXQu", - "cHJvdG8uQnl0ZVN0cmVhbUluZm8ibAoVQnl0ZVN0cmVhbU9wZW5SZXF1ZXN0", - "EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIxCgdvcHRpb25z", - "GAIgAigLMiAubGl2ZWtpdC5wcm90by5TdHJlYW1CeXRlT3B0aW9ucyIqChZC", - "eXRlU3RyZWFtT3BlblJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIpkBChZC", - "eXRlU3RyZWFtT3BlbkNhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEjYKBndy", - "aXRlchgCIAEoCzIkLmxpdmVraXQucHJvdG8uT3duZWRCeXRlU3RyZWFtV3Jp", - "dGVySAASKwoFZXJyb3IYAyABKAsyGi5saXZla2l0LnByb3RvLlN0cmVhbUVy", - "cm9ySABCCAoGcmVzdWx0IkQKHEJ5dGVTdHJlYW1Xcml0ZXJXcml0ZVJlcXVl", - "c3QSFQoNd3JpdGVyX2hhbmRsZRgBIAIoBBINCgVieXRlcxgCIAIoDCIxCh1C", - "eXRlU3RyZWFtV3JpdGVyV3JpdGVSZXNwb25zZRIQCghhc3luY19pZBgBIAIo", - "BCJcCh1CeXRlU3RyZWFtV3JpdGVyV3JpdGVDYWxsYmFjaxIQCghhc3luY19p", - "ZBgBIAIoBBIpCgVlcnJvchgCIAEoCzIaLmxpdmVraXQucHJvdG8uU3RyZWFt", - "RXJyb3IiRQocQnl0ZVN0cmVhbVdyaXRlckNsb3NlUmVxdWVzdBIVCg13cml0", - "ZXJfaGFuZGxlGAEgAigEEg4KBnJlYXNvbhgCIAEoCSIxCh1CeXRlU3RyZWFt", - "V3JpdGVyQ2xvc2VSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCJcCh1CeXRl", - "U3RyZWFtV3JpdGVyQ2xvc2VDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIp", - "CgVlcnJvchgCIAEoCzIaLmxpdmVraXQucHJvdG8uU3RyZWFtRXJyb3IicwoV", - "T3duZWRUZXh0U3RyZWFtV3JpdGVyEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVr", - "aXQucHJvdG8uRmZpT3duZWRIYW5kbGUSKwoEaW5mbxgCIAIoCzIdLmxpdmVr", - "aXQucHJvdG8uVGV4dFN0cmVhbUluZm8ibAoVVGV4dFN0cmVhbU9wZW5SZXF1", - "ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIxCgdvcHRp", - "b25zGAIgAigLMiAubGl2ZWtpdC5wcm90by5TdHJlYW1UZXh0T3B0aW9ucyIq", - "ChZUZXh0U3RyZWFtT3BlblJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIpkB", - "ChZUZXh0U3RyZWFtT3BlbkNhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEjYK", - "BndyaXRlchgCIAEoCzIkLmxpdmVraXQucHJvdG8uT3duZWRUZXh0U3RyZWFt", - "V3JpdGVySAASKwoFZXJyb3IYAyABKAsyGi5saXZla2l0LnByb3RvLlN0cmVh", - "bUVycm9ySABCCAoGcmVzdWx0IkMKHFRleHRTdHJlYW1Xcml0ZXJXcml0ZVJl", - "cXVlc3QSFQoNd3JpdGVyX2hhbmRsZRgBIAIoBBIMCgR0ZXh0GAIgAigJIjEK", - "HVRleHRTdHJlYW1Xcml0ZXJXcml0ZVJlc3BvbnNlEhAKCGFzeW5jX2lkGAEg", - "AigEIlwKHVRleHRTdHJlYW1Xcml0ZXJXcml0ZUNhbGxiYWNrEhAKCGFzeW5j", - "X2lkGAEgAigEEikKBWVycm9yGAIgASgLMhoubGl2ZWtpdC5wcm90by5TdHJl", - "YW1FcnJvciJFChxUZXh0U3RyZWFtV3JpdGVyQ2xvc2VSZXF1ZXN0EhUKDXdy", - "aXRlcl9oYW5kbGUYASACKAQSDgoGcmVhc29uGAIgASgJIjEKHVRleHRTdHJl", - "YW1Xcml0ZXJDbG9zZVJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIlwKHVRl", - "eHRTdHJlYW1Xcml0ZXJDbG9zZUNhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigE", - "EikKBWVycm9yGAIgASgLMhoubGl2ZWtpdC5wcm90by5TdHJlYW1FcnJvciKB", - "BAoOVGV4dFN0cmVhbUluZm8SEQoJc3RyZWFtX2lkGAEgAigJEhEKCXRpbWVz", - "dGFtcBgCIAIoAxIRCgltaW1lX3R5cGUYAyACKAkSDQoFdG9waWMYBCACKAkS", - "FAoMdG90YWxfbGVuZ3RoGAUgASgEEkEKCmF0dHJpYnV0ZXMYBiADKAsyLS5s", - "aXZla2l0LnByb3RvLlRleHRTdHJlYW1JbmZvLkF0dHJpYnV0ZXNFbnRyeRJD", - "Cg5vcGVyYXRpb25fdHlwZRgHIAIoDjIrLmxpdmVraXQucHJvdG8uVGV4dFN0", - "cmVhbUluZm8uT3BlcmF0aW9uVHlwZRIPCgd2ZXJzaW9uGAggASgFEhoKEnJl", - "cGx5X3RvX3N0cmVhbV9pZBgJIAEoCRIbChNhdHRhY2hlZF9zdHJlYW1faWRz", - "GAogAygJEhEKCWdlbmVyYXRlZBgLIAEoCBI2Cg9lbmNyeXB0aW9uX3R5cGUY", - "DCACKA4yHS5saXZla2l0LnByb3RvLkVuY3J5cHRpb25UeXBlGjEKD0F0dHJp", - "YnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIkEK", - "DU9wZXJhdGlvblR5cGUSCgoGQ1JFQVRFEAASCgoGVVBEQVRFEAESCgoGREVM", - "RVRFEAISDAoIUkVBQ1RJT04QAyKqAgoOQnl0ZVN0cmVhbUluZm8SEQoJc3Ry", - "ZWFtX2lkGAEgAigJEhEKCXRpbWVzdGFtcBgCIAIoAxIRCgltaW1lX3R5cGUY", - "AyACKAkSDQoFdG9waWMYBCACKAkSFAoMdG90YWxfbGVuZ3RoGAUgASgEEkEK", - "CmF0dHJpYnV0ZXMYBiADKAsyLS5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1J", - "bmZvLkF0dHJpYnV0ZXNFbnRyeRIMCgRuYW1lGAcgAigJEjYKD2VuY3J5cHRp", - "b25fdHlwZRgIIAIoDjIdLmxpdmVraXQucHJvdG8uRW5jcnlwdGlvblR5cGUa", - "MQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEo", - "CToCOAEi6QIKEVN0cmVhbVRleHRPcHRpb25zEg0KBXRvcGljGAEgAigJEkQK", - "CmF0dHJpYnV0ZXMYAiADKAsyMC5saXZla2l0LnByb3RvLlN0cmVhbVRleHRP", - "cHRpb25zLkF0dHJpYnV0ZXNFbnRyeRIeChZkZXN0aW5hdGlvbl9pZGVudGl0", - "aWVzGAMgAygJEgoKAmlkGAQgASgJEkMKDm9wZXJhdGlvbl90eXBlGAUgASgO", - "MisubGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtSW5mby5PcGVyYXRpb25UeXBl", - "Eg8KB3ZlcnNpb24YBiABKAUSGgoScmVwbHlfdG9fc3RyZWFtX2lkGAcgASgJ", - "EhsKE2F0dGFjaGVkX3N0cmVhbV9pZHMYCCADKAkSEQoJZ2VuZXJhdGVkGAkg", - "ASgIGjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUY", - "AiABKAk6AjgBIv4BChFTdHJlYW1CeXRlT3B0aW9ucxINCgV0b3BpYxgBIAIo", - "CRJECgphdHRyaWJ1dGVzGAIgAygLMjAubGl2ZWtpdC5wcm90by5TdHJlYW1C", - "eXRlT3B0aW9ucy5BdHRyaWJ1dGVzRW50cnkSHgoWZGVzdGluYXRpb25faWRl", - "bnRpdGllcxgDIAMoCRIKCgJpZBgEIAEoCRIMCgRuYW1lGAUgASgJEhEKCW1p", - "bWVfdHlwZRgGIAEoCRIUCgx0b3RhbF9sZW5ndGgYByABKAQaMQoPQXR0cmli", - "dXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiIgoL", - "U3RyZWFtRXJyb3ISEwoLZGVzY3JpcHRpb24YASACKAlCEKoCDUxpdmVLaXQu", - "UHJvdG8=")); + "ZW1lbnRhbFJlc3BvbnNlIlEKHlRleHRTdHJlYW1SZWFkZXJSZWFkQWxsUmVx", + "dWVzdBIVCg1yZWFkZXJfaGFuZGxlGAEgAigEEhgKEHJlcXVlc3RfYXN5bmNf", + "aWQYAiABKAQiMwofVGV4dFN0cmVhbVJlYWRlclJlYWRBbGxSZXNwb25zZRIQ", + "Cghhc3luY19pZBgBIAIoBCJ9Ch9UZXh0U3RyZWFtUmVhZGVyUmVhZEFsbENh", + "bGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEhEKB2NvbnRlbnQYAiABKAlIABIr", + "CgVlcnJvchgDIAEoCzIaLmxpdmVraXQucHJvdG8uU3RyZWFtRXJyb3JIAEII", + "CgZyZXN1bHQiswEKFVRleHRTdHJlYW1SZWFkZXJFdmVudBIVCg1yZWFkZXJf", + "aGFuZGxlGAEgAigEEkYKDmNodW5rX3JlY2VpdmVkGAIgASgLMiwubGl2ZWtp", + "dC5wcm90by5UZXh0U3RyZWFtUmVhZGVyQ2h1bmtSZWNlaXZlZEgAEjEKA2Vv", + "cxgDIAEoCzIiLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbVJlYWRlckVPU0gA", + "QggKBmRldGFpbCIwCh1UZXh0U3RyZWFtUmVhZGVyQ2h1bmtSZWNlaXZlZBIP", + "Cgdjb250ZW50GAEgAigJIkAKE1RleHRTdHJlYW1SZWFkZXJFT1MSKQoFZXJy", + "b3IYASABKAsyGi5saXZla2l0LnByb3RvLlN0cmVhbUVycm9yInMKFU93bmVk", + "Qnl0ZVN0cmVhbVJlYWRlchItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnBy", + "b3RvLkZmaU93bmVkSGFuZGxlEisKBGluZm8YAiACKAsyHS5saXZla2l0LnBy", + "b3RvLkJ5dGVTdHJlYW1JbmZvIj8KJkJ5dGVTdHJlYW1SZWFkZXJSZWFkSW5j", + "cmVtZW50YWxSZXF1ZXN0EhUKDXJlYWRlcl9oYW5kbGUYASACKAQiKQonQnl0", + "ZVN0cmVhbVJlYWRlclJlYWRJbmNyZW1lbnRhbFJlc3BvbnNlIlEKHkJ5dGVT", + "dHJlYW1SZWFkZXJSZWFkQWxsUmVxdWVzdBIVCg1yZWFkZXJfaGFuZGxlGAEg", + "AigEEhgKEHJlcXVlc3RfYXN5bmNfaWQYAiABKAQiMwofQnl0ZVN0cmVhbVJl", + "YWRlclJlYWRBbGxSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCJ9Ch9CeXRl", + "U3RyZWFtUmVhZGVyUmVhZEFsbENhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigE", + "EhEKB2NvbnRlbnQYAiABKAxIABIrCgVlcnJvchgDIAEoCzIaLmxpdmVraXQu", + "cHJvdG8uU3RyZWFtRXJyb3JIAEIICgZyZXN1bHQifwoiQnl0ZVN0cmVhbVJl", + "YWRlcldyaXRlVG9GaWxlUmVxdWVzdBIVCg1yZWFkZXJfaGFuZGxlGAEgAigE", + "EhgKEHJlcXVlc3RfYXN5bmNfaWQYAiABKAQSEQoJZGlyZWN0b3J5GAMgASgJ", + "EhUKDW5hbWVfb3ZlcnJpZGUYBCABKAkiNwojQnl0ZVN0cmVhbVJlYWRlcldy", + "aXRlVG9GaWxlUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQigwEKI0J5dGVT", + "dHJlYW1SZWFkZXJXcml0ZVRvRmlsZUNhbGxiYWNrEhAKCGFzeW5jX2lkGAEg", + "AigEEhMKCWZpbGVfcGF0aBgCIAEoCUgAEisKBWVycm9yGAMgASgLMhoubGl2", + "ZWtpdC5wcm90by5TdHJlYW1FcnJvckgAQggKBnJlc3VsdCKzAQoVQnl0ZVN0", + "cmVhbVJlYWRlckV2ZW50EhUKDXJlYWRlcl9oYW5kbGUYASACKAQSRgoOY2h1", + "bmtfcmVjZWl2ZWQYAiABKAsyLC5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1S", + "ZWFkZXJDaHVua1JlY2VpdmVkSAASMQoDZW9zGAMgASgLMiIubGl2ZWtpdC5w", + "cm90by5CeXRlU3RyZWFtUmVhZGVyRU9TSABCCAoGZGV0YWlsIjAKHUJ5dGVT", + "dHJlYW1SZWFkZXJDaHVua1JlY2VpdmVkEg8KB2NvbnRlbnQYASACKAwiQAoT", + "Qnl0ZVN0cmVhbVJlYWRlckVPUxIpCgVlcnJvchgBIAEoCzIaLmxpdmVraXQu", + "cHJvdG8uU3RyZWFtRXJyb3IimQEKFVN0cmVhbVNlbmRGaWxlUmVxdWVzdBIg", + "Chhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSMQoHb3B0aW9ucxgC", + "IAIoCzIgLmxpdmVraXQucHJvdG8uU3RyZWFtQnl0ZU9wdGlvbnMSEQoJZmls", + "ZV9wYXRoGAMgAigJEhgKEHJlcXVlc3RfYXN5bmNfaWQYBCABKAQiKgoWU3Ry", + "ZWFtU2VuZEZpbGVSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCKQAQoWU3Ry", + "ZWFtU2VuZEZpbGVDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBItCgRpbmZv", + "GAIgASgLMh0ubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtSW5mb0gAEisKBWVy", + "cm9yGAMgASgLMhoubGl2ZWtpdC5wcm90by5TdHJlYW1FcnJvckgAQggKBnJl", + "c3VsdCKWAQoWU3RyZWFtU2VuZEJ5dGVzUmVxdWVzdBIgChhsb2NhbF9wYXJ0", + "aWNpcGFudF9oYW5kbGUYASACKAQSMQoHb3B0aW9ucxgCIAIoCzIgLmxpdmVr", + "aXQucHJvdG8uU3RyZWFtQnl0ZU9wdGlvbnMSDQoFYnl0ZXMYAyACKAwSGAoQ", + "cmVxdWVzdF9hc3luY19pZBgEIAEoBCIrChdTdHJlYW1TZW5kQnl0ZXNSZXNw", + "b25zZRIQCghhc3luY19pZBgBIAIoBCKRAQoXU3RyZWFtU2VuZEJ5dGVzQ2Fs", + "bGJhY2sSEAoIYXN5bmNfaWQYASACKAQSLQoEaW5mbxgCIAEoCzIdLmxpdmVr", + "aXQucHJvdG8uQnl0ZVN0cmVhbUluZm9IABIrCgVlcnJvchgDIAEoCzIaLmxp", + "dmVraXQucHJvdG8uU3RyZWFtRXJyb3JIAEIICgZyZXN1bHQilAEKFVN0cmVh", + "bVNlbmRUZXh0UmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUY", + "ASACKAQSMQoHb3B0aW9ucxgCIAIoCzIgLmxpdmVraXQucHJvdG8uU3RyZWFt", + "VGV4dE9wdGlvbnMSDAoEdGV4dBgDIAIoCRIYChByZXF1ZXN0X2FzeW5jX2lk", + "GAQgASgEIioKFlN0cmVhbVNlbmRUZXh0UmVzcG9uc2USEAoIYXN5bmNfaWQY", + "ASACKAQikAEKFlN0cmVhbVNlbmRUZXh0Q2FsbGJhY2sSEAoIYXN5bmNfaWQY", + "ASACKAQSLQoEaW5mbxgCIAEoCzIdLmxpdmVraXQucHJvdG8uVGV4dFN0cmVh", + "bUluZm9IABIrCgVlcnJvchgDIAEoCzIaLmxpdmVraXQucHJvdG8uU3RyZWFt", + "RXJyb3JIAEIICgZyZXN1bHQicwoVT3duZWRCeXRlU3RyZWFtV3JpdGVyEi0K", + "BmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUS", + "KwoEaW5mbxgCIAIoCzIdLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbUluZm8i", + "hgEKFUJ5dGVTdHJlYW1PcGVuUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFu", + "dF9oYW5kbGUYASACKAQSMQoHb3B0aW9ucxgCIAIoCzIgLmxpdmVraXQucHJv", + "dG8uU3RyZWFtQnl0ZU9wdGlvbnMSGAoQcmVxdWVzdF9hc3luY19pZBgDIAEo", + "BCIqChZCeXRlU3RyZWFtT3BlblJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigE", + "IpkBChZCeXRlU3RyZWFtT3BlbkNhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigE", + "EjYKBndyaXRlchgCIAEoCzIkLmxpdmVraXQucHJvdG8uT3duZWRCeXRlU3Ry", + "ZWFtV3JpdGVySAASKwoFZXJyb3IYAyABKAsyGi5saXZla2l0LnByb3RvLlN0", + "cmVhbUVycm9ySABCCAoGcmVzdWx0Il4KHEJ5dGVTdHJlYW1Xcml0ZXJXcml0", + "ZVJlcXVlc3QSFQoNd3JpdGVyX2hhbmRsZRgBIAIoBBINCgVieXRlcxgCIAIo", + "DBIYChByZXF1ZXN0X2FzeW5jX2lkGAMgASgEIjEKHUJ5dGVTdHJlYW1Xcml0", + "ZXJXcml0ZVJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIlwKHUJ5dGVTdHJl", + "YW1Xcml0ZXJXcml0ZUNhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEikKBWVy", + "cm9yGAIgASgLMhoubGl2ZWtpdC5wcm90by5TdHJlYW1FcnJvciJfChxCeXRl", + "U3RyZWFtV3JpdGVyQ2xvc2VSZXF1ZXN0EhUKDXdyaXRlcl9oYW5kbGUYASAC", + "KAQSDgoGcmVhc29uGAIgASgJEhgKEHJlcXVlc3RfYXN5bmNfaWQYAyABKAQi", + "MQodQnl0ZVN0cmVhbVdyaXRlckNsb3NlUmVzcG9uc2USEAoIYXN5bmNfaWQY", + "ASACKAQiXAodQnl0ZVN0cmVhbVdyaXRlckNsb3NlQ2FsbGJhY2sSEAoIYXN5", + "bmNfaWQYASACKAQSKQoFZXJyb3IYAiABKAsyGi5saXZla2l0LnByb3RvLlN0", + "cmVhbUVycm9yInMKFU93bmVkVGV4dFN0cmVhbVdyaXRlchItCgZoYW5kbGUY", + "ASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEisKBGluZm8Y", + "AiACKAsyHS5saXZla2l0LnByb3RvLlRleHRTdHJlYW1JbmZvIoYBChVUZXh0", + "U3RyZWFtT3BlblJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxl", + "GAEgAigEEjEKB29wdGlvbnMYAiACKAsyIC5saXZla2l0LnByb3RvLlN0cmVh", + "bVRleHRPcHRpb25zEhgKEHJlcXVlc3RfYXN5bmNfaWQYAyABKAQiKgoWVGV4", + "dFN0cmVhbU9wZW5SZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCKZAQoWVGV4", + "dFN0cmVhbU9wZW5DYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBI2CgZ3cml0", + "ZXIYAiABKAsyJC5saXZla2l0LnByb3RvLk93bmVkVGV4dFN0cmVhbVdyaXRl", + "ckgAEisKBWVycm9yGAMgASgLMhoubGl2ZWtpdC5wcm90by5TdHJlYW1FcnJv", + "ckgAQggKBnJlc3VsdCJdChxUZXh0U3RyZWFtV3JpdGVyV3JpdGVSZXF1ZXN0", + "EhUKDXdyaXRlcl9oYW5kbGUYASACKAQSDAoEdGV4dBgCIAIoCRIYChByZXF1", + "ZXN0X2FzeW5jX2lkGAMgASgEIjEKHVRleHRTdHJlYW1Xcml0ZXJXcml0ZVJl", + "c3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIlwKHVRleHRTdHJlYW1Xcml0ZXJX", + "cml0ZUNhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEikKBWVycm9yGAIgASgL", + "MhoubGl2ZWtpdC5wcm90by5TdHJlYW1FcnJvciJfChxUZXh0U3RyZWFtV3Jp", + "dGVyQ2xvc2VSZXF1ZXN0EhUKDXdyaXRlcl9oYW5kbGUYASACKAQSDgoGcmVh", + "c29uGAIgASgJEhgKEHJlcXVlc3RfYXN5bmNfaWQYAyABKAQiMQodVGV4dFN0", + "cmVhbVdyaXRlckNsb3NlUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQiXAod", + "VGV4dFN0cmVhbVdyaXRlckNsb3NlQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASAC", + "KAQSKQoFZXJyb3IYAiABKAsyGi5saXZla2l0LnByb3RvLlN0cmVhbUVycm9y", + "IoEECg5UZXh0U3RyZWFtSW5mbxIRCglzdHJlYW1faWQYASACKAkSEQoJdGlt", + "ZXN0YW1wGAIgAigDEhEKCW1pbWVfdHlwZRgDIAIoCRINCgV0b3BpYxgEIAIo", + "CRIUCgx0b3RhbF9sZW5ndGgYBSABKAQSQQoKYXR0cmlidXRlcxgGIAMoCzIt", + "LmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbUluZm8uQXR0cmlidXRlc0VudHJ5", + "EkMKDm9wZXJhdGlvbl90eXBlGAcgAigOMisubGl2ZWtpdC5wcm90by5UZXh0", + "U3RyZWFtSW5mby5PcGVyYXRpb25UeXBlEg8KB3ZlcnNpb24YCCABKAUSGgoS", + "cmVwbHlfdG9fc3RyZWFtX2lkGAkgASgJEhsKE2F0dGFjaGVkX3N0cmVhbV9p", + "ZHMYCiADKAkSEQoJZ2VuZXJhdGVkGAsgASgIEjYKD2VuY3J5cHRpb25fdHlw", + "ZRgMIAIoDjIdLmxpdmVraXQucHJvdG8uRW5jcnlwdGlvblR5cGUaMQoPQXR0", + "cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEi", + "QQoNT3BlcmF0aW9uVHlwZRIKCgZDUkVBVEUQABIKCgZVUERBVEUQARIKCgZE", + "RUxFVEUQAhIMCghSRUFDVElPThADIqoCCg5CeXRlU3RyZWFtSW5mbxIRCglz", + "dHJlYW1faWQYASACKAkSEQoJdGltZXN0YW1wGAIgAigDEhEKCW1pbWVfdHlw", + "ZRgDIAIoCRINCgV0b3BpYxgEIAIoCRIUCgx0b3RhbF9sZW5ndGgYBSABKAQS", + "QQoKYXR0cmlidXRlcxgGIAMoCzItLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVh", + "bUluZm8uQXR0cmlidXRlc0VudHJ5EgwKBG5hbWUYByACKAkSNgoPZW5jcnlw", + "dGlvbl90eXBlGAggAigOMh0ubGl2ZWtpdC5wcm90by5FbmNyeXB0aW9uVHlw", + "ZRoxCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIg", + "ASgJOgI4ASLpAgoRU3RyZWFtVGV4dE9wdGlvbnMSDQoFdG9waWMYASACKAkS", + "RAoKYXR0cmlidXRlcxgCIAMoCzIwLmxpdmVraXQucHJvdG8uU3RyZWFtVGV4", + "dE9wdGlvbnMuQXR0cmlidXRlc0VudHJ5Eh4KFmRlc3RpbmF0aW9uX2lkZW50", + "aXRpZXMYAyADKAkSCgoCaWQYBCABKAkSQwoOb3BlcmF0aW9uX3R5cGUYBSAB", + "KA4yKy5saXZla2l0LnByb3RvLlRleHRTdHJlYW1JbmZvLk9wZXJhdGlvblR5", + "cGUSDwoHdmVyc2lvbhgGIAEoBRIaChJyZXBseV90b19zdHJlYW1faWQYByAB", + "KAkSGwoTYXR0YWNoZWRfc3RyZWFtX2lkcxgIIAMoCRIRCglnZW5lcmF0ZWQY", + "CSABKAgaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1", + "ZRgCIAEoCToCOAEi/gEKEVN0cmVhbUJ5dGVPcHRpb25zEg0KBXRvcGljGAEg", + "AigJEkQKCmF0dHJpYnV0ZXMYAiADKAsyMC5saXZla2l0LnByb3RvLlN0cmVh", + "bUJ5dGVPcHRpb25zLkF0dHJpYnV0ZXNFbnRyeRIeChZkZXN0aW5hdGlvbl9p", + "ZGVudGl0aWVzGAMgAygJEgoKAmlkGAQgASgJEgwKBG5hbWUYBSABKAkSEQoJ", + "bWltZV90eXBlGAYgASgJEhQKDHRvdGFsX2xlbmd0aBgHIAEoBBoxCg9BdHRy", + "aWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASIi", + "CgtTdHJlYW1FcnJvchITCgtkZXNjcmlwdGlvbhgBIAIoCUIQqgINTGl2ZUtp", + "dC5Qcm90bw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.E2EeReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedTextStreamReader), global::LiveKit.Proto.OwnedTextStreamReader.Parser, new[]{ "Handle", "Info" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamReaderReadIncrementalRequest), global::LiveKit.Proto.TextStreamReaderReadIncrementalRequest.Parser, new[]{ "ReaderHandle" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamReaderReadIncrementalResponse), global::LiveKit.Proto.TextStreamReaderReadIncrementalResponse.Parser, null, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamReaderReadAllRequest), global::LiveKit.Proto.TextStreamReaderReadAllRequest.Parser, new[]{ "ReaderHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamReaderReadAllRequest), global::LiveKit.Proto.TextStreamReaderReadAllRequest.Parser, new[]{ "ReaderHandle", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamReaderReadAllResponse), global::LiveKit.Proto.TextStreamReaderReadAllResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamReaderReadAllCallback), global::LiveKit.Proto.TextStreamReaderReadAllCallback.Parser, new[]{ "AsyncId", "Content", "Error" }, new[]{ "Result" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamReaderEvent), global::LiveKit.Proto.TextStreamReaderEvent.Parser, new[]{ "ReaderHandle", "ChunkReceived", "Eos" }, new[]{ "Detail" }, null, null, null), @@ -174,42 +181,42 @@ static DataStreamReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedByteStreamReader), global::LiveKit.Proto.OwnedByteStreamReader.Parser, new[]{ "Handle", "Info" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderReadIncrementalRequest), global::LiveKit.Proto.ByteStreamReaderReadIncrementalRequest.Parser, new[]{ "ReaderHandle" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderReadIncrementalResponse), global::LiveKit.Proto.ByteStreamReaderReadIncrementalResponse.Parser, null, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderReadAllRequest), global::LiveKit.Proto.ByteStreamReaderReadAllRequest.Parser, new[]{ "ReaderHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderReadAllRequest), global::LiveKit.Proto.ByteStreamReaderReadAllRequest.Parser, new[]{ "ReaderHandle", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderReadAllResponse), global::LiveKit.Proto.ByteStreamReaderReadAllResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderReadAllCallback), global::LiveKit.Proto.ByteStreamReaderReadAllCallback.Parser, new[]{ "AsyncId", "Content", "Error" }, new[]{ "Result" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderWriteToFileRequest), global::LiveKit.Proto.ByteStreamReaderWriteToFileRequest.Parser, new[]{ "ReaderHandle", "Directory", "NameOverride" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderWriteToFileRequest), global::LiveKit.Proto.ByteStreamReaderWriteToFileRequest.Parser, new[]{ "ReaderHandle", "RequestAsyncId", "Directory", "NameOverride" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderWriteToFileResponse), global::LiveKit.Proto.ByteStreamReaderWriteToFileResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderWriteToFileCallback), global::LiveKit.Proto.ByteStreamReaderWriteToFileCallback.Parser, new[]{ "AsyncId", "FilePath", "Error" }, new[]{ "Result" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderEvent), global::LiveKit.Proto.ByteStreamReaderEvent.Parser, new[]{ "ReaderHandle", "ChunkReceived", "Eos" }, new[]{ "Detail" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderChunkReceived), global::LiveKit.Proto.ByteStreamReaderChunkReceived.Parser, new[]{ "Content" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamReaderEOS), global::LiveKit.Proto.ByteStreamReaderEOS.Parser, new[]{ "Error" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StreamSendFileRequest), global::LiveKit.Proto.StreamSendFileRequest.Parser, new[]{ "LocalParticipantHandle", "Options", "FilePath" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StreamSendFileRequest), global::LiveKit.Proto.StreamSendFileRequest.Parser, new[]{ "LocalParticipantHandle", "Options", "FilePath", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StreamSendFileResponse), global::LiveKit.Proto.StreamSendFileResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StreamSendFileCallback), global::LiveKit.Proto.StreamSendFileCallback.Parser, new[]{ "AsyncId", "Info", "Error" }, new[]{ "Result" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StreamSendBytesRequest), global::LiveKit.Proto.StreamSendBytesRequest.Parser, new[]{ "LocalParticipantHandle", "Options", "Bytes" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StreamSendBytesRequest), global::LiveKit.Proto.StreamSendBytesRequest.Parser, new[]{ "LocalParticipantHandle", "Options", "Bytes", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StreamSendBytesResponse), global::LiveKit.Proto.StreamSendBytesResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StreamSendBytesCallback), global::LiveKit.Proto.StreamSendBytesCallback.Parser, new[]{ "AsyncId", "Info", "Error" }, new[]{ "Result" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StreamSendTextRequest), global::LiveKit.Proto.StreamSendTextRequest.Parser, new[]{ "LocalParticipantHandle", "Options", "Text" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StreamSendTextRequest), global::LiveKit.Proto.StreamSendTextRequest.Parser, new[]{ "LocalParticipantHandle", "Options", "Text", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StreamSendTextResponse), global::LiveKit.Proto.StreamSendTextResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.StreamSendTextCallback), global::LiveKit.Proto.StreamSendTextCallback.Parser, new[]{ "AsyncId", "Info", "Error" }, new[]{ "Result" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedByteStreamWriter), global::LiveKit.Proto.OwnedByteStreamWriter.Parser, new[]{ "Handle", "Info" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamOpenRequest), global::LiveKit.Proto.ByteStreamOpenRequest.Parser, new[]{ "LocalParticipantHandle", "Options" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamOpenRequest), global::LiveKit.Proto.ByteStreamOpenRequest.Parser, new[]{ "LocalParticipantHandle", "Options", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamOpenResponse), global::LiveKit.Proto.ByteStreamOpenResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamOpenCallback), global::LiveKit.Proto.ByteStreamOpenCallback.Parser, new[]{ "AsyncId", "Writer", "Error" }, new[]{ "Result" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamWriterWriteRequest), global::LiveKit.Proto.ByteStreamWriterWriteRequest.Parser, new[]{ "WriterHandle", "Bytes" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamWriterWriteRequest), global::LiveKit.Proto.ByteStreamWriterWriteRequest.Parser, new[]{ "WriterHandle", "Bytes", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamWriterWriteResponse), global::LiveKit.Proto.ByteStreamWriterWriteResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamWriterWriteCallback), global::LiveKit.Proto.ByteStreamWriterWriteCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamWriterCloseRequest), global::LiveKit.Proto.ByteStreamWriterCloseRequest.Parser, new[]{ "WriterHandle", "Reason" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamWriterCloseRequest), global::LiveKit.Proto.ByteStreamWriterCloseRequest.Parser, new[]{ "WriterHandle", "Reason", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamWriterCloseResponse), global::LiveKit.Proto.ByteStreamWriterCloseResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamWriterCloseCallback), global::LiveKit.Proto.ByteStreamWriterCloseCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedTextStreamWriter), global::LiveKit.Proto.OwnedTextStreamWriter.Parser, new[]{ "Handle", "Info" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamOpenRequest), global::LiveKit.Proto.TextStreamOpenRequest.Parser, new[]{ "LocalParticipantHandle", "Options" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamOpenRequest), global::LiveKit.Proto.TextStreamOpenRequest.Parser, new[]{ "LocalParticipantHandle", "Options", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamOpenResponse), global::LiveKit.Proto.TextStreamOpenResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamOpenCallback), global::LiveKit.Proto.TextStreamOpenCallback.Parser, new[]{ "AsyncId", "Writer", "Error" }, new[]{ "Result" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamWriterWriteRequest), global::LiveKit.Proto.TextStreamWriterWriteRequest.Parser, new[]{ "WriterHandle", "Text" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamWriterWriteRequest), global::LiveKit.Proto.TextStreamWriterWriteRequest.Parser, new[]{ "WriterHandle", "Text", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamWriterWriteResponse), global::LiveKit.Proto.TextStreamWriterWriteResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamWriterWriteCallback), global::LiveKit.Proto.TextStreamWriterWriteCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamWriterCloseRequest), global::LiveKit.Proto.TextStreamWriterCloseRequest.Parser, new[]{ "WriterHandle", "Reason" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamWriterCloseRequest), global::LiveKit.Proto.TextStreamWriterCloseRequest.Parser, new[]{ "WriterHandle", "Reason", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamWriterCloseResponse), global::LiveKit.Proto.TextStreamWriterCloseResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamWriterCloseCallback), global::LiveKit.Proto.TextStreamWriterCloseCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamInfo), global::LiveKit.Proto.TextStreamInfo.Parser, new[]{ "StreamId", "Timestamp", "MimeType", "Topic", "TotalLength", "Attributes", "OperationType", "Version", "ReplyToStreamId", "AttachedStreamIds", "Generated", "EncryptionType" }, null, new[]{ typeof(global::LiveKit.Proto.TextStreamInfo.Types.OperationType) }, null, new pbr::GeneratedClrTypeInfo[] { null, }), @@ -899,6 +906,7 @@ public TextStreamReaderReadAllRequest() { public TextStreamReaderReadAllRequest(TextStreamReaderReadAllRequest other) : this() { _hasBits0 = other._hasBits0; readerHandle_ = other.readerHandle_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -935,6 +943,33 @@ public void ClearReaderHandle() { _hasBits0 &= ~1; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 2; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -951,6 +986,7 @@ public bool Equals(TextStreamReaderReadAllRequest other) { return true; } if (ReaderHandle != other.ReaderHandle) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -959,6 +995,7 @@ public bool Equals(TextStreamReaderReadAllRequest other) { public override int GetHashCode() { int hash = 1; if (HasReaderHandle) hash ^= ReaderHandle.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -981,6 +1018,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(ReaderHandle); } + if (HasRequestAsyncId) { + output.WriteRawTag(16); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -995,6 +1036,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(ReaderHandle); } + if (HasRequestAsyncId) { + output.WriteRawTag(16); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1008,6 +1053,9 @@ public int CalculateSize() { if (HasReaderHandle) { size += 1 + pb::CodedOutputStream.ComputeUInt64Size(ReaderHandle); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1023,6 +1071,9 @@ public void MergeFrom(TextStreamReaderReadAllRequest other) { if (other.HasReaderHandle) { ReaderHandle = other.ReaderHandle; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1046,6 +1097,10 @@ public void MergeFrom(pb::CodedInputStream input) { ReaderHandle = input.ReadUInt64(); break; } + case 16: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -1069,6 +1124,10 @@ public void MergeFrom(pb::CodedInputStream input) { ReaderHandle = input.ReadUInt64(); break; } + case 16: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -3083,6 +3142,7 @@ public ByteStreamReaderReadAllRequest() { public ByteStreamReaderReadAllRequest(ByteStreamReaderReadAllRequest other) : this() { _hasBits0 = other._hasBits0; readerHandle_ = other.readerHandle_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -3119,6 +3179,33 @@ public void ClearReaderHandle() { _hasBits0 &= ~1; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 2; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -3135,6 +3222,7 @@ public bool Equals(ByteStreamReaderReadAllRequest other) { return true; } if (ReaderHandle != other.ReaderHandle) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -3143,6 +3231,7 @@ public bool Equals(ByteStreamReaderReadAllRequest other) { public override int GetHashCode() { int hash = 1; if (HasReaderHandle) hash ^= ReaderHandle.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3165,6 +3254,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(ReaderHandle); } + if (HasRequestAsyncId) { + output.WriteRawTag(16); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3179,6 +3272,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(ReaderHandle); } + if (HasRequestAsyncId) { + output.WriteRawTag(16); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -3192,6 +3289,9 @@ public int CalculateSize() { if (HasReaderHandle) { size += 1 + pb::CodedOutputStream.ComputeUInt64Size(ReaderHandle); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3207,6 +3307,9 @@ public void MergeFrom(ByteStreamReaderReadAllRequest other) { if (other.HasReaderHandle) { ReaderHandle = other.ReaderHandle; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3230,6 +3333,10 @@ public void MergeFrom(pb::CodedInputStream input) { ReaderHandle = input.ReadUInt64(); break; } + case 16: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -3253,6 +3360,10 @@ public void MergeFrom(pb::CodedInputStream input) { ReaderHandle = input.ReadUInt64(); break; } + case 16: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -3865,6 +3976,7 @@ public ByteStreamReaderWriteToFileRequest() { public ByteStreamReaderWriteToFileRequest(ByteStreamReaderWriteToFileRequest other) : this() { _hasBits0 = other._hasBits0; readerHandle_ = other.readerHandle_; + requestAsyncId_ = other.requestAsyncId_; directory_ = other.directory_; nameOverride_ = other.nameOverride_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -3903,6 +4015,33 @@ public void ClearReaderHandle() { _hasBits0 &= ~1; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 2; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + /// Field number for the "directory" field. public const int DirectoryFieldNumber = 3; private readonly static string DirectoryDefaultValue = ""; @@ -3980,6 +4119,7 @@ public bool Equals(ByteStreamReaderWriteToFileRequest other) { return true; } if (ReaderHandle != other.ReaderHandle) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; if (Directory != other.Directory) return false; if (NameOverride != other.NameOverride) return false; return Equals(_unknownFields, other._unknownFields); @@ -3990,6 +4130,7 @@ public bool Equals(ByteStreamReaderWriteToFileRequest other) { public override int GetHashCode() { int hash = 1; if (HasReaderHandle) hash ^= ReaderHandle.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (HasDirectory) hash ^= Directory.GetHashCode(); if (HasNameOverride) hash ^= NameOverride.GetHashCode(); if (_unknownFields != null) { @@ -4014,6 +4155,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(ReaderHandle); } + if (HasRequestAsyncId) { + output.WriteRawTag(16); + output.WriteUInt64(RequestAsyncId); + } if (HasDirectory) { output.WriteRawTag(26); output.WriteString(Directory); @@ -4036,6 +4181,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(ReaderHandle); } + if (HasRequestAsyncId) { + output.WriteRawTag(16); + output.WriteUInt64(RequestAsyncId); + } if (HasDirectory) { output.WriteRawTag(26); output.WriteString(Directory); @@ -4057,6 +4206,9 @@ public int CalculateSize() { if (HasReaderHandle) { size += 1 + pb::CodedOutputStream.ComputeUInt64Size(ReaderHandle); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (HasDirectory) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Directory); } @@ -4078,6 +4230,9 @@ public void MergeFrom(ByteStreamReaderWriteToFileRequest other) { if (other.HasReaderHandle) { ReaderHandle = other.ReaderHandle; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } if (other.HasDirectory) { Directory = other.Directory; } @@ -4107,6 +4262,10 @@ public void MergeFrom(pb::CodedInputStream input) { ReaderHandle = input.ReadUInt64(); break; } + case 16: { + RequestAsyncId = input.ReadUInt64(); + break; + } case 26: { Directory = input.ReadString(); break; @@ -4138,6 +4297,10 @@ public void MergeFrom(pb::CodedInputStream input) { ReaderHandle = input.ReadUInt64(); break; } + case 16: { + RequestAsyncId = input.ReadUInt64(); + break; + } case 26: { Directory = input.ReadString(); break; @@ -5530,6 +5693,7 @@ public StreamSendFileRequest(StreamSendFileRequest other) : this() { localParticipantHandle_ = other.localParticipantHandle_; options_ = other.options_ != null ? other.options_.Clone() : null; filePath_ = other.filePath_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -5607,6 +5771,33 @@ public void ClearFilePath() { filePath_ = null; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 4; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -5625,6 +5816,7 @@ public bool Equals(StreamSendFileRequest other) { if (LocalParticipantHandle != other.LocalParticipantHandle) return false; if (!object.Equals(Options, other.Options)) return false; if (FilePath != other.FilePath) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5635,6 +5827,7 @@ public override int GetHashCode() { if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); if (options_ != null) hash ^= Options.GetHashCode(); if (HasFilePath) hash ^= FilePath.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5665,6 +5858,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(26); output.WriteString(FilePath); } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5687,6 +5884,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(26); output.WriteString(FilePath); } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -5706,6 +5907,9 @@ public int CalculateSize() { if (HasFilePath) { size += 1 + pb::CodedOutputStream.ComputeStringSize(FilePath); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -5730,6 +5934,9 @@ public void MergeFrom(StreamSendFileRequest other) { if (other.HasFilePath) { FilePath = other.FilePath; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5764,6 +5971,10 @@ public void MergeFrom(pb::CodedInputStream input) { FilePath = input.ReadString(); break; } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -5798,6 +6009,10 @@ public void MergeFrom(pb::CodedInputStream input) { FilePath = input.ReadString(); break; } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -6411,6 +6626,7 @@ public StreamSendBytesRequest(StreamSendBytesRequest other) : this() { localParticipantHandle_ = other.localParticipantHandle_; options_ = other.options_ != null ? other.options_.Clone() : null; bytes_ = other.bytes_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -6488,6 +6704,33 @@ public void ClearBytes() { bytes_ = null; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 4; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -6506,6 +6749,7 @@ public bool Equals(StreamSendBytesRequest other) { if (LocalParticipantHandle != other.LocalParticipantHandle) return false; if (!object.Equals(Options, other.Options)) return false; if (Bytes != other.Bytes) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -6516,6 +6760,7 @@ public override int GetHashCode() { if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); if (options_ != null) hash ^= Options.GetHashCode(); if (HasBytes) hash ^= Bytes.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -6546,6 +6791,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(26); output.WriteBytes(Bytes); } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -6568,6 +6817,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(26); output.WriteBytes(Bytes); } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -6587,6 +6840,9 @@ public int CalculateSize() { if (HasBytes) { size += 1 + pb::CodedOutputStream.ComputeBytesSize(Bytes); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -6611,6 +6867,9 @@ public void MergeFrom(StreamSendBytesRequest other) { if (other.HasBytes) { Bytes = other.Bytes; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -6645,6 +6904,10 @@ public void MergeFrom(pb::CodedInputStream input) { Bytes = input.ReadBytes(); break; } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -6679,6 +6942,10 @@ public void MergeFrom(pb::CodedInputStream input) { Bytes = input.ReadBytes(); break; } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -7292,6 +7559,7 @@ public StreamSendTextRequest(StreamSendTextRequest other) : this() { localParticipantHandle_ = other.localParticipantHandle_; options_ = other.options_ != null ? other.options_.Clone() : null; text_ = other.text_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -7369,6 +7637,33 @@ public void ClearText() { text_ = null; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 4; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -7387,6 +7682,7 @@ public bool Equals(StreamSendTextRequest other) { if (LocalParticipantHandle != other.LocalParticipantHandle) return false; if (!object.Equals(Options, other.Options)) return false; if (Text != other.Text) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -7397,6 +7693,7 @@ public override int GetHashCode() { if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); if (options_ != null) hash ^= Options.GetHashCode(); if (HasText) hash ^= Text.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -7427,6 +7724,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(26); output.WriteString(Text); } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -7449,6 +7750,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(26); output.WriteString(Text); } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7468,6 +7773,9 @@ public int CalculateSize() { if (HasText) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Text); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7492,6 +7800,9 @@ public void MergeFrom(StreamSendTextRequest other) { if (other.HasText) { Text = other.Text; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -7526,6 +7837,10 @@ public void MergeFrom(pb::CodedInputStream input) { Text = input.ReadString(); break; } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -7560,6 +7875,10 @@ public void MergeFrom(pb::CodedInputStream input) { Text = input.ReadString(); break; } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -8426,6 +8745,7 @@ public ByteStreamOpenRequest(ByteStreamOpenRequest other) : this() { _hasBits0 = other._hasBits0; localParticipantHandle_ = other.localParticipantHandle_; options_ = other.options_ != null ? other.options_.Clone() : null; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -8477,6 +8797,33 @@ public void ClearLocalParticipantHandle() { } } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 3; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -8494,6 +8841,7 @@ public bool Equals(ByteStreamOpenRequest other) { } if (LocalParticipantHandle != other.LocalParticipantHandle) return false; if (!object.Equals(Options, other.Options)) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -8503,6 +8851,7 @@ public override int GetHashCode() { int hash = 1; if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); if (options_ != null) hash ^= Options.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -8529,6 +8878,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteMessage(Options); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -8547,6 +8900,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteMessage(Options); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -8563,6 +8920,9 @@ public int CalculateSize() { if (options_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -8584,6 +8944,9 @@ public void MergeFrom(ByteStreamOpenRequest other) { } Options.MergeFrom(other.Options); } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -8614,6 +8977,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Options); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -8644,6 +9011,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Options); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -9256,6 +9627,7 @@ public ByteStreamWriterWriteRequest(ByteStreamWriterWriteRequest other) : this() _hasBits0 = other._hasBits0; writerHandle_ = other.writerHandle_; bytes_ = other.bytes_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -9318,6 +9690,33 @@ public void ClearBytes() { bytes_ = null; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 3; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -9335,6 +9734,7 @@ public bool Equals(ByteStreamWriterWriteRequest other) { } if (WriterHandle != other.WriterHandle) return false; if (Bytes != other.Bytes) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -9344,6 +9744,7 @@ public override int GetHashCode() { int hash = 1; if (HasWriterHandle) hash ^= WriterHandle.GetHashCode(); if (HasBytes) hash ^= Bytes.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -9370,6 +9771,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteBytes(Bytes); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -9388,6 +9793,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteBytes(Bytes); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -9404,6 +9813,9 @@ public int CalculateSize() { if (HasBytes) { size += 1 + pb::CodedOutputStream.ComputeBytesSize(Bytes); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -9422,6 +9834,9 @@ public void MergeFrom(ByteStreamWriterWriteRequest other) { if (other.HasBytes) { Bytes = other.Bytes; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -9449,6 +9864,10 @@ public void MergeFrom(pb::CodedInputStream input) { Bytes = input.ReadBytes(); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -9476,6 +9895,10 @@ public void MergeFrom(pb::CodedInputStream input) { Bytes = input.ReadBytes(); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -10001,6 +10424,7 @@ public ByteStreamWriterCloseRequest(ByteStreamWriterCloseRequest other) : this() _hasBits0 = other._hasBits0; writerHandle_ = other.writerHandle_; reason_ = other.reason_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -10063,6 +10487,33 @@ public void ClearReason() { reason_ = null; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 3; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -10080,6 +10531,7 @@ public bool Equals(ByteStreamWriterCloseRequest other) { } if (WriterHandle != other.WriterHandle) return false; if (Reason != other.Reason) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -10089,6 +10541,7 @@ public override int GetHashCode() { int hash = 1; if (HasWriterHandle) hash ^= WriterHandle.GetHashCode(); if (HasReason) hash ^= Reason.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -10115,6 +10568,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Reason); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -10133,6 +10590,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Reason); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -10149,6 +10610,9 @@ public int CalculateSize() { if (HasReason) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Reason); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -10167,6 +10631,9 @@ public void MergeFrom(ByteStreamWriterCloseRequest other) { if (other.HasReason) { Reason = other.Reason; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -10194,6 +10661,10 @@ public void MergeFrom(pb::CodedInputStream input) { Reason = input.ReadString(); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -10221,6 +10692,10 @@ public void MergeFrom(pb::CodedInputStream input) { Reason = input.ReadString(); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -11000,6 +11475,7 @@ public TextStreamOpenRequest(TextStreamOpenRequest other) : this() { _hasBits0 = other._hasBits0; localParticipantHandle_ = other.localParticipantHandle_; options_ = other.options_ != null ? other.options_.Clone() : null; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -11051,6 +11527,33 @@ public void ClearLocalParticipantHandle() { } } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 3; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -11068,6 +11571,7 @@ public bool Equals(TextStreamOpenRequest other) { } if (LocalParticipantHandle != other.LocalParticipantHandle) return false; if (!object.Equals(Options, other.Options)) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -11077,6 +11581,7 @@ public override int GetHashCode() { int hash = 1; if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); if (options_ != null) hash ^= Options.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -11103,6 +11608,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteMessage(Options); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -11121,6 +11630,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteMessage(Options); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -11137,6 +11650,9 @@ public int CalculateSize() { if (options_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -11158,6 +11674,9 @@ public void MergeFrom(TextStreamOpenRequest other) { } Options.MergeFrom(other.Options); } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -11188,6 +11707,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Options); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -11218,6 +11741,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Options); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -11830,6 +12357,7 @@ public TextStreamWriterWriteRequest(TextStreamWriterWriteRequest other) : this() _hasBits0 = other._hasBits0; writerHandle_ = other.writerHandle_; text_ = other.text_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -11892,6 +12420,33 @@ public void ClearText() { text_ = null; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 3; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -11909,6 +12464,7 @@ public bool Equals(TextStreamWriterWriteRequest other) { } if (WriterHandle != other.WriterHandle) return false; if (Text != other.Text) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -11918,6 +12474,7 @@ public override int GetHashCode() { int hash = 1; if (HasWriterHandle) hash ^= WriterHandle.GetHashCode(); if (HasText) hash ^= Text.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -11944,6 +12501,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Text); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -11962,6 +12523,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Text); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -11978,6 +12543,9 @@ public int CalculateSize() { if (HasText) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Text); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -11996,6 +12564,9 @@ public void MergeFrom(TextStreamWriterWriteRequest other) { if (other.HasText) { Text = other.Text; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -12023,6 +12594,10 @@ public void MergeFrom(pb::CodedInputStream input) { Text = input.ReadString(); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -12050,6 +12625,10 @@ public void MergeFrom(pb::CodedInputStream input) { Text = input.ReadString(); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -12575,6 +13154,7 @@ public TextStreamWriterCloseRequest(TextStreamWriterCloseRequest other) : this() _hasBits0 = other._hasBits0; writerHandle_ = other.writerHandle_; reason_ = other.reason_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -12637,6 +13217,33 @@ public void ClearReason() { reason_ = null; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 3; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -12654,6 +13261,7 @@ public bool Equals(TextStreamWriterCloseRequest other) { } if (WriterHandle != other.WriterHandle) return false; if (Reason != other.Reason) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -12663,6 +13271,7 @@ public override int GetHashCode() { int hash = 1; if (HasWriterHandle) hash ^= WriterHandle.GetHashCode(); if (HasReason) hash ^= Reason.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -12689,6 +13298,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Reason); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -12707,6 +13320,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Reason); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -12723,6 +13340,9 @@ public int CalculateSize() { if (HasReason) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Reason); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -12741,6 +13361,9 @@ public void MergeFrom(TextStreamWriterCloseRequest other) { if (other.HasReason) { Reason = other.Reason; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -12768,6 +13391,10 @@ public void MergeFrom(pb::CodedInputStream input) { Reason = input.ReadString(); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -12795,6 +13422,10 @@ public void MergeFrom(pb::CodedInputStream input) { Reason = input.ReadString(); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } diff --git a/Runtime/Scripts/Proto/DataTrack.cs b/Runtime/Scripts/Proto/DataTrack.cs new file mode 100644 index 00000000..2870fee5 --- /dev/null +++ b/Runtime/Scripts/Proto/DataTrack.cs @@ -0,0 +1,6069 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: data_track.proto +// +#pragma warning disable 1591, 0612, 3021, 8981 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace LiveKit.Proto { + + /// Holder for reflection information generated from data_track.proto + public static partial class DataTrackReflection { + + #region Descriptor + /// File descriptor for data_track.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static DataTrackReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChBkYXRhX3RyYWNrLnByb3RvEg1saXZla2l0LnByb3RvGgxoYW5kbGUucHJv", + "dG8iPQoNRGF0YVRyYWNrSW5mbxIMCgRuYW1lGAEgAigJEgsKA3NpZBgCIAIo", + "CRIRCgl1c2VzX2UyZWUYAyACKAgiOQoORGF0YVRyYWNrRnJhbWUSDwoHcGF5", + "bG9hZBgBIAIoDBIWCg51c2VyX3RpbWVzdGFtcBgCIAEoBCIgChBEYXRhVHJh", + "Y2tPcHRpb25zEgwKBG5hbWUYASACKAkihwEKF1B1Ymxpc2hEYXRhVHJhY2tS", + "ZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIwCgdv", + "cHRpb25zGAIgAigLMh8ubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tPcHRpb25z", + "EhgKEHJlcXVlc3RfYXN5bmNfaWQYAyABKAQiLAoYUHVibGlzaERhdGFUcmFj", + "a1Jlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEInwKGFB1Ymxpc2hEYXRhVHJh", + "Y2tDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIzCgV0cmFjaxgCIAEoCzIi", + "LmxpdmVraXQucHJvdG8uT3duZWRMb2NhbERhdGFUcmFja0gAEg8KBWVycm9y", + "GAMgASgJSABCCAoGcmVzdWx0InAKE093bmVkTG9jYWxEYXRhVHJhY2sSLQoG", + "aGFuZGxlGAEgAigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25lZEhhbmRsZRIq", + "CgRpbmZvGAIgAigLMhwubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tJbmZvImIK", + "HExvY2FsRGF0YVRyYWNrVHJ5UHVzaFJlcXVlc3QSFAoMdHJhY2tfaGFuZGxl", + "GAEgAigEEiwKBWZyYW1lGAIgAigLMh0ubGl2ZWtpdC5wcm90by5EYXRhVHJh", + "Y2tGcmFtZSIuCh1Mb2NhbERhdGFUcmFja1RyeVB1c2hSZXNwb25zZRINCgVl", + "cnJvchgCIAEoCSI4CiBMb2NhbERhdGFUcmFja0lzUHVibGlzaGVkUmVxdWVz", + "dBIUCgx0cmFja19oYW5kbGUYASACKAQiOQohTG9jYWxEYXRhVHJhY2tJc1B1", + "Ymxpc2hlZFJlc3BvbnNlEhQKDGlzX3B1Ymxpc2hlZBgBIAIoCCI2Ch5Mb2Nh", + "bERhdGFUcmFja1VucHVibGlzaFJlcXVlc3QSFAoMdHJhY2tfaGFuZGxlGAEg", + "AigEIiEKH0xvY2FsRGF0YVRyYWNrVW5wdWJsaXNoUmVzcG9uc2UijQEKFE93", + "bmVkUmVtb3RlRGF0YVRyYWNrEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQu", + "cHJvdG8uRmZpT3duZWRIYW5kbGUSKgoEaW5mbxgCIAIoCzIcLmxpdmVraXQu", + "cHJvdG8uRGF0YVRyYWNrSW5mbxIaChJwdWJsaXNoZXJfaWRlbnRpdHkYAyAC", + "KAkiSwoaT3duZWREYXRhVHJhY2tTdWJzY3JpcHRpb24SLQoGaGFuZGxlGAEg", + "AigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25lZEhhbmRsZSIbChlEYXRhVHJh", + "Y2tTdWJzY3JpYmVPcHRpb25zIjkKIVJlbW90ZURhdGFUcmFja0lzUHVibGlz", + "aGVkUmVxdWVzdBIUCgx0cmFja19oYW5kbGUYASACKAQiOgoiUmVtb3RlRGF0", + "YVRyYWNrSXNQdWJsaXNoZWRSZXNwb25zZRIUCgxpc19wdWJsaXNoZWQYASAC", + "KAgihgEKGVN1YnNjcmliZURhdGFUcmFja1JlcXVlc3QSFAoMdHJhY2tfaGFu", + "ZGxlGAEgAigEEjkKB29wdGlvbnMYAiACKAsyKC5saXZla2l0LnByb3RvLkRh", + "dGFUcmFja1N1YnNjcmliZU9wdGlvbnMSGAoQcmVxdWVzdF9hc3luY19pZBgD", + "IAEoBCIuChpTdWJzY3JpYmVEYXRhVHJhY2tSZXNwb25zZRIQCghhc3luY19p", + "ZBgBIAIoBCKMAQoaU3Vic2NyaWJlRGF0YVRyYWNrQ2FsbGJhY2sSEAoIYXN5", + "bmNfaWQYASACKAQSQQoMc3Vic2NyaXB0aW9uGAIgASgLMikubGl2ZWtpdC5w", + "cm90by5Pd25lZERhdGFUcmFja1N1YnNjcmlwdGlvbkgAEg8KBWVycm9yGAMg", + "ASgJSABCCAoGcmVzdWx0IsgBChpEYXRhVHJhY2tTdWJzY3JpcHRpb25FdmVu", + "dBIbChNzdWJzY3JpcHRpb25faGFuZGxlGAEgAigEEksKDmZyYW1lX3JlY2Vp", + "dmVkGAIgASgLMjEubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tTdWJzY3JpcHRp", + "b25GcmFtZVJlY2VpdmVkSAASNgoDZW9zGAMgASgLMicubGl2ZWtpdC5wcm90", + "by5EYXRhVHJhY2tTdWJzY3JpcHRpb25FT1NIAEIICgZkZXRhaWwiUgoiRGF0", + "YVRyYWNrU3Vic2NyaXB0aW9uRnJhbWVSZWNlaXZlZBIsCgVmcmFtZRgBIAIo", + "CzIdLmxpdmVraXQucHJvdG8uRGF0YVRyYWNrRnJhbWUiGgoYRGF0YVRyYWNr", + "U3Vic2NyaXB0aW9uRU9TQhCqAg1MaXZlS2l0LlByb3Rv")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackInfo), global::LiveKit.Proto.DataTrackInfo.Parser, new[]{ "Name", "Sid", "UsesE2Ee" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackFrame), global::LiveKit.Proto.DataTrackFrame.Parser, new[]{ "Payload", "UserTimestamp" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackOptions), global::LiveKit.Proto.DataTrackOptions.Parser, new[]{ "Name" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishDataTrackRequest), global::LiveKit.Proto.PublishDataTrackRequest.Parser, new[]{ "LocalParticipantHandle", "Options", "RequestAsyncId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishDataTrackResponse), global::LiveKit.Proto.PublishDataTrackResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishDataTrackCallback), global::LiveKit.Proto.PublishDataTrackCallback.Parser, new[]{ "AsyncId", "Track", "Error" }, new[]{ "Result" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedLocalDataTrack), global::LiveKit.Proto.OwnedLocalDataTrack.Parser, new[]{ "Handle", "Info" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackTryPushRequest), global::LiveKit.Proto.LocalDataTrackTryPushRequest.Parser, new[]{ "TrackHandle", "Frame" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackTryPushResponse), global::LiveKit.Proto.LocalDataTrackTryPushResponse.Parser, new[]{ "Error" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackIsPublishedRequest), global::LiveKit.Proto.LocalDataTrackIsPublishedRequest.Parser, new[]{ "TrackHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackIsPublishedResponse), global::LiveKit.Proto.LocalDataTrackIsPublishedResponse.Parser, new[]{ "IsPublished" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackUnpublishRequest), global::LiveKit.Proto.LocalDataTrackUnpublishRequest.Parser, new[]{ "TrackHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackUnpublishResponse), global::LiveKit.Proto.LocalDataTrackUnpublishResponse.Parser, null, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedRemoteDataTrack), global::LiveKit.Proto.OwnedRemoteDataTrack.Parser, new[]{ "Handle", "Info", "PublisherIdentity" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedDataTrackSubscription), global::LiveKit.Proto.OwnedDataTrackSubscription.Parser, new[]{ "Handle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscribeOptions), global::LiveKit.Proto.DataTrackSubscribeOptions.Parser, null, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest), global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest.Parser, new[]{ "TrackHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse), global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse.Parser, new[]{ "IsPublished" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SubscribeDataTrackRequest), global::LiveKit.Proto.SubscribeDataTrackRequest.Parser, new[]{ "TrackHandle", "Options", "RequestAsyncId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SubscribeDataTrackResponse), global::LiveKit.Proto.SubscribeDataTrackResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SubscribeDataTrackCallback), global::LiveKit.Proto.SubscribeDataTrackCallback.Parser, new[]{ "AsyncId", "Subscription", "Error" }, new[]{ "Result" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionEvent), global::LiveKit.Proto.DataTrackSubscriptionEvent.Parser, new[]{ "SubscriptionHandle", "FrameReceived", "Eos" }, new[]{ "Detail" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionFrameReceived), global::LiveKit.Proto.DataTrackSubscriptionFrameReceived.Parser, new[]{ "Frame" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionEOS), global::LiveKit.Proto.DataTrackSubscriptionEOS.Parser, null, null, null, null, null) + })); + } + #endregion + + } + #region Messages + /// + /// Information about a published data track. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class DataTrackInfo : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackInfo()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackInfo() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackInfo(DataTrackInfo other) : this() { + _hasBits0 = other._hasBits0; + name_ = other.name_; + sid_ = other.sid_; + usesE2Ee_ = other.usesE2Ee_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackInfo Clone() { + return new DataTrackInfo(this); + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 1; + private readonly static string NameDefaultValue = ""; + + private string name_; + /// + /// Name of the track assigned by the publisher. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Name { + get { return name_ ?? NameDefaultValue; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "name" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasName { + get { return name_ != null; } + } + /// Clears the value of the "name" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearName() { + name_ = null; + } + + /// Field number for the "sid" field. + public const int SidFieldNumber = 2; + private readonly static string SidDefaultValue = ""; + + private string sid_; + /// + /// SFU-assigned track identifier. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Sid { + get { return sid_ ?? SidDefaultValue; } + set { + sid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "sid" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasSid { + get { return sid_ != null; } + } + /// Clears the value of the "sid" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearSid() { + sid_ = null; + } + + /// Field number for the "uses_e2ee" field. + public const int UsesE2EeFieldNumber = 3; + private readonly static bool UsesE2EeDefaultValue = false; + + private bool usesE2Ee_; + /// + /// Whether or not frames sent on the track use end-to-end encryption. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool UsesE2Ee { + get { if ((_hasBits0 & 1) != 0) { return usesE2Ee_; } else { return UsesE2EeDefaultValue; } } + set { + _hasBits0 |= 1; + usesE2Ee_ = value; + } + } + /// Gets whether the "uses_e2ee" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasUsesE2Ee { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "uses_e2ee" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearUsesE2Ee() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as DataTrackInfo); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(DataTrackInfo other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Name != other.Name) return false; + if (Sid != other.Sid) return false; + if (UsesE2Ee != other.UsesE2Ee) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasName) hash ^= Name.GetHashCode(); + if (HasSid) hash ^= Sid.GetHashCode(); + if (HasUsesE2Ee) hash ^= UsesE2Ee.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasName) { + output.WriteRawTag(10); + output.WriteString(Name); + } + if (HasSid) { + output.WriteRawTag(18); + output.WriteString(Sid); + } + if (HasUsesE2Ee) { + output.WriteRawTag(24); + output.WriteBool(UsesE2Ee); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasName) { + output.WriteRawTag(10); + output.WriteString(Name); + } + if (HasSid) { + output.WriteRawTag(18); + output.WriteString(Sid); + } + if (HasUsesE2Ee) { + output.WriteRawTag(24); + output.WriteBool(UsesE2Ee); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasName) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (HasSid) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Sid); + } + if (HasUsesE2Ee) { + size += 1 + 1; + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(DataTrackInfo other) { + if (other == null) { + return; + } + if (other.HasName) { + Name = other.Name; + } + if (other.HasSid) { + Sid = other.Sid; + } + if (other.HasUsesE2Ee) { + UsesE2Ee = other.UsesE2Ee; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Name = input.ReadString(); + break; + } + case 18: { + Sid = input.ReadString(); + break; + } + case 24: { + UsesE2Ee = input.ReadBool(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Name = input.ReadString(); + break; + } + case 18: { + Sid = input.ReadString(); + break; + } + case 24: { + UsesE2Ee = input.ReadBool(); + break; + } + } + } + } + #endif + + } + + /// + /// A frame published on a data track. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class DataTrackFrame : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackFrame()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackFrame() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackFrame(DataTrackFrame other) : this() { + _hasBits0 = other._hasBits0; + payload_ = other.payload_; + userTimestamp_ = other.userTimestamp_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackFrame Clone() { + return new DataTrackFrame(this); + } + + /// Field number for the "payload" field. + public const int PayloadFieldNumber = 1; + private readonly static pb::ByteString PayloadDefaultValue = pb::ByteString.Empty; + + private pb::ByteString payload_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pb::ByteString Payload { + get { return payload_ ?? PayloadDefaultValue; } + set { + payload_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "payload" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasPayload { + get { return payload_ != null; } + } + /// Clears the value of the "payload" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPayload() { + payload_ = null; + } + + /// Field number for the "user_timestamp" field. + public const int UserTimestampFieldNumber = 2; + private readonly static ulong UserTimestampDefaultValue = 0UL; + + private ulong userTimestamp_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong UserTimestamp { + get { if ((_hasBits0 & 1) != 0) { return userTimestamp_; } else { return UserTimestampDefaultValue; } } + set { + _hasBits0 |= 1; + userTimestamp_ = value; + } + } + /// Gets whether the "user_timestamp" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasUserTimestamp { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "user_timestamp" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearUserTimestamp() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as DataTrackFrame); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(DataTrackFrame other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Payload != other.Payload) return false; + if (UserTimestamp != other.UserTimestamp) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasPayload) hash ^= Payload.GetHashCode(); + if (HasUserTimestamp) hash ^= UserTimestamp.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasPayload) { + output.WriteRawTag(10); + output.WriteBytes(Payload); + } + if (HasUserTimestamp) { + output.WriteRawTag(16); + output.WriteUInt64(UserTimestamp); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasPayload) { + output.WriteRawTag(10); + output.WriteBytes(Payload); + } + if (HasUserTimestamp) { + output.WriteRawTag(16); + output.WriteUInt64(UserTimestamp); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasPayload) { + size += 1 + pb::CodedOutputStream.ComputeBytesSize(Payload); + } + if (HasUserTimestamp) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(UserTimestamp); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(DataTrackFrame other) { + if (other == null) { + return; + } + if (other.HasPayload) { + Payload = other.Payload; + } + if (other.HasUserTimestamp) { + UserTimestamp = other.UserTimestamp; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Payload = input.ReadBytes(); + break; + } + case 16: { + UserTimestamp = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Payload = input.ReadBytes(); + break; + } + case 16: { + UserTimestamp = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + /// + /// Options for publishing a data track. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class DataTrackOptions : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackOptions()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackOptions() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackOptions(DataTrackOptions other) : this() { + name_ = other.name_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackOptions Clone() { + return new DataTrackOptions(this); + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 1; + private readonly static string NameDefaultValue = ""; + + private string name_; + /// + /// Track name used to identify the track to other participants. + /// + /// Must not be empty and must be unique per publisher. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Name { + get { return name_ ?? NameDefaultValue; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "name" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasName { + get { return name_ != null; } + } + /// Clears the value of the "name" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearName() { + name_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as DataTrackOptions); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(DataTrackOptions other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Name != other.Name) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasName) hash ^= Name.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasName) { + output.WriteRawTag(10); + output.WriteString(Name); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasName) { + output.WriteRawTag(10); + output.WriteString(Name); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasName) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(DataTrackOptions other) { + if (other == null) { + return; + } + if (other.HasName) { + Name = other.Name; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Name = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Name = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + /// Publish a data track + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class PublishDataTrackRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PublishDataTrackRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PublishDataTrackRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PublishDataTrackRequest(PublishDataTrackRequest other) : this() { + _hasBits0 = other._hasBits0; + localParticipantHandle_ = other.localParticipantHandle_; + options_ = other.options_ != null ? other.options_.Clone() : null; + requestAsyncId_ = other.requestAsyncId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PublishDataTrackRequest Clone() { + return new PublishDataTrackRequest(this); + } + + /// Field number for the "local_participant_handle" field. + public const int LocalParticipantHandleFieldNumber = 1; + private readonly static ulong LocalParticipantHandleDefaultValue = 0UL; + + private ulong localParticipantHandle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong LocalParticipantHandle { + get { if ((_hasBits0 & 1) != 0) { return localParticipantHandle_; } else { return LocalParticipantHandleDefaultValue; } } + set { + _hasBits0 |= 1; + localParticipantHandle_ = value; + } + } + /// Gets whether the "local_participant_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasLocalParticipantHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "local_participant_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearLocalParticipantHandle() { + _hasBits0 &= ~1; + } + + /// Field number for the "options" field. + public const int OptionsFieldNumber = 2; + private global::LiveKit.Proto.DataTrackOptions options_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DataTrackOptions Options { + get { return options_; } + set { + options_ = value; + } + } + + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 3; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PublishDataTrackRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PublishDataTrackRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (LocalParticipantHandle != other.LocalParticipantHandle) return false; + if (!object.Equals(Options, other.Options)) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); + if (options_ != null) hash ^= Options.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasLocalParticipantHandle) { + output.WriteRawTag(8); + output.WriteUInt64(LocalParticipantHandle); + } + if (options_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Options); + } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasLocalParticipantHandle) { + output.WriteRawTag(8); + output.WriteUInt64(LocalParticipantHandle); + } + if (options_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Options); + } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasLocalParticipantHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(LocalParticipantHandle); + } + if (options_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options); + } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PublishDataTrackRequest other) { + if (other == null) { + return; + } + if (other.HasLocalParticipantHandle) { + LocalParticipantHandle = other.LocalParticipantHandle; + } + if (other.options_ != null) { + if (options_ == null) { + Options = new global::LiveKit.Proto.DataTrackOptions(); + } + Options.MergeFrom(other.Options); + } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + LocalParticipantHandle = input.ReadUInt64(); + break; + } + case 18: { + if (options_ == null) { + Options = new global::LiveKit.Proto.DataTrackOptions(); + } + input.ReadMessage(Options); + break; + } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + LocalParticipantHandle = input.ReadUInt64(); + break; + } + case 18: { + if (options_ == null) { + Options = new global::LiveKit.Proto.DataTrackOptions(); + } + input.ReadMessage(Options); + break; + } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class PublishDataTrackResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PublishDataTrackResponse()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[4]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PublishDataTrackResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PublishDataTrackResponse(PublishDataTrackResponse other) : this() { + _hasBits0 = other._hasBits0; + asyncId_ = other.asyncId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PublishDataTrackResponse Clone() { + return new PublishDataTrackResponse(this); + } + + /// Field number for the "async_id" field. + public const int AsyncIdFieldNumber = 1; + private readonly static ulong AsyncIdDefaultValue = 0UL; + + private ulong asyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong AsyncId { + get { if ((_hasBits0 & 1) != 0) { return asyncId_; } else { return AsyncIdDefaultValue; } } + set { + _hasBits0 |= 1; + asyncId_ = value; + } + } + /// Gets whether the "async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasAsyncId { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearAsyncId() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PublishDataTrackResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PublishDataTrackResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (AsyncId != other.AsyncId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasAsyncId) hash ^= AsyncId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasAsyncId) { + output.WriteRawTag(8); + output.WriteUInt64(AsyncId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasAsyncId) { + output.WriteRawTag(8); + output.WriteUInt64(AsyncId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(AsyncId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PublishDataTrackResponse other) { + if (other == null) { + return; + } + if (other.HasAsyncId) { + AsyncId = other.AsyncId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + AsyncId = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + AsyncId = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class PublishDataTrackCallback : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PublishDataTrackCallback()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[5]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PublishDataTrackCallback() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PublishDataTrackCallback(PublishDataTrackCallback other) : this() { + _hasBits0 = other._hasBits0; + asyncId_ = other.asyncId_; + switch (other.ResultCase) { + case ResultOneofCase.Track: + Track = other.Track.Clone(); + break; + case ResultOneofCase.Error: + Error = other.Error; + break; + } + + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public PublishDataTrackCallback Clone() { + return new PublishDataTrackCallback(this); + } + + /// Field number for the "async_id" field. + public const int AsyncIdFieldNumber = 1; + private readonly static ulong AsyncIdDefaultValue = 0UL; + + private ulong asyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong AsyncId { + get { if ((_hasBits0 & 1) != 0) { return asyncId_; } else { return AsyncIdDefaultValue; } } + set { + _hasBits0 |= 1; + asyncId_ = value; + } + } + /// Gets whether the "async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasAsyncId { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearAsyncId() { + _hasBits0 &= ~1; + } + + /// Field number for the "track" field. + public const int TrackFieldNumber = 2; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.OwnedLocalDataTrack Track { + get { return resultCase_ == ResultOneofCase.Track ? (global::LiveKit.Proto.OwnedLocalDataTrack) result_ : null; } + set { + result_ = value; + resultCase_ = value == null ? ResultOneofCase.None : ResultOneofCase.Track; + } + } + + /// Field number for the "error" field. + public const int ErrorFieldNumber = 3; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Error { + get { return HasError ? (string) result_ : ""; } + set { + result_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + resultCase_ = ResultOneofCase.Error; + } + } + /// Gets whether the "error" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasError { + get { return resultCase_ == ResultOneofCase.Error; } + } + /// Clears the value of the oneof if it's currently set to "error" + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearError() { + if (HasError) { + ClearResult(); + } + } + + private object result_; + /// Enum of possible cases for the "result" oneof. + public enum ResultOneofCase { + None = 0, + Track = 2, + Error = 3, + } + private ResultOneofCase resultCase_ = ResultOneofCase.None; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ResultOneofCase ResultCase { + get { return resultCase_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearResult() { + resultCase_ = ResultOneofCase.None; + result_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as PublishDataTrackCallback); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(PublishDataTrackCallback other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (AsyncId != other.AsyncId) return false; + if (!object.Equals(Track, other.Track)) return false; + if (Error != other.Error) return false; + if (ResultCase != other.ResultCase) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasAsyncId) hash ^= AsyncId.GetHashCode(); + if (resultCase_ == ResultOneofCase.Track) hash ^= Track.GetHashCode(); + if (HasError) hash ^= Error.GetHashCode(); + hash ^= (int) resultCase_; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasAsyncId) { + output.WriteRawTag(8); + output.WriteUInt64(AsyncId); + } + if (resultCase_ == ResultOneofCase.Track) { + output.WriteRawTag(18); + output.WriteMessage(Track); + } + if (HasError) { + output.WriteRawTag(26); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasAsyncId) { + output.WriteRawTag(8); + output.WriteUInt64(AsyncId); + } + if (resultCase_ == ResultOneofCase.Track) { + output.WriteRawTag(18); + output.WriteMessage(Track); + } + if (HasError) { + output.WriteRawTag(26); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(AsyncId); + } + if (resultCase_ == ResultOneofCase.Track) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Track); + } + if (HasError) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Error); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(PublishDataTrackCallback other) { + if (other == null) { + return; + } + if (other.HasAsyncId) { + AsyncId = other.AsyncId; + } + switch (other.ResultCase) { + case ResultOneofCase.Track: + if (Track == null) { + Track = new global::LiveKit.Proto.OwnedLocalDataTrack(); + } + Track.MergeFrom(other.Track); + break; + case ResultOneofCase.Error: + Error = other.Error; + break; + } + + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + AsyncId = input.ReadUInt64(); + break; + } + case 18: { + global::LiveKit.Proto.OwnedLocalDataTrack subBuilder = new global::LiveKit.Proto.OwnedLocalDataTrack(); + if (resultCase_ == ResultOneofCase.Track) { + subBuilder.MergeFrom(Track); + } + input.ReadMessage(subBuilder); + Track = subBuilder; + break; + } + case 26: { + Error = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + AsyncId = input.ReadUInt64(); + break; + } + case 18: { + global::LiveKit.Proto.OwnedLocalDataTrack subBuilder = new global::LiveKit.Proto.OwnedLocalDataTrack(); + if (resultCase_ == ResultOneofCase.Track) { + subBuilder.MergeFrom(Track); + } + input.ReadMessage(subBuilder); + Track = subBuilder; + break; + } + case 26: { + Error = input.ReadString(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class OwnedLocalDataTrack : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OwnedLocalDataTrack()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[6]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedLocalDataTrack() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedLocalDataTrack(OwnedLocalDataTrack other) : this() { + handle_ = other.handle_ != null ? other.handle_.Clone() : null; + info_ = other.info_ != null ? other.info_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedLocalDataTrack Clone() { + return new OwnedLocalDataTrack(this); + } + + /// Field number for the "handle" field. + public const int HandleFieldNumber = 1; + private global::LiveKit.Proto.FfiOwnedHandle handle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.FfiOwnedHandle Handle { + get { return handle_; } + set { + handle_ = value; + } + } + + /// Field number for the "info" field. + public const int InfoFieldNumber = 2; + private global::LiveKit.Proto.DataTrackInfo info_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DataTrackInfo Info { + get { return info_; } + set { + info_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as OwnedLocalDataTrack); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(OwnedLocalDataTrack other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (!object.Equals(Handle, other.Handle)) return false; + if (!object.Equals(Info, other.Info)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (handle_ != null) hash ^= Handle.GetHashCode(); + if (info_ != null) hash ^= Info.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (handle_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Handle); + } + if (info_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Info); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (handle_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Handle); + } + if (info_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Info); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (handle_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Handle); + } + if (info_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Info); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(OwnedLocalDataTrack other) { + if (other == null) { + return; + } + if (other.handle_ != null) { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + Handle.MergeFrom(other.Handle); + } + if (other.info_ != null) { + if (info_ == null) { + Info = new global::LiveKit.Proto.DataTrackInfo(); + } + Info.MergeFrom(other.Info); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + input.ReadMessage(Handle); + break; + } + case 18: { + if (info_ == null) { + Info = new global::LiveKit.Proto.DataTrackInfo(); + } + input.ReadMessage(Info); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + input.ReadMessage(Handle); + break; + } + case 18: { + if (info_ == null) { + Info = new global::LiveKit.Proto.DataTrackInfo(); + } + input.ReadMessage(Info); + break; + } + } + } + } + #endif + + } + + /// + /// Try pushing a frame to subscribers of the track. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class LocalDataTrackTryPushRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalDataTrackTryPushRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[7]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackTryPushRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackTryPushRequest(LocalDataTrackTryPushRequest other) : this() { + _hasBits0 = other._hasBits0; + trackHandle_ = other.trackHandle_; + frame_ = other.frame_ != null ? other.frame_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackTryPushRequest Clone() { + return new LocalDataTrackTryPushRequest(this); + } + + /// Field number for the "track_handle" field. + public const int TrackHandleFieldNumber = 1; + private readonly static ulong TrackHandleDefaultValue = 0UL; + + private ulong trackHandle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong TrackHandle { + get { if ((_hasBits0 & 1) != 0) { return trackHandle_; } else { return TrackHandleDefaultValue; } } + set { + _hasBits0 |= 1; + trackHandle_ = value; + } + } + /// Gets whether the "track_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasTrackHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "track_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearTrackHandle() { + _hasBits0 &= ~1; + } + + /// Field number for the "frame" field. + public const int FrameFieldNumber = 2; + private global::LiveKit.Proto.DataTrackFrame frame_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DataTrackFrame Frame { + get { return frame_; } + set { + frame_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as LocalDataTrackTryPushRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(LocalDataTrackTryPushRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TrackHandle != other.TrackHandle) return false; + if (!object.Equals(Frame, other.Frame)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasTrackHandle) hash ^= TrackHandle.GetHashCode(); + if (frame_ != null) hash ^= Frame.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasTrackHandle) { + output.WriteRawTag(8); + output.WriteUInt64(TrackHandle); + } + if (frame_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Frame); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasTrackHandle) { + output.WriteRawTag(8); + output.WriteUInt64(TrackHandle); + } + if (frame_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Frame); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasTrackHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle); + } + if (frame_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Frame); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(LocalDataTrackTryPushRequest other) { + if (other == null) { + return; + } + if (other.HasTrackHandle) { + TrackHandle = other.TrackHandle; + } + if (other.frame_ != null) { + if (frame_ == null) { + Frame = new global::LiveKit.Proto.DataTrackFrame(); + } + Frame.MergeFrom(other.Frame); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TrackHandle = input.ReadUInt64(); + break; + } + case 18: { + if (frame_ == null) { + Frame = new global::LiveKit.Proto.DataTrackFrame(); + } + input.ReadMessage(Frame); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TrackHandle = input.ReadUInt64(); + break; + } + case 18: { + if (frame_ == null) { + Frame = new global::LiveKit.Proto.DataTrackFrame(); + } + input.ReadMessage(Frame); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class LocalDataTrackTryPushResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalDataTrackTryPushResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[8]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackTryPushResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackTryPushResponse(LocalDataTrackTryPushResponse other) : this() { + error_ = other.error_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackTryPushResponse Clone() { + return new LocalDataTrackTryPushResponse(this); + } + + /// Field number for the "error" field. + public const int ErrorFieldNumber = 2; + private readonly static string ErrorDefaultValue = ""; + + private string error_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Error { + get { return error_ ?? ErrorDefaultValue; } + set { + error_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "error" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasError { + get { return error_ != null; } + } + /// Clears the value of the "error" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearError() { + error_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as LocalDataTrackTryPushResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(LocalDataTrackTryPushResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Error != other.Error) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasError) hash ^= Error.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasError) { + output.WriteRawTag(18); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasError) { + output.WriteRawTag(18); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasError) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Error); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(LocalDataTrackTryPushResponse other) { + if (other == null) { + return; + } + if (other.HasError) { + Error = other.Error; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 18: { + Error = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 18: { + Error = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + /// Checks if the track is still published. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class LocalDataTrackIsPublishedRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalDataTrackIsPublishedRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[9]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackIsPublishedRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackIsPublishedRequest(LocalDataTrackIsPublishedRequest other) : this() { + _hasBits0 = other._hasBits0; + trackHandle_ = other.trackHandle_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackIsPublishedRequest Clone() { + return new LocalDataTrackIsPublishedRequest(this); + } + + /// Field number for the "track_handle" field. + public const int TrackHandleFieldNumber = 1; + private readonly static ulong TrackHandleDefaultValue = 0UL; + + private ulong trackHandle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong TrackHandle { + get { if ((_hasBits0 & 1) != 0) { return trackHandle_; } else { return TrackHandleDefaultValue; } } + set { + _hasBits0 |= 1; + trackHandle_ = value; + } + } + /// Gets whether the "track_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasTrackHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "track_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearTrackHandle() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as LocalDataTrackIsPublishedRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(LocalDataTrackIsPublishedRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TrackHandle != other.TrackHandle) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasTrackHandle) hash ^= TrackHandle.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasTrackHandle) { + output.WriteRawTag(8); + output.WriteUInt64(TrackHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasTrackHandle) { + output.WriteRawTag(8); + output.WriteUInt64(TrackHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasTrackHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(LocalDataTrackIsPublishedRequest other) { + if (other == null) { + return; + } + if (other.HasTrackHandle) { + TrackHandle = other.TrackHandle; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TrackHandle = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TrackHandle = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class LocalDataTrackIsPublishedResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalDataTrackIsPublishedResponse()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[10]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackIsPublishedResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackIsPublishedResponse(LocalDataTrackIsPublishedResponse other) : this() { + _hasBits0 = other._hasBits0; + isPublished_ = other.isPublished_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackIsPublishedResponse Clone() { + return new LocalDataTrackIsPublishedResponse(this); + } + + /// Field number for the "is_published" field. + public const int IsPublishedFieldNumber = 1; + private readonly static bool IsPublishedDefaultValue = false; + + private bool isPublished_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool IsPublished { + get { if ((_hasBits0 & 1) != 0) { return isPublished_; } else { return IsPublishedDefaultValue; } } + set { + _hasBits0 |= 1; + isPublished_ = value; + } + } + /// Gets whether the "is_published" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasIsPublished { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "is_published" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearIsPublished() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as LocalDataTrackIsPublishedResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(LocalDataTrackIsPublishedResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (IsPublished != other.IsPublished) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasIsPublished) hash ^= IsPublished.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasIsPublished) { + output.WriteRawTag(8); + output.WriteBool(IsPublished); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasIsPublished) { + output.WriteRawTag(8); + output.WriteBool(IsPublished); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasIsPublished) { + size += 1 + 1; + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(LocalDataTrackIsPublishedResponse other) { + if (other == null) { + return; + } + if (other.HasIsPublished) { + IsPublished = other.IsPublished; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + IsPublished = input.ReadBool(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + IsPublished = input.ReadBool(); + break; + } + } + } + } + #endif + + } + + /// + /// Unpublishes the track. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class LocalDataTrackUnpublishRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalDataTrackUnpublishRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[11]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackUnpublishRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackUnpublishRequest(LocalDataTrackUnpublishRequest other) : this() { + _hasBits0 = other._hasBits0; + trackHandle_ = other.trackHandle_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackUnpublishRequest Clone() { + return new LocalDataTrackUnpublishRequest(this); + } + + /// Field number for the "track_handle" field. + public const int TrackHandleFieldNumber = 1; + private readonly static ulong TrackHandleDefaultValue = 0UL; + + private ulong trackHandle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong TrackHandle { + get { if ((_hasBits0 & 1) != 0) { return trackHandle_; } else { return TrackHandleDefaultValue; } } + set { + _hasBits0 |= 1; + trackHandle_ = value; + } + } + /// Gets whether the "track_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasTrackHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "track_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearTrackHandle() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as LocalDataTrackUnpublishRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(LocalDataTrackUnpublishRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TrackHandle != other.TrackHandle) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasTrackHandle) hash ^= TrackHandle.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasTrackHandle) { + output.WriteRawTag(8); + output.WriteUInt64(TrackHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasTrackHandle) { + output.WriteRawTag(8); + output.WriteUInt64(TrackHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasTrackHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(LocalDataTrackUnpublishRequest other) { + if (other == null) { + return; + } + if (other.HasTrackHandle) { + TrackHandle = other.TrackHandle; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TrackHandle = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TrackHandle = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class LocalDataTrackUnpublishResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalDataTrackUnpublishResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[12]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackUnpublishResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackUnpublishResponse(LocalDataTrackUnpublishResponse other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public LocalDataTrackUnpublishResponse Clone() { + return new LocalDataTrackUnpublishResponse(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as LocalDataTrackUnpublishResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(LocalDataTrackUnpublishResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(LocalDataTrackUnpublishResponse other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class OwnedRemoteDataTrack : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OwnedRemoteDataTrack()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[13]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedRemoteDataTrack() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedRemoteDataTrack(OwnedRemoteDataTrack other) : this() { + handle_ = other.handle_ != null ? other.handle_.Clone() : null; + info_ = other.info_ != null ? other.info_.Clone() : null; + publisherIdentity_ = other.publisherIdentity_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedRemoteDataTrack Clone() { + return new OwnedRemoteDataTrack(this); + } + + /// Field number for the "handle" field. + public const int HandleFieldNumber = 1; + private global::LiveKit.Proto.FfiOwnedHandle handle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.FfiOwnedHandle Handle { + get { return handle_; } + set { + handle_ = value; + } + } + + /// Field number for the "info" field. + public const int InfoFieldNumber = 2; + private global::LiveKit.Proto.DataTrackInfo info_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DataTrackInfo Info { + get { return info_; } + set { + info_ = value; + } + } + + /// Field number for the "publisher_identity" field. + public const int PublisherIdentityFieldNumber = 3; + private readonly static string PublisherIdentityDefaultValue = ""; + + private string publisherIdentity_; + /// + /// Identity of the remote participant who published the track. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string PublisherIdentity { + get { return publisherIdentity_ ?? PublisherIdentityDefaultValue; } + set { + publisherIdentity_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "publisher_identity" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasPublisherIdentity { + get { return publisherIdentity_ != null; } + } + /// Clears the value of the "publisher_identity" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearPublisherIdentity() { + publisherIdentity_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as OwnedRemoteDataTrack); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(OwnedRemoteDataTrack other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (!object.Equals(Handle, other.Handle)) return false; + if (!object.Equals(Info, other.Info)) return false; + if (PublisherIdentity != other.PublisherIdentity) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (handle_ != null) hash ^= Handle.GetHashCode(); + if (info_ != null) hash ^= Info.GetHashCode(); + if (HasPublisherIdentity) hash ^= PublisherIdentity.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (handle_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Handle); + } + if (info_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Info); + } + if (HasPublisherIdentity) { + output.WriteRawTag(26); + output.WriteString(PublisherIdentity); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (handle_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Handle); + } + if (info_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Info); + } + if (HasPublisherIdentity) { + output.WriteRawTag(26); + output.WriteString(PublisherIdentity); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (handle_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Handle); + } + if (info_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Info); + } + if (HasPublisherIdentity) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(PublisherIdentity); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(OwnedRemoteDataTrack other) { + if (other == null) { + return; + } + if (other.handle_ != null) { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + Handle.MergeFrom(other.Handle); + } + if (other.info_ != null) { + if (info_ == null) { + Info = new global::LiveKit.Proto.DataTrackInfo(); + } + Info.MergeFrom(other.Info); + } + if (other.HasPublisherIdentity) { + PublisherIdentity = other.PublisherIdentity; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + input.ReadMessage(Handle); + break; + } + case 18: { + if (info_ == null) { + Info = new global::LiveKit.Proto.DataTrackInfo(); + } + input.ReadMessage(Info); + break; + } + case 26: { + PublisherIdentity = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + input.ReadMessage(Handle); + break; + } + case 18: { + if (info_ == null) { + Info = new global::LiveKit.Proto.DataTrackInfo(); + } + input.ReadMessage(Info); + break; + } + case 26: { + PublisherIdentity = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + /// Handle to an active data track subscription. + /// + /// Dropping the handle will unsubscribe from the track. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class OwnedDataTrackSubscription : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OwnedDataTrackSubscription()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[14]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedDataTrackSubscription() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedDataTrackSubscription(OwnedDataTrackSubscription other) : this() { + handle_ = other.handle_ != null ? other.handle_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public OwnedDataTrackSubscription Clone() { + return new OwnedDataTrackSubscription(this); + } + + /// Field number for the "handle" field. + public const int HandleFieldNumber = 1; + private global::LiveKit.Proto.FfiOwnedHandle handle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.FfiOwnedHandle Handle { + get { return handle_; } + set { + handle_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as OwnedDataTrackSubscription); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(OwnedDataTrackSubscription other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (!object.Equals(Handle, other.Handle)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (handle_ != null) hash ^= Handle.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (handle_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Handle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (handle_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Handle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (handle_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Handle); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(OwnedDataTrackSubscription other) { + if (other == null) { + return; + } + if (other.handle_ != null) { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + Handle.MergeFrom(other.Handle); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + input.ReadMessage(Handle); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + if (handle_ == null) { + Handle = new global::LiveKit.Proto.FfiOwnedHandle(); + } + input.ReadMessage(Handle); + break; + } + } + } + } + #endif + + } + + /// + /// Reserved for future subscription options. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class DataTrackSubscribeOptions : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackSubscribeOptions()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[15]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscribeOptions() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscribeOptions(DataTrackSubscribeOptions other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscribeOptions Clone() { + return new DataTrackSubscribeOptions(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as DataTrackSubscribeOptions); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(DataTrackSubscribeOptions other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(DataTrackSubscribeOptions other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + + } + + /// + /// Checks if the track is still published. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class RemoteDataTrackIsPublishedRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RemoteDataTrackIsPublishedRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[16]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RemoteDataTrackIsPublishedRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RemoteDataTrackIsPublishedRequest(RemoteDataTrackIsPublishedRequest other) : this() { + _hasBits0 = other._hasBits0; + trackHandle_ = other.trackHandle_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RemoteDataTrackIsPublishedRequest Clone() { + return new RemoteDataTrackIsPublishedRequest(this); + } + + /// Field number for the "track_handle" field. + public const int TrackHandleFieldNumber = 1; + private readonly static ulong TrackHandleDefaultValue = 0UL; + + private ulong trackHandle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong TrackHandle { + get { if ((_hasBits0 & 1) != 0) { return trackHandle_; } else { return TrackHandleDefaultValue; } } + set { + _hasBits0 |= 1; + trackHandle_ = value; + } + } + /// Gets whether the "track_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasTrackHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "track_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearTrackHandle() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as RemoteDataTrackIsPublishedRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(RemoteDataTrackIsPublishedRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TrackHandle != other.TrackHandle) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasTrackHandle) hash ^= TrackHandle.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasTrackHandle) { + output.WriteRawTag(8); + output.WriteUInt64(TrackHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasTrackHandle) { + output.WriteRawTag(8); + output.WriteUInt64(TrackHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasTrackHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(RemoteDataTrackIsPublishedRequest other) { + if (other == null) { + return; + } + if (other.HasTrackHandle) { + TrackHandle = other.TrackHandle; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TrackHandle = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TrackHandle = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class RemoteDataTrackIsPublishedResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RemoteDataTrackIsPublishedResponse()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[17]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RemoteDataTrackIsPublishedResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RemoteDataTrackIsPublishedResponse(RemoteDataTrackIsPublishedResponse other) : this() { + _hasBits0 = other._hasBits0; + isPublished_ = other.isPublished_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RemoteDataTrackIsPublishedResponse Clone() { + return new RemoteDataTrackIsPublishedResponse(this); + } + + /// Field number for the "is_published" field. + public const int IsPublishedFieldNumber = 1; + private readonly static bool IsPublishedDefaultValue = false; + + private bool isPublished_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool IsPublished { + get { if ((_hasBits0 & 1) != 0) { return isPublished_; } else { return IsPublishedDefaultValue; } } + set { + _hasBits0 |= 1; + isPublished_ = value; + } + } + /// Gets whether the "is_published" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasIsPublished { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "is_published" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearIsPublished() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as RemoteDataTrackIsPublishedResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(RemoteDataTrackIsPublishedResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (IsPublished != other.IsPublished) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasIsPublished) hash ^= IsPublished.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasIsPublished) { + output.WriteRawTag(8); + output.WriteBool(IsPublished); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasIsPublished) { + output.WriteRawTag(8); + output.WriteBool(IsPublished); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasIsPublished) { + size += 1 + 1; + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(RemoteDataTrackIsPublishedResponse other) { + if (other == null) { + return; + } + if (other.HasIsPublished) { + IsPublished = other.IsPublished; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + IsPublished = input.ReadBool(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + IsPublished = input.ReadBool(); + break; + } + } + } + } + #endif + + } + + /// + /// Subscribe to a data track. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class SubscribeDataTrackRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SubscribeDataTrackRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[18]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SubscribeDataTrackRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SubscribeDataTrackRequest(SubscribeDataTrackRequest other) : this() { + _hasBits0 = other._hasBits0; + trackHandle_ = other.trackHandle_; + options_ = other.options_ != null ? other.options_.Clone() : null; + requestAsyncId_ = other.requestAsyncId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SubscribeDataTrackRequest Clone() { + return new SubscribeDataTrackRequest(this); + } + + /// Field number for the "track_handle" field. + public const int TrackHandleFieldNumber = 1; + private readonly static ulong TrackHandleDefaultValue = 0UL; + + private ulong trackHandle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong TrackHandle { + get { if ((_hasBits0 & 1) != 0) { return trackHandle_; } else { return TrackHandleDefaultValue; } } + set { + _hasBits0 |= 1; + trackHandle_ = value; + } + } + /// Gets whether the "track_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasTrackHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "track_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearTrackHandle() { + _hasBits0 &= ~1; + } + + /// Field number for the "options" field. + public const int OptionsFieldNumber = 2; + private global::LiveKit.Proto.DataTrackSubscribeOptions options_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DataTrackSubscribeOptions Options { + get { return options_; } + set { + options_ = value; + } + } + + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 3; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as SubscribeDataTrackRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(SubscribeDataTrackRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TrackHandle != other.TrackHandle) return false; + if (!object.Equals(Options, other.Options)) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasTrackHandle) hash ^= TrackHandle.GetHashCode(); + if (options_ != null) hash ^= Options.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasTrackHandle) { + output.WriteRawTag(8); + output.WriteUInt64(TrackHandle); + } + if (options_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Options); + } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasTrackHandle) { + output.WriteRawTag(8); + output.WriteUInt64(TrackHandle); + } + if (options_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Options); + } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasTrackHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle); + } + if (options_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options); + } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(SubscribeDataTrackRequest other) { + if (other == null) { + return; + } + if (other.HasTrackHandle) { + TrackHandle = other.TrackHandle; + } + if (other.options_ != null) { + if (options_ == null) { + Options = new global::LiveKit.Proto.DataTrackSubscribeOptions(); + } + Options.MergeFrom(other.Options); + } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TrackHandle = input.ReadUInt64(); + break; + } + case 18: { + if (options_ == null) { + Options = new global::LiveKit.Proto.DataTrackSubscribeOptions(); + } + input.ReadMessage(Options); + break; + } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TrackHandle = input.ReadUInt64(); + break; + } + case 18: { + if (options_ == null) { + Options = new global::LiveKit.Proto.DataTrackSubscribeOptions(); + } + input.ReadMessage(Options); + break; + } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class SubscribeDataTrackResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SubscribeDataTrackResponse()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[19]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SubscribeDataTrackResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SubscribeDataTrackResponse(SubscribeDataTrackResponse other) : this() { + _hasBits0 = other._hasBits0; + asyncId_ = other.asyncId_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SubscribeDataTrackResponse Clone() { + return new SubscribeDataTrackResponse(this); + } + + /// Field number for the "async_id" field. + public const int AsyncIdFieldNumber = 1; + private readonly static ulong AsyncIdDefaultValue = 0UL; + + private ulong asyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong AsyncId { + get { if ((_hasBits0 & 1) != 0) { return asyncId_; } else { return AsyncIdDefaultValue; } } + set { + _hasBits0 |= 1; + asyncId_ = value; + } + } + /// Gets whether the "async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasAsyncId { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearAsyncId() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as SubscribeDataTrackResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(SubscribeDataTrackResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (AsyncId != other.AsyncId) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasAsyncId) hash ^= AsyncId.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasAsyncId) { + output.WriteRawTag(8); + output.WriteUInt64(AsyncId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasAsyncId) { + output.WriteRawTag(8); + output.WriteUInt64(AsyncId); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(AsyncId); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(SubscribeDataTrackResponse other) { + if (other == null) { + return; + } + if (other.HasAsyncId) { + AsyncId = other.AsyncId; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + AsyncId = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + AsyncId = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class SubscribeDataTrackCallback : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SubscribeDataTrackCallback()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[20]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SubscribeDataTrackCallback() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SubscribeDataTrackCallback(SubscribeDataTrackCallback other) : this() { + _hasBits0 = other._hasBits0; + asyncId_ = other.asyncId_; + switch (other.ResultCase) { + case ResultOneofCase.Subscription: + Subscription = other.Subscription.Clone(); + break; + case ResultOneofCase.Error: + Error = other.Error; + break; + } + + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public SubscribeDataTrackCallback Clone() { + return new SubscribeDataTrackCallback(this); + } + + /// Field number for the "async_id" field. + public const int AsyncIdFieldNumber = 1; + private readonly static ulong AsyncIdDefaultValue = 0UL; + + private ulong asyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong AsyncId { + get { if ((_hasBits0 & 1) != 0) { return asyncId_; } else { return AsyncIdDefaultValue; } } + set { + _hasBits0 |= 1; + asyncId_ = value; + } + } + /// Gets whether the "async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasAsyncId { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearAsyncId() { + _hasBits0 &= ~1; + } + + /// Field number for the "subscription" field. + public const int SubscriptionFieldNumber = 2; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.OwnedDataTrackSubscription Subscription { + get { return resultCase_ == ResultOneofCase.Subscription ? (global::LiveKit.Proto.OwnedDataTrackSubscription) result_ : null; } + set { + result_ = value; + resultCase_ = value == null ? ResultOneofCase.None : ResultOneofCase.Subscription; + } + } + + /// Field number for the "error" field. + public const int ErrorFieldNumber = 3; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Error { + get { return HasError ? (string) result_ : ""; } + set { + result_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + resultCase_ = ResultOneofCase.Error; + } + } + /// Gets whether the "error" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasError { + get { return resultCase_ == ResultOneofCase.Error; } + } + /// Clears the value of the oneof if it's currently set to "error" + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearError() { + if (HasError) { + ClearResult(); + } + } + + private object result_; + /// Enum of possible cases for the "result" oneof. + public enum ResultOneofCase { + None = 0, + Subscription = 2, + Error = 3, + } + private ResultOneofCase resultCase_ = ResultOneofCase.None; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ResultOneofCase ResultCase { + get { return resultCase_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearResult() { + resultCase_ = ResultOneofCase.None; + result_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as SubscribeDataTrackCallback); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(SubscribeDataTrackCallback other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (AsyncId != other.AsyncId) return false; + if (!object.Equals(Subscription, other.Subscription)) return false; + if (Error != other.Error) return false; + if (ResultCase != other.ResultCase) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasAsyncId) hash ^= AsyncId.GetHashCode(); + if (resultCase_ == ResultOneofCase.Subscription) hash ^= Subscription.GetHashCode(); + if (HasError) hash ^= Error.GetHashCode(); + hash ^= (int) resultCase_; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasAsyncId) { + output.WriteRawTag(8); + output.WriteUInt64(AsyncId); + } + if (resultCase_ == ResultOneofCase.Subscription) { + output.WriteRawTag(18); + output.WriteMessage(Subscription); + } + if (HasError) { + output.WriteRawTag(26); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasAsyncId) { + output.WriteRawTag(8); + output.WriteUInt64(AsyncId); + } + if (resultCase_ == ResultOneofCase.Subscription) { + output.WriteRawTag(18); + output.WriteMessage(Subscription); + } + if (HasError) { + output.WriteRawTag(26); + output.WriteString(Error); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(AsyncId); + } + if (resultCase_ == ResultOneofCase.Subscription) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Subscription); + } + if (HasError) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Error); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(SubscribeDataTrackCallback other) { + if (other == null) { + return; + } + if (other.HasAsyncId) { + AsyncId = other.AsyncId; + } + switch (other.ResultCase) { + case ResultOneofCase.Subscription: + if (Subscription == null) { + Subscription = new global::LiveKit.Proto.OwnedDataTrackSubscription(); + } + Subscription.MergeFrom(other.Subscription); + break; + case ResultOneofCase.Error: + Error = other.Error; + break; + } + + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + AsyncId = input.ReadUInt64(); + break; + } + case 18: { + global::LiveKit.Proto.OwnedDataTrackSubscription subBuilder = new global::LiveKit.Proto.OwnedDataTrackSubscription(); + if (resultCase_ == ResultOneofCase.Subscription) { + subBuilder.MergeFrom(Subscription); + } + input.ReadMessage(subBuilder); + Subscription = subBuilder; + break; + } + case 26: { + Error = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + AsyncId = input.ReadUInt64(); + break; + } + case 18: { + global::LiveKit.Proto.OwnedDataTrackSubscription subBuilder = new global::LiveKit.Proto.OwnedDataTrackSubscription(); + if (resultCase_ == ResultOneofCase.Subscription) { + subBuilder.MergeFrom(Subscription); + } + input.ReadMessage(subBuilder); + Subscription = subBuilder; + break; + } + case 26: { + Error = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + /// Event emitted on an active subscription. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class DataTrackSubscriptionEvent : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackSubscriptionEvent()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[21]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionEvent() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionEvent(DataTrackSubscriptionEvent other) : this() { + _hasBits0 = other._hasBits0; + subscriptionHandle_ = other.subscriptionHandle_; + switch (other.DetailCase) { + case DetailOneofCase.FrameReceived: + FrameReceived = other.FrameReceived.Clone(); + break; + case DetailOneofCase.Eos: + Eos = other.Eos.Clone(); + break; + } + + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionEvent Clone() { + return new DataTrackSubscriptionEvent(this); + } + + /// Field number for the "subscription_handle" field. + public const int SubscriptionHandleFieldNumber = 1; + private readonly static ulong SubscriptionHandleDefaultValue = 0UL; + + private ulong subscriptionHandle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong SubscriptionHandle { + get { if ((_hasBits0 & 1) != 0) { return subscriptionHandle_; } else { return SubscriptionHandleDefaultValue; } } + set { + _hasBits0 |= 1; + subscriptionHandle_ = value; + } + } + /// Gets whether the "subscription_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasSubscriptionHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "subscription_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearSubscriptionHandle() { + _hasBits0 &= ~1; + } + + /// Field number for the "frame_received" field. + public const int FrameReceivedFieldNumber = 2; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DataTrackSubscriptionFrameReceived FrameReceived { + get { return detailCase_ == DetailOneofCase.FrameReceived ? (global::LiveKit.Proto.DataTrackSubscriptionFrameReceived) detail_ : null; } + set { + detail_ = value; + detailCase_ = value == null ? DetailOneofCase.None : DetailOneofCase.FrameReceived; + } + } + + /// Field number for the "eos" field. + public const int EosFieldNumber = 3; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DataTrackSubscriptionEOS Eos { + get { return detailCase_ == DetailOneofCase.Eos ? (global::LiveKit.Proto.DataTrackSubscriptionEOS) detail_ : null; } + set { + detail_ = value; + detailCase_ = value == null ? DetailOneofCase.None : DetailOneofCase.Eos; + } + } + + private object detail_; + /// Enum of possible cases for the "detail" oneof. + public enum DetailOneofCase { + None = 0, + FrameReceived = 2, + Eos = 3, + } + private DetailOneofCase detailCase_ = DetailOneofCase.None; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DetailOneofCase DetailCase { + get { return detailCase_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearDetail() { + detailCase_ = DetailOneofCase.None; + detail_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as DataTrackSubscriptionEvent); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(DataTrackSubscriptionEvent other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (SubscriptionHandle != other.SubscriptionHandle) return false; + if (!object.Equals(FrameReceived, other.FrameReceived)) return false; + if (!object.Equals(Eos, other.Eos)) return false; + if (DetailCase != other.DetailCase) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasSubscriptionHandle) hash ^= SubscriptionHandle.GetHashCode(); + if (detailCase_ == DetailOneofCase.FrameReceived) hash ^= FrameReceived.GetHashCode(); + if (detailCase_ == DetailOneofCase.Eos) hash ^= Eos.GetHashCode(); + hash ^= (int) detailCase_; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasSubscriptionHandle) { + output.WriteRawTag(8); + output.WriteUInt64(SubscriptionHandle); + } + if (detailCase_ == DetailOneofCase.FrameReceived) { + output.WriteRawTag(18); + output.WriteMessage(FrameReceived); + } + if (detailCase_ == DetailOneofCase.Eos) { + output.WriteRawTag(26); + output.WriteMessage(Eos); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasSubscriptionHandle) { + output.WriteRawTag(8); + output.WriteUInt64(SubscriptionHandle); + } + if (detailCase_ == DetailOneofCase.FrameReceived) { + output.WriteRawTag(18); + output.WriteMessage(FrameReceived); + } + if (detailCase_ == DetailOneofCase.Eos) { + output.WriteRawTag(26); + output.WriteMessage(Eos); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasSubscriptionHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(SubscriptionHandle); + } + if (detailCase_ == DetailOneofCase.FrameReceived) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(FrameReceived); + } + if (detailCase_ == DetailOneofCase.Eos) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Eos); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(DataTrackSubscriptionEvent other) { + if (other == null) { + return; + } + if (other.HasSubscriptionHandle) { + SubscriptionHandle = other.SubscriptionHandle; + } + switch (other.DetailCase) { + case DetailOneofCase.FrameReceived: + if (FrameReceived == null) { + FrameReceived = new global::LiveKit.Proto.DataTrackSubscriptionFrameReceived(); + } + FrameReceived.MergeFrom(other.FrameReceived); + break; + case DetailOneofCase.Eos: + if (Eos == null) { + Eos = new global::LiveKit.Proto.DataTrackSubscriptionEOS(); + } + Eos.MergeFrom(other.Eos); + break; + } + + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + SubscriptionHandle = input.ReadUInt64(); + break; + } + case 18: { + global::LiveKit.Proto.DataTrackSubscriptionFrameReceived subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionFrameReceived(); + if (detailCase_ == DetailOneofCase.FrameReceived) { + subBuilder.MergeFrom(FrameReceived); + } + input.ReadMessage(subBuilder); + FrameReceived = subBuilder; + break; + } + case 26: { + global::LiveKit.Proto.DataTrackSubscriptionEOS subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionEOS(); + if (detailCase_ == DetailOneofCase.Eos) { + subBuilder.MergeFrom(Eos); + } + input.ReadMessage(subBuilder); + Eos = subBuilder; + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + SubscriptionHandle = input.ReadUInt64(); + break; + } + case 18: { + global::LiveKit.Proto.DataTrackSubscriptionFrameReceived subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionFrameReceived(); + if (detailCase_ == DetailOneofCase.FrameReceived) { + subBuilder.MergeFrom(FrameReceived); + } + input.ReadMessage(subBuilder); + FrameReceived = subBuilder; + break; + } + case 26: { + global::LiveKit.Proto.DataTrackSubscriptionEOS subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionEOS(); + if (detailCase_ == DetailOneofCase.Eos) { + subBuilder.MergeFrom(Eos); + } + input.ReadMessage(subBuilder); + Eos = subBuilder; + break; + } + } + } + } + #endif + + } + + /// + /// A frame was received. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class DataTrackSubscriptionFrameReceived : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackSubscriptionFrameReceived()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[22]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionFrameReceived() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionFrameReceived(DataTrackSubscriptionFrameReceived other) : this() { + frame_ = other.frame_ != null ? other.frame_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionFrameReceived Clone() { + return new DataTrackSubscriptionFrameReceived(this); + } + + /// Field number for the "frame" field. + public const int FrameFieldNumber = 1; + private global::LiveKit.Proto.DataTrackFrame frame_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DataTrackFrame Frame { + get { return frame_; } + set { + frame_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as DataTrackSubscriptionFrameReceived); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(DataTrackSubscriptionFrameReceived other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (!object.Equals(Frame, other.Frame)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (frame_ != null) hash ^= Frame.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (frame_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Frame); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (frame_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Frame); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (frame_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Frame); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(DataTrackSubscriptionFrameReceived other) { + if (other == null) { + return; + } + if (other.frame_ != null) { + if (frame_ == null) { + Frame = new global::LiveKit.Proto.DataTrackFrame(); + } + Frame.MergeFrom(other.Frame); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + if (frame_ == null) { + Frame = new global::LiveKit.Proto.DataTrackFrame(); + } + input.ReadMessage(Frame); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + if (frame_ == null) { + Frame = new global::LiveKit.Proto.DataTrackFrame(); + } + input.ReadMessage(Frame); + break; + } + } + } + } + #endif + + } + + /// + /// Subscription has ended (end of stream). + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class DataTrackSubscriptionEOS : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackSubscriptionEOS()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[23]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionEOS() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionEOS(DataTrackSubscriptionEOS other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionEOS Clone() { + return new DataTrackSubscriptionEOS(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as DataTrackSubscriptionEOS); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(DataTrackSubscriptionEOS other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(DataTrackSubscriptionEOS other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/Runtime/Scripts/Proto/Ffi.cs b/Runtime/Scripts/Proto/Ffi.cs index 8a62dcf7..06c04483 100644 --- a/Runtime/Scripts/Proto/Ffi.cs +++ b/Runtime/Scripts/Proto/Ffi.cs @@ -27,297 +27,325 @@ static FfiReflection() { "CglmZmkucHJvdG8SDWxpdmVraXQucHJvdG8aCmUyZWUucHJvdG8aC3RyYWNr", "LnByb3RvGhd0cmFja19wdWJsaWNhdGlvbi5wcm90bxoKcm9vbS5wcm90bxoR", "dmlkZW9fZnJhbWUucHJvdG8aEWF1ZGlvX2ZyYW1lLnByb3RvGglycGMucHJv", - "dG8aEWRhdGFfc3RyZWFtLnByb3RvIuYlCgpGZmlSZXF1ZXN0EjAKB2Rpc3Bv", - "c2UYAiABKAsyHS5saXZla2l0LnByb3RvLkRpc3Bvc2VSZXF1ZXN0SAASMAoH", - "Y29ubmVjdBgDIAEoCzIdLmxpdmVraXQucHJvdG8uQ29ubmVjdFJlcXVlc3RI", - "ABI2CgpkaXNjb25uZWN0GAQgASgLMiAubGl2ZWtpdC5wcm90by5EaXNjb25u", - "ZWN0UmVxdWVzdEgAEjsKDXB1Ymxpc2hfdHJhY2sYBSABKAsyIi5saXZla2l0", - "LnByb3RvLlB1Ymxpc2hUcmFja1JlcXVlc3RIABI/Cg91bnB1Ymxpc2hfdHJh", - "Y2sYBiABKAsyJC5saXZla2l0LnByb3RvLlVucHVibGlzaFRyYWNrUmVxdWVz", - "dEgAEjkKDHB1Ymxpc2hfZGF0YRgHIAEoCzIhLmxpdmVraXQucHJvdG8uUHVi", - "bGlzaERhdGFSZXF1ZXN0SAASPQoOc2V0X3N1YnNjcmliZWQYCCABKAsyIy5s", - "aXZla2l0LnByb3RvLlNldFN1YnNjcmliZWRSZXF1ZXN0SAASRAoSc2V0X2xv", - "Y2FsX21ldGFkYXRhGAkgASgLMiYubGl2ZWtpdC5wcm90by5TZXRMb2NhbE1l", - "dGFkYXRhUmVxdWVzdEgAEjwKDnNldF9sb2NhbF9uYW1lGAogASgLMiIubGl2", - "ZWtpdC5wcm90by5TZXRMb2NhbE5hbWVSZXF1ZXN0SAASSAoUc2V0X2xvY2Fs", - "X2F0dHJpYnV0ZXMYCyABKAsyKC5saXZla2l0LnByb3RvLlNldExvY2FsQXR0", - "cmlidXRlc1JlcXVlc3RIABJCChFnZXRfc2Vzc2lvbl9zdGF0cxgMIAEoCzIl", - "LmxpdmVraXQucHJvdG8uR2V0U2Vzc2lvblN0YXRzUmVxdWVzdEgAEksKFXB1", - "Ymxpc2hfdHJhbnNjcmlwdGlvbhgNIAEoCzIqLmxpdmVraXQucHJvdG8uUHVi", - "bGlzaFRyYW5zY3JpcHRpb25SZXF1ZXN0SAASQAoQcHVibGlzaF9zaXBfZHRt", - "ZhgOIAEoCzIkLmxpdmVraXQucHJvdG8uUHVibGlzaFNpcER0bWZSZXF1ZXN0", - "SAASRAoSY3JlYXRlX3ZpZGVvX3RyYWNrGA8gASgLMiYubGl2ZWtpdC5wcm90", - "by5DcmVhdGVWaWRlb1RyYWNrUmVxdWVzdEgAEkQKEmNyZWF0ZV9hdWRpb190", - "cmFjaxgQIAEoCzImLmxpdmVraXQucHJvdG8uQ3JlYXRlQXVkaW9UcmFja1Jl", - "cXVlc3RIABJAChBsb2NhbF90cmFja19tdXRlGBEgASgLMiQubGl2ZWtpdC5w", - "cm90by5Mb2NhbFRyYWNrTXV0ZVJlcXVlc3RIABJGChNlbmFibGVfcmVtb3Rl", - "X3RyYWNrGBIgASgLMicubGl2ZWtpdC5wcm90by5FbmFibGVSZW1vdGVUcmFj", - "a1JlcXVlc3RIABIzCglnZXRfc3RhdHMYEyABKAsyHi5saXZla2l0LnByb3Rv", - "LkdldFN0YXRzUmVxdWVzdEgAEmMKInNldF90cmFja19zdWJzY3JpcHRpb25f", - "cGVybWlzc2lvbnMYMCABKAsyNS5saXZla2l0LnByb3RvLlNldFRyYWNrU3Vi", - "c2NyaXB0aW9uUGVybWlzc2lvbnNSZXF1ZXN0SAASQAoQbmV3X3ZpZGVvX3N0", - "cmVhbRgUIAEoCzIkLmxpdmVraXQucHJvdG8uTmV3VmlkZW9TdHJlYW1SZXF1", - "ZXN0SAASQAoQbmV3X3ZpZGVvX3NvdXJjZRgVIAEoCzIkLmxpdmVraXQucHJv", - "dG8uTmV3VmlkZW9Tb3VyY2VSZXF1ZXN0SAASRgoTY2FwdHVyZV92aWRlb19m", - "cmFtZRgWIAEoCzInLmxpdmVraXQucHJvdG8uQ2FwdHVyZVZpZGVvRnJhbWVS", - "ZXF1ZXN0SAASOwoNdmlkZW9fY29udmVydBgXIAEoCzIiLmxpdmVraXQucHJv", - "dG8uVmlkZW9Db252ZXJ0UmVxdWVzdEgAElkKHXZpZGVvX3N0cmVhbV9mcm9t", - "X3BhcnRpY2lwYW50GBggASgLMjAubGl2ZWtpdC5wcm90by5WaWRlb1N0cmVh", - "bUZyb21QYXJ0aWNpcGFudFJlcXVlc3RIABJAChBuZXdfYXVkaW9fc3RyZWFt", - "GBkgASgLMiQubGl2ZWtpdC5wcm90by5OZXdBdWRpb1N0cmVhbVJlcXVlc3RI", - "ABJAChBuZXdfYXVkaW9fc291cmNlGBogASgLMiQubGl2ZWtpdC5wcm90by5O", - "ZXdBdWRpb1NvdXJjZVJlcXVlc3RIABJGChNjYXB0dXJlX2F1ZGlvX2ZyYW1l", - "GBsgASgLMicubGl2ZWtpdC5wcm90by5DYXB0dXJlQXVkaW9GcmFtZVJlcXVl", - "c3RIABJEChJjbGVhcl9hdWRpb19idWZmZXIYHCABKAsyJi5saXZla2l0LnBy", - "b3RvLkNsZWFyQXVkaW9CdWZmZXJSZXF1ZXN0SAASRgoTbmV3X2F1ZGlvX3Jl", - "c2FtcGxlchgdIAEoCzInLmxpdmVraXQucHJvdG8uTmV3QXVkaW9SZXNhbXBs", - "ZXJSZXF1ZXN0SAASRAoScmVtaXhfYW5kX3Jlc2FtcGxlGB4gASgLMiYubGl2", - "ZWtpdC5wcm90by5SZW1peEFuZFJlc2FtcGxlUmVxdWVzdEgAEioKBGUyZWUY", - "HyABKAsyGi5saXZla2l0LnByb3RvLkUyZWVSZXF1ZXN0SAASWQodYXVkaW9f", - "c3RyZWFtX2Zyb21fcGFydGljaXBhbnQYICABKAsyMC5saXZla2l0LnByb3Rv", - "LkF1ZGlvU3RyZWFtRnJvbVBhcnRpY2lwYW50UmVxdWVzdEgAEkIKEW5ld19z", - "b3hfcmVzYW1wbGVyGCEgASgLMiUubGl2ZWtpdC5wcm90by5OZXdTb3hSZXNh", - "bXBsZXJSZXF1ZXN0SAASRAoScHVzaF9zb3hfcmVzYW1wbGVyGCIgASgLMiYu", - "bGl2ZWtpdC5wcm90by5QdXNoU294UmVzYW1wbGVyUmVxdWVzdEgAEkYKE2Zs", - "dXNoX3NveF9yZXNhbXBsZXIYIyABKAsyJy5saXZla2l0LnByb3RvLkZsdXNo", - "U294UmVzYW1wbGVyUmVxdWVzdEgAEkIKEXNlbmRfY2hhdF9tZXNzYWdlGCQg", - "ASgLMiUubGl2ZWtpdC5wcm90by5TZW5kQ2hhdE1lc3NhZ2VSZXF1ZXN0SAAS", - "QgoRZWRpdF9jaGF0X21lc3NhZ2UYJSABKAsyJS5saXZla2l0LnByb3RvLkVk", - "aXRDaGF0TWVzc2FnZVJlcXVlc3RIABI3CgtwZXJmb3JtX3JwYxgmIAEoCzIg", - "LmxpdmVraXQucHJvdG8uUGVyZm9ybVJwY1JlcXVlc3RIABJGChNyZWdpc3Rl", - "cl9ycGNfbWV0aG9kGCcgASgLMicubGl2ZWtpdC5wcm90by5SZWdpc3RlclJw", - "Y01ldGhvZFJlcXVlc3RIABJKChV1bnJlZ2lzdGVyX3JwY19tZXRob2QYKCAB", - "KAsyKS5saXZla2l0LnByb3RvLlVucmVnaXN0ZXJScGNNZXRob2RSZXF1ZXN0", - "SAASWwoecnBjX21ldGhvZF9pbnZvY2F0aW9uX3Jlc3BvbnNlGCkgASgLMjEu", - "bGl2ZWtpdC5wcm90by5ScGNNZXRob2RJbnZvY2F0aW9uUmVzcG9uc2VSZXF1", - "ZXN0SAASXQofZW5hYmxlX3JlbW90ZV90cmFja19wdWJsaWNhdGlvbhgqIAEo", - "CzIyLmxpdmVraXQucHJvdG8uRW5hYmxlUmVtb3RlVHJhY2tQdWJsaWNhdGlv", - "blJlcXVlc3RIABJwCil1cGRhdGVfcmVtb3RlX3RyYWNrX3B1YmxpY2F0aW9u", - "X2RpbWVuc2lvbhgrIAEoCzI7LmxpdmVraXQucHJvdG8uVXBkYXRlUmVtb3Rl", - "VHJhY2tQdWJsaWNhdGlvbkRpbWVuc2lvblJlcXVlc3RIABJEChJzZW5kX3N0", - "cmVhbV9oZWFkZXIYLCABKAsyJi5saXZla2l0LnByb3RvLlNlbmRTdHJlYW1I", - "ZWFkZXJSZXF1ZXN0SAASQgoRc2VuZF9zdHJlYW1fY2h1bmsYLSABKAsyJS5s", - "aXZla2l0LnByb3RvLlNlbmRTdHJlYW1DaHVua1JlcXVlc3RIABJGChNzZW5k", - "X3N0cmVhbV90cmFpbGVyGC4gASgLMicubGl2ZWtpdC5wcm90by5TZW5kU3Ry", - "ZWFtVHJhaWxlclJlcXVlc3RIABJ4Ci5zZXRfZGF0YV9jaGFubmVsX2J1ZmZl", - "cmVkX2Ftb3VudF9sb3dfdGhyZXNob2xkGC8gASgLMj4ubGl2ZWtpdC5wcm90", - "by5TZXREYXRhQ2hhbm5lbEJ1ZmZlcmVkQW1vdW50TG93VGhyZXNob2xkUmVx", - "dWVzdEgAEk8KGGxvYWRfYXVkaW9fZmlsdGVyX3BsdWdpbhgxIAEoCzIrLmxp", - "dmVraXQucHJvdG8uTG9hZEF1ZGlvRmlsdGVyUGx1Z2luUmVxdWVzdEgAEi8K", - "B25ld19hcG0YMiABKAsyHC5saXZla2l0LnByb3RvLk5ld0FwbVJlcXVlc3RI", - "ABJEChJhcG1fcHJvY2Vzc19zdHJlYW0YMyABKAsyJi5saXZla2l0LnByb3Rv", - "LkFwbVByb2Nlc3NTdHJlYW1SZXF1ZXN0SAASUwoaYXBtX3Byb2Nlc3NfcmV2", - "ZXJzZV9zdHJlYW0YNCABKAsyLS5saXZla2l0LnByb3RvLkFwbVByb2Nlc3NS", - "ZXZlcnNlU3RyZWFtUmVxdWVzdEgAEkcKFGFwbV9zZXRfc3RyZWFtX2RlbGF5", - "GDUgASgLMicubGl2ZWtpdC5wcm90by5BcG1TZXRTdHJlYW1EZWxheVJlcXVl", - "c3RIABJWChVieXRlX3JlYWRfaW5jcmVtZW50YWwYNiABKAsyNS5saXZla2l0", - "LnByb3RvLkJ5dGVTdHJlYW1SZWFkZXJSZWFkSW5jcmVtZW50YWxSZXF1ZXN0", - "SAASRgoNYnl0ZV9yZWFkX2FsbBg3IAEoCzItLmxpdmVraXQucHJvdG8uQnl0", - "ZVN0cmVhbVJlYWRlclJlYWRBbGxSZXF1ZXN0SAASTwoSYnl0ZV93cml0ZV90", - "b19maWxlGDggASgLMjEubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVy", - "V3JpdGVUb0ZpbGVSZXF1ZXN0SAASVgoVdGV4dF9yZWFkX2luY3JlbWVudGFs", - "GDkgASgLMjUubGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtUmVhZGVyUmVhZElu", - "Y3JlbWVudGFsUmVxdWVzdEgAEkYKDXRleHRfcmVhZF9hbGwYOiABKAsyLS5s", - "aXZla2l0LnByb3RvLlRleHRTdHJlYW1SZWFkZXJSZWFkQWxsUmVxdWVzdEgA", - "EjkKCXNlbmRfZmlsZRg7IAEoCzIkLmxpdmVraXQucHJvdG8uU3RyZWFtU2Vu", - "ZEZpbGVSZXF1ZXN0SAASOQoJc2VuZF90ZXh0GDwgASgLMiQubGl2ZWtpdC5w", - "cm90by5TdHJlYW1TZW5kVGV4dFJlcXVlc3RIABJAChBieXRlX3N0cmVhbV9v", - "cGVuGD0gASgLMiQubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtT3BlblJlcXVl", - "c3RIABJIChFieXRlX3N0cmVhbV93cml0ZRg+IAEoCzIrLmxpdmVraXQucHJv", - "dG8uQnl0ZVN0cmVhbVdyaXRlcldyaXRlUmVxdWVzdEgAEkgKEWJ5dGVfc3Ry", - "ZWFtX2Nsb3NlGD8gASgLMisubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtV3Jp", - "dGVyQ2xvc2VSZXF1ZXN0SAASQAoQdGV4dF9zdHJlYW1fb3BlbhhAIAEoCzIk", - "LmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbU9wZW5SZXF1ZXN0SAASSAoRdGV4", - "dF9zdHJlYW1fd3JpdGUYQSABKAsyKy5saXZla2l0LnByb3RvLlRleHRTdHJl", - "YW1Xcml0ZXJXcml0ZVJlcXVlc3RIABJIChF0ZXh0X3N0cmVhbV9jbG9zZRhC", - "IAEoCzIrLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbVdyaXRlckNsb3NlUmVx", - "dWVzdEgAEjsKCnNlbmRfYnl0ZXMYQyABKAsyJS5saXZla2l0LnByb3RvLlN0", - "cmVhbVNlbmRCeXRlc1JlcXVlc3RIABJmCiRzZXRfcmVtb3RlX3RyYWNrX3B1", - "YmxpY2F0aW9uX3F1YWxpdHkYRCABKAsyNi5saXZla2l0LnByb3RvLlNldFJl", - "bW90ZVRyYWNrUHVibGljYXRpb25RdWFsaXR5UmVxdWVzdEgAQgkKB21lc3Nh", - "Z2Ui5SUKC0ZmaVJlc3BvbnNlEjEKB2Rpc3Bvc2UYAiABKAsyHi5saXZla2l0", - "LnByb3RvLkRpc3Bvc2VSZXNwb25zZUgAEjEKB2Nvbm5lY3QYAyABKAsyHi5s", - "aXZla2l0LnByb3RvLkNvbm5lY3RSZXNwb25zZUgAEjcKCmRpc2Nvbm5lY3QY", - "BCABKAsyIS5saXZla2l0LnByb3RvLkRpc2Nvbm5lY3RSZXNwb25zZUgAEjwK", - "DXB1Ymxpc2hfdHJhY2sYBSABKAsyIy5saXZla2l0LnByb3RvLlB1Ymxpc2hU", - "cmFja1Jlc3BvbnNlSAASQAoPdW5wdWJsaXNoX3RyYWNrGAYgASgLMiUubGl2", - "ZWtpdC5wcm90by5VbnB1Ymxpc2hUcmFja1Jlc3BvbnNlSAASOgoMcHVibGlz", - "aF9kYXRhGAcgASgLMiIubGl2ZWtpdC5wcm90by5QdWJsaXNoRGF0YVJlc3Bv", - "bnNlSAASPgoOc2V0X3N1YnNjcmliZWQYCCABKAsyJC5saXZla2l0LnByb3Rv", - "LlNldFN1YnNjcmliZWRSZXNwb25zZUgAEkUKEnNldF9sb2NhbF9tZXRhZGF0", - "YRgJIAEoCzInLmxpdmVraXQucHJvdG8uU2V0TG9jYWxNZXRhZGF0YVJlc3Bv", - "bnNlSAASPQoOc2V0X2xvY2FsX25hbWUYCiABKAsyIy5saXZla2l0LnByb3Rv", - "LlNldExvY2FsTmFtZVJlc3BvbnNlSAASSQoUc2V0X2xvY2FsX2F0dHJpYnV0", - "ZXMYCyABKAsyKS5saXZla2l0LnByb3RvLlNldExvY2FsQXR0cmlidXRlc1Jl", - "c3BvbnNlSAASQwoRZ2V0X3Nlc3Npb25fc3RhdHMYDCABKAsyJi5saXZla2l0", - "LnByb3RvLkdldFNlc3Npb25TdGF0c1Jlc3BvbnNlSAASTAoVcHVibGlzaF90", - "cmFuc2NyaXB0aW9uGA0gASgLMisubGl2ZWtpdC5wcm90by5QdWJsaXNoVHJh", - "bnNjcmlwdGlvblJlc3BvbnNlSAASQQoQcHVibGlzaF9zaXBfZHRtZhgOIAEo", - "CzIlLmxpdmVraXQucHJvdG8uUHVibGlzaFNpcER0bWZSZXNwb25zZUgAEkUK", - "EmNyZWF0ZV92aWRlb190cmFjaxgPIAEoCzInLmxpdmVraXQucHJvdG8uQ3Jl", - "YXRlVmlkZW9UcmFja1Jlc3BvbnNlSAASRQoSY3JlYXRlX2F1ZGlvX3RyYWNr", - "GBAgASgLMicubGl2ZWtpdC5wcm90by5DcmVhdGVBdWRpb1RyYWNrUmVzcG9u", - "c2VIABJBChBsb2NhbF90cmFja19tdXRlGBEgASgLMiUubGl2ZWtpdC5wcm90", - "by5Mb2NhbFRyYWNrTXV0ZVJlc3BvbnNlSAASRwoTZW5hYmxlX3JlbW90ZV90", - "cmFjaxgSIAEoCzIoLmxpdmVraXQucHJvdG8uRW5hYmxlUmVtb3RlVHJhY2tS", - "ZXNwb25zZUgAEjQKCWdldF9zdGF0cxgTIAEoCzIfLmxpdmVraXQucHJvdG8u", - "R2V0U3RhdHNSZXNwb25zZUgAEmQKInNldF90cmFja19zdWJzY3JpcHRpb25f", - "cGVybWlzc2lvbnMYLyABKAsyNi5saXZla2l0LnByb3RvLlNldFRyYWNrU3Vi", - "c2NyaXB0aW9uUGVybWlzc2lvbnNSZXNwb25zZUgAEkEKEG5ld192aWRlb19z", - "dHJlYW0YFCABKAsyJS5saXZla2l0LnByb3RvLk5ld1ZpZGVvU3RyZWFtUmVz", - "cG9uc2VIABJBChBuZXdfdmlkZW9fc291cmNlGBUgASgLMiUubGl2ZWtpdC5w", - "cm90by5OZXdWaWRlb1NvdXJjZVJlc3BvbnNlSAASRwoTY2FwdHVyZV92aWRl", - "b19mcmFtZRgWIAEoCzIoLmxpdmVraXQucHJvdG8uQ2FwdHVyZVZpZGVvRnJh", - "bWVSZXNwb25zZUgAEjwKDXZpZGVvX2NvbnZlcnQYFyABKAsyIy5saXZla2l0", - "LnByb3RvLlZpZGVvQ29udmVydFJlc3BvbnNlSAASWgoddmlkZW9fc3RyZWFt", - "X2Zyb21fcGFydGljaXBhbnQYGCABKAsyMS5saXZla2l0LnByb3RvLlZpZGVv", - "U3RyZWFtRnJvbVBhcnRpY2lwYW50UmVzcG9uc2VIABJBChBuZXdfYXVkaW9f", - "c3RyZWFtGBkgASgLMiUubGl2ZWtpdC5wcm90by5OZXdBdWRpb1N0cmVhbVJl", - "c3BvbnNlSAASQQoQbmV3X2F1ZGlvX3NvdXJjZRgaIAEoCzIlLmxpdmVraXQu", - "cHJvdG8uTmV3QXVkaW9Tb3VyY2VSZXNwb25zZUgAEkcKE2NhcHR1cmVfYXVk", - "aW9fZnJhbWUYGyABKAsyKC5saXZla2l0LnByb3RvLkNhcHR1cmVBdWRpb0Zy", - "YW1lUmVzcG9uc2VIABJFChJjbGVhcl9hdWRpb19idWZmZXIYHCABKAsyJy5s", - "aXZla2l0LnByb3RvLkNsZWFyQXVkaW9CdWZmZXJSZXNwb25zZUgAEkcKE25l", - "d19hdWRpb19yZXNhbXBsZXIYHSABKAsyKC5saXZla2l0LnByb3RvLk5ld0F1", - "ZGlvUmVzYW1wbGVyUmVzcG9uc2VIABJFChJyZW1peF9hbmRfcmVzYW1wbGUY", - "HiABKAsyJy5saXZla2l0LnByb3RvLlJlbWl4QW5kUmVzYW1wbGVSZXNwb25z", - "ZUgAEloKHWF1ZGlvX3N0cmVhbV9mcm9tX3BhcnRpY2lwYW50GB8gASgLMjEu", - "bGl2ZWtpdC5wcm90by5BdWRpb1N0cmVhbUZyb21QYXJ0aWNpcGFudFJlc3Bv", - "bnNlSAASKwoEZTJlZRggIAEoCzIbLmxpdmVraXQucHJvdG8uRTJlZVJlc3Bv", - "bnNlSAASQwoRbmV3X3NveF9yZXNhbXBsZXIYISABKAsyJi5saXZla2l0LnBy", - "b3RvLk5ld1NveFJlc2FtcGxlclJlc3BvbnNlSAASRQoScHVzaF9zb3hfcmVz", - "YW1wbGVyGCIgASgLMicubGl2ZWtpdC5wcm90by5QdXNoU294UmVzYW1wbGVy", - "UmVzcG9uc2VIABJHChNmbHVzaF9zb3hfcmVzYW1wbGVyGCMgASgLMigubGl2", - "ZWtpdC5wcm90by5GbHVzaFNveFJlc2FtcGxlclJlc3BvbnNlSAASQwoRc2Vu", - "ZF9jaGF0X21lc3NhZ2UYJCABKAsyJi5saXZla2l0LnByb3RvLlNlbmRDaGF0", - "TWVzc2FnZVJlc3BvbnNlSAASOAoLcGVyZm9ybV9ycGMYJSABKAsyIS5saXZl", - "a2l0LnByb3RvLlBlcmZvcm1ScGNSZXNwb25zZUgAEkcKE3JlZ2lzdGVyX3Jw", - "Y19tZXRob2QYJiABKAsyKC5saXZla2l0LnByb3RvLlJlZ2lzdGVyUnBjTWV0", - "aG9kUmVzcG9uc2VIABJLChV1bnJlZ2lzdGVyX3JwY19tZXRob2QYJyABKAsy", - "Ki5saXZla2l0LnByb3RvLlVucmVnaXN0ZXJScGNNZXRob2RSZXNwb25zZUgA", - "ElwKHnJwY19tZXRob2RfaW52b2NhdGlvbl9yZXNwb25zZRgoIAEoCzIyLmxp", - "dmVraXQucHJvdG8uUnBjTWV0aG9kSW52b2NhdGlvblJlc3BvbnNlUmVzcG9u", - "c2VIABJeCh9lbmFibGVfcmVtb3RlX3RyYWNrX3B1YmxpY2F0aW9uGCkgASgL", - "MjMubGl2ZWtpdC5wcm90by5FbmFibGVSZW1vdGVUcmFja1B1YmxpY2F0aW9u", - "UmVzcG9uc2VIABJxCil1cGRhdGVfcmVtb3RlX3RyYWNrX3B1YmxpY2F0aW9u", - "X2RpbWVuc2lvbhgqIAEoCzI8LmxpdmVraXQucHJvdG8uVXBkYXRlUmVtb3Rl", - "VHJhY2tQdWJsaWNhdGlvbkRpbWVuc2lvblJlc3BvbnNlSAASRQoSc2VuZF9z", - "dHJlYW1faGVhZGVyGCsgASgLMicubGl2ZWtpdC5wcm90by5TZW5kU3RyZWFt", - "SGVhZGVyUmVzcG9uc2VIABJDChFzZW5kX3N0cmVhbV9jaHVuaxgsIAEoCzIm", - "LmxpdmVraXQucHJvdG8uU2VuZFN0cmVhbUNodW5rUmVzcG9uc2VIABJHChNz", - "ZW5kX3N0cmVhbV90cmFpbGVyGC0gASgLMigubGl2ZWtpdC5wcm90by5TZW5k", - "U3RyZWFtVHJhaWxlclJlc3BvbnNlSAASeQouc2V0X2RhdGFfY2hhbm5lbF9i", - "dWZmZXJlZF9hbW91bnRfbG93X3RocmVzaG9sZBguIAEoCzI/LmxpdmVraXQu", - "cHJvdG8uU2V0RGF0YUNoYW5uZWxCdWZmZXJlZEFtb3VudExvd1RocmVzaG9s", - "ZFJlc3BvbnNlSAASUAoYbG9hZF9hdWRpb19maWx0ZXJfcGx1Z2luGDAgASgL", - "MiwubGl2ZWtpdC5wcm90by5Mb2FkQXVkaW9GaWx0ZXJQbHVnaW5SZXNwb25z", - "ZUgAEjAKB25ld19hcG0YMSABKAsyHS5saXZla2l0LnByb3RvLk5ld0FwbVJl", - "c3BvbnNlSAASRQoSYXBtX3Byb2Nlc3Nfc3RyZWFtGDIgASgLMicubGl2ZWtp", - "dC5wcm90by5BcG1Qcm9jZXNzU3RyZWFtUmVzcG9uc2VIABJUChphcG1fcHJv", - "Y2Vzc19yZXZlcnNlX3N0cmVhbRgzIAEoCzIuLmxpdmVraXQucHJvdG8uQXBt", - "UHJvY2Vzc1JldmVyc2VTdHJlYW1SZXNwb25zZUgAEkgKFGFwbV9zZXRfc3Ry", - "ZWFtX2RlbGF5GDQgASgLMigubGl2ZWtpdC5wcm90by5BcG1TZXRTdHJlYW1E", - "ZWxheVJlc3BvbnNlSAASVwoVYnl0ZV9yZWFkX2luY3JlbWVudGFsGDUgASgL", - "MjYubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyUmVhZEluY3JlbWVu", - "dGFsUmVzcG9uc2VIABJHCg1ieXRlX3JlYWRfYWxsGDYgASgLMi4ubGl2ZWtp", - "dC5wcm90by5CeXRlU3RyZWFtUmVhZGVyUmVhZEFsbFJlc3BvbnNlSAASUAoS", - "Ynl0ZV93cml0ZV90b19maWxlGDcgASgLMjIubGl2ZWtpdC5wcm90by5CeXRl", - "U3RyZWFtUmVhZGVyV3JpdGVUb0ZpbGVSZXNwb25zZUgAElcKFXRleHRfcmVh", - "ZF9pbmNyZW1lbnRhbBg4IAEoCzI2LmxpdmVraXQucHJvdG8uVGV4dFN0cmVh", - "bVJlYWRlclJlYWRJbmNyZW1lbnRhbFJlc3BvbnNlSAASRwoNdGV4dF9yZWFk", - "X2FsbBg5IAEoCzIuLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbVJlYWRlclJl", - "YWRBbGxSZXNwb25zZUgAEjoKCXNlbmRfZmlsZRg6IAEoCzIlLmxpdmVraXQu", - "cHJvdG8uU3RyZWFtU2VuZEZpbGVSZXNwb25zZUgAEjoKCXNlbmRfdGV4dBg7", - "IAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2VuZFRleHRSZXNwb25zZUgA", - "EkEKEGJ5dGVfc3RyZWFtX29wZW4YPCABKAsyJS5saXZla2l0LnByb3RvLkJ5", - "dGVTdHJlYW1PcGVuUmVzcG9uc2VIABJJChFieXRlX3N0cmVhbV93cml0ZRg9", - "IAEoCzIsLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVdyaXRlcldyaXRlUmVz", - "cG9uc2VIABJJChFieXRlX3N0cmVhbV9jbG9zZRg+IAEoCzIsLmxpdmVraXQu", - "cHJvdG8uQnl0ZVN0cmVhbVdyaXRlckNsb3NlUmVzcG9uc2VIABJBChB0ZXh0", - "X3N0cmVhbV9vcGVuGD8gASgLMiUubGl2ZWtpdC5wcm90by5UZXh0U3RyZWFt", - "T3BlblJlc3BvbnNlSAASSQoRdGV4dF9zdHJlYW1fd3JpdGUYQCABKAsyLC5s", - "aXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJXcml0ZVJlc3BvbnNlSAAS", - "SQoRdGV4dF9zdHJlYW1fY2xvc2UYQSABKAsyLC5saXZla2l0LnByb3RvLlRl", - "eHRTdHJlYW1Xcml0ZXJDbG9zZVJlc3BvbnNlSAASPAoKc2VuZF9ieXRlcxhC", - "IAEoCzImLmxpdmVraXQucHJvdG8uU3RyZWFtU2VuZEJ5dGVzUmVzcG9uc2VI", - "ABJnCiRzZXRfcmVtb3RlX3RyYWNrX3B1YmxpY2F0aW9uX3F1YWxpdHkYQyAB", - "KAsyNy5saXZla2l0LnByb3RvLlNldFJlbW90ZVRyYWNrUHVibGljYXRpb25R", - "dWFsaXR5UmVzcG9uc2VIAEIJCgdtZXNzYWdlIoUVCghGZmlFdmVudBIuCgpy", - "b29tX2V2ZW50GAEgASgLMhgubGl2ZWtpdC5wcm90by5Sb29tRXZlbnRIABIw", - "Cgt0cmFja19ldmVudBgCIAEoCzIZLmxpdmVraXQucHJvdG8uVHJhY2tFdmVu", - "dEgAEj0KEnZpZGVvX3N0cmVhbV9ldmVudBgDIAEoCzIfLmxpdmVraXQucHJv", - "dG8uVmlkZW9TdHJlYW1FdmVudEgAEj0KEmF1ZGlvX3N0cmVhbV9ldmVudBgE", - "IAEoCzIfLmxpdmVraXQucHJvdG8uQXVkaW9TdHJlYW1FdmVudEgAEjEKB2Nv", - "bm5lY3QYBSABKAsyHi5saXZla2l0LnByb3RvLkNvbm5lY3RDYWxsYmFja0gA", - "EjcKCmRpc2Nvbm5lY3QYByABKAsyIS5saXZla2l0LnByb3RvLkRpc2Nvbm5l", - "Y3RDYWxsYmFja0gAEjEKB2Rpc3Bvc2UYCCABKAsyHi5saXZla2l0LnByb3Rv", - "LkRpc3Bvc2VDYWxsYmFja0gAEjwKDXB1Ymxpc2hfdHJhY2sYCSABKAsyIy5s", - "aXZla2l0LnByb3RvLlB1Ymxpc2hUcmFja0NhbGxiYWNrSAASQAoPdW5wdWJs", - "aXNoX3RyYWNrGAogASgLMiUubGl2ZWtpdC5wcm90by5VbnB1Ymxpc2hUcmFj", - "a0NhbGxiYWNrSAASOgoMcHVibGlzaF9kYXRhGAsgASgLMiIubGl2ZWtpdC5w", - "cm90by5QdWJsaXNoRGF0YUNhbGxiYWNrSAASTAoVcHVibGlzaF90cmFuc2Ny", - "aXB0aW9uGAwgASgLMisubGl2ZWtpdC5wcm90by5QdWJsaXNoVHJhbnNjcmlw", - "dGlvbkNhbGxiYWNrSAASRwoTY2FwdHVyZV9hdWRpb19mcmFtZRgNIAEoCzIo", - "LmxpdmVraXQucHJvdG8uQ2FwdHVyZUF1ZGlvRnJhbWVDYWxsYmFja0gAEkUK", - "EnNldF9sb2NhbF9tZXRhZGF0YRgOIAEoCzInLmxpdmVraXQucHJvdG8uU2V0", - "TG9jYWxNZXRhZGF0YUNhbGxiYWNrSAASPQoOc2V0X2xvY2FsX25hbWUYDyAB", - "KAsyIy5saXZla2l0LnByb3RvLlNldExvY2FsTmFtZUNhbGxiYWNrSAASSQoU", - "c2V0X2xvY2FsX2F0dHJpYnV0ZXMYECABKAsyKS5saXZla2l0LnByb3RvLlNl", - "dExvY2FsQXR0cmlidXRlc0NhbGxiYWNrSAASNAoJZ2V0X3N0YXRzGBEgASgL", - "Mh8ubGl2ZWtpdC5wcm90by5HZXRTdGF0c0NhbGxiYWNrSAASJwoEbG9ncxgS", - "IAEoCzIXLmxpdmVraXQucHJvdG8uTG9nQmF0Y2hIABJDChFnZXRfc2Vzc2lv", - "bl9zdGF0cxgTIAEoCzImLmxpdmVraXQucHJvdG8uR2V0U2Vzc2lvblN0YXRz", - "Q2FsbGJhY2tIABIlCgVwYW5pYxgUIAEoCzIULmxpdmVraXQucHJvdG8uUGFu", - "aWNIABJBChBwdWJsaXNoX3NpcF9kdG1mGBUgASgLMiUubGl2ZWtpdC5wcm90", - "by5QdWJsaXNoU2lwRHRtZkNhbGxiYWNrSAASPgoMY2hhdF9tZXNzYWdlGBYg", - "ASgLMiYubGl2ZWtpdC5wcm90by5TZW5kQ2hhdE1lc3NhZ2VDYWxsYmFja0gA", - "EjgKC3BlcmZvcm1fcnBjGBcgASgLMiEubGl2ZWtpdC5wcm90by5QZXJmb3Jt", - "UnBjQ2FsbGJhY2tIABJIChVycGNfbWV0aG9kX2ludm9jYXRpb24YGCABKAsy", - "Jy5saXZla2l0LnByb3RvLlJwY01ldGhvZEludm9jYXRpb25FdmVudEgAEkUK", - "EnNlbmRfc3RyZWFtX2hlYWRlchgZIAEoCzInLmxpdmVraXQucHJvdG8uU2Vu", - "ZFN0cmVhbUhlYWRlckNhbGxiYWNrSAASQwoRc2VuZF9zdHJlYW1fY2h1bmsY", - "GiABKAsyJi5saXZla2l0LnByb3RvLlNlbmRTdHJlYW1DaHVua0NhbGxiYWNr", - "SAASRwoTc2VuZF9zdHJlYW1fdHJhaWxlchgbIAEoCzIoLmxpdmVraXQucHJv", - "dG8uU2VuZFN0cmVhbVRyYWlsZXJDYWxsYmFja0gAEkgKGGJ5dGVfc3RyZWFt", - "X3JlYWRlcl9ldmVudBgcIAEoCzIkLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVh", - "bVJlYWRlckV2ZW50SAASVQobYnl0ZV9zdHJlYW1fcmVhZGVyX3JlYWRfYWxs", - "GB0gASgLMi4ubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyUmVhZEFs", - "bENhbGxiYWNrSAASXgogYnl0ZV9zdHJlYW1fcmVhZGVyX3dyaXRlX3RvX2Zp", - "bGUYHiABKAsyMi5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1SZWFkZXJXcml0", - "ZVRvRmlsZUNhbGxiYWNrSAASQQoQYnl0ZV9zdHJlYW1fb3BlbhgfIAEoCzIl", - "LmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbU9wZW5DYWxsYmFja0gAElAKGGJ5", - "dGVfc3RyZWFtX3dyaXRlcl93cml0ZRggIAEoCzIsLmxpdmVraXQucHJvdG8u", - "Qnl0ZVN0cmVhbVdyaXRlcldyaXRlQ2FsbGJhY2tIABJQChhieXRlX3N0cmVh", - "bV93cml0ZXJfY2xvc2UYISABKAsyLC5saXZla2l0LnByb3RvLkJ5dGVTdHJl", - "YW1Xcml0ZXJDbG9zZUNhbGxiYWNrSAASOgoJc2VuZF9maWxlGCIgASgLMiUu", - "bGl2ZWtpdC5wcm90by5TdHJlYW1TZW5kRmlsZUNhbGxiYWNrSAASSAoYdGV4", - "dF9zdHJlYW1fcmVhZGVyX2V2ZW50GCMgASgLMiQubGl2ZWtpdC5wcm90by5U", - "ZXh0U3RyZWFtUmVhZGVyRXZlbnRIABJVCht0ZXh0X3N0cmVhbV9yZWFkZXJf", - "cmVhZF9hbGwYJCABKAsyLi5saXZla2l0LnByb3RvLlRleHRTdHJlYW1SZWFk", - "ZXJSZWFkQWxsQ2FsbGJhY2tIABJBChB0ZXh0X3N0cmVhbV9vcGVuGCUgASgL", - "MiUubGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtT3BlbkNhbGxiYWNrSAASUAoY", - "dGV4dF9zdHJlYW1fd3JpdGVyX3dyaXRlGCYgASgLMiwubGl2ZWtpdC5wcm90", - "by5UZXh0U3RyZWFtV3JpdGVyV3JpdGVDYWxsYmFja0gAElAKGHRleHRfc3Ry", - "ZWFtX3dyaXRlcl9jbG9zZRgnIAEoCzIsLmxpdmVraXQucHJvdG8uVGV4dFN0", - "cmVhbVdyaXRlckNsb3NlQ2FsbGJhY2tIABI6CglzZW5kX3RleHQYKCABKAsy", - "JS5saXZla2l0LnByb3RvLlN0cmVhbVNlbmRUZXh0Q2FsbGJhY2tIABI8Cgpz", - "ZW5kX2J5dGVzGCkgASgLMiYubGl2ZWtpdC5wcm90by5TdHJlYW1TZW5kQnl0", - "ZXNDYWxsYmFja0gAQgkKB21lc3NhZ2UiHwoORGlzcG9zZVJlcXVlc3QSDQoF", - "YXN5bmMYASACKAgiIwoPRGlzcG9zZVJlc3BvbnNlEhAKCGFzeW5jX2lkGAEg", - "ASgEIiMKD0Rpc3Bvc2VDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBCKFAQoJ", - "TG9nUmVjb3JkEiYKBWxldmVsGAEgAigOMhcubGl2ZWtpdC5wcm90by5Mb2dM", - "ZXZlbBIOCgZ0YXJnZXQYAiACKAkSEwoLbW9kdWxlX3BhdGgYAyABKAkSDAoE", - "ZmlsZRgEIAEoCRIMCgRsaW5lGAUgASgNEg8KB21lc3NhZ2UYBiACKAkiNQoI", - "TG9nQmF0Y2gSKQoHcmVjb3JkcxgBIAMoCzIYLmxpdmVraXQucHJvdG8uTG9n", - "UmVjb3JkIhgKBVBhbmljEg8KB21lc3NhZ2UYASACKAkqUwoITG9nTGV2ZWwS", - "DQoJTE9HX0VSUk9SEAASDAoITE9HX1dBUk4QARIMCghMT0dfSU5GTxACEg0K", - "CUxPR19ERUJVRxADEg0KCUxPR19UUkFDRRAEQhCqAg1MaXZlS2l0LlByb3Rv")); + "dG8aEWRhdGFfc3RyZWFtLnByb3RvGhBkYXRhX3RyYWNrLnByb3RvItMpCgpG", + "ZmlSZXF1ZXN0EjAKB2Rpc3Bvc2UYAiABKAsyHS5saXZla2l0LnByb3RvLkRp", + "c3Bvc2VSZXF1ZXN0SAASMAoHY29ubmVjdBgDIAEoCzIdLmxpdmVraXQucHJv", + "dG8uQ29ubmVjdFJlcXVlc3RIABI2CgpkaXNjb25uZWN0GAQgASgLMiAubGl2", + "ZWtpdC5wcm90by5EaXNjb25uZWN0UmVxdWVzdEgAEjsKDXB1Ymxpc2hfdHJh", + "Y2sYBSABKAsyIi5saXZla2l0LnByb3RvLlB1Ymxpc2hUcmFja1JlcXVlc3RI", + "ABI/Cg91bnB1Ymxpc2hfdHJhY2sYBiABKAsyJC5saXZla2l0LnByb3RvLlVu", + "cHVibGlzaFRyYWNrUmVxdWVzdEgAEjkKDHB1Ymxpc2hfZGF0YRgHIAEoCzIh", + "LmxpdmVraXQucHJvdG8uUHVibGlzaERhdGFSZXF1ZXN0SAASPQoOc2V0X3N1", + "YnNjcmliZWQYCCABKAsyIy5saXZla2l0LnByb3RvLlNldFN1YnNjcmliZWRS", + "ZXF1ZXN0SAASRAoSc2V0X2xvY2FsX21ldGFkYXRhGAkgASgLMiYubGl2ZWtp", + "dC5wcm90by5TZXRMb2NhbE1ldGFkYXRhUmVxdWVzdEgAEjwKDnNldF9sb2Nh", + "bF9uYW1lGAogASgLMiIubGl2ZWtpdC5wcm90by5TZXRMb2NhbE5hbWVSZXF1", + "ZXN0SAASSAoUc2V0X2xvY2FsX2F0dHJpYnV0ZXMYCyABKAsyKC5saXZla2l0", + "LnByb3RvLlNldExvY2FsQXR0cmlidXRlc1JlcXVlc3RIABJCChFnZXRfc2Vz", + "c2lvbl9zdGF0cxgMIAEoCzIlLmxpdmVraXQucHJvdG8uR2V0U2Vzc2lvblN0", + "YXRzUmVxdWVzdEgAEksKFXB1Ymxpc2hfdHJhbnNjcmlwdGlvbhgNIAEoCzIq", + "LmxpdmVraXQucHJvdG8uUHVibGlzaFRyYW5zY3JpcHRpb25SZXF1ZXN0SAAS", + "QAoQcHVibGlzaF9zaXBfZHRtZhgOIAEoCzIkLmxpdmVraXQucHJvdG8uUHVi", + "bGlzaFNpcER0bWZSZXF1ZXN0SAASRAoSY3JlYXRlX3ZpZGVvX3RyYWNrGA8g", + "ASgLMiYubGl2ZWtpdC5wcm90by5DcmVhdGVWaWRlb1RyYWNrUmVxdWVzdEgA", + "EkQKEmNyZWF0ZV9hdWRpb190cmFjaxgQIAEoCzImLmxpdmVraXQucHJvdG8u", + "Q3JlYXRlQXVkaW9UcmFja1JlcXVlc3RIABJAChBsb2NhbF90cmFja19tdXRl", + "GBEgASgLMiQubGl2ZWtpdC5wcm90by5Mb2NhbFRyYWNrTXV0ZVJlcXVlc3RI", + "ABJGChNlbmFibGVfcmVtb3RlX3RyYWNrGBIgASgLMicubGl2ZWtpdC5wcm90", + "by5FbmFibGVSZW1vdGVUcmFja1JlcXVlc3RIABIzCglnZXRfc3RhdHMYEyAB", + "KAsyHi5saXZla2l0LnByb3RvLkdldFN0YXRzUmVxdWVzdEgAEmMKInNldF90", + "cmFja19zdWJzY3JpcHRpb25fcGVybWlzc2lvbnMYMCABKAsyNS5saXZla2l0", + "LnByb3RvLlNldFRyYWNrU3Vic2NyaXB0aW9uUGVybWlzc2lvbnNSZXF1ZXN0", + "SAASQAoQbmV3X3ZpZGVvX3N0cmVhbRgUIAEoCzIkLmxpdmVraXQucHJvdG8u", + "TmV3VmlkZW9TdHJlYW1SZXF1ZXN0SAASQAoQbmV3X3ZpZGVvX3NvdXJjZRgV", + "IAEoCzIkLmxpdmVraXQucHJvdG8uTmV3VmlkZW9Tb3VyY2VSZXF1ZXN0SAAS", + "RgoTY2FwdHVyZV92aWRlb19mcmFtZRgWIAEoCzInLmxpdmVraXQucHJvdG8u", + "Q2FwdHVyZVZpZGVvRnJhbWVSZXF1ZXN0SAASOwoNdmlkZW9fY29udmVydBgX", + "IAEoCzIiLmxpdmVraXQucHJvdG8uVmlkZW9Db252ZXJ0UmVxdWVzdEgAElkK", + "HXZpZGVvX3N0cmVhbV9mcm9tX3BhcnRpY2lwYW50GBggASgLMjAubGl2ZWtp", + "dC5wcm90by5WaWRlb1N0cmVhbUZyb21QYXJ0aWNpcGFudFJlcXVlc3RIABJA", + "ChBuZXdfYXVkaW9fc3RyZWFtGBkgASgLMiQubGl2ZWtpdC5wcm90by5OZXdB", + "dWRpb1N0cmVhbVJlcXVlc3RIABJAChBuZXdfYXVkaW9fc291cmNlGBogASgL", + "MiQubGl2ZWtpdC5wcm90by5OZXdBdWRpb1NvdXJjZVJlcXVlc3RIABJGChNj", + "YXB0dXJlX2F1ZGlvX2ZyYW1lGBsgASgLMicubGl2ZWtpdC5wcm90by5DYXB0", + "dXJlQXVkaW9GcmFtZVJlcXVlc3RIABJEChJjbGVhcl9hdWRpb19idWZmZXIY", + "HCABKAsyJi5saXZla2l0LnByb3RvLkNsZWFyQXVkaW9CdWZmZXJSZXF1ZXN0", + "SAASRgoTbmV3X2F1ZGlvX3Jlc2FtcGxlchgdIAEoCzInLmxpdmVraXQucHJv", + "dG8uTmV3QXVkaW9SZXNhbXBsZXJSZXF1ZXN0SAASRAoScmVtaXhfYW5kX3Jl", + "c2FtcGxlGB4gASgLMiYubGl2ZWtpdC5wcm90by5SZW1peEFuZFJlc2FtcGxl", + "UmVxdWVzdEgAEioKBGUyZWUYHyABKAsyGi5saXZla2l0LnByb3RvLkUyZWVS", + "ZXF1ZXN0SAASWQodYXVkaW9fc3RyZWFtX2Zyb21fcGFydGljaXBhbnQYICAB", + "KAsyMC5saXZla2l0LnByb3RvLkF1ZGlvU3RyZWFtRnJvbVBhcnRpY2lwYW50", + "UmVxdWVzdEgAEkIKEW5ld19zb3hfcmVzYW1wbGVyGCEgASgLMiUubGl2ZWtp", + "dC5wcm90by5OZXdTb3hSZXNhbXBsZXJSZXF1ZXN0SAASRAoScHVzaF9zb3hf", + "cmVzYW1wbGVyGCIgASgLMiYubGl2ZWtpdC5wcm90by5QdXNoU294UmVzYW1w", + "bGVyUmVxdWVzdEgAEkYKE2ZsdXNoX3NveF9yZXNhbXBsZXIYIyABKAsyJy5s", + "aXZla2l0LnByb3RvLkZsdXNoU294UmVzYW1wbGVyUmVxdWVzdEgAEkIKEXNl", + "bmRfY2hhdF9tZXNzYWdlGCQgASgLMiUubGl2ZWtpdC5wcm90by5TZW5kQ2hh", + "dE1lc3NhZ2VSZXF1ZXN0SAASQgoRZWRpdF9jaGF0X21lc3NhZ2UYJSABKAsy", + "JS5saXZla2l0LnByb3RvLkVkaXRDaGF0TWVzc2FnZVJlcXVlc3RIABI3Cgtw", + "ZXJmb3JtX3JwYxgmIAEoCzIgLmxpdmVraXQucHJvdG8uUGVyZm9ybVJwY1Jl", + "cXVlc3RIABJGChNyZWdpc3Rlcl9ycGNfbWV0aG9kGCcgASgLMicubGl2ZWtp", + "dC5wcm90by5SZWdpc3RlclJwY01ldGhvZFJlcXVlc3RIABJKChV1bnJlZ2lz", + "dGVyX3JwY19tZXRob2QYKCABKAsyKS5saXZla2l0LnByb3RvLlVucmVnaXN0", + "ZXJScGNNZXRob2RSZXF1ZXN0SAASWwoecnBjX21ldGhvZF9pbnZvY2F0aW9u", + "X3Jlc3BvbnNlGCkgASgLMjEubGl2ZWtpdC5wcm90by5ScGNNZXRob2RJbnZv", + "Y2F0aW9uUmVzcG9uc2VSZXF1ZXN0SAASXQofZW5hYmxlX3JlbW90ZV90cmFj", + "a19wdWJsaWNhdGlvbhgqIAEoCzIyLmxpdmVraXQucHJvdG8uRW5hYmxlUmVt", + "b3RlVHJhY2tQdWJsaWNhdGlvblJlcXVlc3RIABJwCil1cGRhdGVfcmVtb3Rl", + "X3RyYWNrX3B1YmxpY2F0aW9uX2RpbWVuc2lvbhgrIAEoCzI7LmxpdmVraXQu", + "cHJvdG8uVXBkYXRlUmVtb3RlVHJhY2tQdWJsaWNhdGlvbkRpbWVuc2lvblJl", + "cXVlc3RIABJEChJzZW5kX3N0cmVhbV9oZWFkZXIYLCABKAsyJi5saXZla2l0", + "LnByb3RvLlNlbmRTdHJlYW1IZWFkZXJSZXF1ZXN0SAASQgoRc2VuZF9zdHJl", + "YW1fY2h1bmsYLSABKAsyJS5saXZla2l0LnByb3RvLlNlbmRTdHJlYW1DaHVu", + "a1JlcXVlc3RIABJGChNzZW5kX3N0cmVhbV90cmFpbGVyGC4gASgLMicubGl2", + "ZWtpdC5wcm90by5TZW5kU3RyZWFtVHJhaWxlclJlcXVlc3RIABJ4Ci5zZXRf", + "ZGF0YV9jaGFubmVsX2J1ZmZlcmVkX2Ftb3VudF9sb3dfdGhyZXNob2xkGC8g", + "ASgLMj4ubGl2ZWtpdC5wcm90by5TZXREYXRhQ2hhbm5lbEJ1ZmZlcmVkQW1v", + "dW50TG93VGhyZXNob2xkUmVxdWVzdEgAEk8KGGxvYWRfYXVkaW9fZmlsdGVy", + "X3BsdWdpbhgxIAEoCzIrLmxpdmVraXQucHJvdG8uTG9hZEF1ZGlvRmlsdGVy", + "UGx1Z2luUmVxdWVzdEgAEi8KB25ld19hcG0YMiABKAsyHC5saXZla2l0LnBy", + "b3RvLk5ld0FwbVJlcXVlc3RIABJEChJhcG1fcHJvY2Vzc19zdHJlYW0YMyAB", + "KAsyJi5saXZla2l0LnByb3RvLkFwbVByb2Nlc3NTdHJlYW1SZXF1ZXN0SAAS", + "UwoaYXBtX3Byb2Nlc3NfcmV2ZXJzZV9zdHJlYW0YNCABKAsyLS5saXZla2l0", + "LnByb3RvLkFwbVByb2Nlc3NSZXZlcnNlU3RyZWFtUmVxdWVzdEgAEkcKFGFw", + "bV9zZXRfc3RyZWFtX2RlbGF5GDUgASgLMicubGl2ZWtpdC5wcm90by5BcG1T", + "ZXRTdHJlYW1EZWxheVJlcXVlc3RIABJWChVieXRlX3JlYWRfaW5jcmVtZW50", + "YWwYNiABKAsyNS5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1SZWFkZXJSZWFk", + "SW5jcmVtZW50YWxSZXF1ZXN0SAASRgoNYnl0ZV9yZWFkX2FsbBg3IAEoCzIt", + "LmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVJlYWRlclJlYWRBbGxSZXF1ZXN0", + "SAASTwoSYnl0ZV93cml0ZV90b19maWxlGDggASgLMjEubGl2ZWtpdC5wcm90", + "by5CeXRlU3RyZWFtUmVhZGVyV3JpdGVUb0ZpbGVSZXF1ZXN0SAASVgoVdGV4", + "dF9yZWFkX2luY3JlbWVudGFsGDkgASgLMjUubGl2ZWtpdC5wcm90by5UZXh0", + "U3RyZWFtUmVhZGVyUmVhZEluY3JlbWVudGFsUmVxdWVzdEgAEkYKDXRleHRf", + "cmVhZF9hbGwYOiABKAsyLS5saXZla2l0LnByb3RvLlRleHRTdHJlYW1SZWFk", + "ZXJSZWFkQWxsUmVxdWVzdEgAEjkKCXNlbmRfZmlsZRg7IAEoCzIkLmxpdmVr", + "aXQucHJvdG8uU3RyZWFtU2VuZEZpbGVSZXF1ZXN0SAASOQoJc2VuZF90ZXh0", + "GDwgASgLMiQubGl2ZWtpdC5wcm90by5TdHJlYW1TZW5kVGV4dFJlcXVlc3RI", + "ABJAChBieXRlX3N0cmVhbV9vcGVuGD0gASgLMiQubGl2ZWtpdC5wcm90by5C", + "eXRlU3RyZWFtT3BlblJlcXVlc3RIABJIChFieXRlX3N0cmVhbV93cml0ZRg+", + "IAEoCzIrLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVdyaXRlcldyaXRlUmVx", + "dWVzdEgAEkgKEWJ5dGVfc3RyZWFtX2Nsb3NlGD8gASgLMisubGl2ZWtpdC5w", + "cm90by5CeXRlU3RyZWFtV3JpdGVyQ2xvc2VSZXF1ZXN0SAASQAoQdGV4dF9z", + "dHJlYW1fb3BlbhhAIAEoCzIkLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbU9w", + "ZW5SZXF1ZXN0SAASSAoRdGV4dF9zdHJlYW1fd3JpdGUYQSABKAsyKy5saXZl", + "a2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJXcml0ZVJlcXVlc3RIABJIChF0", + "ZXh0X3N0cmVhbV9jbG9zZRhCIAEoCzIrLmxpdmVraXQucHJvdG8uVGV4dFN0", + "cmVhbVdyaXRlckNsb3NlUmVxdWVzdEgAEjsKCnNlbmRfYnl0ZXMYQyABKAsy", + "JS5saXZla2l0LnByb3RvLlN0cmVhbVNlbmRCeXRlc1JlcXVlc3RIABJmCiRz", + "ZXRfcmVtb3RlX3RyYWNrX3B1YmxpY2F0aW9uX3F1YWxpdHkYRCABKAsyNi5s", + "aXZla2l0LnByb3RvLlNldFJlbW90ZVRyYWNrUHVibGljYXRpb25RdWFsaXR5", + "UmVxdWVzdEgAEkQKEnB1Ymxpc2hfZGF0YV90cmFjaxhFIAEoCzImLmxpdmVr", + "aXQucHJvdG8uUHVibGlzaERhdGFUcmFja1JlcXVlc3RIABJQChlsb2NhbF9k", + "YXRhX3RyYWNrX3RyeV9wdXNoGEYgASgLMisubGl2ZWtpdC5wcm90by5Mb2Nh", + "bERhdGFUcmFja1RyeVB1c2hSZXF1ZXN0SAASUwoabG9jYWxfZGF0YV90cmFj", + "a191bnB1Ymxpc2gYRyABKAsyLS5saXZla2l0LnByb3RvLkxvY2FsRGF0YVRy", + "YWNrVW5wdWJsaXNoUmVxdWVzdEgAElgKHWxvY2FsX2RhdGFfdHJhY2tfaXNf", + "cHVibGlzaGVkGEggASgLMi8ubGl2ZWtpdC5wcm90by5Mb2NhbERhdGFUcmFj", + "a0lzUHVibGlzaGVkUmVxdWVzdEgAEkgKFHN1YnNjcmliZV9kYXRhX3RyYWNr", + "GEkgASgLMigubGl2ZWtpdC5wcm90by5TdWJzY3JpYmVEYXRhVHJhY2tSZXF1", + "ZXN0SAASWgoecmVtb3RlX2RhdGFfdHJhY2tfaXNfcHVibGlzaGVkGEogASgL", + "MjAubGl2ZWtpdC5wcm90by5SZW1vdGVEYXRhVHJhY2tJc1B1Ymxpc2hlZFJl", + "cXVlc3RIAEIJCgdtZXNzYWdlItgpCgtGZmlSZXNwb25zZRIxCgdkaXNwb3Nl", + "GAIgASgLMh4ubGl2ZWtpdC5wcm90by5EaXNwb3NlUmVzcG9uc2VIABIxCgdj", + "b25uZWN0GAMgASgLMh4ubGl2ZWtpdC5wcm90by5Db25uZWN0UmVzcG9uc2VI", + "ABI3CgpkaXNjb25uZWN0GAQgASgLMiEubGl2ZWtpdC5wcm90by5EaXNjb25u", + "ZWN0UmVzcG9uc2VIABI8Cg1wdWJsaXNoX3RyYWNrGAUgASgLMiMubGl2ZWtp", + "dC5wcm90by5QdWJsaXNoVHJhY2tSZXNwb25zZUgAEkAKD3VucHVibGlzaF90", + "cmFjaxgGIAEoCzIlLmxpdmVraXQucHJvdG8uVW5wdWJsaXNoVHJhY2tSZXNw", + "b25zZUgAEjoKDHB1Ymxpc2hfZGF0YRgHIAEoCzIiLmxpdmVraXQucHJvdG8u", + "UHVibGlzaERhdGFSZXNwb25zZUgAEj4KDnNldF9zdWJzY3JpYmVkGAggASgL", + "MiQubGl2ZWtpdC5wcm90by5TZXRTdWJzY3JpYmVkUmVzcG9uc2VIABJFChJz", + "ZXRfbG9jYWxfbWV0YWRhdGEYCSABKAsyJy5saXZla2l0LnByb3RvLlNldExv", + "Y2FsTWV0YWRhdGFSZXNwb25zZUgAEj0KDnNldF9sb2NhbF9uYW1lGAogASgL", + "MiMubGl2ZWtpdC5wcm90by5TZXRMb2NhbE5hbWVSZXNwb25zZUgAEkkKFHNl", + "dF9sb2NhbF9hdHRyaWJ1dGVzGAsgASgLMikubGl2ZWtpdC5wcm90by5TZXRM", + "b2NhbEF0dHJpYnV0ZXNSZXNwb25zZUgAEkMKEWdldF9zZXNzaW9uX3N0YXRz", + "GAwgASgLMiYubGl2ZWtpdC5wcm90by5HZXRTZXNzaW9uU3RhdHNSZXNwb25z", + "ZUgAEkwKFXB1Ymxpc2hfdHJhbnNjcmlwdGlvbhgNIAEoCzIrLmxpdmVraXQu", + "cHJvdG8uUHVibGlzaFRyYW5zY3JpcHRpb25SZXNwb25zZUgAEkEKEHB1Ymxp", + "c2hfc2lwX2R0bWYYDiABKAsyJS5saXZla2l0LnByb3RvLlB1Ymxpc2hTaXBE", + "dG1mUmVzcG9uc2VIABJFChJjcmVhdGVfdmlkZW9fdHJhY2sYDyABKAsyJy5s", + "aXZla2l0LnByb3RvLkNyZWF0ZVZpZGVvVHJhY2tSZXNwb25zZUgAEkUKEmNy", + "ZWF0ZV9hdWRpb190cmFjaxgQIAEoCzInLmxpdmVraXQucHJvdG8uQ3JlYXRl", + "QXVkaW9UcmFja1Jlc3BvbnNlSAASQQoQbG9jYWxfdHJhY2tfbXV0ZRgRIAEo", + "CzIlLmxpdmVraXQucHJvdG8uTG9jYWxUcmFja011dGVSZXNwb25zZUgAEkcK", + "E2VuYWJsZV9yZW1vdGVfdHJhY2sYEiABKAsyKC5saXZla2l0LnByb3RvLkVu", + "YWJsZVJlbW90ZVRyYWNrUmVzcG9uc2VIABI0CglnZXRfc3RhdHMYEyABKAsy", + "Hy5saXZla2l0LnByb3RvLkdldFN0YXRzUmVzcG9uc2VIABJkCiJzZXRfdHJh", + "Y2tfc3Vic2NyaXB0aW9uX3Blcm1pc3Npb25zGC8gASgLMjYubGl2ZWtpdC5w", + "cm90by5TZXRUcmFja1N1YnNjcmlwdGlvblBlcm1pc3Npb25zUmVzcG9uc2VI", + "ABJBChBuZXdfdmlkZW9fc3RyZWFtGBQgASgLMiUubGl2ZWtpdC5wcm90by5O", + "ZXdWaWRlb1N0cmVhbVJlc3BvbnNlSAASQQoQbmV3X3ZpZGVvX3NvdXJjZRgV", + "IAEoCzIlLmxpdmVraXQucHJvdG8uTmV3VmlkZW9Tb3VyY2VSZXNwb25zZUgA", + "EkcKE2NhcHR1cmVfdmlkZW9fZnJhbWUYFiABKAsyKC5saXZla2l0LnByb3Rv", + "LkNhcHR1cmVWaWRlb0ZyYW1lUmVzcG9uc2VIABI8Cg12aWRlb19jb252ZXJ0", + "GBcgASgLMiMubGl2ZWtpdC5wcm90by5WaWRlb0NvbnZlcnRSZXNwb25zZUgA", + "EloKHXZpZGVvX3N0cmVhbV9mcm9tX3BhcnRpY2lwYW50GBggASgLMjEubGl2", + "ZWtpdC5wcm90by5WaWRlb1N0cmVhbUZyb21QYXJ0aWNpcGFudFJlc3BvbnNl", + "SAASQQoQbmV3X2F1ZGlvX3N0cmVhbRgZIAEoCzIlLmxpdmVraXQucHJvdG8u", + "TmV3QXVkaW9TdHJlYW1SZXNwb25zZUgAEkEKEG5ld19hdWRpb19zb3VyY2UY", + "GiABKAsyJS5saXZla2l0LnByb3RvLk5ld0F1ZGlvU291cmNlUmVzcG9uc2VI", + "ABJHChNjYXB0dXJlX2F1ZGlvX2ZyYW1lGBsgASgLMigubGl2ZWtpdC5wcm90", + "by5DYXB0dXJlQXVkaW9GcmFtZVJlc3BvbnNlSAASRQoSY2xlYXJfYXVkaW9f", + "YnVmZmVyGBwgASgLMicubGl2ZWtpdC5wcm90by5DbGVhckF1ZGlvQnVmZmVy", + "UmVzcG9uc2VIABJHChNuZXdfYXVkaW9fcmVzYW1wbGVyGB0gASgLMigubGl2", + "ZWtpdC5wcm90by5OZXdBdWRpb1Jlc2FtcGxlclJlc3BvbnNlSAASRQoScmVt", + "aXhfYW5kX3Jlc2FtcGxlGB4gASgLMicubGl2ZWtpdC5wcm90by5SZW1peEFu", + "ZFJlc2FtcGxlUmVzcG9uc2VIABJaCh1hdWRpb19zdHJlYW1fZnJvbV9wYXJ0", + "aWNpcGFudBgfIAEoCzIxLmxpdmVraXQucHJvdG8uQXVkaW9TdHJlYW1Gcm9t", + "UGFydGljaXBhbnRSZXNwb25zZUgAEisKBGUyZWUYICABKAsyGy5saXZla2l0", + "LnByb3RvLkUyZWVSZXNwb25zZUgAEkMKEW5ld19zb3hfcmVzYW1wbGVyGCEg", + "ASgLMiYubGl2ZWtpdC5wcm90by5OZXdTb3hSZXNhbXBsZXJSZXNwb25zZUgA", + "EkUKEnB1c2hfc294X3Jlc2FtcGxlchgiIAEoCzInLmxpdmVraXQucHJvdG8u", + "UHVzaFNveFJlc2FtcGxlclJlc3BvbnNlSAASRwoTZmx1c2hfc294X3Jlc2Ft", + "cGxlchgjIAEoCzIoLmxpdmVraXQucHJvdG8uRmx1c2hTb3hSZXNhbXBsZXJS", + "ZXNwb25zZUgAEkMKEXNlbmRfY2hhdF9tZXNzYWdlGCQgASgLMiYubGl2ZWtp", + "dC5wcm90by5TZW5kQ2hhdE1lc3NhZ2VSZXNwb25zZUgAEjgKC3BlcmZvcm1f", + "cnBjGCUgASgLMiEubGl2ZWtpdC5wcm90by5QZXJmb3JtUnBjUmVzcG9uc2VI", + "ABJHChNyZWdpc3Rlcl9ycGNfbWV0aG9kGCYgASgLMigubGl2ZWtpdC5wcm90", + "by5SZWdpc3RlclJwY01ldGhvZFJlc3BvbnNlSAASSwoVdW5yZWdpc3Rlcl9y", + "cGNfbWV0aG9kGCcgASgLMioubGl2ZWtpdC5wcm90by5VbnJlZ2lzdGVyUnBj", + "TWV0aG9kUmVzcG9uc2VIABJcCh5ycGNfbWV0aG9kX2ludm9jYXRpb25fcmVz", + "cG9uc2UYKCABKAsyMi5saXZla2l0LnByb3RvLlJwY01ldGhvZEludm9jYXRp", + "b25SZXNwb25zZVJlc3BvbnNlSAASXgofZW5hYmxlX3JlbW90ZV90cmFja19w", + "dWJsaWNhdGlvbhgpIAEoCzIzLmxpdmVraXQucHJvdG8uRW5hYmxlUmVtb3Rl", + "VHJhY2tQdWJsaWNhdGlvblJlc3BvbnNlSAAScQopdXBkYXRlX3JlbW90ZV90", + "cmFja19wdWJsaWNhdGlvbl9kaW1lbnNpb24YKiABKAsyPC5saXZla2l0LnBy", + "b3RvLlVwZGF0ZVJlbW90ZVRyYWNrUHVibGljYXRpb25EaW1lbnNpb25SZXNw", + "b25zZUgAEkUKEnNlbmRfc3RyZWFtX2hlYWRlchgrIAEoCzInLmxpdmVraXQu", + "cHJvdG8uU2VuZFN0cmVhbUhlYWRlclJlc3BvbnNlSAASQwoRc2VuZF9zdHJl", + "YW1fY2h1bmsYLCABKAsyJi5saXZla2l0LnByb3RvLlNlbmRTdHJlYW1DaHVu", + "a1Jlc3BvbnNlSAASRwoTc2VuZF9zdHJlYW1fdHJhaWxlchgtIAEoCzIoLmxp", + "dmVraXQucHJvdG8uU2VuZFN0cmVhbVRyYWlsZXJSZXNwb25zZUgAEnkKLnNl", + "dF9kYXRhX2NoYW5uZWxfYnVmZmVyZWRfYW1vdW50X2xvd190aHJlc2hvbGQY", + "LiABKAsyPy5saXZla2l0LnByb3RvLlNldERhdGFDaGFubmVsQnVmZmVyZWRB", + "bW91bnRMb3dUaHJlc2hvbGRSZXNwb25zZUgAElAKGGxvYWRfYXVkaW9fZmls", + "dGVyX3BsdWdpbhgwIAEoCzIsLmxpdmVraXQucHJvdG8uTG9hZEF1ZGlvRmls", + "dGVyUGx1Z2luUmVzcG9uc2VIABIwCgduZXdfYXBtGDEgASgLMh0ubGl2ZWtp", + "dC5wcm90by5OZXdBcG1SZXNwb25zZUgAEkUKEmFwbV9wcm9jZXNzX3N0cmVh", + "bRgyIAEoCzInLmxpdmVraXQucHJvdG8uQXBtUHJvY2Vzc1N0cmVhbVJlc3Bv", + "bnNlSAASVAoaYXBtX3Byb2Nlc3NfcmV2ZXJzZV9zdHJlYW0YMyABKAsyLi5s", + "aXZla2l0LnByb3RvLkFwbVByb2Nlc3NSZXZlcnNlU3RyZWFtUmVzcG9uc2VI", + "ABJIChRhcG1fc2V0X3N0cmVhbV9kZWxheRg0IAEoCzIoLmxpdmVraXQucHJv", + "dG8uQXBtU2V0U3RyZWFtRGVsYXlSZXNwb25zZUgAElcKFWJ5dGVfcmVhZF9p", + "bmNyZW1lbnRhbBg1IAEoCzI2LmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVJl", + "YWRlclJlYWRJbmNyZW1lbnRhbFJlc3BvbnNlSAASRwoNYnl0ZV9yZWFkX2Fs", + "bBg2IAEoCzIuLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVJlYWRlclJlYWRB", + "bGxSZXNwb25zZUgAElAKEmJ5dGVfd3JpdGVfdG9fZmlsZRg3IAEoCzIyLmxp", + "dmVraXQucHJvdG8uQnl0ZVN0cmVhbVJlYWRlcldyaXRlVG9GaWxlUmVzcG9u", + "c2VIABJXChV0ZXh0X3JlYWRfaW5jcmVtZW50YWwYOCABKAsyNi5saXZla2l0", + "LnByb3RvLlRleHRTdHJlYW1SZWFkZXJSZWFkSW5jcmVtZW50YWxSZXNwb25z", + "ZUgAEkcKDXRleHRfcmVhZF9hbGwYOSABKAsyLi5saXZla2l0LnByb3RvLlRl", + "eHRTdHJlYW1SZWFkZXJSZWFkQWxsUmVzcG9uc2VIABI6CglzZW5kX2ZpbGUY", + "OiABKAsyJS5saXZla2l0LnByb3RvLlN0cmVhbVNlbmRGaWxlUmVzcG9uc2VI", + "ABI6CglzZW5kX3RleHQYOyABKAsyJS5saXZla2l0LnByb3RvLlN0cmVhbVNl", + "bmRUZXh0UmVzcG9uc2VIABJBChBieXRlX3N0cmVhbV9vcGVuGDwgASgLMiUu", + "bGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtT3BlblJlc3BvbnNlSAASSQoRYnl0", + "ZV9zdHJlYW1fd3JpdGUYPSABKAsyLC5saXZla2l0LnByb3RvLkJ5dGVTdHJl", + "YW1Xcml0ZXJXcml0ZVJlc3BvbnNlSAASSQoRYnl0ZV9zdHJlYW1fY2xvc2UY", + "PiABKAsyLC5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1Xcml0ZXJDbG9zZVJl", + "c3BvbnNlSAASQQoQdGV4dF9zdHJlYW1fb3Blbhg/IAEoCzIlLmxpdmVraXQu", + "cHJvdG8uVGV4dFN0cmVhbU9wZW5SZXNwb25zZUgAEkkKEXRleHRfc3RyZWFt", + "X3dyaXRlGEAgASgLMiwubGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtV3JpdGVy", + "V3JpdGVSZXNwb25zZUgAEkkKEXRleHRfc3RyZWFtX2Nsb3NlGEEgASgLMiwu", + "bGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtV3JpdGVyQ2xvc2VSZXNwb25zZUgA", + "EjwKCnNlbmRfYnl0ZXMYQiABKAsyJi5saXZla2l0LnByb3RvLlN0cmVhbVNl", + "bmRCeXRlc1Jlc3BvbnNlSAASZwokc2V0X3JlbW90ZV90cmFja19wdWJsaWNh", + "dGlvbl9xdWFsaXR5GEMgASgLMjcubGl2ZWtpdC5wcm90by5TZXRSZW1vdGVU", + "cmFja1B1YmxpY2F0aW9uUXVhbGl0eVJlc3BvbnNlSAASRQoScHVibGlzaF9k", + "YXRhX3RyYWNrGEQgASgLMicubGl2ZWtpdC5wcm90by5QdWJsaXNoRGF0YVRy", + "YWNrUmVzcG9uc2VIABJRChlsb2NhbF9kYXRhX3RyYWNrX3RyeV9wdXNoGEUg", + "ASgLMiwubGl2ZWtpdC5wcm90by5Mb2NhbERhdGFUcmFja1RyeVB1c2hSZXNw", + "b25zZUgAElQKGmxvY2FsX2RhdGFfdHJhY2tfdW5wdWJsaXNoGEYgASgLMi4u", + "bGl2ZWtpdC5wcm90by5Mb2NhbERhdGFUcmFja1VucHVibGlzaFJlc3BvbnNl", + "SAASWQodbG9jYWxfZGF0YV90cmFja19pc19wdWJsaXNoZWQYRyABKAsyMC5s", + "aXZla2l0LnByb3RvLkxvY2FsRGF0YVRyYWNrSXNQdWJsaXNoZWRSZXNwb25z", + "ZUgAEkkKFHN1YnNjcmliZV9kYXRhX3RyYWNrGEggASgLMikubGl2ZWtpdC5w", + "cm90by5TdWJzY3JpYmVEYXRhVHJhY2tSZXNwb25zZUgAElsKHnJlbW90ZV9k", + "YXRhX3RyYWNrX2lzX3B1Ymxpc2hlZBhJIAEoCzIxLmxpdmVraXQucHJvdG8u", + "UmVtb3RlRGF0YVRyYWNrSXNQdWJsaXNoZWRSZXNwb25zZUgAQgkKB21lc3Nh", + "Z2Ui6xYKCEZmaUV2ZW50Ei4KCnJvb21fZXZlbnQYASABKAsyGC5saXZla2l0", + "LnByb3RvLlJvb21FdmVudEgAEjAKC3RyYWNrX2V2ZW50GAIgASgLMhkubGl2", + "ZWtpdC5wcm90by5UcmFja0V2ZW50SAASPQoSdmlkZW9fc3RyZWFtX2V2ZW50", + "GAMgASgLMh8ubGl2ZWtpdC5wcm90by5WaWRlb1N0cmVhbUV2ZW50SAASPQoS", + "YXVkaW9fc3RyZWFtX2V2ZW50GAQgASgLMh8ubGl2ZWtpdC5wcm90by5BdWRp", + "b1N0cmVhbUV2ZW50SAASMQoHY29ubmVjdBgFIAEoCzIeLmxpdmVraXQucHJv", + "dG8uQ29ubmVjdENhbGxiYWNrSAASNwoKZGlzY29ubmVjdBgHIAEoCzIhLmxp", + "dmVraXQucHJvdG8uRGlzY29ubmVjdENhbGxiYWNrSAASMQoHZGlzcG9zZRgI", + "IAEoCzIeLmxpdmVraXQucHJvdG8uRGlzcG9zZUNhbGxiYWNrSAASPAoNcHVi", + "bGlzaF90cmFjaxgJIAEoCzIjLmxpdmVraXQucHJvdG8uUHVibGlzaFRyYWNr", + "Q2FsbGJhY2tIABJACg91bnB1Ymxpc2hfdHJhY2sYCiABKAsyJS5saXZla2l0", + "LnByb3RvLlVucHVibGlzaFRyYWNrQ2FsbGJhY2tIABI6CgxwdWJsaXNoX2Rh", + "dGEYCyABKAsyIi5saXZla2l0LnByb3RvLlB1Ymxpc2hEYXRhQ2FsbGJhY2tI", + "ABJMChVwdWJsaXNoX3RyYW5zY3JpcHRpb24YDCABKAsyKy5saXZla2l0LnBy", + "b3RvLlB1Ymxpc2hUcmFuc2NyaXB0aW9uQ2FsbGJhY2tIABJHChNjYXB0dXJl", + "X2F1ZGlvX2ZyYW1lGA0gASgLMigubGl2ZWtpdC5wcm90by5DYXB0dXJlQXVk", + "aW9GcmFtZUNhbGxiYWNrSAASRQoSc2V0X2xvY2FsX21ldGFkYXRhGA4gASgL", + "MicubGl2ZWtpdC5wcm90by5TZXRMb2NhbE1ldGFkYXRhQ2FsbGJhY2tIABI9", + "Cg5zZXRfbG9jYWxfbmFtZRgPIAEoCzIjLmxpdmVraXQucHJvdG8uU2V0TG9j", + "YWxOYW1lQ2FsbGJhY2tIABJJChRzZXRfbG9jYWxfYXR0cmlidXRlcxgQIAEo", + "CzIpLmxpdmVraXQucHJvdG8uU2V0TG9jYWxBdHRyaWJ1dGVzQ2FsbGJhY2tI", + "ABI0CglnZXRfc3RhdHMYESABKAsyHy5saXZla2l0LnByb3RvLkdldFN0YXRz", + "Q2FsbGJhY2tIABInCgRsb2dzGBIgASgLMhcubGl2ZWtpdC5wcm90by5Mb2dC", + "YXRjaEgAEkMKEWdldF9zZXNzaW9uX3N0YXRzGBMgASgLMiYubGl2ZWtpdC5w", + "cm90by5HZXRTZXNzaW9uU3RhdHNDYWxsYmFja0gAEiUKBXBhbmljGBQgASgL", + "MhQubGl2ZWtpdC5wcm90by5QYW5pY0gAEkEKEHB1Ymxpc2hfc2lwX2R0bWYY", + "FSABKAsyJS5saXZla2l0LnByb3RvLlB1Ymxpc2hTaXBEdG1mQ2FsbGJhY2tI", + "ABI+CgxjaGF0X21lc3NhZ2UYFiABKAsyJi5saXZla2l0LnByb3RvLlNlbmRD", + "aGF0TWVzc2FnZUNhbGxiYWNrSAASOAoLcGVyZm9ybV9ycGMYFyABKAsyIS5s", + "aXZla2l0LnByb3RvLlBlcmZvcm1ScGNDYWxsYmFja0gAEkgKFXJwY19tZXRo", + "b2RfaW52b2NhdGlvbhgYIAEoCzInLmxpdmVraXQucHJvdG8uUnBjTWV0aG9k", + "SW52b2NhdGlvbkV2ZW50SAASRQoSc2VuZF9zdHJlYW1faGVhZGVyGBkgASgL", + "MicubGl2ZWtpdC5wcm90by5TZW5kU3RyZWFtSGVhZGVyQ2FsbGJhY2tIABJD", + "ChFzZW5kX3N0cmVhbV9jaHVuaxgaIAEoCzImLmxpdmVraXQucHJvdG8uU2Vu", + "ZFN0cmVhbUNodW5rQ2FsbGJhY2tIABJHChNzZW5kX3N0cmVhbV90cmFpbGVy", + "GBsgASgLMigubGl2ZWtpdC5wcm90by5TZW5kU3RyZWFtVHJhaWxlckNhbGxi", + "YWNrSAASSAoYYnl0ZV9zdHJlYW1fcmVhZGVyX2V2ZW50GBwgASgLMiQubGl2", + "ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyRXZlbnRIABJVChtieXRlX3N0", + "cmVhbV9yZWFkZXJfcmVhZF9hbGwYHSABKAsyLi5saXZla2l0LnByb3RvLkJ5", + "dGVTdHJlYW1SZWFkZXJSZWFkQWxsQ2FsbGJhY2tIABJeCiBieXRlX3N0cmVh", + "bV9yZWFkZXJfd3JpdGVfdG9fZmlsZRgeIAEoCzIyLmxpdmVraXQucHJvdG8u", + "Qnl0ZVN0cmVhbVJlYWRlcldyaXRlVG9GaWxlQ2FsbGJhY2tIABJBChBieXRl", + "X3N0cmVhbV9vcGVuGB8gASgLMiUubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFt", + "T3BlbkNhbGxiYWNrSAASUAoYYnl0ZV9zdHJlYW1fd3JpdGVyX3dyaXRlGCAg", + "ASgLMiwubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtV3JpdGVyV3JpdGVDYWxs", + "YmFja0gAElAKGGJ5dGVfc3RyZWFtX3dyaXRlcl9jbG9zZRghIAEoCzIsLmxp", + "dmVraXQucHJvdG8uQnl0ZVN0cmVhbVdyaXRlckNsb3NlQ2FsbGJhY2tIABI6", + "CglzZW5kX2ZpbGUYIiABKAsyJS5saXZla2l0LnByb3RvLlN0cmVhbVNlbmRG", + "aWxlQ2FsbGJhY2tIABJIChh0ZXh0X3N0cmVhbV9yZWFkZXJfZXZlbnQYIyAB", + "KAsyJC5saXZla2l0LnByb3RvLlRleHRTdHJlYW1SZWFkZXJFdmVudEgAElUK", + "G3RleHRfc3RyZWFtX3JlYWRlcl9yZWFkX2FsbBgkIAEoCzIuLmxpdmVraXQu", + "cHJvdG8uVGV4dFN0cmVhbVJlYWRlclJlYWRBbGxDYWxsYmFja0gAEkEKEHRl", + "eHRfc3RyZWFtX29wZW4YJSABKAsyJS5saXZla2l0LnByb3RvLlRleHRTdHJl", + "YW1PcGVuQ2FsbGJhY2tIABJQChh0ZXh0X3N0cmVhbV93cml0ZXJfd3JpdGUY", + "JiABKAsyLC5saXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJXcml0ZUNh", + "bGxiYWNrSAASUAoYdGV4dF9zdHJlYW1fd3JpdGVyX2Nsb3NlGCcgASgLMiwu", + "bGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtV3JpdGVyQ2xvc2VDYWxsYmFja0gA", + "EjoKCXNlbmRfdGV4dBgoIAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2Vu", + "ZFRleHRDYWxsYmFja0gAEjwKCnNlbmRfYnl0ZXMYKSABKAsyJi5saXZla2l0", + "LnByb3RvLlN0cmVhbVNlbmRCeXRlc0NhbGxiYWNrSAASRQoScHVibGlzaF9k", + "YXRhX3RyYWNrGCogASgLMicubGl2ZWtpdC5wcm90by5QdWJsaXNoRGF0YVRy", + "YWNrQ2FsbGJhY2tIABJJChRzdWJzY3JpYmVfZGF0YV90cmFjaxgrIAEoCzIp", + "LmxpdmVraXQucHJvdG8uU3Vic2NyaWJlRGF0YVRyYWNrQ2FsbGJhY2tIABJS", + "Ch1kYXRhX3RyYWNrX3N1YnNjcmlwdGlvbl9ldmVudBgsIAEoCzIpLmxpdmVr", + "aXQucHJvdG8uRGF0YVRyYWNrU3Vic2NyaXB0aW9uRXZlbnRIAEIJCgdtZXNz", + "YWdlIh8KDkRpc3Bvc2VSZXF1ZXN0Eg0KBWFzeW5jGAEgAigIIiMKD0Rpc3Bv", + "c2VSZXNwb25zZRIQCghhc3luY19pZBgBIAEoBCIjCg9EaXNwb3NlQ2FsbGJh", + "Y2sSEAoIYXN5bmNfaWQYASACKAQihQEKCUxvZ1JlY29yZBImCgVsZXZlbBgB", + "IAIoDjIXLmxpdmVraXQucHJvdG8uTG9nTGV2ZWwSDgoGdGFyZ2V0GAIgAigJ", + "EhMKC21vZHVsZV9wYXRoGAMgASgJEgwKBGZpbGUYBCABKAkSDAoEbGluZRgF", + "IAEoDRIPCgdtZXNzYWdlGAYgAigJIjUKCExvZ0JhdGNoEikKB3JlY29yZHMY", + "ASADKAsyGC5saXZla2l0LnByb3RvLkxvZ1JlY29yZCIYCgVQYW5pYxIPCgdt", + "ZXNzYWdlGAEgAigJKlMKCExvZ0xldmVsEg0KCUxPR19FUlJPUhAAEgwKCExP", + "R19XQVJOEAESDAoITE9HX0lORk8QAhINCglMT0dfREVCVUcQAxINCglMT0df", + "VFJBQ0UQBEIQqgINTGl2ZUtpdC5Qcm90bw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, global::LiveKit.Proto.TrackPublicationReflection.Descriptor, global::LiveKit.Proto.RoomReflection.Descriptor, global::LiveKit.Proto.VideoFrameReflection.Descriptor, global::LiveKit.Proto.AudioFrameReflection.Descriptor, global::LiveKit.Proto.RpcReflection.Descriptor, global::LiveKit.Proto.DataStreamReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, global::LiveKit.Proto.TrackPublicationReflection.Descriptor, global::LiveKit.Proto.RoomReflection.Descriptor, global::LiveKit.Proto.VideoFrameReflection.Descriptor, global::LiveKit.Proto.AudioFrameReflection.Descriptor, global::LiveKit.Proto.RpcReflection.Descriptor, global::LiveKit.Proto.DataStreamReflection.Descriptor, global::LiveKit.Proto.DataTrackReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.LogLevel), }, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiRequest), global::LiveKit.Proto.FfiRequest.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "E2Ee", "AudioStreamFromParticipant", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "EditChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality" }, new[]{ "Message" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiResponse), global::LiveKit.Proto.FfiResponse.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "AudioStreamFromParticipant", "E2Ee", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality" }, new[]{ "Message" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiEvent), global::LiveKit.Proto.FfiEvent.Parser, new[]{ "RoomEvent", "TrackEvent", "VideoStreamEvent", "AudioStreamEvent", "Connect", "Disconnect", "Dispose", "PublishTrack", "UnpublishTrack", "PublishData", "PublishTranscription", "CaptureAudioFrame", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetStats", "Logs", "GetSessionStats", "Panic", "PublishSipDtmf", "ChatMessage", "PerformRpc", "RpcMethodInvocation", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "ByteStreamReaderEvent", "ByteStreamReaderReadAll", "ByteStreamReaderWriteToFile", "ByteStreamOpen", "ByteStreamWriterWrite", "ByteStreamWriterClose", "SendFile", "TextStreamReaderEvent", "TextStreamReaderReadAll", "TextStreamOpen", "TextStreamWriterWrite", "TextStreamWriterClose", "SendText", "SendBytes" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiRequest), global::LiveKit.Proto.FfiRequest.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "E2Ee", "AudioStreamFromParticipant", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "EditChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality", "PublishDataTrack", "LocalDataTrackTryPush", "LocalDataTrackUnpublish", "LocalDataTrackIsPublished", "SubscribeDataTrack", "RemoteDataTrackIsPublished" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiResponse), global::LiveKit.Proto.FfiResponse.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "AudioStreamFromParticipant", "E2Ee", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality", "PublishDataTrack", "LocalDataTrackTryPush", "LocalDataTrackUnpublish", "LocalDataTrackIsPublished", "SubscribeDataTrack", "RemoteDataTrackIsPublished" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiEvent), global::LiveKit.Proto.FfiEvent.Parser, new[]{ "RoomEvent", "TrackEvent", "VideoStreamEvent", "AudioStreamEvent", "Connect", "Disconnect", "Dispose", "PublishTrack", "UnpublishTrack", "PublishData", "PublishTranscription", "CaptureAudioFrame", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetStats", "Logs", "GetSessionStats", "Panic", "PublishSipDtmf", "ChatMessage", "PerformRpc", "RpcMethodInvocation", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "ByteStreamReaderEvent", "ByteStreamReaderReadAll", "ByteStreamReaderWriteToFile", "ByteStreamOpen", "ByteStreamWriterWrite", "ByteStreamWriterClose", "SendFile", "TextStreamReaderEvent", "TextStreamReaderReadAll", "TextStreamOpen", "TextStreamWriterWrite", "TextStreamWriterClose", "SendText", "SendBytes", "PublishDataTrack", "SubscribeDataTrack", "DataTrackSubscriptionEvent" }, new[]{ "Message" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisposeRequest), global::LiveKit.Proto.DisposeRequest.Parser, new[]{ "Async" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisposeResponse), global::LiveKit.Proto.DisposeResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisposeCallback), global::LiveKit.Proto.DisposeCallback.Parser, new[]{ "AsyncId" }, null, null, null, null), @@ -582,6 +610,24 @@ public FfiRequest(FfiRequest other) : this() { case MessageOneofCase.SetRemoteTrackPublicationQuality: SetRemoteTrackPublicationQuality = other.SetRemoteTrackPublicationQuality.Clone(); break; + case MessageOneofCase.PublishDataTrack: + PublishDataTrack = other.PublishDataTrack.Clone(); + break; + case MessageOneofCase.LocalDataTrackTryPush: + LocalDataTrackTryPush = other.LocalDataTrackTryPush.Clone(); + break; + case MessageOneofCase.LocalDataTrackUnpublish: + LocalDataTrackUnpublish = other.LocalDataTrackUnpublish.Clone(); + break; + case MessageOneofCase.LocalDataTrackIsPublished: + LocalDataTrackIsPublished = other.LocalDataTrackIsPublished.Clone(); + break; + case MessageOneofCase.SubscribeDataTrack: + SubscribeDataTrack = other.SubscribeDataTrack.Clone(); + break; + case MessageOneofCase.RemoteDataTrackIsPublished: + RemoteDataTrackIsPublished = other.RemoteDataTrackIsPublished.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -1427,6 +1473,84 @@ public FfiRequest Clone() { } } + /// Field number for the "publish_data_track" field. + public const int PublishDataTrackFieldNumber = 69; + /// + /// Data Track (local) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.PublishDataTrackRequest PublishDataTrack { + get { return messageCase_ == MessageOneofCase.PublishDataTrack ? (global::LiveKit.Proto.PublishDataTrackRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.PublishDataTrack; + } + } + + /// Field number for the "local_data_track_try_push" field. + public const int LocalDataTrackTryPushFieldNumber = 70; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.LocalDataTrackTryPushRequest LocalDataTrackTryPush { + get { return messageCase_ == MessageOneofCase.LocalDataTrackTryPush ? (global::LiveKit.Proto.LocalDataTrackTryPushRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalDataTrackTryPush; + } + } + + /// Field number for the "local_data_track_unpublish" field. + public const int LocalDataTrackUnpublishFieldNumber = 71; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.LocalDataTrackUnpublishRequest LocalDataTrackUnpublish { + get { return messageCase_ == MessageOneofCase.LocalDataTrackUnpublish ? (global::LiveKit.Proto.LocalDataTrackUnpublishRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalDataTrackUnpublish; + } + } + + /// Field number for the "local_data_track_is_published" field. + public const int LocalDataTrackIsPublishedFieldNumber = 72; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.LocalDataTrackIsPublishedRequest LocalDataTrackIsPublished { + get { return messageCase_ == MessageOneofCase.LocalDataTrackIsPublished ? (global::LiveKit.Proto.LocalDataTrackIsPublishedRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalDataTrackIsPublished; + } + } + + /// Field number for the "subscribe_data_track" field. + public const int SubscribeDataTrackFieldNumber = 73; + /// + /// Data Track (remote) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.SubscribeDataTrackRequest SubscribeDataTrack { + get { return messageCase_ == MessageOneofCase.SubscribeDataTrack ? (global::LiveKit.Proto.SubscribeDataTrackRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.SubscribeDataTrack; + } + } + + /// Field number for the "remote_data_track_is_published" field. + public const int RemoteDataTrackIsPublishedFieldNumber = 74; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest RemoteDataTrackIsPublished { + get { return messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished ? (global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.RemoteDataTrackIsPublished; + } + } + private object message_; /// Enum of possible cases for the "message" oneof. public enum MessageOneofCase { @@ -1498,6 +1622,12 @@ public enum MessageOneofCase { TextStreamClose = 66, SendBytes = 67, SetRemoteTrackPublicationQuality = 68, + PublishDataTrack = 69, + LocalDataTrackTryPush = 70, + LocalDataTrackUnpublish = 71, + LocalDataTrackIsPublished = 72, + SubscribeDataTrack = 73, + RemoteDataTrackIsPublished = 74, } private MessageOneofCase messageCase_ = MessageOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1595,6 +1725,12 @@ public bool Equals(FfiRequest other) { if (!object.Equals(TextStreamClose, other.TextStreamClose)) return false; if (!object.Equals(SendBytes, other.SendBytes)) return false; if (!object.Equals(SetRemoteTrackPublicationQuality, other.SetRemoteTrackPublicationQuality)) return false; + if (!object.Equals(PublishDataTrack, other.PublishDataTrack)) return false; + if (!object.Equals(LocalDataTrackTryPush, other.LocalDataTrackTryPush)) return false; + if (!object.Equals(LocalDataTrackUnpublish, other.LocalDataTrackUnpublish)) return false; + if (!object.Equals(LocalDataTrackIsPublished, other.LocalDataTrackIsPublished)) return false; + if (!object.Equals(SubscribeDataTrack, other.SubscribeDataTrack)) return false; + if (!object.Equals(RemoteDataTrackIsPublished, other.RemoteDataTrackIsPublished)) return false; if (MessageCase != other.MessageCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1670,6 +1806,12 @@ public override int GetHashCode() { if (messageCase_ == MessageOneofCase.TextStreamClose) hash ^= TextStreamClose.GetHashCode(); if (messageCase_ == MessageOneofCase.SendBytes) hash ^= SendBytes.GetHashCode(); if (messageCase_ == MessageOneofCase.SetRemoteTrackPublicationQuality) hash ^= SetRemoteTrackPublicationQuality.GetHashCode(); + if (messageCase_ == MessageOneofCase.PublishDataTrack) hash ^= PublishDataTrack.GetHashCode(); + if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) hash ^= LocalDataTrackTryPush.GetHashCode(); + if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) hash ^= LocalDataTrackUnpublish.GetHashCode(); + if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) hash ^= LocalDataTrackIsPublished.GetHashCode(); + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) hash ^= SubscribeDataTrack.GetHashCode(); + if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) hash ^= RemoteDataTrackIsPublished.GetHashCode(); hash ^= (int) messageCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -1957,6 +2099,30 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(162, 4); output.WriteMessage(SetRemoteTrackPublicationQuality); } + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + output.WriteRawTag(170, 4); + output.WriteMessage(PublishDataTrack); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) { + output.WriteRawTag(178, 4); + output.WriteMessage(LocalDataTrackTryPush); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) { + output.WriteRawTag(186, 4); + output.WriteMessage(LocalDataTrackUnpublish); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) { + output.WriteRawTag(194, 4); + output.WriteMessage(LocalDataTrackIsPublished); + } + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + output.WriteRawTag(202, 4); + output.WriteMessage(SubscribeDataTrack); + } + if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) { + output.WriteRawTag(210, 4); + output.WriteMessage(RemoteDataTrackIsPublished); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2235,6 +2401,30 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(162, 4); output.WriteMessage(SetRemoteTrackPublicationQuality); } + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + output.WriteRawTag(170, 4); + output.WriteMessage(PublishDataTrack); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) { + output.WriteRawTag(178, 4); + output.WriteMessage(LocalDataTrackTryPush); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) { + output.WriteRawTag(186, 4); + output.WriteMessage(LocalDataTrackUnpublish); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) { + output.WriteRawTag(194, 4); + output.WriteMessage(LocalDataTrackIsPublished); + } + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + output.WriteRawTag(202, 4); + output.WriteMessage(SubscribeDataTrack); + } + if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) { + output.WriteRawTag(210, 4); + output.WriteMessage(RemoteDataTrackIsPublished); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2446,6 +2636,24 @@ public int CalculateSize() { if (messageCase_ == MessageOneofCase.SetRemoteTrackPublicationQuality) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(SetRemoteTrackPublicationQuality); } + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(PublishDataTrack); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalDataTrackTryPush); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalDataTrackUnpublish); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalDataTrackIsPublished); + } + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(SubscribeDataTrack); + } + if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(RemoteDataTrackIsPublished); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2861,6 +3069,42 @@ public void MergeFrom(FfiRequest other) { } SetRemoteTrackPublicationQuality.MergeFrom(other.SetRemoteTrackPublicationQuality); break; + case MessageOneofCase.PublishDataTrack: + if (PublishDataTrack == null) { + PublishDataTrack = new global::LiveKit.Proto.PublishDataTrackRequest(); + } + PublishDataTrack.MergeFrom(other.PublishDataTrack); + break; + case MessageOneofCase.LocalDataTrackTryPush: + if (LocalDataTrackTryPush == null) { + LocalDataTrackTryPush = new global::LiveKit.Proto.LocalDataTrackTryPushRequest(); + } + LocalDataTrackTryPush.MergeFrom(other.LocalDataTrackTryPush); + break; + case MessageOneofCase.LocalDataTrackUnpublish: + if (LocalDataTrackUnpublish == null) { + LocalDataTrackUnpublish = new global::LiveKit.Proto.LocalDataTrackUnpublishRequest(); + } + LocalDataTrackUnpublish.MergeFrom(other.LocalDataTrackUnpublish); + break; + case MessageOneofCase.LocalDataTrackIsPublished: + if (LocalDataTrackIsPublished == null) { + LocalDataTrackIsPublished = new global::LiveKit.Proto.LocalDataTrackIsPublishedRequest(); + } + LocalDataTrackIsPublished.MergeFrom(other.LocalDataTrackIsPublished); + break; + case MessageOneofCase.SubscribeDataTrack: + if (SubscribeDataTrack == null) { + SubscribeDataTrack = new global::LiveKit.Proto.SubscribeDataTrackRequest(); + } + SubscribeDataTrack.MergeFrom(other.SubscribeDataTrack); + break; + case MessageOneofCase.RemoteDataTrackIsPublished: + if (RemoteDataTrackIsPublished == null) { + RemoteDataTrackIsPublished = new global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest(); + } + RemoteDataTrackIsPublished.MergeFrom(other.RemoteDataTrackIsPublished); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -3485,6 +3729,60 @@ public void MergeFrom(pb::CodedInputStream input) { SetRemoteTrackPublicationQuality = subBuilder; break; } + case 554: { + global::LiveKit.Proto.PublishDataTrackRequest subBuilder = new global::LiveKit.Proto.PublishDataTrackRequest(); + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + subBuilder.MergeFrom(PublishDataTrack); + } + input.ReadMessage(subBuilder); + PublishDataTrack = subBuilder; + break; + } + case 562: { + global::LiveKit.Proto.LocalDataTrackTryPushRequest subBuilder = new global::LiveKit.Proto.LocalDataTrackTryPushRequest(); + if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) { + subBuilder.MergeFrom(LocalDataTrackTryPush); + } + input.ReadMessage(subBuilder); + LocalDataTrackTryPush = subBuilder; + break; + } + case 570: { + global::LiveKit.Proto.LocalDataTrackUnpublishRequest subBuilder = new global::LiveKit.Proto.LocalDataTrackUnpublishRequest(); + if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) { + subBuilder.MergeFrom(LocalDataTrackUnpublish); + } + input.ReadMessage(subBuilder); + LocalDataTrackUnpublish = subBuilder; + break; + } + case 578: { + global::LiveKit.Proto.LocalDataTrackIsPublishedRequest subBuilder = new global::LiveKit.Proto.LocalDataTrackIsPublishedRequest(); + if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) { + subBuilder.MergeFrom(LocalDataTrackIsPublished); + } + input.ReadMessage(subBuilder); + LocalDataTrackIsPublished = subBuilder; + break; + } + case 586: { + global::LiveKit.Proto.SubscribeDataTrackRequest subBuilder = new global::LiveKit.Proto.SubscribeDataTrackRequest(); + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + subBuilder.MergeFrom(SubscribeDataTrack); + } + input.ReadMessage(subBuilder); + SubscribeDataTrack = subBuilder; + break; + } + case 594: { + global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest subBuilder = new global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest(); + if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) { + subBuilder.MergeFrom(RemoteDataTrackIsPublished); + } + input.ReadMessage(subBuilder); + RemoteDataTrackIsPublished = subBuilder; + break; + } } } #endif @@ -4107,6 +4405,60 @@ public void MergeFrom(pb::CodedInputStream input) { SetRemoteTrackPublicationQuality = subBuilder; break; } + case 554: { + global::LiveKit.Proto.PublishDataTrackRequest subBuilder = new global::LiveKit.Proto.PublishDataTrackRequest(); + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + subBuilder.MergeFrom(PublishDataTrack); + } + input.ReadMessage(subBuilder); + PublishDataTrack = subBuilder; + break; + } + case 562: { + global::LiveKit.Proto.LocalDataTrackTryPushRequest subBuilder = new global::LiveKit.Proto.LocalDataTrackTryPushRequest(); + if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) { + subBuilder.MergeFrom(LocalDataTrackTryPush); + } + input.ReadMessage(subBuilder); + LocalDataTrackTryPush = subBuilder; + break; + } + case 570: { + global::LiveKit.Proto.LocalDataTrackUnpublishRequest subBuilder = new global::LiveKit.Proto.LocalDataTrackUnpublishRequest(); + if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) { + subBuilder.MergeFrom(LocalDataTrackUnpublish); + } + input.ReadMessage(subBuilder); + LocalDataTrackUnpublish = subBuilder; + break; + } + case 578: { + global::LiveKit.Proto.LocalDataTrackIsPublishedRequest subBuilder = new global::LiveKit.Proto.LocalDataTrackIsPublishedRequest(); + if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) { + subBuilder.MergeFrom(LocalDataTrackIsPublished); + } + input.ReadMessage(subBuilder); + LocalDataTrackIsPublished = subBuilder; + break; + } + case 586: { + global::LiveKit.Proto.SubscribeDataTrackRequest subBuilder = new global::LiveKit.Proto.SubscribeDataTrackRequest(); + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + subBuilder.MergeFrom(SubscribeDataTrack); + } + input.ReadMessage(subBuilder); + SubscribeDataTrack = subBuilder; + break; + } + case 594: { + global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest subBuilder = new global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest(); + if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) { + subBuilder.MergeFrom(RemoteDataTrackIsPublished); + } + input.ReadMessage(subBuilder); + RemoteDataTrackIsPublished = subBuilder; + break; + } } } } @@ -4351,6 +4703,24 @@ public FfiResponse(FfiResponse other) : this() { case MessageOneofCase.SetRemoteTrackPublicationQuality: SetRemoteTrackPublicationQuality = other.SetRemoteTrackPublicationQuality.Clone(); break; + case MessageOneofCase.PublishDataTrack: + PublishDataTrack = other.PublishDataTrack.Clone(); + break; + case MessageOneofCase.LocalDataTrackTryPush: + LocalDataTrackTryPush = other.LocalDataTrackTryPush.Clone(); + break; + case MessageOneofCase.LocalDataTrackUnpublish: + LocalDataTrackUnpublish = other.LocalDataTrackUnpublish.Clone(); + break; + case MessageOneofCase.LocalDataTrackIsPublished: + LocalDataTrackIsPublished = other.LocalDataTrackIsPublished.Clone(); + break; + case MessageOneofCase.SubscribeDataTrack: + SubscribeDataTrack = other.SubscribeDataTrack.Clone(); + break; + case MessageOneofCase.RemoteDataTrackIsPublished: + RemoteDataTrackIsPublished = other.RemoteDataTrackIsPublished.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -5184,6 +5554,84 @@ public FfiResponse Clone() { } } + /// Field number for the "publish_data_track" field. + public const int PublishDataTrackFieldNumber = 68; + /// + /// Data Track (local) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.PublishDataTrackResponse PublishDataTrack { + get { return messageCase_ == MessageOneofCase.PublishDataTrack ? (global::LiveKit.Proto.PublishDataTrackResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.PublishDataTrack; + } + } + + /// Field number for the "local_data_track_try_push" field. + public const int LocalDataTrackTryPushFieldNumber = 69; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.LocalDataTrackTryPushResponse LocalDataTrackTryPush { + get { return messageCase_ == MessageOneofCase.LocalDataTrackTryPush ? (global::LiveKit.Proto.LocalDataTrackTryPushResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalDataTrackTryPush; + } + } + + /// Field number for the "local_data_track_unpublish" field. + public const int LocalDataTrackUnpublishFieldNumber = 70; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.LocalDataTrackUnpublishResponse LocalDataTrackUnpublish { + get { return messageCase_ == MessageOneofCase.LocalDataTrackUnpublish ? (global::LiveKit.Proto.LocalDataTrackUnpublishResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalDataTrackUnpublish; + } + } + + /// Field number for the "local_data_track_is_published" field. + public const int LocalDataTrackIsPublishedFieldNumber = 71; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.LocalDataTrackIsPublishedResponse LocalDataTrackIsPublished { + get { return messageCase_ == MessageOneofCase.LocalDataTrackIsPublished ? (global::LiveKit.Proto.LocalDataTrackIsPublishedResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalDataTrackIsPublished; + } + } + + /// Field number for the "subscribe_data_track" field. + public const int SubscribeDataTrackFieldNumber = 72; + /// + /// Data Track (remote) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.SubscribeDataTrackResponse SubscribeDataTrack { + get { return messageCase_ == MessageOneofCase.SubscribeDataTrack ? (global::LiveKit.Proto.SubscribeDataTrackResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.SubscribeDataTrack; + } + } + + /// Field number for the "remote_data_track_is_published" field. + public const int RemoteDataTrackIsPublishedFieldNumber = 73; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse RemoteDataTrackIsPublished { + get { return messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished ? (global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.RemoteDataTrackIsPublished; + } + } + private object message_; /// Enum of possible cases for the "message" oneof. public enum MessageOneofCase { @@ -5254,6 +5702,12 @@ public enum MessageOneofCase { TextStreamClose = 65, SendBytes = 66, SetRemoteTrackPublicationQuality = 67, + PublishDataTrack = 68, + LocalDataTrackTryPush = 69, + LocalDataTrackUnpublish = 70, + LocalDataTrackIsPublished = 71, + SubscribeDataTrack = 72, + RemoteDataTrackIsPublished = 73, } private MessageOneofCase messageCase_ = MessageOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5350,6 +5804,12 @@ public bool Equals(FfiResponse other) { if (!object.Equals(TextStreamClose, other.TextStreamClose)) return false; if (!object.Equals(SendBytes, other.SendBytes)) return false; if (!object.Equals(SetRemoteTrackPublicationQuality, other.SetRemoteTrackPublicationQuality)) return false; + if (!object.Equals(PublishDataTrack, other.PublishDataTrack)) return false; + if (!object.Equals(LocalDataTrackTryPush, other.LocalDataTrackTryPush)) return false; + if (!object.Equals(LocalDataTrackUnpublish, other.LocalDataTrackUnpublish)) return false; + if (!object.Equals(LocalDataTrackIsPublished, other.LocalDataTrackIsPublished)) return false; + if (!object.Equals(SubscribeDataTrack, other.SubscribeDataTrack)) return false; + if (!object.Equals(RemoteDataTrackIsPublished, other.RemoteDataTrackIsPublished)) return false; if (MessageCase != other.MessageCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5424,6 +5884,12 @@ public override int GetHashCode() { if (messageCase_ == MessageOneofCase.TextStreamClose) hash ^= TextStreamClose.GetHashCode(); if (messageCase_ == MessageOneofCase.SendBytes) hash ^= SendBytes.GetHashCode(); if (messageCase_ == MessageOneofCase.SetRemoteTrackPublicationQuality) hash ^= SetRemoteTrackPublicationQuality.GetHashCode(); + if (messageCase_ == MessageOneofCase.PublishDataTrack) hash ^= PublishDataTrack.GetHashCode(); + if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) hash ^= LocalDataTrackTryPush.GetHashCode(); + if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) hash ^= LocalDataTrackUnpublish.GetHashCode(); + if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) hash ^= LocalDataTrackIsPublished.GetHashCode(); + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) hash ^= SubscribeDataTrack.GetHashCode(); + if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) hash ^= RemoteDataTrackIsPublished.GetHashCode(); hash ^= (int) messageCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -5707,6 +6173,30 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(154, 4); output.WriteMessage(SetRemoteTrackPublicationQuality); } + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + output.WriteRawTag(162, 4); + output.WriteMessage(PublishDataTrack); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) { + output.WriteRawTag(170, 4); + output.WriteMessage(LocalDataTrackTryPush); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) { + output.WriteRawTag(178, 4); + output.WriteMessage(LocalDataTrackUnpublish); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) { + output.WriteRawTag(186, 4); + output.WriteMessage(LocalDataTrackIsPublished); + } + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + output.WriteRawTag(194, 4); + output.WriteMessage(SubscribeDataTrack); + } + if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) { + output.WriteRawTag(202, 4); + output.WriteMessage(RemoteDataTrackIsPublished); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5981,6 +6471,30 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(154, 4); output.WriteMessage(SetRemoteTrackPublicationQuality); } + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + output.WriteRawTag(162, 4); + output.WriteMessage(PublishDataTrack); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) { + output.WriteRawTag(170, 4); + output.WriteMessage(LocalDataTrackTryPush); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) { + output.WriteRawTag(178, 4); + output.WriteMessage(LocalDataTrackUnpublish); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) { + output.WriteRawTag(186, 4); + output.WriteMessage(LocalDataTrackIsPublished); + } + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + output.WriteRawTag(194, 4); + output.WriteMessage(SubscribeDataTrack); + } + if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) { + output.WriteRawTag(202, 4); + output.WriteMessage(RemoteDataTrackIsPublished); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -6189,6 +6703,24 @@ public int CalculateSize() { if (messageCase_ == MessageOneofCase.SetRemoteTrackPublicationQuality) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(SetRemoteTrackPublicationQuality); } + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(PublishDataTrack); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalDataTrackTryPush); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalDataTrackUnpublish); + } + if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalDataTrackIsPublished); + } + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(SubscribeDataTrack); + } + if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(RemoteDataTrackIsPublished); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -6598,6 +7130,42 @@ public void MergeFrom(FfiResponse other) { } SetRemoteTrackPublicationQuality.MergeFrom(other.SetRemoteTrackPublicationQuality); break; + case MessageOneofCase.PublishDataTrack: + if (PublishDataTrack == null) { + PublishDataTrack = new global::LiveKit.Proto.PublishDataTrackResponse(); + } + PublishDataTrack.MergeFrom(other.PublishDataTrack); + break; + case MessageOneofCase.LocalDataTrackTryPush: + if (LocalDataTrackTryPush == null) { + LocalDataTrackTryPush = new global::LiveKit.Proto.LocalDataTrackTryPushResponse(); + } + LocalDataTrackTryPush.MergeFrom(other.LocalDataTrackTryPush); + break; + case MessageOneofCase.LocalDataTrackUnpublish: + if (LocalDataTrackUnpublish == null) { + LocalDataTrackUnpublish = new global::LiveKit.Proto.LocalDataTrackUnpublishResponse(); + } + LocalDataTrackUnpublish.MergeFrom(other.LocalDataTrackUnpublish); + break; + case MessageOneofCase.LocalDataTrackIsPublished: + if (LocalDataTrackIsPublished == null) { + LocalDataTrackIsPublished = new global::LiveKit.Proto.LocalDataTrackIsPublishedResponse(); + } + LocalDataTrackIsPublished.MergeFrom(other.LocalDataTrackIsPublished); + break; + case MessageOneofCase.SubscribeDataTrack: + if (SubscribeDataTrack == null) { + SubscribeDataTrack = new global::LiveKit.Proto.SubscribeDataTrackResponse(); + } + SubscribeDataTrack.MergeFrom(other.SubscribeDataTrack); + break; + case MessageOneofCase.RemoteDataTrackIsPublished: + if (RemoteDataTrackIsPublished == null) { + RemoteDataTrackIsPublished = new global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse(); + } + RemoteDataTrackIsPublished.MergeFrom(other.RemoteDataTrackIsPublished); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -7213,6 +7781,60 @@ public void MergeFrom(pb::CodedInputStream input) { SetRemoteTrackPublicationQuality = subBuilder; break; } + case 546: { + global::LiveKit.Proto.PublishDataTrackResponse subBuilder = new global::LiveKit.Proto.PublishDataTrackResponse(); + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + subBuilder.MergeFrom(PublishDataTrack); + } + input.ReadMessage(subBuilder); + PublishDataTrack = subBuilder; + break; + } + case 554: { + global::LiveKit.Proto.LocalDataTrackTryPushResponse subBuilder = new global::LiveKit.Proto.LocalDataTrackTryPushResponse(); + if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) { + subBuilder.MergeFrom(LocalDataTrackTryPush); + } + input.ReadMessage(subBuilder); + LocalDataTrackTryPush = subBuilder; + break; + } + case 562: { + global::LiveKit.Proto.LocalDataTrackUnpublishResponse subBuilder = new global::LiveKit.Proto.LocalDataTrackUnpublishResponse(); + if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) { + subBuilder.MergeFrom(LocalDataTrackUnpublish); + } + input.ReadMessage(subBuilder); + LocalDataTrackUnpublish = subBuilder; + break; + } + case 570: { + global::LiveKit.Proto.LocalDataTrackIsPublishedResponse subBuilder = new global::LiveKit.Proto.LocalDataTrackIsPublishedResponse(); + if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) { + subBuilder.MergeFrom(LocalDataTrackIsPublished); + } + input.ReadMessage(subBuilder); + LocalDataTrackIsPublished = subBuilder; + break; + } + case 578: { + global::LiveKit.Proto.SubscribeDataTrackResponse subBuilder = new global::LiveKit.Proto.SubscribeDataTrackResponse(); + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + subBuilder.MergeFrom(SubscribeDataTrack); + } + input.ReadMessage(subBuilder); + SubscribeDataTrack = subBuilder; + break; + } + case 586: { + global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse subBuilder = new global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse(); + if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) { + subBuilder.MergeFrom(RemoteDataTrackIsPublished); + } + input.ReadMessage(subBuilder); + RemoteDataTrackIsPublished = subBuilder; + break; + } } } #endif @@ -7826,6 +8448,60 @@ public void MergeFrom(pb::CodedInputStream input) { SetRemoteTrackPublicationQuality = subBuilder; break; } + case 546: { + global::LiveKit.Proto.PublishDataTrackResponse subBuilder = new global::LiveKit.Proto.PublishDataTrackResponse(); + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + subBuilder.MergeFrom(PublishDataTrack); + } + input.ReadMessage(subBuilder); + PublishDataTrack = subBuilder; + break; + } + case 554: { + global::LiveKit.Proto.LocalDataTrackTryPushResponse subBuilder = new global::LiveKit.Proto.LocalDataTrackTryPushResponse(); + if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) { + subBuilder.MergeFrom(LocalDataTrackTryPush); + } + input.ReadMessage(subBuilder); + LocalDataTrackTryPush = subBuilder; + break; + } + case 562: { + global::LiveKit.Proto.LocalDataTrackUnpublishResponse subBuilder = new global::LiveKit.Proto.LocalDataTrackUnpublishResponse(); + if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) { + subBuilder.MergeFrom(LocalDataTrackUnpublish); + } + input.ReadMessage(subBuilder); + LocalDataTrackUnpublish = subBuilder; + break; + } + case 570: { + global::LiveKit.Proto.LocalDataTrackIsPublishedResponse subBuilder = new global::LiveKit.Proto.LocalDataTrackIsPublishedResponse(); + if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) { + subBuilder.MergeFrom(LocalDataTrackIsPublished); + } + input.ReadMessage(subBuilder); + LocalDataTrackIsPublished = subBuilder; + break; + } + case 578: { + global::LiveKit.Proto.SubscribeDataTrackResponse subBuilder = new global::LiveKit.Proto.SubscribeDataTrackResponse(); + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + subBuilder.MergeFrom(SubscribeDataTrack); + } + input.ReadMessage(subBuilder); + SubscribeDataTrack = subBuilder; + break; + } + case 586: { + global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse subBuilder = new global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse(); + if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) { + subBuilder.MergeFrom(RemoteDataTrackIsPublished); + } + input.ReadMessage(subBuilder); + RemoteDataTrackIsPublished = subBuilder; + break; + } } } } @@ -7994,6 +8670,15 @@ public FfiEvent(FfiEvent other) : this() { case MessageOneofCase.SendBytes: SendBytes = other.SendBytes.Clone(); break; + case MessageOneofCase.PublishDataTrack: + PublishDataTrack = other.PublishDataTrack.Clone(); + break; + case MessageOneofCase.SubscribeDataTrack: + SubscribeDataTrack = other.SubscribeDataTrack.Clone(); + break; + case MessageOneofCase.DataTrackSubscriptionEvent: + DataTrackSubscriptionEvent = other.DataTrackSubscriptionEvent.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -8491,6 +9176,48 @@ public FfiEvent Clone() { } } + /// Field number for the "publish_data_track" field. + public const int PublishDataTrackFieldNumber = 42; + /// + /// Data Track (local) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.PublishDataTrackCallback PublishDataTrack { + get { return messageCase_ == MessageOneofCase.PublishDataTrack ? (global::LiveKit.Proto.PublishDataTrackCallback) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.PublishDataTrack; + } + } + + /// Field number for the "subscribe_data_track" field. + public const int SubscribeDataTrackFieldNumber = 43; + /// + /// Data Track (remote) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.SubscribeDataTrackCallback SubscribeDataTrack { + get { return messageCase_ == MessageOneofCase.SubscribeDataTrack ? (global::LiveKit.Proto.SubscribeDataTrackCallback) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.SubscribeDataTrack; + } + } + + /// Field number for the "data_track_subscription_event" field. + public const int DataTrackSubscriptionEventFieldNumber = 44; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DataTrackSubscriptionEvent DataTrackSubscriptionEvent { + get { return messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent ? (global::LiveKit.Proto.DataTrackSubscriptionEvent) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.DataTrackSubscriptionEvent; + } + } + private object message_; /// Enum of possible cases for the "message" oneof. public enum MessageOneofCase { @@ -8535,6 +9262,9 @@ public enum MessageOneofCase { TextStreamWriterClose = 39, SendText = 40, SendBytes = 41, + PublishDataTrack = 42, + SubscribeDataTrack = 43, + DataTrackSubscriptionEvent = 44, } private MessageOneofCase messageCase_ = MessageOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -8605,6 +9335,9 @@ public bool Equals(FfiEvent other) { if (!object.Equals(TextStreamWriterClose, other.TextStreamWriterClose)) return false; if (!object.Equals(SendText, other.SendText)) return false; if (!object.Equals(SendBytes, other.SendBytes)) return false; + if (!object.Equals(PublishDataTrack, other.PublishDataTrack)) return false; + if (!object.Equals(SubscribeDataTrack, other.SubscribeDataTrack)) return false; + if (!object.Equals(DataTrackSubscriptionEvent, other.DataTrackSubscriptionEvent)) return false; if (MessageCase != other.MessageCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -8653,6 +9386,9 @@ public override int GetHashCode() { if (messageCase_ == MessageOneofCase.TextStreamWriterClose) hash ^= TextStreamWriterClose.GetHashCode(); if (messageCase_ == MessageOneofCase.SendText) hash ^= SendText.GetHashCode(); if (messageCase_ == MessageOneofCase.SendBytes) hash ^= SendBytes.GetHashCode(); + if (messageCase_ == MessageOneofCase.PublishDataTrack) hash ^= PublishDataTrack.GetHashCode(); + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) hash ^= SubscribeDataTrack.GetHashCode(); + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent) hash ^= DataTrackSubscriptionEvent.GetHashCode(); hash ^= (int) messageCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -8832,6 +9568,18 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(202, 2); output.WriteMessage(SendBytes); } + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + output.WriteRawTag(210, 2); + output.WriteMessage(PublishDataTrack); + } + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + output.WriteRawTag(218, 2); + output.WriteMessage(SubscribeDataTrack); + } + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent) { + output.WriteRawTag(226, 2); + output.WriteMessage(DataTrackSubscriptionEvent); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -9002,6 +9750,18 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(202, 2); output.WriteMessage(SendBytes); } + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + output.WriteRawTag(210, 2); + output.WriteMessage(PublishDataTrack); + } + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + output.WriteRawTag(218, 2); + output.WriteMessage(SubscribeDataTrack); + } + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent) { + output.WriteRawTag(226, 2); + output.WriteMessage(DataTrackSubscriptionEvent); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -9132,6 +9892,15 @@ public int CalculateSize() { if (messageCase_ == MessageOneofCase.SendBytes) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(SendBytes); } + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(PublishDataTrack); + } + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(SubscribeDataTrack); + } + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackSubscriptionEvent); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -9385,6 +10154,24 @@ public void MergeFrom(FfiEvent other) { } SendBytes.MergeFrom(other.SendBytes); break; + case MessageOneofCase.PublishDataTrack: + if (PublishDataTrack == null) { + PublishDataTrack = new global::LiveKit.Proto.PublishDataTrackCallback(); + } + PublishDataTrack.MergeFrom(other.PublishDataTrack); + break; + case MessageOneofCase.SubscribeDataTrack: + if (SubscribeDataTrack == null) { + SubscribeDataTrack = new global::LiveKit.Proto.SubscribeDataTrackCallback(); + } + SubscribeDataTrack.MergeFrom(other.SubscribeDataTrack); + break; + case MessageOneofCase.DataTrackSubscriptionEvent: + if (DataTrackSubscriptionEvent == null) { + DataTrackSubscriptionEvent = new global::LiveKit.Proto.DataTrackSubscriptionEvent(); + } + DataTrackSubscriptionEvent.MergeFrom(other.DataTrackSubscriptionEvent); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -9766,6 +10553,33 @@ public void MergeFrom(pb::CodedInputStream input) { SendBytes = subBuilder; break; } + case 338: { + global::LiveKit.Proto.PublishDataTrackCallback subBuilder = new global::LiveKit.Proto.PublishDataTrackCallback(); + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + subBuilder.MergeFrom(PublishDataTrack); + } + input.ReadMessage(subBuilder); + PublishDataTrack = subBuilder; + break; + } + case 346: { + global::LiveKit.Proto.SubscribeDataTrackCallback subBuilder = new global::LiveKit.Proto.SubscribeDataTrackCallback(); + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + subBuilder.MergeFrom(SubscribeDataTrack); + } + input.ReadMessage(subBuilder); + SubscribeDataTrack = subBuilder; + break; + } + case 354: { + global::LiveKit.Proto.DataTrackSubscriptionEvent subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionEvent(); + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent) { + subBuilder.MergeFrom(DataTrackSubscriptionEvent); + } + input.ReadMessage(subBuilder); + DataTrackSubscriptionEvent = subBuilder; + break; + } } } #endif @@ -10145,6 +10959,33 @@ public void MergeFrom(pb::CodedInputStream input) { SendBytes = subBuilder; break; } + case 338: { + global::LiveKit.Proto.PublishDataTrackCallback subBuilder = new global::LiveKit.Proto.PublishDataTrackCallback(); + if (messageCase_ == MessageOneofCase.PublishDataTrack) { + subBuilder.MergeFrom(PublishDataTrack); + } + input.ReadMessage(subBuilder); + PublishDataTrack = subBuilder; + break; + } + case 346: { + global::LiveKit.Proto.SubscribeDataTrackCallback subBuilder = new global::LiveKit.Proto.SubscribeDataTrackCallback(); + if (messageCase_ == MessageOneofCase.SubscribeDataTrack) { + subBuilder.MergeFrom(SubscribeDataTrack); + } + input.ReadMessage(subBuilder); + SubscribeDataTrack = subBuilder; + break; + } + case 354: { + global::LiveKit.Proto.DataTrackSubscriptionEvent subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionEvent(); + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent) { + subBuilder.MergeFrom(DataTrackSubscriptionEvent); + } + input.ReadMessage(subBuilder); + DataTrackSubscriptionEvent = subBuilder; + break; + } } } } diff --git a/Runtime/Scripts/Proto/Participant.cs b/Runtime/Scripts/Proto/Participant.cs index f5778964..60ae0e7f 100644 --- a/Runtime/Scripts/Proto/Participant.cs +++ b/Runtime/Scripts/Proto/Participant.cs @@ -25,33 +25,49 @@ static ParticipantReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChFwYXJ0aWNpcGFudC5wcm90bxINbGl2ZWtpdC5wcm90bxoMaGFuZGxlLnBy", - "b3RvIrECCg9QYXJ0aWNpcGFudEluZm8SCwoDc2lkGAEgAigJEgwKBG5hbWUY", - "AiACKAkSEAoIaWRlbnRpdHkYAyACKAkSEAoIbWV0YWRhdGEYBCACKAkSQgoK", - "YXR0cmlidXRlcxgFIAMoCzIuLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRJ", - "bmZvLkF0dHJpYnV0ZXNFbnRyeRIsCgRraW5kGAYgAigOMh4ubGl2ZWtpdC5w", - "cm90by5QYXJ0aWNpcGFudEtpbmQSOgoRZGlzY29ubmVjdF9yZWFzb24YByAC", - "KA4yHy5saXZla2l0LnByb3RvLkRpc2Nvbm5lY3RSZWFzb24aMQoPQXR0cmli", - "dXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEibwoQ", - "T3duZWRQYXJ0aWNpcGFudBItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnBy", - "b3RvLkZmaU93bmVkSGFuZGxlEiwKBGluZm8YAiACKAsyHi5saXZla2l0LnBy", - "b3RvLlBhcnRpY2lwYW50SW5mbyqhAQoPUGFydGljaXBhbnRLaW5kEh0KGVBB", - "UlRJQ0lQQU5UX0tJTkRfU1RBTkRBUkQQABIcChhQQVJUSUNJUEFOVF9LSU5E", - "X0lOR1JFU1MQARIbChdQQVJUSUNJUEFOVF9LSU5EX0VHUkVTUxACEhgKFFBB", - "UlRJQ0lQQU5UX0tJTkRfU0lQEAMSGgoWUEFSVElDSVBBTlRfS0lORF9BR0VO", - "VBAEKtcCChBEaXNjb25uZWN0UmVhc29uEhIKDlVOS05PV05fUkVBU09OEAAS", - "FAoQQ0xJRU5UX0lOSVRJQVRFRBABEhYKEkRVUExJQ0FURV9JREVOVElUWRAC", - "EhMKD1NFUlZFUl9TSFVURE9XThADEhcKE1BBUlRJQ0lQQU5UX1JFTU9WRUQQ", - "BBIQCgxST09NX0RFTEVURUQQBRISCg5TVEFURV9NSVNNQVRDSBAGEhAKDEpP", - "SU5fRkFJTFVSRRAHEg0KCU1JR1JBVElPThAIEhAKDFNJR05BTF9DTE9TRRAJ", - "Eg8KC1JPT01fQ0xPU0VEEAoSFAoQVVNFUl9VTkFWQUlMQUJMRRALEhEKDVVT", - "RVJfUkVKRUNURUQQDBIVChFTSVBfVFJVTktfRkFJTFVSRRANEhYKEkNPTk5F", - "Q1RJT05fVElNRU9VVBAOEhEKDU1FRElBX0ZBSUxVUkUQD0IQqgINTGl2ZUtp", - "dC5Qcm90bw==")); + "b3RvGgt0cmFjay5wcm90byKnAwoPUGFydGljaXBhbnRJbmZvEgsKA3NpZBgB", + "IAIoCRIMCgRuYW1lGAIgAigJEhAKCGlkZW50aXR5GAMgAigJEhAKCG1ldGFk", + "YXRhGAQgAigJEkIKCmF0dHJpYnV0ZXMYBSADKAsyLi5saXZla2l0LnByb3Rv", + "LlBhcnRpY2lwYW50SW5mby5BdHRyaWJ1dGVzRW50cnkSLAoEa2luZBgGIAIo", + "DjIeLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRLaW5kEjoKEWRpc2Nvbm5l", + "Y3RfcmVhc29uGAcgAigOMh8ubGl2ZWtpdC5wcm90by5EaXNjb25uZWN0UmVh", + "c29uEjoKDGtpbmRfZGV0YWlscxgIIAMoDjIkLmxpdmVraXQucHJvdG8uUGFy", + "dGljaXBhbnRLaW5kRGV0YWlsEjgKCnBlcm1pc3Npb24YCSABKAsyJC5saXZl", + "a2l0LnByb3RvLlBhcnRpY2lwYW50UGVybWlzc2lvbhoxCg9BdHRyaWJ1dGVz", + "RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJvChBPd25l", + "ZFBhcnRpY2lwYW50Ei0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8u", + "RmZpT3duZWRIYW5kbGUSLAoEaW5mbxgCIAIoCzIeLmxpdmVraXQucHJvdG8u", + "UGFydGljaXBhbnRJbmZvIoQCChVQYXJ0aWNpcGFudFBlcm1pc3Npb24SFQoN", + "Y2FuX3N1YnNjcmliZRgBIAIoCBITCgtjYW5fcHVibGlzaBgCIAIoCBIYChBj", + "YW5fcHVibGlzaF9kYXRhGAMgAigIEjcKE2Nhbl9wdWJsaXNoX3NvdXJjZXMY", + "CSADKA4yGi5saXZla2l0LnByb3RvLlRyYWNrU291cmNlEg4KBmhpZGRlbhgH", + "IAIoCBIbChNjYW5fdXBkYXRlX21ldGFkYXRhGAogAigIEh0KFWNhbl9zdWJz", + "Y3JpYmVfbWV0cmljcxgMIAIoCBIgChhjYW5fbWFuYWdlX2FnZW50X3Nlc3Np", + "b24YDSACKAgq3gEKD1BhcnRpY2lwYW50S2luZBIdChlQQVJUSUNJUEFOVF9L", + "SU5EX1NUQU5EQVJEEAASHAoYUEFSVElDSVBBTlRfS0lORF9JTkdSRVNTEAES", + "GwoXUEFSVElDSVBBTlRfS0lORF9FR1JFU1MQAhIYChRQQVJUSUNJUEFOVF9L", + "SU5EX1NJUBADEhoKFlBBUlRJQ0lQQU5UX0tJTkRfQUdFTlQQBBIeChpQQVJU", + "SUNJUEFOVF9LSU5EX0NPTk5FQ1RPUhAFEhsKF1BBUlRJQ0lQQU5UX0tJTkRf", + "QlJJREdFEAYq7gEKFVBhcnRpY2lwYW50S2luZERldGFpbBInCiNQQVJUSUNJ", + "UEFOVF9LSU5EX0RFVEFJTF9DTE9VRF9BR0VOVBAAEiUKIVBBUlRJQ0lQQU5U", + "X0tJTkRfREVUQUlMX0ZPUldBUkRFRBABEi4KKlBBUlRJQ0lQQU5UX0tJTkRf", + "REVUQUlMX0NPTk5FQ1RPUl9XSEFUU0FQUBACEiwKKFBBUlRJQ0lQQU5UX0tJ", + "TkRfREVUQUlMX0NPTk5FQ1RPUl9UV0lMSU8QAxInCiNQQVJUSUNJUEFOVF9L", + "SU5EX0RFVEFJTF9CUklER0VfUlRTUBAEKtcCChBEaXNjb25uZWN0UmVhc29u", + "EhIKDlVOS05PV05fUkVBU09OEAASFAoQQ0xJRU5UX0lOSVRJQVRFRBABEhYK", + "EkRVUExJQ0FURV9JREVOVElUWRACEhMKD1NFUlZFUl9TSFVURE9XThADEhcK", + "E1BBUlRJQ0lQQU5UX1JFTU9WRUQQBBIQCgxST09NX0RFTEVURUQQBRISCg5T", + "VEFURV9NSVNNQVRDSBAGEhAKDEpPSU5fRkFJTFVSRRAHEg0KCU1JR1JBVElP", + "ThAIEhAKDFNJR05BTF9DTE9TRRAJEg8KC1JPT01fQ0xPU0VEEAoSFAoQVVNF", + "Ul9VTkFWQUlMQUJMRRALEhEKDVVTRVJfUkVKRUNURUQQDBIVChFTSVBfVFJV", + "TktfRkFJTFVSRRANEhYKEkNPTk5FQ1RJT05fVElNRU9VVBAOEhEKDU1FRElB", + "X0ZBSUxVUkUQD0IQqgINTGl2ZUtpdC5Qcm90bw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, }, - new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.ParticipantKind), typeof(global::LiveKit.Proto.DisconnectReason), }, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ParticipantInfo), global::LiveKit.Proto.ParticipantInfo.Parser, new[]{ "Sid", "Name", "Identity", "Metadata", "Attributes", "Kind", "DisconnectReason" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedParticipant), global::LiveKit.Proto.OwnedParticipant.Parser, new[]{ "Handle", "Info" }, null, null, null, null) + new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, }, + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.ParticipantKind), typeof(global::LiveKit.Proto.ParticipantKindDetail), typeof(global::LiveKit.Proto.DisconnectReason), }, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ParticipantInfo), global::LiveKit.Proto.ParticipantInfo.Parser, new[]{ "Sid", "Name", "Identity", "Metadata", "Attributes", "Kind", "DisconnectReason", "KindDetails", "Permission" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedParticipant), global::LiveKit.Proto.OwnedParticipant.Parser, new[]{ "Handle", "Info" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ParticipantPermission), global::LiveKit.Proto.ParticipantPermission.Parser, new[]{ "CanSubscribe", "CanPublish", "CanPublishData", "CanPublishSources", "Hidden", "CanUpdateMetadata", "CanSubscribeMetrics", "CanManageAgentSession" }, null, null, null, null) })); } #endregion @@ -64,6 +80,16 @@ public enum ParticipantKind { [pbr::OriginalName("PARTICIPANT_KIND_EGRESS")] Egress = 2, [pbr::OriginalName("PARTICIPANT_KIND_SIP")] Sip = 3, [pbr::OriginalName("PARTICIPANT_KIND_AGENT")] Agent = 4, + [pbr::OriginalName("PARTICIPANT_KIND_CONNECTOR")] Connector = 5, + [pbr::OriginalName("PARTICIPANT_KIND_BRIDGE")] Bridge = 6, + } + + public enum ParticipantKindDetail { + [pbr::OriginalName("PARTICIPANT_KIND_DETAIL_CLOUD_AGENT")] CloudAgent = 0, + [pbr::OriginalName("PARTICIPANT_KIND_DETAIL_FORWARDED")] Forwarded = 1, + [pbr::OriginalName("PARTICIPANT_KIND_DETAIL_CONNECTOR_WHATSAPP")] ConnectorWhatsapp = 2, + [pbr::OriginalName("PARTICIPANT_KIND_DETAIL_CONNECTOR_TWILIO")] ConnectorTwilio = 3, + [pbr::OriginalName("PARTICIPANT_KIND_DETAIL_BRIDGE_RTSP")] BridgeRtsp = 4, } public enum DisconnectReason { @@ -171,6 +197,8 @@ public ParticipantInfo(ParticipantInfo other) : this() { attributes_ = other.attributes_.Clone(); kind_ = other.kind_; disconnectReason_ = other.disconnectReason_; + kindDetails_ = other.kindDetails_.Clone(); + permission_ = other.permission_ != null ? other.permission_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -349,6 +377,29 @@ public void ClearDisconnectReason() { _hasBits0 &= ~2; } + /// Field number for the "kind_details" field. + public const int KindDetailsFieldNumber = 8; + private static readonly pb::FieldCodec _repeated_kindDetails_codec + = pb::FieldCodec.ForEnum(64, x => (int) x, x => (global::LiveKit.Proto.ParticipantKindDetail) x); + private readonly pbc::RepeatedField kindDetails_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField KindDetails { + get { return kindDetails_; } + } + + /// Field number for the "permission" field. + public const int PermissionFieldNumber = 9; + private global::LiveKit.Proto.ParticipantPermission permission_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.ParticipantPermission Permission { + get { return permission_; } + set { + permission_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -371,6 +422,8 @@ public bool Equals(ParticipantInfo other) { if (!Attributes.Equals(other.Attributes)) return false; if (Kind != other.Kind) return false; if (DisconnectReason != other.DisconnectReason) return false; + if(!kindDetails_.Equals(other.kindDetails_)) return false; + if (!object.Equals(Permission, other.Permission)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -385,6 +438,8 @@ public override int GetHashCode() { hash ^= Attributes.GetHashCode(); if (HasKind) hash ^= Kind.GetHashCode(); if (HasDisconnectReason) hash ^= DisconnectReason.GetHashCode(); + hash ^= kindDetails_.GetHashCode(); + if (permission_ != null) hash ^= Permission.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -428,6 +483,11 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(56); output.WriteEnum((int) DisconnectReason); } + kindDetails_.WriteTo(output, _repeated_kindDetails_codec); + if (permission_ != null) { + output.WriteRawTag(74); + output.WriteMessage(Permission); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -463,6 +523,11 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(56); output.WriteEnum((int) DisconnectReason); } + kindDetails_.WriteTo(ref output, _repeated_kindDetails_codec); + if (permission_ != null) { + output.WriteRawTag(74); + output.WriteMessage(Permission); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -492,6 +557,10 @@ public int CalculateSize() { if (HasDisconnectReason) { size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DisconnectReason); } + size += kindDetails_.CalculateSize(_repeated_kindDetails_codec); + if (permission_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Permission); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -523,6 +592,13 @@ public void MergeFrom(ParticipantInfo other) { if (other.HasDisconnectReason) { DisconnectReason = other.DisconnectReason; } + kindDetails_.Add(other.kindDetails_); + if (other.permission_ != null) { + if (permission_ == null) { + Permission = new global::LiveKit.Proto.ParticipantPermission(); + } + Permission.MergeFrom(other.Permission); + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -570,6 +646,18 @@ public void MergeFrom(pb::CodedInputStream input) { DisconnectReason = (global::LiveKit.Proto.DisconnectReason) input.ReadEnum(); break; } + case 66: + case 64: { + kindDetails_.AddEntriesFrom(input, _repeated_kindDetails_codec); + break; + } + case 74: { + if (permission_ == null) { + Permission = new global::LiveKit.Proto.ParticipantPermission(); + } + input.ReadMessage(Permission); + break; + } } } #endif @@ -617,6 +705,18 @@ public void MergeFrom(pb::CodedInputStream input) { DisconnectReason = (global::LiveKit.Proto.DisconnectReason) input.ReadEnum(); break; } + case 66: + case 64: { + kindDetails_.AddEntriesFrom(ref input, _repeated_kindDetails_codec); + break; + } + case 74: { + if (permission_ == null) { + Permission = new global::LiveKit.Proto.ParticipantPermission(); + } + input.ReadMessage(Permission); + break; + } } } } @@ -877,6 +977,588 @@ public void MergeFrom(pb::CodedInputStream input) { } + /// + /// copied from livekit-protocol/protocol/protobufs/livekit_models.proto and removed deprecated fields + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class ParticipantPermission : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ParticipantPermission()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.ParticipantReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ParticipantPermission() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ParticipantPermission(ParticipantPermission other) : this() { + _hasBits0 = other._hasBits0; + canSubscribe_ = other.canSubscribe_; + canPublish_ = other.canPublish_; + canPublishData_ = other.canPublishData_; + canPublishSources_ = other.canPublishSources_.Clone(); + hidden_ = other.hidden_; + canUpdateMetadata_ = other.canUpdateMetadata_; + canSubscribeMetrics_ = other.canSubscribeMetrics_; + canManageAgentSession_ = other.canManageAgentSession_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ParticipantPermission Clone() { + return new ParticipantPermission(this); + } + + /// Field number for the "can_subscribe" field. + public const int CanSubscribeFieldNumber = 1; + private readonly static bool CanSubscribeDefaultValue = false; + + private bool canSubscribe_; + /// + /// allow participant to subscribe to other tracks in the room + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool CanSubscribe { + get { if ((_hasBits0 & 1) != 0) { return canSubscribe_; } else { return CanSubscribeDefaultValue; } } + set { + _hasBits0 |= 1; + canSubscribe_ = value; + } + } + /// Gets whether the "can_subscribe" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasCanSubscribe { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "can_subscribe" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearCanSubscribe() { + _hasBits0 &= ~1; + } + + /// Field number for the "can_publish" field. + public const int CanPublishFieldNumber = 2; + private readonly static bool CanPublishDefaultValue = false; + + private bool canPublish_; + /// + /// allow participant to publish new tracks to room + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool CanPublish { + get { if ((_hasBits0 & 2) != 0) { return canPublish_; } else { return CanPublishDefaultValue; } } + set { + _hasBits0 |= 2; + canPublish_ = value; + } + } + /// Gets whether the "can_publish" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasCanPublish { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "can_publish" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearCanPublish() { + _hasBits0 &= ~2; + } + + /// Field number for the "can_publish_data" field. + public const int CanPublishDataFieldNumber = 3; + private readonly static bool CanPublishDataDefaultValue = false; + + private bool canPublishData_; + /// + /// allow participant to publish data + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool CanPublishData { + get { if ((_hasBits0 & 4) != 0) { return canPublishData_; } else { return CanPublishDataDefaultValue; } } + set { + _hasBits0 |= 4; + canPublishData_ = value; + } + } + /// Gets whether the "can_publish_data" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasCanPublishData { + get { return (_hasBits0 & 4) != 0; } + } + /// Clears the value of the "can_publish_data" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearCanPublishData() { + _hasBits0 &= ~4; + } + + /// Field number for the "can_publish_sources" field. + public const int CanPublishSourcesFieldNumber = 9; + private static readonly pb::FieldCodec _repeated_canPublishSources_codec + = pb::FieldCodec.ForEnum(72, x => (int) x, x => (global::LiveKit.Proto.TrackSource) x); + private readonly pbc::RepeatedField canPublishSources_ = new pbc::RepeatedField(); + /// + /// sources that are allowed to be published + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public pbc::RepeatedField CanPublishSources { + get { return canPublishSources_; } + } + + /// Field number for the "hidden" field. + public const int HiddenFieldNumber = 7; + private readonly static bool HiddenDefaultValue = false; + + private bool hidden_; + /// + /// indicates that it's hidden to others + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Hidden { + get { if ((_hasBits0 & 8) != 0) { return hidden_; } else { return HiddenDefaultValue; } } + set { + _hasBits0 |= 8; + hidden_ = value; + } + } + /// Gets whether the "hidden" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasHidden { + get { return (_hasBits0 & 8) != 0; } + } + /// Clears the value of the "hidden" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearHidden() { + _hasBits0 &= ~8; + } + + /// Field number for the "can_update_metadata" field. + public const int CanUpdateMetadataFieldNumber = 10; + private readonly static bool CanUpdateMetadataDefaultValue = false; + + private bool canUpdateMetadata_; + /// + /// indicates that participant can update own metadata and attributes + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool CanUpdateMetadata { + get { if ((_hasBits0 & 16) != 0) { return canUpdateMetadata_; } else { return CanUpdateMetadataDefaultValue; } } + set { + _hasBits0 |= 16; + canUpdateMetadata_ = value; + } + } + /// Gets whether the "can_update_metadata" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasCanUpdateMetadata { + get { return (_hasBits0 & 16) != 0; } + } + /// Clears the value of the "can_update_metadata" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearCanUpdateMetadata() { + _hasBits0 &= ~16; + } + + /// Field number for the "can_subscribe_metrics" field. + public const int CanSubscribeMetricsFieldNumber = 12; + private readonly static bool CanSubscribeMetricsDefaultValue = false; + + private bool canSubscribeMetrics_; + /// + /// if a participant can subscribe to metrics + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool CanSubscribeMetrics { + get { if ((_hasBits0 & 32) != 0) { return canSubscribeMetrics_; } else { return CanSubscribeMetricsDefaultValue; } } + set { + _hasBits0 |= 32; + canSubscribeMetrics_ = value; + } + } + /// Gets whether the "can_subscribe_metrics" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasCanSubscribeMetrics { + get { return (_hasBits0 & 32) != 0; } + } + /// Clears the value of the "can_subscribe_metrics" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearCanSubscribeMetrics() { + _hasBits0 &= ~32; + } + + /// Field number for the "can_manage_agent_session" field. + public const int CanManageAgentSessionFieldNumber = 13; + private readonly static bool CanManageAgentSessionDefaultValue = false; + + private bool canManageAgentSession_; + /// + /// if a participant can manage an agent session via RemoteSession (control and access state) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool CanManageAgentSession { + get { if ((_hasBits0 & 64) != 0) { return canManageAgentSession_; } else { return CanManageAgentSessionDefaultValue; } } + set { + _hasBits0 |= 64; + canManageAgentSession_ = value; + } + } + /// Gets whether the "can_manage_agent_session" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasCanManageAgentSession { + get { return (_hasBits0 & 64) != 0; } + } + /// Clears the value of the "can_manage_agent_session" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearCanManageAgentSession() { + _hasBits0 &= ~64; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as ParticipantPermission); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(ParticipantPermission other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (CanSubscribe != other.CanSubscribe) return false; + if (CanPublish != other.CanPublish) return false; + if (CanPublishData != other.CanPublishData) return false; + if(!canPublishSources_.Equals(other.canPublishSources_)) return false; + if (Hidden != other.Hidden) return false; + if (CanUpdateMetadata != other.CanUpdateMetadata) return false; + if (CanSubscribeMetrics != other.CanSubscribeMetrics) return false; + if (CanManageAgentSession != other.CanManageAgentSession) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasCanSubscribe) hash ^= CanSubscribe.GetHashCode(); + if (HasCanPublish) hash ^= CanPublish.GetHashCode(); + if (HasCanPublishData) hash ^= CanPublishData.GetHashCode(); + hash ^= canPublishSources_.GetHashCode(); + if (HasHidden) hash ^= Hidden.GetHashCode(); + if (HasCanUpdateMetadata) hash ^= CanUpdateMetadata.GetHashCode(); + if (HasCanSubscribeMetrics) hash ^= CanSubscribeMetrics.GetHashCode(); + if (HasCanManageAgentSession) hash ^= CanManageAgentSession.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasCanSubscribe) { + output.WriteRawTag(8); + output.WriteBool(CanSubscribe); + } + if (HasCanPublish) { + output.WriteRawTag(16); + output.WriteBool(CanPublish); + } + if (HasCanPublishData) { + output.WriteRawTag(24); + output.WriteBool(CanPublishData); + } + if (HasHidden) { + output.WriteRawTag(56); + output.WriteBool(Hidden); + } + canPublishSources_.WriteTo(output, _repeated_canPublishSources_codec); + if (HasCanUpdateMetadata) { + output.WriteRawTag(80); + output.WriteBool(CanUpdateMetadata); + } + if (HasCanSubscribeMetrics) { + output.WriteRawTag(96); + output.WriteBool(CanSubscribeMetrics); + } + if (HasCanManageAgentSession) { + output.WriteRawTag(104); + output.WriteBool(CanManageAgentSession); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasCanSubscribe) { + output.WriteRawTag(8); + output.WriteBool(CanSubscribe); + } + if (HasCanPublish) { + output.WriteRawTag(16); + output.WriteBool(CanPublish); + } + if (HasCanPublishData) { + output.WriteRawTag(24); + output.WriteBool(CanPublishData); + } + if (HasHidden) { + output.WriteRawTag(56); + output.WriteBool(Hidden); + } + canPublishSources_.WriteTo(ref output, _repeated_canPublishSources_codec); + if (HasCanUpdateMetadata) { + output.WriteRawTag(80); + output.WriteBool(CanUpdateMetadata); + } + if (HasCanSubscribeMetrics) { + output.WriteRawTag(96); + output.WriteBool(CanSubscribeMetrics); + } + if (HasCanManageAgentSession) { + output.WriteRawTag(104); + output.WriteBool(CanManageAgentSession); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasCanSubscribe) { + size += 1 + 1; + } + if (HasCanPublish) { + size += 1 + 1; + } + if (HasCanPublishData) { + size += 1 + 1; + } + size += canPublishSources_.CalculateSize(_repeated_canPublishSources_codec); + if (HasHidden) { + size += 1 + 1; + } + if (HasCanUpdateMetadata) { + size += 1 + 1; + } + if (HasCanSubscribeMetrics) { + size += 1 + 1; + } + if (HasCanManageAgentSession) { + size += 1 + 1; + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(ParticipantPermission other) { + if (other == null) { + return; + } + if (other.HasCanSubscribe) { + CanSubscribe = other.CanSubscribe; + } + if (other.HasCanPublish) { + CanPublish = other.CanPublish; + } + if (other.HasCanPublishData) { + CanPublishData = other.CanPublishData; + } + canPublishSources_.Add(other.canPublishSources_); + if (other.HasHidden) { + Hidden = other.Hidden; + } + if (other.HasCanUpdateMetadata) { + CanUpdateMetadata = other.CanUpdateMetadata; + } + if (other.HasCanSubscribeMetrics) { + CanSubscribeMetrics = other.CanSubscribeMetrics; + } + if (other.HasCanManageAgentSession) { + CanManageAgentSession = other.CanManageAgentSession; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + CanSubscribe = input.ReadBool(); + break; + } + case 16: { + CanPublish = input.ReadBool(); + break; + } + case 24: { + CanPublishData = input.ReadBool(); + break; + } + case 56: { + Hidden = input.ReadBool(); + break; + } + case 74: + case 72: { + canPublishSources_.AddEntriesFrom(input, _repeated_canPublishSources_codec); + break; + } + case 80: { + CanUpdateMetadata = input.ReadBool(); + break; + } + case 96: { + CanSubscribeMetrics = input.ReadBool(); + break; + } + case 104: { + CanManageAgentSession = input.ReadBool(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + CanSubscribe = input.ReadBool(); + break; + } + case 16: { + CanPublish = input.ReadBool(); + break; + } + case 24: { + CanPublishData = input.ReadBool(); + break; + } + case 56: { + Hidden = input.ReadBool(); + break; + } + case 74: + case 72: { + canPublishSources_.AddEntriesFrom(ref input, _repeated_canPublishSources_codec); + break; + } + case 80: { + CanUpdateMetadata = input.ReadBool(); + break; + } + case 96: { + CanSubscribeMetrics = input.ReadBool(); + break; + } + case 104: { + CanManageAgentSession = input.ReadBool(); + break; + } + } + } + } + #endif + + } + #endregion } diff --git a/Runtime/Scripts/Proto/Room.cs b/Runtime/Scripts/Proto/Room.cs index ddea49df..daae97d4 100644 --- a/Runtime/Scripts/Proto/Room.cs +++ b/Runtime/Scripts/Proto/Room.cs @@ -27,345 +27,365 @@ static RoomReflection() { "Cgpyb29tLnByb3RvEg1saXZla2l0LnByb3RvGgplMmVlLnByb3RvGgxoYW5k", "bGUucHJvdG8aEXBhcnRpY2lwYW50LnByb3RvGgt0cmFjay5wcm90bxoRdmlk", "ZW9fZnJhbWUucHJvdG8aC3N0YXRzLnByb3RvGhFkYXRhX3N0cmVhbS5wcm90", - "byJZCg5Db25uZWN0UmVxdWVzdBILCgN1cmwYASACKAkSDQoFdG9rZW4YAiAC", - "KAkSKwoHb3B0aW9ucxgDIAIoCzIaLmxpdmVraXQucHJvdG8uUm9vbU9wdGlv", - "bnMiIwoPQ29ubmVjdFJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIr8DCg9D", - "b25uZWN0Q2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDwoFZXJyb3IYAiAB", - "KAlIABI3CgZyZXN1bHQYAyABKAsyJS5saXZla2l0LnByb3RvLkNvbm5lY3RD", - "YWxsYmFjay5SZXN1bHRIABqJAQoVUGFydGljaXBhbnRXaXRoVHJhY2tzEjQK", - "C3BhcnRpY2lwYW50GAEgAigLMh8ubGl2ZWtpdC5wcm90by5Pd25lZFBhcnRp", - "Y2lwYW50EjoKDHB1YmxpY2F0aW9ucxgCIAMoCzIkLmxpdmVraXQucHJvdG8u", - "T3duZWRUcmFja1B1YmxpY2F0aW9uGrgBCgZSZXN1bHQSJgoEcm9vbRgBIAIo", - "CzIYLmxpdmVraXQucHJvdG8uT3duZWRSb29tEjoKEWxvY2FsX3BhcnRpY2lw", - "YW50GAIgAigLMh8ubGl2ZWtpdC5wcm90by5Pd25lZFBhcnRpY2lwYW50EkoK", - "DHBhcnRpY2lwYW50cxgDIAMoCzI0LmxpdmVraXQucHJvdG8uQ29ubmVjdENh", - "bGxiYWNrLlBhcnRpY2lwYW50V2l0aFRyYWNrc0IJCgdtZXNzYWdlIigKEURp", - "c2Nvbm5lY3RSZXF1ZXN0EhMKC3Jvb21faGFuZGxlGAEgAigEIiYKEkRpc2Nv", - "bm5lY3RSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCImChJEaXNjb25uZWN0", - "Q2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQiggEKE1B1Ymxpc2hUcmFja1Jl", - "cXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEhQKDHRy", - "YWNrX2hhbmRsZRgCIAIoBBIzCgdvcHRpb25zGAMgAigLMiIubGl2ZWtpdC5w", - "cm90by5UcmFja1B1Ymxpc2hPcHRpb25zIigKFFB1Ymxpc2hUcmFja1Jlc3Bv", - "bnNlEhAKCGFzeW5jX2lkGAEgAigEIoEBChRQdWJsaXNoVHJhY2tDYWxsYmFj", - "axIQCghhc3luY19pZBgBIAIoBBIPCgVlcnJvchgCIAEoCUgAEjsKC3B1Ymxp", - "Y2F0aW9uGAMgASgLMiQubGl2ZWtpdC5wcm90by5Pd25lZFRyYWNrUHVibGlj", - "YXRpb25IAEIJCgdtZXNzYWdlImcKFVVucHVibGlzaFRyYWNrUmVxdWVzdBIg", - "Chhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSEQoJdHJhY2tfc2lk", - "GAIgAigJEhkKEXN0b3Bfb25fdW5wdWJsaXNoGAMgAigIIioKFlVucHVibGlz", - "aFRyYWNrUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQiOQoWVW5wdWJsaXNo", - "VHJhY2tDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEo", - "CSK5AQoSUHVibGlzaERhdGFSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50", - "X2hhbmRsZRgBIAIoBBIQCghkYXRhX3B0chgCIAIoBBIQCghkYXRhX2xlbhgD", - "IAIoBBIQCghyZWxpYWJsZRgEIAIoCBIcChBkZXN0aW5hdGlvbl9zaWRzGAUg", - "AygJQgIYARINCgV0b3BpYxgGIAEoCRIeChZkZXN0aW5hdGlvbl9pZGVudGl0", - "aWVzGAcgAygJIicKE1B1Ymxpc2hEYXRhUmVzcG9uc2USEAoIYXN5bmNfaWQY", - "ASACKAQiNgoTUHVibGlzaERhdGFDYWxsYmFjaxIQCghhc3luY19pZBgBIAIo", - "BBINCgVlcnJvchgCIAEoCSKmAQobUHVibGlzaFRyYW5zY3JpcHRpb25SZXF1", - "ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIcChRwYXJ0", - "aWNpcGFudF9pZGVudGl0eRgCIAIoCRIQCgh0cmFja19pZBgDIAIoCRI1Cghz", - "ZWdtZW50cxgEIAMoCzIjLmxpdmVraXQucHJvdG8uVHJhbnNjcmlwdGlvblNl", - "Z21lbnQiMAocUHVibGlzaFRyYW5zY3JpcHRpb25SZXNwb25zZRIQCghhc3lu", - "Y19pZBgBIAIoBCI/ChxQdWJsaXNoVHJhbnNjcmlwdGlvbkNhbGxiYWNrEhAK", - "CGFzeW5jX2lkGAEgAigEEg0KBWVycm9yGAIgASgJInYKFVB1Ymxpc2hTaXBE", - "dG1mUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQS", - "DAoEY29kZRgCIAIoDRINCgVkaWdpdBgDIAIoCRIeChZkZXN0aW5hdGlvbl9p", - "ZGVudGl0aWVzGAQgAygJIioKFlB1Ymxpc2hTaXBEdG1mUmVzcG9uc2USEAoI", - "YXN5bmNfaWQYASACKAQiOQoWUHVibGlzaFNpcER0bWZDYWxsYmFjaxIQCghh", - "c3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSJNChdTZXRMb2NhbE1ldGFk", - "YXRhUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQS", - "EAoIbWV0YWRhdGEYAiACKAkiLAoYU2V0TG9jYWxNZXRhZGF0YVJlc3BvbnNl", - "EhAKCGFzeW5jX2lkGAEgAigEIjsKGFNldExvY2FsTWV0YWRhdGFDYWxsYmFj", - "axIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSKEAQoWU2VuZENo", - "YXRNZXNzYWdlUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUY", - "ASACKAQSDwoHbWVzc2FnZRgCIAIoCRIeChZkZXN0aW5hdGlvbl9pZGVudGl0", - "aWVzGAMgAygJEhcKD3NlbmRlcl9pZGVudGl0eRgEIAEoCSK8AQoWRWRpdENo", - "YXRNZXNzYWdlUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUY", - "ASACKAQSEQoJZWRpdF90ZXh0GAIgAigJEjQKEG9yaWdpbmFsX21lc3NhZ2UY", - "AyACKAsyGi5saXZla2l0LnByb3RvLkNoYXRNZXNzYWdlEh4KFmRlc3RpbmF0", - "aW9uX2lkZW50aXRpZXMYBCADKAkSFwoPc2VuZGVyX2lkZW50aXR5GAUgASgJ", - "IisKF1NlbmRDaGF0TWVzc2FnZVJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigE", - "InsKF1NlbmRDaGF0TWVzc2FnZUNhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigE", - "Eg8KBWVycm9yGAIgASgJSAASMgoMY2hhdF9tZXNzYWdlGAMgASgLMhoubGl2", - "ZWtpdC5wcm90by5DaGF0TWVzc2FnZUgAQgkKB21lc3NhZ2UicQoZU2V0TG9j", - "YWxBdHRyaWJ1dGVzUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5k", - "bGUYASACKAQSMgoKYXR0cmlidXRlcxgCIAMoCzIeLmxpdmVraXQucHJvdG8u", - "QXR0cmlidXRlc0VudHJ5Ii0KD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASAC", - "KAkSDQoFdmFsdWUYAiACKAkiLgoaU2V0TG9jYWxBdHRyaWJ1dGVzUmVzcG9u", - "c2USEAoIYXN5bmNfaWQYASACKAQiPQoaU2V0TG9jYWxBdHRyaWJ1dGVzQ2Fs", - "bGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAkiRQoTU2V0", - "TG9jYWxOYW1lUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUY", - "ASACKAQSDAoEbmFtZRgCIAIoCSIoChRTZXRMb2NhbE5hbWVSZXNwb25zZRIQ", - "Cghhc3luY19pZBgBIAIoBCI3ChRTZXRMb2NhbE5hbWVDYWxsYmFjaxIQCghh", - "c3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSJFChRTZXRTdWJzY3JpYmVk", - "UmVxdWVzdBIRCglzdWJzY3JpYmUYASACKAgSGgoScHVibGljYXRpb25faGFu", - "ZGxlGAIgAigEIhcKFVNldFN1YnNjcmliZWRSZXNwb25zZSItChZHZXRTZXNz", - "aW9uU3RhdHNSZXF1ZXN0EhMKC3Jvb21faGFuZGxlGAEgAigEIisKF0dldFNl", - "c3Npb25TdGF0c1Jlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIvcBChdHZXRT", - "ZXNzaW9uU3RhdHNDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIPCgVlcnJv", - "chgCIAEoCUgAEj8KBnJlc3VsdBgDIAEoCzItLmxpdmVraXQucHJvdG8uR2V0", - "U2Vzc2lvblN0YXRzQ2FsbGJhY2suUmVzdWx0SAAabQoGUmVzdWx0EjAKD3B1", - "Ymxpc2hlcl9zdGF0cxgBIAMoCzIXLmxpdmVraXQucHJvdG8uUnRjU3RhdHMS", - "MQoQc3Vic2NyaWJlcl9zdGF0cxgCIAMoCzIXLmxpdmVraXQucHJvdG8uUnRj", - "U3RhdHNCCQoHbWVzc2FnZSI7Cg1WaWRlb0VuY29kaW5nEhMKC21heF9iaXRy", - "YXRlGAEgAigEEhUKDW1heF9mcmFtZXJhdGUYAiACKAEiJAoNQXVkaW9FbmNv", - "ZGluZxITCgttYXhfYml0cmF0ZRgBIAIoBCK1AgoTVHJhY2tQdWJsaXNoT3B0", - "aW9ucxI0Cg52aWRlb19lbmNvZGluZxgBIAEoCzIcLmxpdmVraXQucHJvdG8u", - "VmlkZW9FbmNvZGluZxI0Cg5hdWRpb19lbmNvZGluZxgCIAEoCzIcLmxpdmVr", - "aXQucHJvdG8uQXVkaW9FbmNvZGluZxIuCgt2aWRlb19jb2RlYxgDIAEoDjIZ", - "LmxpdmVraXQucHJvdG8uVmlkZW9Db2RlYxILCgNkdHgYBCABKAgSCwoDcmVk", - "GAUgASgIEhEKCXNpbXVsY2FzdBgGIAEoCBIqCgZzb3VyY2UYByABKA4yGi5s", - "aXZla2l0LnByb3RvLlRyYWNrU291cmNlEg4KBnN0cmVhbRgIIAEoCRIZChFw", - "cmVjb25uZWN0X2J1ZmZlchgJIAEoCCI9CglJY2VTZXJ2ZXISDAoEdXJscxgB", - "IAMoCRIQCgh1c2VybmFtZRgCIAEoCRIQCghwYXNzd29yZBgDIAEoCSLEAQoJ", - "UnRjQ29uZmlnEjsKEmljZV90cmFuc3BvcnRfdHlwZRgBIAEoDjIfLmxpdmVr", - "aXQucHJvdG8uSWNlVHJhbnNwb3J0VHlwZRJLChpjb250aW51YWxfZ2F0aGVy", - "aW5nX3BvbGljeRgCIAEoDjInLmxpdmVraXQucHJvdG8uQ29udGludWFsR2F0", - "aGVyaW5nUG9saWN5Ei0KC2ljZV9zZXJ2ZXJzGAMgAygLMhgubGl2ZWtpdC5w", - "cm90by5JY2VTZXJ2ZXIi8gEKC1Jvb21PcHRpb25zEhYKDmF1dG9fc3Vic2Ny", - "aWJlGAEgASgIEhcKD2FkYXB0aXZlX3N0cmVhbRgCIAEoCBIQCghkeW5hY2Fz", - "dBgDIAEoCBIsCgRlMmVlGAQgASgLMhoubGl2ZWtpdC5wcm90by5FMmVlT3B0", - "aW9uc0ICGAESLAoKcnRjX2NvbmZpZxgFIAEoCzIYLmxpdmVraXQucHJvdG8u", - "UnRjQ29uZmlnEhQKDGpvaW5fcmV0cmllcxgGIAEoDRIuCgplbmNyeXB0aW9u", - "GAcgASgLMhoubGl2ZWtpdC5wcm90by5FMmVlT3B0aW9ucyJ3ChRUcmFuc2Ny", - "aXB0aW9uU2VnbWVudBIKCgJpZBgBIAIoCRIMCgR0ZXh0GAIgAigJEhIKCnN0", - "YXJ0X3RpbWUYAyACKAQSEAoIZW5kX3RpbWUYBCACKAQSDQoFZmluYWwYBSAC", - "KAgSEAoIbGFuZ3VhZ2UYBiACKAkiMAoKQnVmZmVySW5mbxIQCghkYXRhX3B0", - "chgBIAIoBBIQCghkYXRhX2xlbhgCIAIoBCJlCgtPd25lZEJ1ZmZlchItCgZo", - "YW5kbGUYASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEicK", - "BGRhdGEYAiACKAsyGS5saXZla2l0LnByb3RvLkJ1ZmZlckluZm8iqhQKCVJv", - "b21FdmVudBITCgtyb29tX2hhbmRsZRgBIAIoBBJEChVwYXJ0aWNpcGFudF9j", - "b25uZWN0ZWQYAiABKAsyIy5saXZla2l0LnByb3RvLlBhcnRpY2lwYW50Q29u", - "bmVjdGVkSAASSgoYcGFydGljaXBhbnRfZGlzY29ubmVjdGVkGAMgASgLMiYu", - "bGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudERpc2Nvbm5lY3RlZEgAEkMKFWxv", - "Y2FsX3RyYWNrX3B1Ymxpc2hlZBgEIAEoCzIiLmxpdmVraXQucHJvdG8uTG9j", - "YWxUcmFja1B1Ymxpc2hlZEgAEkcKF2xvY2FsX3RyYWNrX3VucHVibGlzaGVk", - "GAUgASgLMiQubGl2ZWtpdC5wcm90by5Mb2NhbFRyYWNrVW5wdWJsaXNoZWRI", - "ABJFChZsb2NhbF90cmFja19zdWJzY3JpYmVkGAYgASgLMiMubGl2ZWtpdC5w", - "cm90by5Mb2NhbFRyYWNrU3Vic2NyaWJlZEgAEjgKD3RyYWNrX3B1Ymxpc2hl", - "ZBgHIAEoCzIdLmxpdmVraXQucHJvdG8uVHJhY2tQdWJsaXNoZWRIABI8ChF0", - "cmFja191bnB1Ymxpc2hlZBgIIAEoCzIfLmxpdmVraXQucHJvdG8uVHJhY2tV", - "bnB1Ymxpc2hlZEgAEjoKEHRyYWNrX3N1YnNjcmliZWQYCSABKAsyHi5saXZl", - "a2l0LnByb3RvLlRyYWNrU3Vic2NyaWJlZEgAEj4KEnRyYWNrX3Vuc3Vic2Ny", - "aWJlZBgKIAEoCzIgLmxpdmVraXQucHJvdG8uVHJhY2tVbnN1YnNjcmliZWRI", - "ABJLChl0cmFja19zdWJzY3JpcHRpb25fZmFpbGVkGAsgASgLMiYubGl2ZWtp", - "dC5wcm90by5UcmFja1N1YnNjcmlwdGlvbkZhaWxlZEgAEjAKC3RyYWNrX211", - "dGVkGAwgASgLMhkubGl2ZWtpdC5wcm90by5UcmFja011dGVkSAASNAoNdHJh", - "Y2tfdW5tdXRlZBgNIAEoCzIbLmxpdmVraXQucHJvdG8uVHJhY2tVbm11dGVk", - "SAASRwoXYWN0aXZlX3NwZWFrZXJzX2NoYW5nZWQYDiABKAsyJC5saXZla2l0", - "LnByb3RvLkFjdGl2ZVNwZWFrZXJzQ2hhbmdlZEgAEkMKFXJvb21fbWV0YWRh", - "dGFfY2hhbmdlZBgPIAEoCzIiLmxpdmVraXQucHJvdG8uUm9vbU1ldGFkYXRh", - "Q2hhbmdlZEgAEjkKEHJvb21fc2lkX2NoYW5nZWQYECABKAsyHS5saXZla2l0", - "LnByb3RvLlJvb21TaWRDaGFuZ2VkSAASUQoccGFydGljaXBhbnRfbWV0YWRh", - "dGFfY2hhbmdlZBgRIAEoCzIpLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRN", - "ZXRhZGF0YUNoYW5nZWRIABJJChhwYXJ0aWNpcGFudF9uYW1lX2NoYW5nZWQY", - "EiABKAsyJS5saXZla2l0LnByb3RvLlBhcnRpY2lwYW50TmFtZUNoYW5nZWRI", - "ABJVCh5wYXJ0aWNpcGFudF9hdHRyaWJ1dGVzX2NoYW5nZWQYEyABKAsyKy5s", - "aXZla2l0LnByb3RvLlBhcnRpY2lwYW50QXR0cmlidXRlc0NoYW5nZWRIABJi", - "CiVwYXJ0aWNpcGFudF9lbmNyeXB0aW9uX3N0YXR1c19jaGFuZ2VkGCcgASgL", - "MjEubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudEVuY3J5cHRpb25TdGF0dXND", - "aGFuZ2VkSAASTQoaY29ubmVjdGlvbl9xdWFsaXR5X2NoYW5nZWQYFCABKAsy", - "Jy5saXZla2l0LnByb3RvLkNvbm5lY3Rpb25RdWFsaXR5Q2hhbmdlZEgAEkkK", - "GGNvbm5lY3Rpb25fc3RhdGVfY2hhbmdlZBgVIAEoCzIlLmxpdmVraXQucHJv", - "dG8uQ29ubmVjdGlvblN0YXRlQ2hhbmdlZEgAEjMKDGRpc2Nvbm5lY3RlZBgW", - "IAEoCzIbLmxpdmVraXQucHJvdG8uRGlzY29ubmVjdGVkSAASMwoMcmVjb25u", - "ZWN0aW5nGBcgASgLMhsubGl2ZWtpdC5wcm90by5SZWNvbm5lY3RpbmdIABIx", - "CgtyZWNvbm5lY3RlZBgYIAEoCzIaLmxpdmVraXQucHJvdG8uUmVjb25uZWN0", - "ZWRIABI9ChJlMmVlX3N0YXRlX2NoYW5nZWQYGSABKAsyHy5saXZla2l0LnBy", - "b3RvLkUyZWVTdGF0ZUNoYW5nZWRIABIlCgNlb3MYGiABKAsyFi5saXZla2l0", - "LnByb3RvLlJvb21FT1NIABJBChRkYXRhX3BhY2tldF9yZWNlaXZlZBgbIAEo", - "CzIhLmxpdmVraXQucHJvdG8uRGF0YVBhY2tldFJlY2VpdmVkSAASRgoWdHJh", - "bnNjcmlwdGlvbl9yZWNlaXZlZBgcIAEoCzIkLmxpdmVraXQucHJvdG8uVHJh", - "bnNjcmlwdGlvblJlY2VpdmVkSAASOgoMY2hhdF9tZXNzYWdlGB0gASgLMiIu", - "bGl2ZWtpdC5wcm90by5DaGF0TWVzc2FnZVJlY2VpdmVkSAASSQoWc3RyZWFt", - "X2hlYWRlcl9yZWNlaXZlZBgeIAEoCzInLmxpdmVraXQucHJvdG8uRGF0YVN0", - "cmVhbUhlYWRlclJlY2VpdmVkSAASRwoVc3RyZWFtX2NodW5rX3JlY2VpdmVk", - "GB8gASgLMiYubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFtQ2h1bmtSZWNlaXZl", - "ZEgAEksKF3N0cmVhbV90cmFpbGVyX3JlY2VpdmVkGCAgASgLMigubGl2ZWtp", - "dC5wcm90by5EYXRhU3RyZWFtVHJhaWxlclJlY2VpdmVkSAASaQoiZGF0YV9j", - "aGFubmVsX2xvd190aHJlc2hvbGRfY2hhbmdlZBghIAEoCzI7LmxpdmVraXQu", - "cHJvdG8uRGF0YUNoYW5uZWxCdWZmZXJlZEFtb3VudExvd1RocmVzaG9sZENo", - "YW5nZWRIABI9ChJieXRlX3N0cmVhbV9vcGVuZWQYIiABKAsyHy5saXZla2l0", - "LnByb3RvLkJ5dGVTdHJlYW1PcGVuZWRIABI9ChJ0ZXh0X3N0cmVhbV9vcGVu", - "ZWQYIyABKAsyHy5saXZla2l0LnByb3RvLlRleHRTdHJlYW1PcGVuZWRIABIv", - "Cgxyb29tX3VwZGF0ZWQYJCABKAsyFy5saXZla2l0LnByb3RvLlJvb21JbmZv", - "SAASKAoFbW92ZWQYJSABKAsyFy5saXZla2l0LnByb3RvLlJvb21JbmZvSAAS", - "QgoUcGFydGljaXBhbnRzX3VwZGF0ZWQYJiABKAsyIi5saXZla2l0LnByb3Rv", - "LlBhcnRpY2lwYW50c1VwZGF0ZWRIAEIJCgdtZXNzYWdlIskCCghSb29tSW5m", - "bxILCgNzaWQYASABKAkSDAoEbmFtZRgCIAIoCRIQCghtZXRhZGF0YRgDIAIo", - "CRIuCiZsb3NzeV9kY19idWZmZXJlZF9hbW91bnRfbG93X3RocmVzaG9sZBgE", - "IAIoBBIxCilyZWxpYWJsZV9kY19idWZmZXJlZF9hbW91bnRfbG93X3RocmVz", - "aG9sZBgFIAIoBBIVCg1lbXB0eV90aW1lb3V0GAYgAigNEhkKEWRlcGFydHVy", - "ZV90aW1lb3V0GAcgAigNEhgKEG1heF9wYXJ0aWNpcGFudHMYCCACKA0SFQoN", - "Y3JlYXRpb25fdGltZRgJIAIoAxIYChBudW1fcGFydGljaXBhbnRzGAogAigN", - "EhYKDm51bV9wdWJsaXNoZXJzGAsgAigNEhgKEGFjdGl2ZV9yZWNvcmRpbmcY", - "DCACKAgiYQoJT3duZWRSb29tEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQu", - "cHJvdG8uRmZpT3duZWRIYW5kbGUSJQoEaW5mbxgCIAIoCzIXLmxpdmVraXQu", - "cHJvdG8uUm9vbUluZm8iSwoTUGFydGljaXBhbnRzVXBkYXRlZBI0CgxwYXJ0", - "aWNpcGFudHMYASADKAsyHi5saXZla2l0LnByb3RvLlBhcnRpY2lwYW50SW5m", - "byJFChRQYXJ0aWNpcGFudENvbm5lY3RlZBItCgRpbmZvGAEgAigLMh8ubGl2", - "ZWtpdC5wcm90by5Pd25lZFBhcnRpY2lwYW50InMKF1BhcnRpY2lwYW50RGlz", - "Y29ubmVjdGVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEjoKEWRp", - "c2Nvbm5lY3RfcmVhc29uGAIgAigOMh8ubGl2ZWtpdC5wcm90by5EaXNjb25u", - "ZWN0UmVhc29uIigKE0xvY2FsVHJhY2tQdWJsaXNoZWQSEQoJdHJhY2tfc2lk", - "GAEgAigJIjAKFUxvY2FsVHJhY2tVbnB1Ymxpc2hlZBIXCg9wdWJsaWNhdGlv", - "bl9zaWQYASACKAkiKQoUTG9jYWxUcmFja1N1YnNjcmliZWQSEQoJdHJhY2tf", - "c2lkGAIgAigJImkKDlRyYWNrUHVibGlzaGVkEhwKFHBhcnRpY2lwYW50X2lk", - "ZW50aXR5GAEgAigJEjkKC3B1YmxpY2F0aW9uGAIgAigLMiQubGl2ZWtpdC5w", - "cm90by5Pd25lZFRyYWNrUHVibGljYXRpb24iSQoQVHJhY2tVbnB1Ymxpc2hl", - "ZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIXCg9wdWJsaWNhdGlv", - "bl9zaWQYAiACKAkiWQoPVHJhY2tTdWJzY3JpYmVkEhwKFHBhcnRpY2lwYW50", - "X2lkZW50aXR5GAEgAigJEigKBXRyYWNrGAIgAigLMhkubGl2ZWtpdC5wcm90", - "by5Pd25lZFRyYWNrIkQKEVRyYWNrVW5zdWJzY3JpYmVkEhwKFHBhcnRpY2lw", - "YW50X2lkZW50aXR5GAEgAigJEhEKCXRyYWNrX3NpZBgCIAIoCSJZChdUcmFj", - "a1N1YnNjcmlwdGlvbkZhaWxlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgB", - "IAIoCRIRCgl0cmFja19zaWQYAiACKAkSDQoFZXJyb3IYAyACKAkiPQoKVHJh", - "Y2tNdXRlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIRCgl0cmFj", - "a19zaWQYAiACKAkiPwoMVHJhY2tVbm11dGVkEhwKFHBhcnRpY2lwYW50X2lk", - "ZW50aXR5GAEgAigJEhEKCXRyYWNrX3NpZBgCIAIoCSJfChBFMmVlU3RhdGVD", - "aGFuZ2VkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEi0KBXN0YXRl", - "GAIgAigOMh4ubGl2ZWtpdC5wcm90by5FbmNyeXB0aW9uU3RhdGUiNwoVQWN0", - "aXZlU3BlYWtlcnNDaGFuZ2VkEh4KFnBhcnRpY2lwYW50X2lkZW50aXRpZXMY", - "ASADKAkiJwoTUm9vbU1ldGFkYXRhQ2hhbmdlZBIQCghtZXRhZGF0YRgBIAIo", - "CSIdCg5Sb29tU2lkQ2hhbmdlZBILCgNzaWQYASACKAkiTAoaUGFydGljaXBh", - "bnRNZXRhZGF0YUNoYW5nZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASAC", - "KAkSEAoIbWV0YWRhdGEYAiACKAkirAEKHFBhcnRpY2lwYW50QXR0cmlidXRl", - "c0NoYW5nZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSMgoKYXR0", - "cmlidXRlcxgCIAMoCzIeLmxpdmVraXQucHJvdG8uQXR0cmlidXRlc0VudHJ5", - "EjoKEmNoYW5nZWRfYXR0cmlidXRlcxgDIAMoCzIeLmxpdmVraXQucHJvdG8u", - "QXR0cmlidXRlc0VudHJ5IlgKIlBhcnRpY2lwYW50RW5jcnlwdGlvblN0YXR1", - "c0NoYW5nZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSFAoMaXNf", - "ZW5jcnlwdGVkGAIgAigIIkQKFlBhcnRpY2lwYW50TmFtZUNoYW5nZWQSHAoU", - "cGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSDAoEbmFtZRgCIAIoCSJrChhD", - "b25uZWN0aW9uUXVhbGl0eUNoYW5nZWQSHAoUcGFydGljaXBhbnRfaWRlbnRp", - "dHkYASACKAkSMQoHcXVhbGl0eRgCIAIoDjIgLmxpdmVraXQucHJvdG8uQ29u", - "bmVjdGlvblF1YWxpdHkiRQoKVXNlclBhY2tldBIoCgRkYXRhGAEgAigLMhou", - "bGl2ZWtpdC5wcm90by5Pd25lZEJ1ZmZlchINCgV0b3BpYxgCIAEoCSJ5CgtD", - "aGF0TWVzc2FnZRIKCgJpZBgBIAIoCRIRCgl0aW1lc3RhbXAYAiACKAMSDwoH", - "bWVzc2FnZRgDIAIoCRIWCg5lZGl0X3RpbWVzdGFtcBgEIAEoAxIPCgdkZWxl", - "dGVkGAUgASgIEhEKCWdlbmVyYXRlZBgGIAEoCCJgChNDaGF0TWVzc2FnZVJl", - "Y2VpdmVkEisKB21lc3NhZ2UYASACKAsyGi5saXZla2l0LnByb3RvLkNoYXRN", - "ZXNzYWdlEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAIgAigJIiYKB1NpcERU", - "TUYSDAoEY29kZRgBIAIoDRINCgVkaWdpdBgCIAEoCSK/AQoSRGF0YVBhY2tl", - "dFJlY2VpdmVkEisKBGtpbmQYASACKA4yHS5saXZla2l0LnByb3RvLkRhdGFQ", - "YWNrZXRLaW5kEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAIgAigJEikKBHVz", - "ZXIYBCABKAsyGS5saXZla2l0LnByb3RvLlVzZXJQYWNrZXRIABIqCghzaXBf", - "ZHRtZhgFIAEoCzIWLmxpdmVraXQucHJvdG8uU2lwRFRNRkgAQgcKBXZhbHVl", - "In8KFVRyYW5zY3JpcHRpb25SZWNlaXZlZBIcChRwYXJ0aWNpcGFudF9pZGVu", - "dGl0eRgBIAEoCRIRCgl0cmFja19zaWQYAiABKAkSNQoIc2VnbWVudHMYAyAD", - "KAsyIy5saXZla2l0LnByb3RvLlRyYW5zY3JpcHRpb25TZWdtZW50IkcKFkNv", - "bm5lY3Rpb25TdGF0ZUNoYW5nZWQSLQoFc3RhdGUYASACKA4yHi5saXZla2l0", - "LnByb3RvLkNvbm5lY3Rpb25TdGF0ZSILCglDb25uZWN0ZWQiPwoMRGlzY29u", - "bmVjdGVkEi8KBnJlYXNvbhgBIAIoDjIfLmxpdmVraXQucHJvdG8uRGlzY29u", - "bmVjdFJlYXNvbiIOCgxSZWNvbm5lY3RpbmciDQoLUmVjb25uZWN0ZWQiCQoH", - "Um9vbUVPUyKOBwoKRGF0YVN0cmVhbRqqAQoKVGV4dEhlYWRlchI/Cg5vcGVy", - "YXRpb25fdHlwZRgBIAIoDjInLmxpdmVraXQucHJvdG8uRGF0YVN0cmVhbS5P", - "cGVyYXRpb25UeXBlEg8KB3ZlcnNpb24YAiABKAUSGgoScmVwbHlfdG9fc3Ry", - "ZWFtX2lkGAMgASgJEhsKE2F0dGFjaGVkX3N0cmVhbV9pZHMYBCADKAkSEQoJ", - "Z2VuZXJhdGVkGAUgASgIGhoKCkJ5dGVIZWFkZXISDAoEbmFtZRgBIAIoCRrr", - "AgoGSGVhZGVyEhEKCXN0cmVhbV9pZBgBIAIoCRIRCgl0aW1lc3RhbXAYAiAC", - "KAMSEQoJbWltZV90eXBlGAMgAigJEg0KBXRvcGljGAQgAigJEhQKDHRvdGFs", - "X2xlbmd0aBgFIAEoBBJECgphdHRyaWJ1dGVzGAYgAygLMjAubGl2ZWtpdC5w", - "cm90by5EYXRhU3RyZWFtLkhlYWRlci5BdHRyaWJ1dGVzRW50cnkSOwoLdGV4", - "dF9oZWFkZXIYByABKAsyJC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uVGV4", - "dEhlYWRlckgAEjsKC2J5dGVfaGVhZGVyGAggASgLMiQubGl2ZWtpdC5wcm90", - "by5EYXRhU3RyZWFtLkJ5dGVIZWFkZXJIABoxCg9BdHRyaWJ1dGVzRW50cnkS", - "CwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIQCg5jb250ZW50X2hl", - "YWRlchpdCgVDaHVuaxIRCglzdHJlYW1faWQYASACKAkSEwoLY2h1bmtfaW5k", - "ZXgYAiACKAQSDwoHY29udGVudBgDIAIoDBIPCgd2ZXJzaW9uGAQgASgFEgoK", - "Aml2GAUgASgMGqYBCgdUcmFpbGVyEhEKCXN0cmVhbV9pZBgBIAIoCRIOCgZy", - "ZWFzb24YAiACKAkSRQoKYXR0cmlidXRlcxgDIAMoCzIxLmxpdmVraXQucHJv", - "dG8uRGF0YVN0cmVhbS5UcmFpbGVyLkF0dHJpYnV0ZXNFbnRyeRoxCg9BdHRy", - "aWJ1dGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJB", - "Cg1PcGVyYXRpb25UeXBlEgoKBkNSRUFURRAAEgoKBlVQREFURRABEgoKBkRF", - "TEVURRACEgwKCFJFQUNUSU9OEAMiagoYRGF0YVN0cmVhbUhlYWRlclJlY2Vp", - "dmVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEjAKBmhlYWRlchgC", - "IAIoCzIgLmxpdmVraXQucHJvdG8uRGF0YVN0cmVhbS5IZWFkZXIiZwoXRGF0", - "YVN0cmVhbUNodW5rUmVjZWl2ZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkY", - "ASACKAkSLgoFY2h1bmsYAiACKAsyHy5saXZla2l0LnByb3RvLkRhdGFTdHJl", - "YW0uQ2h1bmsibQoZRGF0YVN0cmVhbVRyYWlsZXJSZWNlaXZlZBIcChRwYXJ0", - "aWNpcGFudF9pZGVudGl0eRgBIAIoCRIyCgd0cmFpbGVyGAIgAigLMiEubGl2", - "ZWtpdC5wcm90by5EYXRhU3RyZWFtLlRyYWlsZXIipgEKF1NlbmRTdHJlYW1I", - "ZWFkZXJSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIo", - "BBIwCgZoZWFkZXIYAiACKAsyIC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0u", - "SGVhZGVyEh4KFmRlc3RpbmF0aW9uX2lkZW50aXRpZXMYAyADKAkSFwoPc2Vu", - "ZGVyX2lkZW50aXR5GAQgAigJIqMBChZTZW5kU3RyZWFtQ2h1bmtSZXF1ZXN0", - "EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIuCgVjaHVuaxgC", - "IAIoCzIfLmxpdmVraXQucHJvdG8uRGF0YVN0cmVhbS5DaHVuaxIeChZkZXN0", - "aW5hdGlvbl9pZGVudGl0aWVzGAMgAygJEhcKD3NlbmRlcl9pZGVudGl0eRgE", - "IAIoCSKpAQoYU2VuZFN0cmVhbVRyYWlsZXJSZXF1ZXN0EiAKGGxvY2FsX3Bh", - "cnRpY2lwYW50X2hhbmRsZRgBIAIoBBIyCgd0cmFpbGVyGAIgAigLMiEubGl2", - "ZWtpdC5wcm90by5EYXRhU3RyZWFtLlRyYWlsZXISHgoWZGVzdGluYXRpb25f", - "aWRlbnRpdGllcxgDIAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBCACKAkiLAoY", - "U2VuZFN0cmVhbUhlYWRlclJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIisK", - "F1NlbmRTdHJlYW1DaHVua1Jlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIi0K", - "GVNlbmRTdHJlYW1UcmFpbGVyUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQi", - "OwoYU2VuZFN0cmVhbUhlYWRlckNhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigE", - "Eg0KBWVycm9yGAIgASgJIjoKF1NlbmRTdHJlYW1DaHVua0NhbGxiYWNrEhAK", - "CGFzeW5jX2lkGAEgAigEEg0KBWVycm9yGAIgASgJIjwKGVNlbmRTdHJlYW1U", - "cmFpbGVyQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiAB", - "KAkikwEKL1NldERhdGFDaGFubmVsQnVmZmVyZWRBbW91bnRMb3dUaHJlc2hv", - "bGRSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIR", - "Cgl0aHJlc2hvbGQYAiACKAQSKwoEa2luZBgDIAIoDjIdLmxpdmVraXQucHJv", - "dG8uRGF0YVBhY2tldEtpbmQiMgowU2V0RGF0YUNoYW5uZWxCdWZmZXJlZEFt", - "b3VudExvd1RocmVzaG9sZFJlc3BvbnNlIm4KLERhdGFDaGFubmVsQnVmZmVy", - "ZWRBbW91bnRMb3dUaHJlc2hvbGRDaGFuZ2VkEisKBGtpbmQYASACKA4yHS5s", - "aXZla2l0LnByb3RvLkRhdGFQYWNrZXRLaW5kEhEKCXRocmVzaG9sZBgCIAIo", - "BCJmChBCeXRlU3RyZWFtT3BlbmVkEjQKBnJlYWRlchgBIAIoCzIkLmxpdmVr", - "aXQucHJvdG8uT3duZWRCeXRlU3RyZWFtUmVhZGVyEhwKFHBhcnRpY2lwYW50", - "X2lkZW50aXR5GAIgAigJImYKEFRleHRTdHJlYW1PcGVuZWQSNAoGcmVhZGVy", - "GAEgAigLMiQubGl2ZWtpdC5wcm90by5Pd25lZFRleHRTdHJlYW1SZWFkZXIS", - "HAoUcGFydGljaXBhbnRfaWRlbnRpdHkYAiACKAkqUAoQSWNlVHJhbnNwb3J0", - "VHlwZRITCg9UUkFOU1BPUlRfUkVMQVkQABIUChBUUkFOU1BPUlRfTk9IT1NU", - "EAESEQoNVFJBTlNQT1JUX0FMTBACKkMKGENvbnRpbnVhbEdhdGhlcmluZ1Bv", - "bGljeRIPCgtHQVRIRVJfT05DRRAAEhYKEkdBVEhFUl9DT05USU5VQUxMWRAB", - "KmAKEUNvbm5lY3Rpb25RdWFsaXR5EhAKDFFVQUxJVFlfUE9PUhAAEhAKDFFV", - "QUxJVFlfR09PRBABEhUKEVFVQUxJVFlfRVhDRUxMRU5UEAISEAoMUVVBTElU", - "WV9MT1NUEAMqUwoPQ29ubmVjdGlvblN0YXRlEhUKEUNPTk5fRElTQ09OTkVD", - "VEVEEAASEgoOQ09OTl9DT05ORUNURUQQARIVChFDT05OX1JFQ09OTkVDVElO", - "RxACKjMKDkRhdGFQYWNrZXRLaW5kEg4KCktJTkRfTE9TU1kQABIRCg1LSU5E", - "X1JFTElBQkxFEAFCEKoCDUxpdmVLaXQuUHJvdG8=")); + "bxoQZGF0YV90cmFjay5wcm90byJzCg5Db25uZWN0UmVxdWVzdBILCgN1cmwY", + "ASACKAkSDQoFdG9rZW4YAiACKAkSKwoHb3B0aW9ucxgDIAIoCzIaLmxpdmVr", + "aXQucHJvdG8uUm9vbU9wdGlvbnMSGAoQcmVxdWVzdF9hc3luY19pZBgEIAEo", + "BCIjCg9Db25uZWN0UmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQivwMKD0Nv", + "bm5lY3RDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIPCgVlcnJvchgCIAEo", + "CUgAEjcKBnJlc3VsdBgDIAEoCzIlLmxpdmVraXQucHJvdG8uQ29ubmVjdENh", + "bGxiYWNrLlJlc3VsdEgAGokBChVQYXJ0aWNpcGFudFdpdGhUcmFja3MSNAoL", + "cGFydGljaXBhbnQYASACKAsyHy5saXZla2l0LnByb3RvLk93bmVkUGFydGlj", + "aXBhbnQSOgoMcHVibGljYXRpb25zGAIgAygLMiQubGl2ZWtpdC5wcm90by5P", + "d25lZFRyYWNrUHVibGljYXRpb24auAEKBlJlc3VsdBImCgRyb29tGAEgAigL", + "MhgubGl2ZWtpdC5wcm90by5Pd25lZFJvb20SOgoRbG9jYWxfcGFydGljaXBh", + "bnQYAiACKAsyHy5saXZla2l0LnByb3RvLk93bmVkUGFydGljaXBhbnQSSgoM", + "cGFydGljaXBhbnRzGAMgAygLMjQubGl2ZWtpdC5wcm90by5Db25uZWN0Q2Fs", + "bGJhY2suUGFydGljaXBhbnRXaXRoVHJhY2tzQgkKB21lc3NhZ2UiQgoRRGlz", + "Y29ubmVjdFJlcXVlc3QSEwoLcm9vbV9oYW5kbGUYASACKAQSGAoQcmVxdWVz", + "dF9hc3luY19pZBgCIAEoBCImChJEaXNjb25uZWN0UmVzcG9uc2USEAoIYXN5", + "bmNfaWQYASACKAQiJgoSRGlzY29ubmVjdENhbGxiYWNrEhAKCGFzeW5jX2lk", + "GAEgAigEIpwBChNQdWJsaXNoVHJhY2tSZXF1ZXN0EiAKGGxvY2FsX3BhcnRp", + "Y2lwYW50X2hhbmRsZRgBIAIoBBIUCgx0cmFja19oYW5kbGUYAiACKAQSMwoH", + "b3B0aW9ucxgDIAIoCzIiLmxpdmVraXQucHJvdG8uVHJhY2tQdWJsaXNoT3B0", + "aW9ucxIYChByZXF1ZXN0X2FzeW5jX2lkGAQgASgEIigKFFB1Ymxpc2hUcmFj", + "a1Jlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIoEBChRQdWJsaXNoVHJhY2tD", + "YWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIPCgVlcnJvchgCIAEoCUgAEjsK", + "C3B1YmxpY2F0aW9uGAMgASgLMiQubGl2ZWtpdC5wcm90by5Pd25lZFRyYWNr", + "UHVibGljYXRpb25IAEIJCgdtZXNzYWdlIoEBChVVbnB1Ymxpc2hUcmFja1Jl", + "cXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEhEKCXRy", + "YWNrX3NpZBgCIAIoCRIZChFzdG9wX29uX3VucHVibGlzaBgDIAIoCBIYChBy", + "ZXF1ZXN0X2FzeW5jX2lkGAQgASgEIioKFlVucHVibGlzaFRyYWNrUmVzcG9u", + "c2USEAoIYXN5bmNfaWQYASACKAQiOQoWVW5wdWJsaXNoVHJhY2tDYWxsYmFj", + "axIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSLTAQoSUHVibGlz", + "aERhdGFSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIo", + "BBIQCghkYXRhX3B0chgCIAIoBBIQCghkYXRhX2xlbhgDIAIoBBIQCghyZWxp", + "YWJsZRgEIAIoCBIcChBkZXN0aW5hdGlvbl9zaWRzGAUgAygJQgIYARINCgV0", + "b3BpYxgGIAEoCRIeChZkZXN0aW5hdGlvbl9pZGVudGl0aWVzGAcgAygJEhgK", + "EHJlcXVlc3RfYXN5bmNfaWQYCCABKAQiJwoTUHVibGlzaERhdGFSZXNwb25z", + "ZRIQCghhc3luY19pZBgBIAIoBCI2ChNQdWJsaXNoRGF0YUNhbGxiYWNrEhAK", + "CGFzeW5jX2lkGAEgAigEEg0KBWVycm9yGAIgASgJIsABChtQdWJsaXNoVHJh", + "bnNjcmlwdGlvblJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxl", + "GAEgAigEEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAIgAigJEhAKCHRyYWNr", + "X2lkGAMgAigJEjUKCHNlZ21lbnRzGAQgAygLMiMubGl2ZWtpdC5wcm90by5U", + "cmFuc2NyaXB0aW9uU2VnbWVudBIYChByZXF1ZXN0X2FzeW5jX2lkGAUgASgE", + "IjAKHFB1Ymxpc2hUcmFuc2NyaXB0aW9uUmVzcG9uc2USEAoIYXN5bmNfaWQY", + "ASACKAQiPwocUHVibGlzaFRyYW5zY3JpcHRpb25DYWxsYmFjaxIQCghhc3lu", + "Y19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSKQAQoVUHVibGlzaFNpcER0bWZS", + "ZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIMCgRj", + "b2RlGAIgAigNEg0KBWRpZ2l0GAMgAigJEh4KFmRlc3RpbmF0aW9uX2lkZW50", + "aXRpZXMYBCADKAkSGAoQcmVxdWVzdF9hc3luY19pZBgFIAEoBCIqChZQdWJs", + "aXNoU2lwRHRtZlJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIjkKFlB1Ymxp", + "c2hTaXBEdG1mQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IY", + "AiABKAkiZwoXU2V0TG9jYWxNZXRhZGF0YVJlcXVlc3QSIAoYbG9jYWxfcGFy", + "dGljaXBhbnRfaGFuZGxlGAEgAigEEhAKCG1ldGFkYXRhGAIgAigJEhgKEHJl", + "cXVlc3RfYXN5bmNfaWQYAyABKAQiLAoYU2V0TG9jYWxNZXRhZGF0YVJlc3Bv", + "bnNlEhAKCGFzeW5jX2lkGAEgAigEIjsKGFNldExvY2FsTWV0YWRhdGFDYWxs", + "YmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSKeAQoWU2Vu", + "ZENoYXRNZXNzYWdlUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5k", + "bGUYASACKAQSDwoHbWVzc2FnZRgCIAIoCRIeChZkZXN0aW5hdGlvbl9pZGVu", + "dGl0aWVzGAMgAygJEhcKD3NlbmRlcl9pZGVudGl0eRgEIAEoCRIYChByZXF1", + "ZXN0X2FzeW5jX2lkGAUgASgEItYBChZFZGl0Q2hhdE1lc3NhZ2VSZXF1ZXN0", + "EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIRCgllZGl0X3Rl", + "eHQYAiACKAkSNAoQb3JpZ2luYWxfbWVzc2FnZRgDIAIoCzIaLmxpdmVraXQu", + "cHJvdG8uQ2hhdE1lc3NhZ2USHgoWZGVzdGluYXRpb25faWRlbnRpdGllcxgE", + "IAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBSABKAkSGAoQcmVxdWVzdF9hc3lu", + "Y19pZBgGIAEoBCIrChdTZW5kQ2hhdE1lc3NhZ2VSZXNwb25zZRIQCghhc3lu", + "Y19pZBgBIAIoBCJ7ChdTZW5kQ2hhdE1lc3NhZ2VDYWxsYmFjaxIQCghhc3lu", + "Y19pZBgBIAIoBBIPCgVlcnJvchgCIAEoCUgAEjIKDGNoYXRfbWVzc2FnZRgD", + "IAEoCzIaLmxpdmVraXQucHJvdG8uQ2hhdE1lc3NhZ2VIAEIJCgdtZXNzYWdl", + "IosBChlTZXRMb2NhbEF0dHJpYnV0ZXNSZXF1ZXN0EiAKGGxvY2FsX3BhcnRp", + "Y2lwYW50X2hhbmRsZRgBIAIoBBIyCgphdHRyaWJ1dGVzGAIgAygLMh4ubGl2", + "ZWtpdC5wcm90by5BdHRyaWJ1dGVzRW50cnkSGAoQcmVxdWVzdF9hc3luY19p", + "ZBgDIAEoBCItCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgAigJEg0KBXZh", + "bHVlGAIgAigJIi4KGlNldExvY2FsQXR0cmlidXRlc1Jlc3BvbnNlEhAKCGFz", + "eW5jX2lkGAEgAigEIj0KGlNldExvY2FsQXR0cmlidXRlc0NhbGxiYWNrEhAK", + "CGFzeW5jX2lkGAEgAigEEg0KBWVycm9yGAIgASgJIl8KE1NldExvY2FsTmFt", + "ZVJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEgwK", + "BG5hbWUYAiACKAkSGAoQcmVxdWVzdF9hc3luY19pZBgDIAEoBCIoChRTZXRM", + "b2NhbE5hbWVSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCI3ChRTZXRMb2Nh", + "bE5hbWVDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEo", + "CSJFChRTZXRTdWJzY3JpYmVkUmVxdWVzdBIRCglzdWJzY3JpYmUYASACKAgS", + "GgoScHVibGljYXRpb25faGFuZGxlGAIgAigEIhcKFVNldFN1YnNjcmliZWRS", + "ZXNwb25zZSJHChZHZXRTZXNzaW9uU3RhdHNSZXF1ZXN0EhMKC3Jvb21faGFu", + "ZGxlGAEgAigEEhgKEHJlcXVlc3RfYXN5bmNfaWQYAiABKAQiKwoXR2V0U2Vz", + "c2lvblN0YXRzUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQi9wEKF0dldFNl", + "c3Npb25TdGF0c0NhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEg8KBWVycm9y", + "GAIgASgJSAASPwoGcmVzdWx0GAMgASgLMi0ubGl2ZWtpdC5wcm90by5HZXRT", + "ZXNzaW9uU3RhdHNDYWxsYmFjay5SZXN1bHRIABptCgZSZXN1bHQSMAoPcHVi", + "bGlzaGVyX3N0YXRzGAEgAygLMhcubGl2ZWtpdC5wcm90by5SdGNTdGF0cxIx", + "ChBzdWJzY3JpYmVyX3N0YXRzGAIgAygLMhcubGl2ZWtpdC5wcm90by5SdGNT", + "dGF0c0IJCgdtZXNzYWdlIjsKDVZpZGVvRW5jb2RpbmcSEwoLbWF4X2JpdHJh", + "dGUYASACKAQSFQoNbWF4X2ZyYW1lcmF0ZRgCIAIoASIkCg1BdWRpb0VuY29k", + "aW5nEhMKC21heF9iaXRyYXRlGAEgAigEIrUCChNUcmFja1B1Ymxpc2hPcHRp", + "b25zEjQKDnZpZGVvX2VuY29kaW5nGAEgASgLMhwubGl2ZWtpdC5wcm90by5W", + "aWRlb0VuY29kaW5nEjQKDmF1ZGlvX2VuY29kaW5nGAIgASgLMhwubGl2ZWtp", + "dC5wcm90by5BdWRpb0VuY29kaW5nEi4KC3ZpZGVvX2NvZGVjGAMgASgOMhku", + "bGl2ZWtpdC5wcm90by5WaWRlb0NvZGVjEgsKA2R0eBgEIAEoCBILCgNyZWQY", + "BSABKAgSEQoJc2ltdWxjYXN0GAYgASgIEioKBnNvdXJjZRgHIAEoDjIaLmxp", + "dmVraXQucHJvdG8uVHJhY2tTb3VyY2USDgoGc3RyZWFtGAggASgJEhkKEXBy", + "ZWNvbm5lY3RfYnVmZmVyGAkgASgIIj0KCUljZVNlcnZlchIMCgR1cmxzGAEg", + "AygJEhAKCHVzZXJuYW1lGAIgASgJEhAKCHBhc3N3b3JkGAMgASgJIsQBCglS", + "dGNDb25maWcSOwoSaWNlX3RyYW5zcG9ydF90eXBlGAEgASgOMh8ubGl2ZWtp", + "dC5wcm90by5JY2VUcmFuc3BvcnRUeXBlEksKGmNvbnRpbnVhbF9nYXRoZXJp", + "bmdfcG9saWN5GAIgASgOMicubGl2ZWtpdC5wcm90by5Db250aW51YWxHYXRo", + "ZXJpbmdQb2xpY3kSLQoLaWNlX3NlcnZlcnMYAyADKAsyGC5saXZla2l0LnBy", + "b3RvLkljZVNlcnZlciLyAQoLUm9vbU9wdGlvbnMSFgoOYXV0b19zdWJzY3Jp", + "YmUYASABKAgSFwoPYWRhcHRpdmVfc3RyZWFtGAIgASgIEhAKCGR5bmFjYXN0", + "GAMgASgIEiwKBGUyZWUYBCABKAsyGi5saXZla2l0LnByb3RvLkUyZWVPcHRp", + "b25zQgIYARIsCgpydGNfY29uZmlnGAUgASgLMhgubGl2ZWtpdC5wcm90by5S", + "dGNDb25maWcSFAoMam9pbl9yZXRyaWVzGAYgASgNEi4KCmVuY3J5cHRpb24Y", + "ByABKAsyGi5saXZla2l0LnByb3RvLkUyZWVPcHRpb25zIncKFFRyYW5zY3Jp", + "cHRpb25TZWdtZW50EgoKAmlkGAEgAigJEgwKBHRleHQYAiACKAkSEgoKc3Rh", + "cnRfdGltZRgDIAIoBBIQCghlbmRfdGltZRgEIAIoBBINCgVmaW5hbBgFIAIo", + "CBIQCghsYW5ndWFnZRgGIAIoCSIwCgpCdWZmZXJJbmZvEhAKCGRhdGFfcHRy", + "GAEgAigEEhAKCGRhdGFfbGVuGAIgAigEImUKC093bmVkQnVmZmVyEi0KBmhh", + "bmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUSJwoE", + "ZGF0YRgCIAIoCzIZLmxpdmVraXQucHJvdG8uQnVmZmVySW5mbyKLFgoJUm9v", + "bUV2ZW50EhMKC3Jvb21faGFuZGxlGAEgAigEEkQKFXBhcnRpY2lwYW50X2Nv", + "bm5lY3RlZBgCIAEoCzIjLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRDb25u", + "ZWN0ZWRIABJKChhwYXJ0aWNpcGFudF9kaXNjb25uZWN0ZWQYAyABKAsyJi5s", + "aXZla2l0LnByb3RvLlBhcnRpY2lwYW50RGlzY29ubmVjdGVkSAASQwoVbG9j", + "YWxfdHJhY2tfcHVibGlzaGVkGAQgASgLMiIubGl2ZWtpdC5wcm90by5Mb2Nh", + "bFRyYWNrUHVibGlzaGVkSAASRwoXbG9jYWxfdHJhY2tfdW5wdWJsaXNoZWQY", + "BSABKAsyJC5saXZla2l0LnByb3RvLkxvY2FsVHJhY2tVbnB1Ymxpc2hlZEgA", + "EkUKFmxvY2FsX3RyYWNrX3N1YnNjcmliZWQYBiABKAsyIy5saXZla2l0LnBy", + "b3RvLkxvY2FsVHJhY2tTdWJzY3JpYmVkSAASOAoPdHJhY2tfcHVibGlzaGVk", + "GAcgASgLMh0ubGl2ZWtpdC5wcm90by5UcmFja1B1Ymxpc2hlZEgAEjwKEXRy", + "YWNrX3VucHVibGlzaGVkGAggASgLMh8ubGl2ZWtpdC5wcm90by5UcmFja1Vu", + "cHVibGlzaGVkSAASOgoQdHJhY2tfc3Vic2NyaWJlZBgJIAEoCzIeLmxpdmVr", + "aXQucHJvdG8uVHJhY2tTdWJzY3JpYmVkSAASPgoSdHJhY2tfdW5zdWJzY3Jp", + "YmVkGAogASgLMiAubGl2ZWtpdC5wcm90by5UcmFja1Vuc3Vic2NyaWJlZEgA", + "EksKGXRyYWNrX3N1YnNjcmlwdGlvbl9mYWlsZWQYCyABKAsyJi5saXZla2l0", + "LnByb3RvLlRyYWNrU3Vic2NyaXB0aW9uRmFpbGVkSAASMAoLdHJhY2tfbXV0", + "ZWQYDCABKAsyGS5saXZla2l0LnByb3RvLlRyYWNrTXV0ZWRIABI0Cg10cmFj", + "a191bm11dGVkGA0gASgLMhsubGl2ZWtpdC5wcm90by5UcmFja1VubXV0ZWRI", + "ABJHChdhY3RpdmVfc3BlYWtlcnNfY2hhbmdlZBgOIAEoCzIkLmxpdmVraXQu", + "cHJvdG8uQWN0aXZlU3BlYWtlcnNDaGFuZ2VkSAASQwoVcm9vbV9tZXRhZGF0", + "YV9jaGFuZ2VkGA8gASgLMiIubGl2ZWtpdC5wcm90by5Sb29tTWV0YWRhdGFD", + "aGFuZ2VkSAASOQoQcm9vbV9zaWRfY2hhbmdlZBgQIAEoCzIdLmxpdmVraXQu", + "cHJvdG8uUm9vbVNpZENoYW5nZWRIABJRChxwYXJ0aWNpcGFudF9tZXRhZGF0", + "YV9jaGFuZ2VkGBEgASgLMikubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudE1l", + "dGFkYXRhQ2hhbmdlZEgAEkkKGHBhcnRpY2lwYW50X25hbWVfY2hhbmdlZBgS", + "IAEoCzIlLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnROYW1lQ2hhbmdlZEgA", + "ElUKHnBhcnRpY2lwYW50X2F0dHJpYnV0ZXNfY2hhbmdlZBgTIAEoCzIrLmxp", + "dmVraXQucHJvdG8uUGFydGljaXBhbnRBdHRyaWJ1dGVzQ2hhbmdlZEgAEk0K", + "GmNvbm5lY3Rpb25fcXVhbGl0eV9jaGFuZ2VkGBQgASgLMicubGl2ZWtpdC5w", + "cm90by5Db25uZWN0aW9uUXVhbGl0eUNoYW5nZWRIABJJChhjb25uZWN0aW9u", + "X3N0YXRlX2NoYW5nZWQYFSABKAsyJS5saXZla2l0LnByb3RvLkNvbm5lY3Rp", + "b25TdGF0ZUNoYW5nZWRIABIzCgxkaXNjb25uZWN0ZWQYFiABKAsyGy5saXZl", + "a2l0LnByb3RvLkRpc2Nvbm5lY3RlZEgAEjMKDHJlY29ubmVjdGluZxgXIAEo", + "CzIbLmxpdmVraXQucHJvdG8uUmVjb25uZWN0aW5nSAASMQoLcmVjb25uZWN0", + "ZWQYGCABKAsyGi5saXZla2l0LnByb3RvLlJlY29ubmVjdGVkSAASPQoSZTJl", + "ZV9zdGF0ZV9jaGFuZ2VkGBkgASgLMh8ubGl2ZWtpdC5wcm90by5FMmVlU3Rh", + "dGVDaGFuZ2VkSAASJQoDZW9zGBogASgLMhYubGl2ZWtpdC5wcm90by5Sb29t", + "RU9TSAASQQoUZGF0YV9wYWNrZXRfcmVjZWl2ZWQYGyABKAsyIS5saXZla2l0", + "LnByb3RvLkRhdGFQYWNrZXRSZWNlaXZlZEgAEkYKFnRyYW5zY3JpcHRpb25f", + "cmVjZWl2ZWQYHCABKAsyJC5saXZla2l0LnByb3RvLlRyYW5zY3JpcHRpb25S", + "ZWNlaXZlZEgAEjoKDGNoYXRfbWVzc2FnZRgdIAEoCzIiLmxpdmVraXQucHJv", + "dG8uQ2hhdE1lc3NhZ2VSZWNlaXZlZEgAEkkKFnN0cmVhbV9oZWFkZXJfcmVj", + "ZWl2ZWQYHiABKAsyJy5saXZla2l0LnByb3RvLkRhdGFTdHJlYW1IZWFkZXJS", + "ZWNlaXZlZEgAEkcKFXN0cmVhbV9jaHVua19yZWNlaXZlZBgfIAEoCzImLmxp", + "dmVraXQucHJvdG8uRGF0YVN0cmVhbUNodW5rUmVjZWl2ZWRIABJLChdzdHJl", + "YW1fdHJhaWxlcl9yZWNlaXZlZBggIAEoCzIoLmxpdmVraXQucHJvdG8uRGF0", + "YVN0cmVhbVRyYWlsZXJSZWNlaXZlZEgAEmkKImRhdGFfY2hhbm5lbF9sb3df", + "dGhyZXNob2xkX2NoYW5nZWQYISABKAsyOy5saXZla2l0LnByb3RvLkRhdGFD", + "aGFubmVsQnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGRDaGFuZ2VkSAASPQoS", + "Ynl0ZV9zdHJlYW1fb3BlbmVkGCIgASgLMh8ubGl2ZWtpdC5wcm90by5CeXRl", + "U3RyZWFtT3BlbmVkSAASPQoSdGV4dF9zdHJlYW1fb3BlbmVkGCMgASgLMh8u", + "bGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtT3BlbmVkSAASLwoMcm9vbV91cGRh", + "dGVkGCQgASgLMhcubGl2ZWtpdC5wcm90by5Sb29tSW5mb0gAEigKBW1vdmVk", + "GCUgASgLMhcubGl2ZWtpdC5wcm90by5Sb29tSW5mb0gAEkIKFHBhcnRpY2lw", + "YW50c191cGRhdGVkGCYgASgLMiIubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFu", + "dHNVcGRhdGVkSAASYgolcGFydGljaXBhbnRfZW5jcnlwdGlvbl9zdGF0dXNf", + "Y2hhbmdlZBgnIAEoCzIxLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRFbmNy", + "eXB0aW9uU3RhdHVzQ2hhbmdlZEgAElUKHnBhcnRpY2lwYW50X3Blcm1pc3Np", + "b25fY2hhbmdlZBgpIAEoCzIrLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRQ", + "ZXJtaXNzaW9uQ2hhbmdlZEgAEjgKD3Rva2VuX3JlZnJlc2hlZBgoIAEoCzId", + "LmxpdmVraXQucHJvdG8uVG9rZW5SZWZyZXNoZWRIABJOChtyZW1vdGVfZGF0", + "YV90cmFja19wdWJsaXNoZWQYKiABKAsyJy5saXZla2l0LnByb3RvLlJlbW90", + "ZURhdGFUcmFja1B1Ymxpc2hlZEgAQgkKB21lc3NhZ2UiyQIKCFJvb21JbmZv", + "EgsKA3NpZBgBIAEoCRIMCgRuYW1lGAIgAigJEhAKCG1ldGFkYXRhGAMgAigJ", + "Ei4KJmxvc3N5X2RjX2J1ZmZlcmVkX2Ftb3VudF9sb3dfdGhyZXNob2xkGAQg", + "AigEEjEKKXJlbGlhYmxlX2RjX2J1ZmZlcmVkX2Ftb3VudF9sb3dfdGhyZXNo", + "b2xkGAUgAigEEhUKDWVtcHR5X3RpbWVvdXQYBiACKA0SGQoRZGVwYXJ0dXJl", + "X3RpbWVvdXQYByACKA0SGAoQbWF4X3BhcnRpY2lwYW50cxgIIAIoDRIVCg1j", + "cmVhdGlvbl90aW1lGAkgAigDEhgKEG51bV9wYXJ0aWNpcGFudHMYCiACKA0S", + "FgoObnVtX3B1Ymxpc2hlcnMYCyACKA0SGAoQYWN0aXZlX3JlY29yZGluZxgM", + "IAIoCCJhCglPd25lZFJvb20SLQoGaGFuZGxlGAEgAigLMh0ubGl2ZWtpdC5w", + "cm90by5GZmlPd25lZEhhbmRsZRIlCgRpbmZvGAIgAigLMhcubGl2ZWtpdC5w", + "cm90by5Sb29tSW5mbyJLChNQYXJ0aWNpcGFudHNVcGRhdGVkEjQKDHBhcnRp", + "Y2lwYW50cxgBIAMoCzIeLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRJbmZv", + "IkUKFFBhcnRpY2lwYW50Q29ubmVjdGVkEi0KBGluZm8YASACKAsyHy5saXZl", + "a2l0LnByb3RvLk93bmVkUGFydGljaXBhbnQicwoXUGFydGljaXBhbnREaXNj", + "b25uZWN0ZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSOgoRZGlz", + "Y29ubmVjdF9yZWFzb24YAiACKA4yHy5saXZla2l0LnByb3RvLkRpc2Nvbm5l", + "Y3RSZWFzb24iKAoTTG9jYWxUcmFja1B1Ymxpc2hlZBIRCgl0cmFja19zaWQY", + "ASACKAkiMAoVTG9jYWxUcmFja1VucHVibGlzaGVkEhcKD3B1YmxpY2F0aW9u", + "X3NpZBgBIAIoCSIpChRMb2NhbFRyYWNrU3Vic2NyaWJlZBIRCgl0cmFja19z", + "aWQYAiACKAkiaQoOVHJhY2tQdWJsaXNoZWQSHAoUcGFydGljaXBhbnRfaWRl", + "bnRpdHkYASACKAkSOQoLcHVibGljYXRpb24YAiACKAsyJC5saXZla2l0LnBy", + "b3RvLk93bmVkVHJhY2tQdWJsaWNhdGlvbiJJChBUcmFja1VucHVibGlzaGVk", + "EhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEhcKD3B1YmxpY2F0aW9u", + "X3NpZBgCIAIoCSJZCg9UcmFja1N1YnNjcmliZWQSHAoUcGFydGljaXBhbnRf", + "aWRlbnRpdHkYASACKAkSKAoFdHJhY2sYAiACKAsyGS5saXZla2l0LnByb3Rv", + "Lk93bmVkVHJhY2siRAoRVHJhY2tVbnN1YnNjcmliZWQSHAoUcGFydGljaXBh", + "bnRfaWRlbnRpdHkYASACKAkSEQoJdHJhY2tfc2lkGAIgAigJIlkKF1RyYWNr", + "U3Vic2NyaXB0aW9uRmFpbGVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEg", + "AigJEhEKCXRyYWNrX3NpZBgCIAIoCRINCgVlcnJvchgDIAIoCSI9CgpUcmFj", + "a011dGVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEhEKCXRyYWNr", + "X3NpZBgCIAIoCSI/CgxUcmFja1VubXV0ZWQSHAoUcGFydGljaXBhbnRfaWRl", + "bnRpdHkYASACKAkSEQoJdHJhY2tfc2lkGAIgAigJIl8KEEUyZWVTdGF0ZUNo", + "YW5nZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSLQoFc3RhdGUY", + "AiACKA4yHi5saXZla2l0LnByb3RvLkVuY3J5cHRpb25TdGF0ZSI3ChVBY3Rp", + "dmVTcGVha2Vyc0NoYW5nZWQSHgoWcGFydGljaXBhbnRfaWRlbnRpdGllcxgB", + "IAMoCSInChNSb29tTWV0YWRhdGFDaGFuZ2VkEhAKCG1ldGFkYXRhGAEgAigJ", + "Ih0KDlJvb21TaWRDaGFuZ2VkEgsKA3NpZBgBIAIoCSJMChpQYXJ0aWNpcGFu", + "dE1ldGFkYXRhQ2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIo", + "CRIQCghtZXRhZGF0YRgCIAIoCSKsAQocUGFydGljaXBhbnRBdHRyaWJ1dGVz", + "Q2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIyCgphdHRy", + "aWJ1dGVzGAIgAygLMh4ubGl2ZWtpdC5wcm90by5BdHRyaWJ1dGVzRW50cnkS", + "OgoSY2hhbmdlZF9hdHRyaWJ1dGVzGAMgAygLMh4ubGl2ZWtpdC5wcm90by5B", + "dHRyaWJ1dGVzRW50cnkiWAoiUGFydGljaXBhbnRFbmNyeXB0aW9uU3RhdHVz", + "Q2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIUCgxpc19l", + "bmNyeXB0ZWQYAiACKAgiRAoWUGFydGljaXBhbnROYW1lQ2hhbmdlZBIcChRw", + "YXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIMCgRuYW1lGAIgAigJInYKHFBh", + "cnRpY2lwYW50UGVybWlzc2lvbkNoYW5nZWQSHAoUcGFydGljaXBhbnRfaWRl", + "bnRpdHkYASACKAkSOAoKcGVybWlzc2lvbhgCIAEoCzIkLmxpdmVraXQucHJv", + "dG8uUGFydGljaXBhbnRQZXJtaXNzaW9uImsKGENvbm5lY3Rpb25RdWFsaXR5", + "Q2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIxCgdxdWFs", + "aXR5GAIgAigOMiAubGl2ZWtpdC5wcm90by5Db25uZWN0aW9uUXVhbGl0eSJF", + "CgpVc2VyUGFja2V0EigKBGRhdGEYASACKAsyGi5saXZla2l0LnByb3RvLk93", + "bmVkQnVmZmVyEg0KBXRvcGljGAIgASgJInkKC0NoYXRNZXNzYWdlEgoKAmlk", + "GAEgAigJEhEKCXRpbWVzdGFtcBgCIAIoAxIPCgdtZXNzYWdlGAMgAigJEhYK", + "DmVkaXRfdGltZXN0YW1wGAQgASgDEg8KB2RlbGV0ZWQYBSABKAgSEQoJZ2Vu", + "ZXJhdGVkGAYgASgIImAKE0NoYXRNZXNzYWdlUmVjZWl2ZWQSKwoHbWVzc2Fn", + "ZRgBIAIoCzIaLmxpdmVraXQucHJvdG8uQ2hhdE1lc3NhZ2USHAoUcGFydGlj", + "aXBhbnRfaWRlbnRpdHkYAiACKAkiJgoHU2lwRFRNRhIMCgRjb2RlGAEgAigN", + "Eg0KBWRpZ2l0GAIgASgJIr8BChJEYXRhUGFja2V0UmVjZWl2ZWQSKwoEa2lu", + "ZBgBIAIoDjIdLmxpdmVraXQucHJvdG8uRGF0YVBhY2tldEtpbmQSHAoUcGFy", + "dGljaXBhbnRfaWRlbnRpdHkYAiACKAkSKQoEdXNlchgEIAEoCzIZLmxpdmVr", + "aXQucHJvdG8uVXNlclBhY2tldEgAEioKCHNpcF9kdG1mGAUgASgLMhYubGl2", + "ZWtpdC5wcm90by5TaXBEVE1GSABCBwoFdmFsdWUifwoVVHJhbnNjcmlwdGlv", + "blJlY2VpdmVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgASgJEhEKCXRy", + "YWNrX3NpZBgCIAEoCRI1CghzZWdtZW50cxgDIAMoCzIjLmxpdmVraXQucHJv", + "dG8uVHJhbnNjcmlwdGlvblNlZ21lbnQiRwoWQ29ubmVjdGlvblN0YXRlQ2hh", + "bmdlZBItCgVzdGF0ZRgBIAIoDjIeLmxpdmVraXQucHJvdG8uQ29ubmVjdGlv", + "blN0YXRlIgsKCUNvbm5lY3RlZCI/CgxEaXNjb25uZWN0ZWQSLwoGcmVhc29u", + "GAEgAigOMh8ubGl2ZWtpdC5wcm90by5EaXNjb25uZWN0UmVhc29uIg4KDFJl", + "Y29ubmVjdGluZyINCgtSZWNvbm5lY3RlZCIfCg5Ub2tlblJlZnJlc2hlZBIN", + "CgV0b2tlbhgBIAIoCSIJCgdSb29tRU9TIo4HCgpEYXRhU3RyZWFtGqoBCgpU", + "ZXh0SGVhZGVyEj8KDm9wZXJhdGlvbl90eXBlGAEgAigOMicubGl2ZWtpdC5w", + "cm90by5EYXRhU3RyZWFtLk9wZXJhdGlvblR5cGUSDwoHdmVyc2lvbhgCIAEo", + "BRIaChJyZXBseV90b19zdHJlYW1faWQYAyABKAkSGwoTYXR0YWNoZWRfc3Ry", + "ZWFtX2lkcxgEIAMoCRIRCglnZW5lcmF0ZWQYBSABKAgaGgoKQnl0ZUhlYWRl", + "chIMCgRuYW1lGAEgAigJGusCCgZIZWFkZXISEQoJc3RyZWFtX2lkGAEgAigJ", + "EhEKCXRpbWVzdGFtcBgCIAIoAxIRCgltaW1lX3R5cGUYAyACKAkSDQoFdG9w", + "aWMYBCACKAkSFAoMdG90YWxfbGVuZ3RoGAUgASgEEkQKCmF0dHJpYnV0ZXMY", + "BiADKAsyMC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uSGVhZGVyLkF0dHJp", + "YnV0ZXNFbnRyeRI7Cgt0ZXh0X2hlYWRlchgHIAEoCzIkLmxpdmVraXQucHJv", + "dG8uRGF0YVN0cmVhbS5UZXh0SGVhZGVySAASOwoLYnl0ZV9oZWFkZXIYCCAB", + "KAsyJC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uQnl0ZUhlYWRlckgAGjEK", + "D0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6", + "AjgBQhAKDmNvbnRlbnRfaGVhZGVyGl0KBUNodW5rEhEKCXN0cmVhbV9pZBgB", + "IAIoCRITCgtjaHVua19pbmRleBgCIAIoBBIPCgdjb250ZW50GAMgAigMEg8K", + "B3ZlcnNpb24YBCABKAUSCgoCaXYYBSABKAwapgEKB1RyYWlsZXISEQoJc3Ry", + "ZWFtX2lkGAEgAigJEg4KBnJlYXNvbhgCIAIoCRJFCgphdHRyaWJ1dGVzGAMg", + "AygLMjEubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFtLlRyYWlsZXIuQXR0cmli", + "dXRlc0VudHJ5GjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoF", + "dmFsdWUYAiABKAk6AjgBIkEKDU9wZXJhdGlvblR5cGUSCgoGQ1JFQVRFEAAS", + "CgoGVVBEQVRFEAESCgoGREVMRVRFEAISDAoIUkVBQ1RJT04QAyJqChhEYXRh", + "U3RyZWFtSGVhZGVyUmVjZWl2ZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkY", + "ASACKAkSMAoGaGVhZGVyGAIgAigLMiAubGl2ZWtpdC5wcm90by5EYXRhU3Ry", + "ZWFtLkhlYWRlciJnChdEYXRhU3RyZWFtQ2h1bmtSZWNlaXZlZBIcChRwYXJ0", + "aWNpcGFudF9pZGVudGl0eRgBIAIoCRIuCgVjaHVuaxgCIAIoCzIfLmxpdmVr", + "aXQucHJvdG8uRGF0YVN0cmVhbS5DaHVuayJtChlEYXRhU3RyZWFtVHJhaWxl", + "clJlY2VpdmVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEjIKB3Ry", + "YWlsZXIYAiACKAsyIS5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uVHJhaWxl", + "ciLAAQoXU2VuZFN0cmVhbUhlYWRlclJlcXVlc3QSIAoYbG9jYWxfcGFydGlj", + "aXBhbnRfaGFuZGxlGAEgAigEEjAKBmhlYWRlchgCIAIoCzIgLmxpdmVraXQu", + "cHJvdG8uRGF0YVN0cmVhbS5IZWFkZXISHgoWZGVzdGluYXRpb25faWRlbnRp", + "dGllcxgDIAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBCACKAkSGAoQcmVxdWVz", + "dF9hc3luY19pZBgFIAEoBCK9AQoWU2VuZFN0cmVhbUNodW5rUmVxdWVzdBIg", + "Chhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSLgoFY2h1bmsYAiAC", + "KAsyHy5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uQ2h1bmsSHgoWZGVzdGlu", + "YXRpb25faWRlbnRpdGllcxgDIAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBCAC", + "KAkSGAoQcmVxdWVzdF9hc3luY19pZBgFIAEoBCLDAQoYU2VuZFN0cmVhbVRy", + "YWlsZXJSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIo", + "BBIyCgd0cmFpbGVyGAIgAigLMiEubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFt", + "LlRyYWlsZXISHgoWZGVzdGluYXRpb25faWRlbnRpdGllcxgDIAMoCRIXCg9z", + "ZW5kZXJfaWRlbnRpdHkYBCACKAkSGAoQcmVxdWVzdF9hc3luY19pZBgFIAEo", + "BCIsChhTZW5kU3RyZWFtSGVhZGVyUmVzcG9uc2USEAoIYXN5bmNfaWQYASAC", + "KAQiKwoXU2VuZFN0cmVhbUNodW5rUmVzcG9uc2USEAoIYXN5bmNfaWQYASAC", + "KAQiLQoZU2VuZFN0cmVhbVRyYWlsZXJSZXNwb25zZRIQCghhc3luY19pZBgB", + "IAIoBCI7ChhTZW5kU3RyZWFtSGVhZGVyQ2FsbGJhY2sSEAoIYXN5bmNfaWQY", + "ASACKAQSDQoFZXJyb3IYAiABKAkiOgoXU2VuZFN0cmVhbUNodW5rQ2FsbGJh", + "Y2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAkiPAoZU2VuZFN0", + "cmVhbVRyYWlsZXJDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJv", + "chgCIAEoCSKTAQovU2V0RGF0YUNoYW5uZWxCdWZmZXJlZEFtb3VudExvd1Ro", + "cmVzaG9sZFJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEg", + "AigEEhEKCXRocmVzaG9sZBgCIAIoBBIrCgRraW5kGAMgAigOMh0ubGl2ZWtp", + "dC5wcm90by5EYXRhUGFja2V0S2luZCIyCjBTZXREYXRhQ2hhbm5lbEJ1ZmZl", + "cmVkQW1vdW50TG93VGhyZXNob2xkUmVzcG9uc2UibgosRGF0YUNoYW5uZWxC", + "dWZmZXJlZEFtb3VudExvd1RocmVzaG9sZENoYW5nZWQSKwoEa2luZBgBIAIo", + "DjIdLmxpdmVraXQucHJvdG8uRGF0YVBhY2tldEtpbmQSEQoJdGhyZXNob2xk", + "GAIgAigEImYKEEJ5dGVTdHJlYW1PcGVuZWQSNAoGcmVhZGVyGAEgAigLMiQu", + "bGl2ZWtpdC5wcm90by5Pd25lZEJ5dGVTdHJlYW1SZWFkZXISHAoUcGFydGlj", + "aXBhbnRfaWRlbnRpdHkYAiACKAkiZgoQVGV4dFN0cmVhbU9wZW5lZBI0CgZy", + "ZWFkZXIYASACKAsyJC5saXZla2l0LnByb3RvLk93bmVkVGV4dFN0cmVhbVJl", + "YWRlchIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgCIAIoCSJOChhSZW1vdGVE", + "YXRhVHJhY2tQdWJsaXNoZWQSMgoFdHJhY2sYASACKAsyIy5saXZla2l0LnBy", + "b3RvLk93bmVkUmVtb3RlRGF0YVRyYWNrKlAKEEljZVRyYW5zcG9ydFR5cGUS", + "EwoPVFJBTlNQT1JUX1JFTEFZEAASFAoQVFJBTlNQT1JUX05PSE9TVBABEhEK", + "DVRSQU5TUE9SVF9BTEwQAipDChhDb250aW51YWxHYXRoZXJpbmdQb2xpY3kS", + "DwoLR0FUSEVSX09OQ0UQABIWChJHQVRIRVJfQ09OVElOVUFMTFkQASpgChFD", + "b25uZWN0aW9uUXVhbGl0eRIQCgxRVUFMSVRZX1BPT1IQABIQCgxRVUFMSVRZ", + "X0dPT0QQARIVChFRVUFMSVRZX0VYQ0VMTEVOVBACEhAKDFFVQUxJVFlfTE9T", + "VBADKlMKD0Nvbm5lY3Rpb25TdGF0ZRIVChFDT05OX0RJU0NPTk5FQ1RFRBAA", + "EhIKDkNPTk5fQ09OTkVDVEVEEAESFQoRQ09OTl9SRUNPTk5FQ1RJTkcQAioz", + "Cg5EYXRhUGFja2V0S2luZBIOCgpLSU5EX0xPU1NZEAASEQoNS0lORF9SRUxJ", + "QUJMRRABQhCqAg1MaXZlS2l0LlByb3Rv")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.ParticipantReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, global::LiveKit.Proto.VideoFrameReflection.Descriptor, global::LiveKit.Proto.StatsReflection.Descriptor, global::LiveKit.Proto.DataStreamReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.ParticipantReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, global::LiveKit.Proto.VideoFrameReflection.Descriptor, global::LiveKit.Proto.StatsReflection.Descriptor, global::LiveKit.Proto.DataStreamReflection.Descriptor, global::LiveKit.Proto.DataTrackReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.IceTransportType), typeof(global::LiveKit.Proto.ContinualGatheringPolicy), typeof(global::LiveKit.Proto.ConnectionQuality), typeof(global::LiveKit.Proto.ConnectionState), typeof(global::LiveKit.Proto.DataPacketKind), }, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectRequest), global::LiveKit.Proto.ConnectRequest.Parser, new[]{ "Url", "Token", "Options" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectRequest), global::LiveKit.Proto.ConnectRequest.Parser, new[]{ "Url", "Token", "Options", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectResponse), global::LiveKit.Proto.ConnectResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectCallback), global::LiveKit.Proto.ConnectCallback.Parser, new[]{ "AsyncId", "Error", "Result" }, new[]{ "Message" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectCallback.Types.ParticipantWithTracks), global::LiveKit.Proto.ConnectCallback.Types.ParticipantWithTracks.Parser, new[]{ "Participant", "Publications" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectCallback.Types.Result), global::LiveKit.Proto.ConnectCallback.Types.Result.Parser, new[]{ "Room", "LocalParticipant", "Participants" }, null, null, null, null)}), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisconnectRequest), global::LiveKit.Proto.DisconnectRequest.Parser, new[]{ "RoomHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisconnectRequest), global::LiveKit.Proto.DisconnectRequest.Parser, new[]{ "RoomHandle", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisconnectResponse), global::LiveKit.Proto.DisconnectResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisconnectCallback), global::LiveKit.Proto.DisconnectCallback.Parser, new[]{ "AsyncId" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishTrackRequest), global::LiveKit.Proto.PublishTrackRequest.Parser, new[]{ "LocalParticipantHandle", "TrackHandle", "Options" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishTrackRequest), global::LiveKit.Proto.PublishTrackRequest.Parser, new[]{ "LocalParticipantHandle", "TrackHandle", "Options", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishTrackResponse), global::LiveKit.Proto.PublishTrackResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishTrackCallback), global::LiveKit.Proto.PublishTrackCallback.Parser, new[]{ "AsyncId", "Error", "Publication" }, new[]{ "Message" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.UnpublishTrackRequest), global::LiveKit.Proto.UnpublishTrackRequest.Parser, new[]{ "LocalParticipantHandle", "TrackSid", "StopOnUnpublish" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.UnpublishTrackRequest), global::LiveKit.Proto.UnpublishTrackRequest.Parser, new[]{ "LocalParticipantHandle", "TrackSid", "StopOnUnpublish", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.UnpublishTrackResponse), global::LiveKit.Proto.UnpublishTrackResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.UnpublishTrackCallback), global::LiveKit.Proto.UnpublishTrackCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishDataRequest), global::LiveKit.Proto.PublishDataRequest.Parser, new[]{ "LocalParticipantHandle", "DataPtr", "DataLen", "Reliable", "DestinationSids", "Topic", "DestinationIdentities" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishDataRequest), global::LiveKit.Proto.PublishDataRequest.Parser, new[]{ "LocalParticipantHandle", "DataPtr", "DataLen", "Reliable", "DestinationSids", "Topic", "DestinationIdentities", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishDataResponse), global::LiveKit.Proto.PublishDataResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishDataCallback), global::LiveKit.Proto.PublishDataCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishTranscriptionRequest), global::LiveKit.Proto.PublishTranscriptionRequest.Parser, new[]{ "LocalParticipantHandle", "ParticipantIdentity", "TrackId", "Segments" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishTranscriptionRequest), global::LiveKit.Proto.PublishTranscriptionRequest.Parser, new[]{ "LocalParticipantHandle", "ParticipantIdentity", "TrackId", "Segments", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishTranscriptionResponse), global::LiveKit.Proto.PublishTranscriptionResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishTranscriptionCallback), global::LiveKit.Proto.PublishTranscriptionCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishSipDtmfRequest), global::LiveKit.Proto.PublishSipDtmfRequest.Parser, new[]{ "LocalParticipantHandle", "Code", "Digit", "DestinationIdentities" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishSipDtmfRequest), global::LiveKit.Proto.PublishSipDtmfRequest.Parser, new[]{ "LocalParticipantHandle", "Code", "Digit", "DestinationIdentities", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishSipDtmfResponse), global::LiveKit.Proto.PublishSipDtmfResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishSipDtmfCallback), global::LiveKit.Proto.PublishSipDtmfCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetLocalMetadataRequest), global::LiveKit.Proto.SetLocalMetadataRequest.Parser, new[]{ "LocalParticipantHandle", "Metadata" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetLocalMetadataRequest), global::LiveKit.Proto.SetLocalMetadataRequest.Parser, new[]{ "LocalParticipantHandle", "Metadata", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetLocalMetadataResponse), global::LiveKit.Proto.SetLocalMetadataResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetLocalMetadataCallback), global::LiveKit.Proto.SetLocalMetadataCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendChatMessageRequest), global::LiveKit.Proto.SendChatMessageRequest.Parser, new[]{ "LocalParticipantHandle", "Message", "DestinationIdentities", "SenderIdentity" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.EditChatMessageRequest), global::LiveKit.Proto.EditChatMessageRequest.Parser, new[]{ "LocalParticipantHandle", "EditText", "OriginalMessage", "DestinationIdentities", "SenderIdentity" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendChatMessageRequest), global::LiveKit.Proto.SendChatMessageRequest.Parser, new[]{ "LocalParticipantHandle", "Message", "DestinationIdentities", "SenderIdentity", "RequestAsyncId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.EditChatMessageRequest), global::LiveKit.Proto.EditChatMessageRequest.Parser, new[]{ "LocalParticipantHandle", "EditText", "OriginalMessage", "DestinationIdentities", "SenderIdentity", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendChatMessageResponse), global::LiveKit.Proto.SendChatMessageResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendChatMessageCallback), global::LiveKit.Proto.SendChatMessageCallback.Parser, new[]{ "AsyncId", "Error", "ChatMessage" }, new[]{ "Message" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetLocalAttributesRequest), global::LiveKit.Proto.SetLocalAttributesRequest.Parser, new[]{ "LocalParticipantHandle", "Attributes" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetLocalAttributesRequest), global::LiveKit.Proto.SetLocalAttributesRequest.Parser, new[]{ "LocalParticipantHandle", "Attributes", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AttributesEntry), global::LiveKit.Proto.AttributesEntry.Parser, new[]{ "Key", "Value" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetLocalAttributesResponse), global::LiveKit.Proto.SetLocalAttributesResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetLocalAttributesCallback), global::LiveKit.Proto.SetLocalAttributesCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetLocalNameRequest), global::LiveKit.Proto.SetLocalNameRequest.Parser, new[]{ "LocalParticipantHandle", "Name" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetLocalNameRequest), global::LiveKit.Proto.SetLocalNameRequest.Parser, new[]{ "LocalParticipantHandle", "Name", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetLocalNameResponse), global::LiveKit.Proto.SetLocalNameResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetLocalNameCallback), global::LiveKit.Proto.SetLocalNameCallback.Parser, new[]{ "AsyncId", "Error" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetSubscribedRequest), global::LiveKit.Proto.SetSubscribedRequest.Parser, new[]{ "Subscribe", "PublicationHandle" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetSubscribedResponse), global::LiveKit.Proto.SetSubscribedResponse.Parser, null, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetSessionStatsRequest), global::LiveKit.Proto.GetSessionStatsRequest.Parser, new[]{ "RoomHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetSessionStatsRequest), global::LiveKit.Proto.GetSessionStatsRequest.Parser, new[]{ "RoomHandle", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetSessionStatsResponse), global::LiveKit.Proto.GetSessionStatsResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetSessionStatsCallback), global::LiveKit.Proto.GetSessionStatsCallback.Parser, new[]{ "AsyncId", "Error", "Result" }, new[]{ "Message" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetSessionStatsCallback.Types.Result), global::LiveKit.Proto.GetSessionStatsCallback.Types.Result.Parser, new[]{ "PublisherStats", "SubscriberStats" }, null, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoEncoding), global::LiveKit.Proto.VideoEncoding.Parser, new[]{ "MaxBitrate", "MaxFramerate" }, null, null, null, null), @@ -377,7 +397,7 @@ static RoomReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TranscriptionSegment), global::LiveKit.Proto.TranscriptionSegment.Parser, new[]{ "Id", "Text", "StartTime", "EndTime", "Final", "Language" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.BufferInfo), global::LiveKit.Proto.BufferInfo.Parser, new[]{ "DataPtr", "DataLen" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedBuffer), global::LiveKit.Proto.OwnedBuffer.Parser, new[]{ "Handle", "Data" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomEvent), global::LiveKit.Proto.RoomEvent.Parser, new[]{ "RoomHandle", "ParticipantConnected", "ParticipantDisconnected", "LocalTrackPublished", "LocalTrackUnpublished", "LocalTrackSubscribed", "TrackPublished", "TrackUnpublished", "TrackSubscribed", "TrackUnsubscribed", "TrackSubscriptionFailed", "TrackMuted", "TrackUnmuted", "ActiveSpeakersChanged", "RoomMetadataChanged", "RoomSidChanged", "ParticipantMetadataChanged", "ParticipantNameChanged", "ParticipantAttributesChanged", "ParticipantEncryptionStatusChanged", "ConnectionQualityChanged", "ConnectionStateChanged", "Disconnected", "Reconnecting", "Reconnected", "E2EeStateChanged", "Eos", "DataPacketReceived", "TranscriptionReceived", "ChatMessage", "StreamHeaderReceived", "StreamChunkReceived", "StreamTrailerReceived", "DataChannelLowThresholdChanged", "ByteStreamOpened", "TextStreamOpened", "RoomUpdated", "Moved", "ParticipantsUpdated" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomEvent), global::LiveKit.Proto.RoomEvent.Parser, new[]{ "RoomHandle", "ParticipantConnected", "ParticipantDisconnected", "LocalTrackPublished", "LocalTrackUnpublished", "LocalTrackSubscribed", "TrackPublished", "TrackUnpublished", "TrackSubscribed", "TrackUnsubscribed", "TrackSubscriptionFailed", "TrackMuted", "TrackUnmuted", "ActiveSpeakersChanged", "RoomMetadataChanged", "RoomSidChanged", "ParticipantMetadataChanged", "ParticipantNameChanged", "ParticipantAttributesChanged", "ConnectionQualityChanged", "ConnectionStateChanged", "Disconnected", "Reconnecting", "Reconnected", "E2EeStateChanged", "Eos", "DataPacketReceived", "TranscriptionReceived", "ChatMessage", "StreamHeaderReceived", "StreamChunkReceived", "StreamTrailerReceived", "DataChannelLowThresholdChanged", "ByteStreamOpened", "TextStreamOpened", "RoomUpdated", "Moved", "ParticipantsUpdated", "ParticipantEncryptionStatusChanged", "ParticipantPermissionChanged", "TokenRefreshed", "RemoteDataTrackPublished" }, new[]{ "Message" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomInfo), global::LiveKit.Proto.RoomInfo.Parser, new[]{ "Sid", "Name", "Metadata", "LossyDcBufferedAmountLowThreshold", "ReliableDcBufferedAmountLowThreshold", "EmptyTimeout", "DepartureTimeout", "MaxParticipants", "CreationTime", "NumParticipants", "NumPublishers", "ActiveRecording" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedRoom), global::LiveKit.Proto.OwnedRoom.Parser, new[]{ "Handle", "Info" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ParticipantsUpdated), global::LiveKit.Proto.ParticipantsUpdated.Parser, new[]{ "Participants" }, null, null, null, null), @@ -401,6 +421,7 @@ static RoomReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ParticipantAttributesChanged), global::LiveKit.Proto.ParticipantAttributesChanged.Parser, new[]{ "ParticipantIdentity", "Attributes", "ChangedAttributes" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ParticipantEncryptionStatusChanged), global::LiveKit.Proto.ParticipantEncryptionStatusChanged.Parser, new[]{ "ParticipantIdentity", "IsEncrypted" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ParticipantNameChanged), global::LiveKit.Proto.ParticipantNameChanged.Parser, new[]{ "ParticipantIdentity", "Name" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ParticipantPermissionChanged), global::LiveKit.Proto.ParticipantPermissionChanged.Parser, new[]{ "ParticipantIdentity", "Permission" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectionQualityChanged), global::LiveKit.Proto.ConnectionQualityChanged.Parser, new[]{ "ParticipantIdentity", "Quality" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.UserPacket), global::LiveKit.Proto.UserPacket.Parser, new[]{ "Data", "Topic" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ChatMessage), global::LiveKit.Proto.ChatMessage.Parser, new[]{ "Id", "Timestamp", "Message", "EditTimestamp", "Deleted", "Generated" }, null, null, null, null), @@ -413,6 +434,7 @@ static RoomReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.Disconnected), global::LiveKit.Proto.Disconnected.Parser, new[]{ "Reason" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.Reconnecting), global::LiveKit.Proto.Reconnecting.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.Reconnected), global::LiveKit.Proto.Reconnected.Parser, null, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TokenRefreshed), global::LiveKit.Proto.TokenRefreshed.Parser, new[]{ "Token" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomEOS), global::LiveKit.Proto.RoomEOS.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataStream), global::LiveKit.Proto.DataStream.Parser, null, null, new[]{ typeof(global::LiveKit.Proto.DataStream.Types.OperationType) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataStream.Types.TextHeader), global::LiveKit.Proto.DataStream.Types.TextHeader.Parser, new[]{ "OperationType", "Version", "ReplyToStreamId", "AttachedStreamIds", "Generated" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataStream.Types.ByteHeader), global::LiveKit.Proto.DataStream.Types.ByteHeader.Parser, new[]{ "Name" }, null, null, null, null), @@ -422,9 +444,9 @@ static RoomReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataStreamHeaderReceived), global::LiveKit.Proto.DataStreamHeaderReceived.Parser, new[]{ "ParticipantIdentity", "Header" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataStreamChunkReceived), global::LiveKit.Proto.DataStreamChunkReceived.Parser, new[]{ "ParticipantIdentity", "Chunk" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataStreamTrailerReceived), global::LiveKit.Proto.DataStreamTrailerReceived.Parser, new[]{ "ParticipantIdentity", "Trailer" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendStreamHeaderRequest), global::LiveKit.Proto.SendStreamHeaderRequest.Parser, new[]{ "LocalParticipantHandle", "Header", "DestinationIdentities", "SenderIdentity" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendStreamChunkRequest), global::LiveKit.Proto.SendStreamChunkRequest.Parser, new[]{ "LocalParticipantHandle", "Chunk", "DestinationIdentities", "SenderIdentity" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendStreamTrailerRequest), global::LiveKit.Proto.SendStreamTrailerRequest.Parser, new[]{ "LocalParticipantHandle", "Trailer", "DestinationIdentities", "SenderIdentity" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendStreamHeaderRequest), global::LiveKit.Proto.SendStreamHeaderRequest.Parser, new[]{ "LocalParticipantHandle", "Header", "DestinationIdentities", "SenderIdentity", "RequestAsyncId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendStreamChunkRequest), global::LiveKit.Proto.SendStreamChunkRequest.Parser, new[]{ "LocalParticipantHandle", "Chunk", "DestinationIdentities", "SenderIdentity", "RequestAsyncId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendStreamTrailerRequest), global::LiveKit.Proto.SendStreamTrailerRequest.Parser, new[]{ "LocalParticipantHandle", "Trailer", "DestinationIdentities", "SenderIdentity", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendStreamHeaderResponse), global::LiveKit.Proto.SendStreamHeaderResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendStreamChunkResponse), global::LiveKit.Proto.SendStreamChunkResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SendStreamTrailerResponse), global::LiveKit.Proto.SendStreamTrailerResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), @@ -435,7 +457,8 @@ static RoomReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetDataChannelBufferedAmountLowThresholdResponse), global::LiveKit.Proto.SetDataChannelBufferedAmountLowThresholdResponse.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataChannelBufferedAmountLowThresholdChanged), global::LiveKit.Proto.DataChannelBufferedAmountLowThresholdChanged.Parser, new[]{ "Kind", "Threshold" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamOpened), global::LiveKit.Proto.ByteStreamOpened.Parser, new[]{ "Reader", "ParticipantIdentity" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamOpened), global::LiveKit.Proto.TextStreamOpened.Parser, new[]{ "Reader", "ParticipantIdentity" }, null, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamOpened), global::LiveKit.Proto.TextStreamOpened.Parser, new[]{ "Reader", "ParticipantIdentity" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RemoteDataTrackPublished), global::LiveKit.Proto.RemoteDataTrackPublished.Parser, new[]{ "Track" }, null, null, null, null) })); } #endregion @@ -485,6 +508,7 @@ public sealed partial class ConnectRequest : pb::IMessage { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ConnectRequest()); private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pb::MessageParser Parser { get { return _parser; } } @@ -512,9 +536,11 @@ public ConnectRequest() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public ConnectRequest(ConnectRequest other) : this() { + _hasBits0 = other._hasBits0; url_ = other.url_; token_ = other.token_; options_ = other.options_ != null ? other.options_.Clone() : null; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -588,6 +614,33 @@ public void ClearToken() { } } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 4; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 1) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 1; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~1; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -606,6 +659,7 @@ public bool Equals(ConnectRequest other) { if (Url != other.Url) return false; if (Token != other.Token) return false; if (!object.Equals(Options, other.Options)) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -616,6 +670,7 @@ public override int GetHashCode() { if (HasUrl) hash ^= Url.GetHashCode(); if (HasToken) hash ^= Token.GetHashCode(); if (options_ != null) hash ^= Options.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -646,6 +701,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(26); output.WriteMessage(Options); } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -668,6 +727,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(26); output.WriteMessage(Options); } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -687,6 +750,9 @@ public int CalculateSize() { if (options_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -711,6 +777,9 @@ public void MergeFrom(ConnectRequest other) { } Options.MergeFrom(other.Options); } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -745,6 +814,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Options); break; } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -779,6 +852,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Options); break; } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -1915,6 +1992,7 @@ public DisconnectRequest() { public DisconnectRequest(DisconnectRequest other) : this() { _hasBits0 = other._hasBits0; roomHandle_ = other.roomHandle_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -1951,6 +2029,33 @@ public void ClearRoomHandle() { _hasBits0 &= ~1; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 2; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -1967,6 +2072,7 @@ public bool Equals(DisconnectRequest other) { return true; } if (RoomHandle != other.RoomHandle) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1975,6 +2081,7 @@ public bool Equals(DisconnectRequest other) { public override int GetHashCode() { int hash = 1; if (HasRoomHandle) hash ^= RoomHandle.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1997,6 +2104,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(RoomHandle); } + if (HasRequestAsyncId) { + output.WriteRawTag(16); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2011,6 +2122,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(RoomHandle); } + if (HasRequestAsyncId) { + output.WriteRawTag(16); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2024,6 +2139,9 @@ public int CalculateSize() { if (HasRoomHandle) { size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RoomHandle); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2039,6 +2157,9 @@ public void MergeFrom(DisconnectRequest other) { if (other.HasRoomHandle) { RoomHandle = other.RoomHandle; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -2062,6 +2183,10 @@ public void MergeFrom(pb::CodedInputStream input) { RoomHandle = input.ReadUInt64(); break; } + case 16: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -2085,6 +2210,10 @@ public void MergeFrom(pb::CodedInputStream input) { RoomHandle = input.ReadUInt64(); break; } + case 16: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -2565,6 +2694,7 @@ public PublishTrackRequest(PublishTrackRequest other) : this() { localParticipantHandle_ = other.localParticipantHandle_; trackHandle_ = other.trackHandle_; options_ = other.options_ != null ? other.options_.Clone() : null; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -2640,6 +2770,33 @@ public void ClearTrackHandle() { } } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 4; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 4) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 4; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 4) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~4; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -2658,6 +2815,7 @@ public bool Equals(PublishTrackRequest other) { if (LocalParticipantHandle != other.LocalParticipantHandle) return false; if (TrackHandle != other.TrackHandle) return false; if (!object.Equals(Options, other.Options)) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2668,6 +2826,7 @@ public override int GetHashCode() { if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); if (HasTrackHandle) hash ^= TrackHandle.GetHashCode(); if (options_ != null) hash ^= Options.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -2698,6 +2857,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(26); output.WriteMessage(Options); } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2720,6 +2883,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(26); output.WriteMessage(Options); } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2739,6 +2906,9 @@ public int CalculateSize() { if (options_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2763,6 +2933,9 @@ public void MergeFrom(PublishTrackRequest other) { } Options.MergeFrom(other.Options); } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -2797,6 +2970,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Options); break; } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -2831,6 +3008,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Options); break; } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -3445,6 +3626,7 @@ public UnpublishTrackRequest(UnpublishTrackRequest other) : this() { localParticipantHandle_ = other.localParticipantHandle_; trackSid_ = other.trackSid_; stopOnUnpublish_ = other.stopOnUnpublish_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -3534,6 +3716,33 @@ public void ClearStopOnUnpublish() { _hasBits0 &= ~2; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 4; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 4) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 4; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 4) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~4; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -3552,6 +3761,7 @@ public bool Equals(UnpublishTrackRequest other) { if (LocalParticipantHandle != other.LocalParticipantHandle) return false; if (TrackSid != other.TrackSid) return false; if (StopOnUnpublish != other.StopOnUnpublish) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -3562,6 +3772,7 @@ public override int GetHashCode() { if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); if (HasTrackSid) hash ^= TrackSid.GetHashCode(); if (HasStopOnUnpublish) hash ^= StopOnUnpublish.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3592,6 +3803,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(24); output.WriteBool(StopOnUnpublish); } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3614,6 +3829,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(24); output.WriteBool(StopOnUnpublish); } + if (HasRequestAsyncId) { + output.WriteRawTag(32); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -3633,6 +3852,9 @@ public int CalculateSize() { if (HasStopOnUnpublish) { size += 1 + 1; } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3654,6 +3876,9 @@ public void MergeFrom(UnpublishTrackRequest other) { if (other.HasStopOnUnpublish) { StopOnUnpublish = other.StopOnUnpublish; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3685,6 +3910,10 @@ public void MergeFrom(pb::CodedInputStream input) { StopOnUnpublish = input.ReadBool(); break; } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -3716,6 +3945,10 @@ public void MergeFrom(pb::CodedInputStream input) { StopOnUnpublish = input.ReadBool(); break; } + case 32: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -4251,6 +4484,7 @@ public PublishDataRequest(PublishDataRequest other) : this() { destinationSids_ = other.destinationSids_.Clone(); topic_ = other.topic_; destinationIdentities_ = other.destinationIdentities_.Clone(); + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -4417,6 +4651,33 @@ public void ClearTopic() { get { return destinationIdentities_; } } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 8; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 16) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 16; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 16) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~16; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -4439,6 +4700,7 @@ public bool Equals(PublishDataRequest other) { if(!destinationSids_.Equals(other.destinationSids_)) return false; if (Topic != other.Topic) return false; if(!destinationIdentities_.Equals(other.destinationIdentities_)) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -4453,6 +4715,7 @@ public override int GetHashCode() { hash ^= destinationSids_.GetHashCode(); if (HasTopic) hash ^= Topic.GetHashCode(); hash ^= destinationIdentities_.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -4493,6 +4756,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteString(Topic); } destinationIdentities_.WriteTo(output, _repeated_destinationIdentities_codec); + if (HasRequestAsyncId) { + output.WriteRawTag(64); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -4525,6 +4792,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteString(Topic); } destinationIdentities_.WriteTo(ref output, _repeated_destinationIdentities_codec); + if (HasRequestAsyncId) { + output.WriteRawTag(64); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -4552,6 +4823,9 @@ public int CalculateSize() { size += 1 + pb::CodedOutputStream.ComputeStringSize(Topic); } size += destinationIdentities_.CalculateSize(_repeated_destinationIdentities_codec); + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -4581,6 +4855,9 @@ public void MergeFrom(PublishDataRequest other) { Topic = other.Topic; } destinationIdentities_.Add(other.destinationIdentities_); + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -4628,6 +4905,10 @@ public void MergeFrom(pb::CodedInputStream input) { destinationIdentities_.AddEntriesFrom(input, _repeated_destinationIdentities_codec); break; } + case 64: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -4675,6 +4956,10 @@ public void MergeFrom(pb::CodedInputStream input) { destinationIdentities_.AddEntriesFrom(ref input, _repeated_destinationIdentities_codec); break; } + case 64: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -5207,6 +5492,7 @@ public PublishTranscriptionRequest(PublishTranscriptionRequest other) : this() { participantIdentity_ = other.participantIdentity_; trackId_ = other.trackId_; segments_ = other.segments_.Clone(); + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -5306,6 +5592,33 @@ public void ClearTrackId() { get { return segments_; } } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 5; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -5325,6 +5638,7 @@ public bool Equals(PublishTranscriptionRequest other) { if (ParticipantIdentity != other.ParticipantIdentity) return false; if (TrackId != other.TrackId) return false; if(!segments_.Equals(other.segments_)) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5336,6 +5650,7 @@ public override int GetHashCode() { if (HasParticipantIdentity) hash ^= ParticipantIdentity.GetHashCode(); if (HasTrackId) hash ^= TrackId.GetHashCode(); hash ^= segments_.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -5367,6 +5682,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteString(TrackId); } segments_.WriteTo(output, _repeated_segments_codec); + if (HasRequestAsyncId) { + output.WriteRawTag(40); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -5390,6 +5709,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteString(TrackId); } segments_.WriteTo(ref output, _repeated_segments_codec); + if (HasRequestAsyncId) { + output.WriteRawTag(40); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -5410,6 +5733,9 @@ public int CalculateSize() { size += 1 + pb::CodedOutputStream.ComputeStringSize(TrackId); } size += segments_.CalculateSize(_repeated_segments_codec); + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -5432,6 +5758,9 @@ public void MergeFrom(PublishTranscriptionRequest other) { TrackId = other.TrackId; } segments_.Add(other.segments_); + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -5467,6 +5796,10 @@ public void MergeFrom(pb::CodedInputStream input) { segments_.AddEntriesFrom(input, _repeated_segments_codec); break; } + case 40: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -5502,6 +5835,10 @@ public void MergeFrom(pb::CodedInputStream input) { segments_.AddEntriesFrom(ref input, _repeated_segments_codec); break; } + case 40: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -6034,6 +6371,7 @@ public PublishSipDtmfRequest(PublishSipDtmfRequest other) : this() { code_ = other.code_; digit_ = other.digit_; destinationIdentities_ = other.destinationIdentities_.Clone(); + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -6134,6 +6472,33 @@ public void ClearDigit() { get { return destinationIdentities_; } } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 5; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 4) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 4; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 4) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~4; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -6153,6 +6518,7 @@ public bool Equals(PublishSipDtmfRequest other) { if (Code != other.Code) return false; if (Digit != other.Digit) return false; if(!destinationIdentities_.Equals(other.destinationIdentities_)) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -6164,6 +6530,7 @@ public override int GetHashCode() { if (HasCode) hash ^= Code.GetHashCode(); if (HasDigit) hash ^= Digit.GetHashCode(); hash ^= destinationIdentities_.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -6195,6 +6562,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteString(Digit); } destinationIdentities_.WriteTo(output, _repeated_destinationIdentities_codec); + if (HasRequestAsyncId) { + output.WriteRawTag(40); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -6218,6 +6589,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteString(Digit); } destinationIdentities_.WriteTo(ref output, _repeated_destinationIdentities_codec); + if (HasRequestAsyncId) { + output.WriteRawTag(40); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -6238,6 +6613,9 @@ public int CalculateSize() { size += 1 + pb::CodedOutputStream.ComputeStringSize(Digit); } size += destinationIdentities_.CalculateSize(_repeated_destinationIdentities_codec); + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -6260,6 +6638,9 @@ public void MergeFrom(PublishSipDtmfRequest other) { Digit = other.Digit; } destinationIdentities_.Add(other.destinationIdentities_); + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -6295,6 +6676,10 @@ public void MergeFrom(pb::CodedInputStream input) { destinationIdentities_.AddEntriesFrom(input, _repeated_destinationIdentities_codec); break; } + case 40: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -6330,6 +6715,10 @@ public void MergeFrom(pb::CodedInputStream input) { destinationIdentities_.AddEntriesFrom(ref input, _repeated_destinationIdentities_codec); break; } + case 40: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -6860,6 +7249,7 @@ public SetLocalMetadataRequest(SetLocalMetadataRequest other) : this() { _hasBits0 = other._hasBits0; localParticipantHandle_ = other.localParticipantHandle_; metadata_ = other.metadata_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -6922,6 +7312,33 @@ public void ClearMetadata() { metadata_ = null; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 3; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -6939,6 +7356,7 @@ public bool Equals(SetLocalMetadataRequest other) { } if (LocalParticipantHandle != other.LocalParticipantHandle) return false; if (Metadata != other.Metadata) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -6948,6 +7366,7 @@ public override int GetHashCode() { int hash = 1; if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); if (HasMetadata) hash ^= Metadata.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -6974,6 +7393,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Metadata); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -6992,6 +7415,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Metadata); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7008,6 +7435,9 @@ public int CalculateSize() { if (HasMetadata) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Metadata); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7026,6 +7456,9 @@ public void MergeFrom(SetLocalMetadataRequest other) { if (other.HasMetadata) { Metadata = other.Metadata; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -7053,6 +7486,10 @@ public void MergeFrom(pb::CodedInputStream input) { Metadata = input.ReadString(); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -7080,6 +7517,10 @@ public void MergeFrom(pb::CodedInputStream input) { Metadata = input.ReadString(); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -7609,6 +8050,7 @@ public SendChatMessageRequest(SendChatMessageRequest other) : this() { message_ = other.message_; destinationIdentities_ = other.destinationIdentities_.Clone(); senderIdentity_ = other.senderIdentity_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -7708,6 +8150,33 @@ public void ClearSenderIdentity() { senderIdentity_ = null; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 5; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -7727,6 +8196,7 @@ public bool Equals(SendChatMessageRequest other) { if (Message != other.Message) return false; if(!destinationIdentities_.Equals(other.destinationIdentities_)) return false; if (SenderIdentity != other.SenderIdentity) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -7738,6 +8208,7 @@ public override int GetHashCode() { if (HasMessage) hash ^= Message.GetHashCode(); hash ^= destinationIdentities_.GetHashCode(); if (HasSenderIdentity) hash ^= SenderIdentity.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -7769,6 +8240,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteString(SenderIdentity); } + if (HasRequestAsyncId) { + output.WriteRawTag(40); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -7792,6 +8267,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteString(SenderIdentity); } + if (HasRequestAsyncId) { + output.WriteRawTag(40); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -7812,6 +8291,9 @@ public int CalculateSize() { if (HasSenderIdentity) { size += 1 + pb::CodedOutputStream.ComputeStringSize(SenderIdentity); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7834,6 +8316,9 @@ public void MergeFrom(SendChatMessageRequest other) { if (other.HasSenderIdentity) { SenderIdentity = other.SenderIdentity; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -7869,6 +8354,10 @@ public void MergeFrom(pb::CodedInputStream input) { SenderIdentity = input.ReadString(); break; } + case 40: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -7904,6 +8393,10 @@ public void MergeFrom(pb::CodedInputStream input) { SenderIdentity = input.ReadString(); break; } + case 40: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -7953,6 +8446,7 @@ public EditChatMessageRequest(EditChatMessageRequest other) : this() { originalMessage_ = other.originalMessage_ != null ? other.originalMessage_.Clone() : null; destinationIdentities_ = other.destinationIdentities_.Clone(); senderIdentity_ = other.senderIdentity_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -8064,6 +8558,33 @@ public void ClearSenderIdentity() { senderIdentity_ = null; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 6; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -8084,6 +8605,7 @@ public bool Equals(EditChatMessageRequest other) { if (!object.Equals(OriginalMessage, other.OriginalMessage)) return false; if(!destinationIdentities_.Equals(other.destinationIdentities_)) return false; if (SenderIdentity != other.SenderIdentity) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -8096,6 +8618,7 @@ public override int GetHashCode() { if (originalMessage_ != null) hash ^= OriginalMessage.GetHashCode(); hash ^= destinationIdentities_.GetHashCode(); if (HasSenderIdentity) hash ^= SenderIdentity.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -8131,6 +8654,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(42); output.WriteString(SenderIdentity); } + if (HasRequestAsyncId) { + output.WriteRawTag(48); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -8158,6 +8685,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(42); output.WriteString(SenderIdentity); } + if (HasRequestAsyncId) { + output.WriteRawTag(48); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -8181,6 +8712,9 @@ public int CalculateSize() { if (HasSenderIdentity) { size += 1 + pb::CodedOutputStream.ComputeStringSize(SenderIdentity); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -8209,6 +8743,9 @@ public void MergeFrom(EditChatMessageRequest other) { if (other.HasSenderIdentity) { SenderIdentity = other.SenderIdentity; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -8251,6 +8788,10 @@ public void MergeFrom(pb::CodedInputStream input) { SenderIdentity = input.ReadString(); break; } + case 48: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -8293,6 +8834,10 @@ public void MergeFrom(pb::CodedInputStream input) { SenderIdentity = input.ReadString(); break; } + case 48: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -8906,6 +9451,7 @@ public SetLocalAttributesRequest(SetLocalAttributesRequest other) : this() { _hasBits0 = other._hasBits0; localParticipantHandle_ = other.localParticipantHandle_; attributes_ = other.attributes_.Clone(); + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -8953,6 +9499,33 @@ public void ClearLocalParticipantHandle() { get { return attributes_; } } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 3; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -8970,6 +9543,7 @@ public bool Equals(SetLocalAttributesRequest other) { } if (LocalParticipantHandle != other.LocalParticipantHandle) return false; if(!attributes_.Equals(other.attributes_)) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -8979,6 +9553,7 @@ public override int GetHashCode() { int hash = 1; if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); hash ^= attributes_.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -9002,6 +9577,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteUInt64(LocalParticipantHandle); } attributes_.WriteTo(output, _repeated_attributes_codec); + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -9017,6 +9596,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteUInt64(LocalParticipantHandle); } attributes_.WriteTo(ref output, _repeated_attributes_codec); + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -9031,6 +9614,9 @@ public int CalculateSize() { size += 1 + pb::CodedOutputStream.ComputeUInt64Size(LocalParticipantHandle); } size += attributes_.CalculateSize(_repeated_attributes_codec); + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -9047,6 +9633,9 @@ public void MergeFrom(SetLocalAttributesRequest other) { LocalParticipantHandle = other.LocalParticipantHandle; } attributes_.Add(other.attributes_); + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -9074,6 +9663,10 @@ public void MergeFrom(pb::CodedInputStream input) { attributes_.AddEntriesFrom(input, _repeated_attributes_codec); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -9101,6 +9694,10 @@ public void MergeFrom(pb::CodedInputStream input) { attributes_.AddEntriesFrom(ref input, _repeated_attributes_codec); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -9894,6 +10491,7 @@ public SetLocalNameRequest(SetLocalNameRequest other) : this() { _hasBits0 = other._hasBits0; localParticipantHandle_ = other.localParticipantHandle_; name_ = other.name_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -9956,6 +10554,33 @@ public void ClearName() { name_ = null; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 3; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -9973,6 +10598,7 @@ public bool Equals(SetLocalNameRequest other) { } if (LocalParticipantHandle != other.LocalParticipantHandle) return false; if (Name != other.Name) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -9982,6 +10608,7 @@ public override int GetHashCode() { int hash = 1; if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode(); if (HasName) hash ^= Name.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -10008,6 +10635,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Name); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -10026,6 +10657,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteString(Name); } + if (HasRequestAsyncId) { + output.WriteRawTag(24); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -10042,6 +10677,9 @@ public int CalculateSize() { if (HasName) { size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -10060,6 +10698,9 @@ public void MergeFrom(SetLocalNameRequest other) { if (other.HasName) { Name = other.Name; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -10087,6 +10728,10 @@ public void MergeFrom(pb::CodedInputStream input) { Name = input.ReadString(); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -10114,6 +10759,10 @@ public void MergeFrom(pb::CodedInputStream input) { Name = input.ReadString(); break; } + case 24: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -11071,6 +11720,7 @@ public GetSessionStatsRequest() { public GetSessionStatsRequest(GetSessionStatsRequest other) : this() { _hasBits0 = other._hasBits0; roomHandle_ = other.roomHandle_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -11107,6 +11757,33 @@ public void ClearRoomHandle() { _hasBits0 &= ~1; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 2; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -11123,6 +11800,7 @@ public bool Equals(GetSessionStatsRequest other) { return true; } if (RoomHandle != other.RoomHandle) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -11131,6 +11809,7 @@ public bool Equals(GetSessionStatsRequest other) { public override int GetHashCode() { int hash = 1; if (HasRoomHandle) hash ^= RoomHandle.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -11153,6 +11832,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(RoomHandle); } + if (HasRequestAsyncId) { + output.WriteRawTag(16); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -11167,6 +11850,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(RoomHandle); } + if (HasRequestAsyncId) { + output.WriteRawTag(16); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -11180,6 +11867,9 @@ public int CalculateSize() { if (HasRoomHandle) { size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RoomHandle); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -11195,6 +11885,9 @@ public void MergeFrom(GetSessionStatsRequest other) { if (other.HasRoomHandle) { RoomHandle = other.RoomHandle; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -11218,6 +11911,10 @@ public void MergeFrom(pb::CodedInputStream input) { RoomHandle = input.ReadUInt64(); break; } + case 16: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -11241,6 +11938,10 @@ public void MergeFrom(pb::CodedInputStream input) { RoomHandle = input.ReadUInt64(); break; } + case 16: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -15319,9 +16020,6 @@ public RoomEvent(RoomEvent other) : this() { case MessageOneofCase.ParticipantAttributesChanged: ParticipantAttributesChanged = other.ParticipantAttributesChanged.Clone(); break; - case MessageOneofCase.ParticipantEncryptionStatusChanged: - ParticipantEncryptionStatusChanged = other.ParticipantEncryptionStatusChanged.Clone(); - break; case MessageOneofCase.ConnectionQualityChanged: ConnectionQualityChanged = other.ConnectionQualityChanged.Clone(); break; @@ -15379,6 +16077,18 @@ public RoomEvent(RoomEvent other) : this() { case MessageOneofCase.ParticipantsUpdated: ParticipantsUpdated = other.ParticipantsUpdated.Clone(); break; + case MessageOneofCase.ParticipantEncryptionStatusChanged: + ParticipantEncryptionStatusChanged = other.ParticipantEncryptionStatusChanged.Clone(); + break; + case MessageOneofCase.ParticipantPermissionChanged: + ParticipantPermissionChanged = other.ParticipantPermissionChanged.Clone(); + break; + case MessageOneofCase.TokenRefreshed: + TokenRefreshed = other.TokenRefreshed.Clone(); + break; + case MessageOneofCase.RemoteDataTrackPublished: + RemoteDataTrackPublished = other.RemoteDataTrackPublished.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -15633,18 +16343,6 @@ public void ClearRoomHandle() { } } - /// Field number for the "participant_encryption_status_changed" field. - public const int ParticipantEncryptionStatusChangedFieldNumber = 39; - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::LiveKit.Proto.ParticipantEncryptionStatusChanged ParticipantEncryptionStatusChanged { - get { return messageCase_ == MessageOneofCase.ParticipantEncryptionStatusChanged ? (global::LiveKit.Proto.ParticipantEncryptionStatusChanged) message_ : null; } - set { - message_ = value; - messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.ParticipantEncryptionStatusChanged; - } - } - /// Field number for the "connection_quality_changed" field. public const int ConnectionQualityChangedFieldNumber = 20; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -15894,6 +16592,54 @@ public void ClearRoomHandle() { } } + /// Field number for the "participant_encryption_status_changed" field. + public const int ParticipantEncryptionStatusChangedFieldNumber = 39; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.ParticipantEncryptionStatusChanged ParticipantEncryptionStatusChanged { + get { return messageCase_ == MessageOneofCase.ParticipantEncryptionStatusChanged ? (global::LiveKit.Proto.ParticipantEncryptionStatusChanged) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.ParticipantEncryptionStatusChanged; + } + } + + /// Field number for the "participant_permission_changed" field. + public const int ParticipantPermissionChangedFieldNumber = 41; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.ParticipantPermissionChanged ParticipantPermissionChanged { + get { return messageCase_ == MessageOneofCase.ParticipantPermissionChanged ? (global::LiveKit.Proto.ParticipantPermissionChanged) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.ParticipantPermissionChanged; + } + } + + /// Field number for the "token_refreshed" field. + public const int TokenRefreshedFieldNumber = 40; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.TokenRefreshed TokenRefreshed { + get { return messageCase_ == MessageOneofCase.TokenRefreshed ? (global::LiveKit.Proto.TokenRefreshed) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.TokenRefreshed; + } + } + + /// Field number for the "remote_data_track_published" field. + public const int RemoteDataTrackPublishedFieldNumber = 42; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.RemoteDataTrackPublished RemoteDataTrackPublished { + get { return messageCase_ == MessageOneofCase.RemoteDataTrackPublished ? (global::LiveKit.Proto.RemoteDataTrackPublished) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.RemoteDataTrackPublished; + } + } + private object message_; /// Enum of possible cases for the "message" oneof. public enum MessageOneofCase { @@ -15916,7 +16662,6 @@ public enum MessageOneofCase { ParticipantMetadataChanged = 17, ParticipantNameChanged = 18, ParticipantAttributesChanged = 19, - ParticipantEncryptionStatusChanged = 39, ConnectionQualityChanged = 20, ConnectionStateChanged = 21, Disconnected = 22, @@ -15936,6 +16681,10 @@ public enum MessageOneofCase { RoomUpdated = 36, Moved = 37, ParticipantsUpdated = 38, + ParticipantEncryptionStatusChanged = 39, + ParticipantPermissionChanged = 41, + TokenRefreshed = 40, + RemoteDataTrackPublished = 42, } private MessageOneofCase messageCase_ = MessageOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -15985,7 +16734,6 @@ public bool Equals(RoomEvent other) { if (!object.Equals(ParticipantMetadataChanged, other.ParticipantMetadataChanged)) return false; if (!object.Equals(ParticipantNameChanged, other.ParticipantNameChanged)) return false; if (!object.Equals(ParticipantAttributesChanged, other.ParticipantAttributesChanged)) return false; - if (!object.Equals(ParticipantEncryptionStatusChanged, other.ParticipantEncryptionStatusChanged)) return false; if (!object.Equals(ConnectionQualityChanged, other.ConnectionQualityChanged)) return false; if (!object.Equals(ConnectionStateChanged, other.ConnectionStateChanged)) return false; if (!object.Equals(Disconnected, other.Disconnected)) return false; @@ -16005,6 +16753,10 @@ public bool Equals(RoomEvent other) { if (!object.Equals(RoomUpdated, other.RoomUpdated)) return false; if (!object.Equals(Moved, other.Moved)) return false; if (!object.Equals(ParticipantsUpdated, other.ParticipantsUpdated)) return false; + if (!object.Equals(ParticipantEncryptionStatusChanged, other.ParticipantEncryptionStatusChanged)) return false; + if (!object.Equals(ParticipantPermissionChanged, other.ParticipantPermissionChanged)) return false; + if (!object.Equals(TokenRefreshed, other.TokenRefreshed)) return false; + if (!object.Equals(RemoteDataTrackPublished, other.RemoteDataTrackPublished)) return false; if (MessageCase != other.MessageCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -16032,7 +16784,6 @@ public override int GetHashCode() { if (messageCase_ == MessageOneofCase.ParticipantMetadataChanged) hash ^= ParticipantMetadataChanged.GetHashCode(); if (messageCase_ == MessageOneofCase.ParticipantNameChanged) hash ^= ParticipantNameChanged.GetHashCode(); if (messageCase_ == MessageOneofCase.ParticipantAttributesChanged) hash ^= ParticipantAttributesChanged.GetHashCode(); - if (messageCase_ == MessageOneofCase.ParticipantEncryptionStatusChanged) hash ^= ParticipantEncryptionStatusChanged.GetHashCode(); if (messageCase_ == MessageOneofCase.ConnectionQualityChanged) hash ^= ConnectionQualityChanged.GetHashCode(); if (messageCase_ == MessageOneofCase.ConnectionStateChanged) hash ^= ConnectionStateChanged.GetHashCode(); if (messageCase_ == MessageOneofCase.Disconnected) hash ^= Disconnected.GetHashCode(); @@ -16052,6 +16803,10 @@ public override int GetHashCode() { if (messageCase_ == MessageOneofCase.RoomUpdated) hash ^= RoomUpdated.GetHashCode(); if (messageCase_ == MessageOneofCase.Moved) hash ^= Moved.GetHashCode(); if (messageCase_ == MessageOneofCase.ParticipantsUpdated) hash ^= ParticipantsUpdated.GetHashCode(); + if (messageCase_ == MessageOneofCase.ParticipantEncryptionStatusChanged) hash ^= ParticipantEncryptionStatusChanged.GetHashCode(); + if (messageCase_ == MessageOneofCase.ParticipantPermissionChanged) hash ^= ParticipantPermissionChanged.GetHashCode(); + if (messageCase_ == MessageOneofCase.TokenRefreshed) hash ^= TokenRefreshed.GetHashCode(); + if (messageCase_ == MessageOneofCase.RemoteDataTrackPublished) hash ^= RemoteDataTrackPublished.GetHashCode(); hash ^= (int) messageCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -16227,6 +16982,18 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(186, 2); output.WriteMessage(ParticipantEncryptionStatusChanged); } + if (messageCase_ == MessageOneofCase.TokenRefreshed) { + output.WriteRawTag(194, 2); + output.WriteMessage(TokenRefreshed); + } + if (messageCase_ == MessageOneofCase.ParticipantPermissionChanged) { + output.WriteRawTag(202, 2); + output.WriteMessage(ParticipantPermissionChanged); + } + if (messageCase_ == MessageOneofCase.RemoteDataTrackPublished) { + output.WriteRawTag(210, 2); + output.WriteMessage(RemoteDataTrackPublished); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -16393,6 +17160,18 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(186, 2); output.WriteMessage(ParticipantEncryptionStatusChanged); } + if (messageCase_ == MessageOneofCase.TokenRefreshed) { + output.WriteRawTag(194, 2); + output.WriteMessage(TokenRefreshed); + } + if (messageCase_ == MessageOneofCase.ParticipantPermissionChanged) { + output.WriteRawTag(202, 2); + output.WriteMessage(ParticipantPermissionChanged); + } + if (messageCase_ == MessageOneofCase.RemoteDataTrackPublished) { + output.WriteRawTag(210, 2); + output.WriteMessage(RemoteDataTrackPublished); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -16460,9 +17239,6 @@ public int CalculateSize() { if (messageCase_ == MessageOneofCase.ParticipantAttributesChanged) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(ParticipantAttributesChanged); } - if (messageCase_ == MessageOneofCase.ParticipantEncryptionStatusChanged) { - size += 2 + pb::CodedOutputStream.ComputeMessageSize(ParticipantEncryptionStatusChanged); - } if (messageCase_ == MessageOneofCase.ConnectionQualityChanged) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(ConnectionQualityChanged); } @@ -16520,6 +17296,18 @@ public int CalculateSize() { if (messageCase_ == MessageOneofCase.ParticipantsUpdated) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(ParticipantsUpdated); } + if (messageCase_ == MessageOneofCase.ParticipantEncryptionStatusChanged) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(ParticipantEncryptionStatusChanged); + } + if (messageCase_ == MessageOneofCase.ParticipantPermissionChanged) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(ParticipantPermissionChanged); + } + if (messageCase_ == MessageOneofCase.TokenRefreshed) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(TokenRefreshed); + } + if (messageCase_ == MessageOneofCase.RemoteDataTrackPublished) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(RemoteDataTrackPublished); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -16644,12 +17432,6 @@ public void MergeFrom(RoomEvent other) { } ParticipantAttributesChanged.MergeFrom(other.ParticipantAttributesChanged); break; - case MessageOneofCase.ParticipantEncryptionStatusChanged: - if (ParticipantEncryptionStatusChanged == null) { - ParticipantEncryptionStatusChanged = new global::LiveKit.Proto.ParticipantEncryptionStatusChanged(); - } - ParticipantEncryptionStatusChanged.MergeFrom(other.ParticipantEncryptionStatusChanged); - break; case MessageOneofCase.ConnectionQualityChanged: if (ConnectionQualityChanged == null) { ConnectionQualityChanged = new global::LiveKit.Proto.ConnectionQualityChanged(); @@ -16764,6 +17546,30 @@ public void MergeFrom(RoomEvent other) { } ParticipantsUpdated.MergeFrom(other.ParticipantsUpdated); break; + case MessageOneofCase.ParticipantEncryptionStatusChanged: + if (ParticipantEncryptionStatusChanged == null) { + ParticipantEncryptionStatusChanged = new global::LiveKit.Proto.ParticipantEncryptionStatusChanged(); + } + ParticipantEncryptionStatusChanged.MergeFrom(other.ParticipantEncryptionStatusChanged); + break; + case MessageOneofCase.ParticipantPermissionChanged: + if (ParticipantPermissionChanged == null) { + ParticipantPermissionChanged = new global::LiveKit.Proto.ParticipantPermissionChanged(); + } + ParticipantPermissionChanged.MergeFrom(other.ParticipantPermissionChanged); + break; + case MessageOneofCase.TokenRefreshed: + if (TokenRefreshed == null) { + TokenRefreshed = new global::LiveKit.Proto.TokenRefreshed(); + } + TokenRefreshed.MergeFrom(other.TokenRefreshed); + break; + case MessageOneofCase.RemoteDataTrackPublished: + if (RemoteDataTrackPublished == null) { + RemoteDataTrackPublished = new global::LiveKit.Proto.RemoteDataTrackPublished(); + } + RemoteDataTrackPublished.MergeFrom(other.RemoteDataTrackPublished); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -17131,6 +17937,33 @@ public void MergeFrom(pb::CodedInputStream input) { ParticipantEncryptionStatusChanged = subBuilder; break; } + case 322: { + global::LiveKit.Proto.TokenRefreshed subBuilder = new global::LiveKit.Proto.TokenRefreshed(); + if (messageCase_ == MessageOneofCase.TokenRefreshed) { + subBuilder.MergeFrom(TokenRefreshed); + } + input.ReadMessage(subBuilder); + TokenRefreshed = subBuilder; + break; + } + case 330: { + global::LiveKit.Proto.ParticipantPermissionChanged subBuilder = new global::LiveKit.Proto.ParticipantPermissionChanged(); + if (messageCase_ == MessageOneofCase.ParticipantPermissionChanged) { + subBuilder.MergeFrom(ParticipantPermissionChanged); + } + input.ReadMessage(subBuilder); + ParticipantPermissionChanged = subBuilder; + break; + } + case 338: { + global::LiveKit.Proto.RemoteDataTrackPublished subBuilder = new global::LiveKit.Proto.RemoteDataTrackPublished(); + if (messageCase_ == MessageOneofCase.RemoteDataTrackPublished) { + subBuilder.MergeFrom(RemoteDataTrackPublished); + } + input.ReadMessage(subBuilder); + RemoteDataTrackPublished = subBuilder; + break; + } } } #endif @@ -17496,6 +18329,33 @@ public void MergeFrom(pb::CodedInputStream input) { ParticipantEncryptionStatusChanged = subBuilder; break; } + case 322: { + global::LiveKit.Proto.TokenRefreshed subBuilder = new global::LiveKit.Proto.TokenRefreshed(); + if (messageCase_ == MessageOneofCase.TokenRefreshed) { + subBuilder.MergeFrom(TokenRefreshed); + } + input.ReadMessage(subBuilder); + TokenRefreshed = subBuilder; + break; + } + case 330: { + global::LiveKit.Proto.ParticipantPermissionChanged subBuilder = new global::LiveKit.Proto.ParticipantPermissionChanged(); + if (messageCase_ == MessageOneofCase.ParticipantPermissionChanged) { + subBuilder.MergeFrom(ParticipantPermissionChanged); + } + input.ReadMessage(subBuilder); + ParticipantPermissionChanged = subBuilder; + break; + } + case 338: { + global::LiveKit.Proto.RemoteDataTrackPublished subBuilder = new global::LiveKit.Proto.RemoteDataTrackPublished(); + if (messageCase_ == MessageOneofCase.RemoteDataTrackPublished) { + subBuilder.MergeFrom(RemoteDataTrackPublished); + } + input.ReadMessage(subBuilder); + RemoteDataTrackPublished = subBuilder; + break; + } } } } @@ -23666,17 +24526,16 @@ public void MergeFrom(pb::CodedInputStream input) { } [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class ConnectionQualityChanged : pb::IMessage + public sealed partial class ParticipantPermissionChanged : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ConnectionQualityChanged()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ParticipantPermissionChanged()); private pb::UnknownFieldSet _unknownFields; - private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -23692,7 +24551,7 @@ public sealed partial class ConnectionQualityChanged : pb::IMessageField number for the "participant_identity" field. @@ -23739,42 +24597,27 @@ public void ClearParticipantIdentity() { participantIdentity_ = null; } - /// Field number for the "quality" field. - public const int QualityFieldNumber = 2; - private readonly static global::LiveKit.Proto.ConnectionQuality QualityDefaultValue = global::LiveKit.Proto.ConnectionQuality.QualityPoor; - - private global::LiveKit.Proto.ConnectionQuality quality_; + /// Field number for the "permission" field. + public const int PermissionFieldNumber = 2; + private global::LiveKit.Proto.ParticipantPermission permission_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::LiveKit.Proto.ConnectionQuality Quality { - get { if ((_hasBits0 & 1) != 0) { return quality_; } else { return QualityDefaultValue; } } + public global::LiveKit.Proto.ParticipantPermission Permission { + get { return permission_; } set { - _hasBits0 |= 1; - quality_ = value; + permission_ = value; } } - /// Gets whether the "quality" field is set - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool HasQuality { - get { return (_hasBits0 & 1) != 0; } - } - /// Clears the value of the "quality" field - [global::System.Diagnostics.DebuggerNonUserCodeAttribute] - [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void ClearQuality() { - _hasBits0 &= ~1; - } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as ConnectionQualityChanged); + return Equals(other as ParticipantPermissionChanged); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(ConnectionQualityChanged other) { + public bool Equals(ParticipantPermissionChanged other) { if (ReferenceEquals(other, null)) { return false; } @@ -23782,7 +24625,7 @@ public bool Equals(ConnectionQualityChanged other) { return true; } if (ParticipantIdentity != other.ParticipantIdentity) return false; - if (Quality != other.Quality) return false; + if (!object.Equals(Permission, other.Permission)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -23791,7 +24634,7 @@ public bool Equals(ConnectionQualityChanged other) { public override int GetHashCode() { int hash = 1; if (HasParticipantIdentity) hash ^= ParticipantIdentity.GetHashCode(); - if (HasQuality) hash ^= Quality.GetHashCode(); + if (permission_ != null) hash ^= Permission.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -23814,9 +24657,9 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(10); output.WriteString(ParticipantIdentity); } - if (HasQuality) { - output.WriteRawTag(16); - output.WriteEnum((int) Quality); + if (permission_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Permission); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -23832,9 +24675,9 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(10); output.WriteString(ParticipantIdentity); } - if (HasQuality) { - output.WriteRawTag(16); - output.WriteEnum((int) Quality); + if (permission_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Permission); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -23849,8 +24692,8 @@ public int CalculateSize() { if (HasParticipantIdentity) { size += 1 + pb::CodedOutputStream.ComputeStringSize(ParticipantIdentity); } - if (HasQuality) { - size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Quality); + if (permission_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Permission); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -23860,15 +24703,290 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(ConnectionQualityChanged other) { + public void MergeFrom(ParticipantPermissionChanged other) { if (other == null) { return; } if (other.HasParticipantIdentity) { ParticipantIdentity = other.ParticipantIdentity; } - if (other.HasQuality) { - Quality = other.Quality; + if (other.permission_ != null) { + if (permission_ == null) { + Permission = new global::LiveKit.Proto.ParticipantPermission(); + } + Permission.MergeFrom(other.Permission); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + ParticipantIdentity = input.ReadString(); + break; + } + case 18: { + if (permission_ == null) { + Permission = new global::LiveKit.Proto.ParticipantPermission(); + } + input.ReadMessage(Permission); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + ParticipantIdentity = input.ReadString(); + break; + } + case 18: { + if (permission_ == null) { + Permission = new global::LiveKit.Proto.ParticipantPermission(); + } + input.ReadMessage(Permission); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class ConnectionQualityChanged : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ConnectionQualityChanged()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[74]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ConnectionQualityChanged() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ConnectionQualityChanged(ConnectionQualityChanged other) : this() { + _hasBits0 = other._hasBits0; + participantIdentity_ = other.participantIdentity_; + quality_ = other.quality_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ConnectionQualityChanged Clone() { + return new ConnectionQualityChanged(this); + } + + /// Field number for the "participant_identity" field. + public const int ParticipantIdentityFieldNumber = 1; + private readonly static string ParticipantIdentityDefaultValue = ""; + + private string participantIdentity_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string ParticipantIdentity { + get { return participantIdentity_ ?? ParticipantIdentityDefaultValue; } + set { + participantIdentity_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "participant_identity" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasParticipantIdentity { + get { return participantIdentity_ != null; } + } + /// Clears the value of the "participant_identity" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearParticipantIdentity() { + participantIdentity_ = null; + } + + /// Field number for the "quality" field. + public const int QualityFieldNumber = 2; + private readonly static global::LiveKit.Proto.ConnectionQuality QualityDefaultValue = global::LiveKit.Proto.ConnectionQuality.QualityPoor; + + private global::LiveKit.Proto.ConnectionQuality quality_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.ConnectionQuality Quality { + get { if ((_hasBits0 & 1) != 0) { return quality_; } else { return QualityDefaultValue; } } + set { + _hasBits0 |= 1; + quality_ = value; + } + } + /// Gets whether the "quality" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasQuality { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "quality" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearQuality() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as ConnectionQualityChanged); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(ConnectionQualityChanged other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (ParticipantIdentity != other.ParticipantIdentity) return false; + if (Quality != other.Quality) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasParticipantIdentity) hash ^= ParticipantIdentity.GetHashCode(); + if (HasQuality) hash ^= Quality.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasParticipantIdentity) { + output.WriteRawTag(10); + output.WriteString(ParticipantIdentity); + } + if (HasQuality) { + output.WriteRawTag(16); + output.WriteEnum((int) Quality); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasParticipantIdentity) { + output.WriteRawTag(10); + output.WriteString(ParticipantIdentity); + } + if (HasQuality) { + output.WriteRawTag(16); + output.WriteEnum((int) Quality); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasParticipantIdentity) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ParticipantIdentity); + } + if (HasQuality) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Quality); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(ConnectionQualityChanged other) { + if (other == null) { + return; + } + if (other.HasParticipantIdentity) { + ParticipantIdentity = other.ParticipantIdentity; + } + if (other.HasQuality) { + Quality = other.Quality; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -23946,7 +25064,7 @@ public sealed partial class UserPacket : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[74]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[75]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -24205,7 +25323,7 @@ public sealed partial class ChatMessage : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[75]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[76]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -24677,7 +25795,7 @@ public sealed partial class ChatMessageReceived : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[77]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[78]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -25202,7 +26320,7 @@ public sealed partial class DataPacketReceived : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[81]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[82]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -26269,7 +27387,7 @@ public sealed partial class Disconnected : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[82]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[83]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -26483,7 +27601,7 @@ public sealed partial class Reconnecting : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[83]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[84]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -26644,7 +27762,7 @@ public sealed partial class Reconnected : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[84]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[85]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -26790,6 +27908,218 @@ public void MergeFrom(pb::CodedInputStream input) { } + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class TokenRefreshed : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TokenRefreshed()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[86]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TokenRefreshed() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TokenRefreshed(TokenRefreshed other) : this() { + token_ = other.token_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public TokenRefreshed Clone() { + return new TokenRefreshed(this); + } + + /// Field number for the "token" field. + public const int TokenFieldNumber = 1; + private readonly static string TokenDefaultValue = ""; + + private string token_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Token { + get { return token_ ?? TokenDefaultValue; } + set { + token_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "token" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasToken { + get { return token_ != null; } + } + /// Clears the value of the "token" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearToken() { + token_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as TokenRefreshed); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(TokenRefreshed other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Token != other.Token) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasToken) hash ^= Token.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasToken) { + output.WriteRawTag(10); + output.WriteString(Token); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasToken) { + output.WriteRawTag(10); + output.WriteString(Token); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasToken) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Token); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(TokenRefreshed other) { + if (other == null) { + return; + } + if (other.HasToken) { + Token = other.Token; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Token = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Token = input.ReadString(); + break; + } + } + } + } + #endif + + } + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] public sealed partial class RoomEOS : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE @@ -26805,7 +28135,7 @@ public sealed partial class RoomEOS : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[85]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[87]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -26966,7 +28296,7 @@ public sealed partial class DataStream : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[86]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[88]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -29095,7 +30425,7 @@ public sealed partial class DataStreamHeaderReceived : pb::IMessageField number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 5; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -29999,6 +31357,7 @@ public bool Equals(SendStreamHeaderRequest other) { if (!object.Equals(Header, other.Header)) return false; if(!destinationIdentities_.Equals(other.destinationIdentities_)) return false; if (SenderIdentity != other.SenderIdentity) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -30010,6 +31369,7 @@ public override int GetHashCode() { if (header_ != null) hash ^= Header.GetHashCode(); hash ^= destinationIdentities_.GetHashCode(); if (HasSenderIdentity) hash ^= SenderIdentity.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -30041,6 +31401,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteString(SenderIdentity); } + if (HasRequestAsyncId) { + output.WriteRawTag(40); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -30064,6 +31428,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteString(SenderIdentity); } + if (HasRequestAsyncId) { + output.WriteRawTag(40); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -30084,6 +31452,9 @@ public int CalculateSize() { if (HasSenderIdentity) { size += 1 + pb::CodedOutputStream.ComputeStringSize(SenderIdentity); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -30109,6 +31480,9 @@ public void MergeFrom(SendStreamHeaderRequest other) { if (other.HasSenderIdentity) { SenderIdentity = other.SenderIdentity; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -30147,6 +31521,10 @@ public void MergeFrom(pb::CodedInputStream input) { SenderIdentity = input.ReadString(); break; } + case 40: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -30185,6 +31563,10 @@ public void MergeFrom(pb::CodedInputStream input) { SenderIdentity = input.ReadString(); break; } + case 40: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -30208,7 +31590,7 @@ public sealed partial class SendStreamChunkRequest : pb::IMessageField number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 5; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -30337,6 +31747,7 @@ public bool Equals(SendStreamChunkRequest other) { if (!object.Equals(Chunk, other.Chunk)) return false; if(!destinationIdentities_.Equals(other.destinationIdentities_)) return false; if (SenderIdentity != other.SenderIdentity) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -30348,6 +31759,7 @@ public override int GetHashCode() { if (chunk_ != null) hash ^= Chunk.GetHashCode(); hash ^= destinationIdentities_.GetHashCode(); if (HasSenderIdentity) hash ^= SenderIdentity.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -30379,6 +31791,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteString(SenderIdentity); } + if (HasRequestAsyncId) { + output.WriteRawTag(40); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -30402,6 +31818,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteString(SenderIdentity); } + if (HasRequestAsyncId) { + output.WriteRawTag(40); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -30422,6 +31842,9 @@ public int CalculateSize() { if (HasSenderIdentity) { size += 1 + pb::CodedOutputStream.ComputeStringSize(SenderIdentity); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -30447,6 +31870,9 @@ public void MergeFrom(SendStreamChunkRequest other) { if (other.HasSenderIdentity) { SenderIdentity = other.SenderIdentity; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -30485,6 +31911,10 @@ public void MergeFrom(pb::CodedInputStream input) { SenderIdentity = input.ReadString(); break; } + case 40: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -30523,6 +31953,10 @@ public void MergeFrom(pb::CodedInputStream input) { SenderIdentity = input.ReadString(); break; } + case 40: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -30546,7 +31980,7 @@ public sealed partial class SendStreamTrailerRequest : pb::IMessageField number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 5; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -30675,6 +32137,7 @@ public bool Equals(SendStreamTrailerRequest other) { if (!object.Equals(Trailer, other.Trailer)) return false; if(!destinationIdentities_.Equals(other.destinationIdentities_)) return false; if (SenderIdentity != other.SenderIdentity) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -30686,6 +32149,7 @@ public override int GetHashCode() { if (trailer_ != null) hash ^= Trailer.GetHashCode(); hash ^= destinationIdentities_.GetHashCode(); if (HasSenderIdentity) hash ^= SenderIdentity.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -30717,6 +32181,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteString(SenderIdentity); } + if (HasRequestAsyncId) { + output.WriteRawTag(40); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -30740,6 +32208,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(34); output.WriteString(SenderIdentity); } + if (HasRequestAsyncId) { + output.WriteRawTag(40); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -30760,6 +32232,9 @@ public int CalculateSize() { if (HasSenderIdentity) { size += 1 + pb::CodedOutputStream.ComputeStringSize(SenderIdentity); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -30785,6 +32260,9 @@ public void MergeFrom(SendStreamTrailerRequest other) { if (other.HasSenderIdentity) { SenderIdentity = other.SenderIdentity; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -30823,6 +32301,10 @@ public void MergeFrom(pb::CodedInputStream input) { SenderIdentity = input.ReadString(); break; } + case 40: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -30861,6 +32343,10 @@ public void MergeFrom(pb::CodedInputStream input) { SenderIdentity = input.ReadString(); break; } + case 40: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } @@ -30884,7 +32370,7 @@ public sealed partial class SendStreamHeaderResponse : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[102]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[104]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -33331,7 +34817,7 @@ public sealed partial class TextStreamOpened : pb::IMessage [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pbr::MessageDescriptor Descriptor { - get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[103]; } + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[105]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -33574,6 +35060,216 @@ public void MergeFrom(pb::CodedInputStream input) { } + /// + /// A remote participant published a data track. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class RemoteDataTrackPublished : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RemoteDataTrackPublished()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[106]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RemoteDataTrackPublished() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RemoteDataTrackPublished(RemoteDataTrackPublished other) : this() { + track_ = other.track_ != null ? other.track_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public RemoteDataTrackPublished Clone() { + return new RemoteDataTrackPublished(this); + } + + /// Field number for the "track" field. + public const int TrackFieldNumber = 1; + private global::LiveKit.Proto.OwnedRemoteDataTrack track_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.OwnedRemoteDataTrack Track { + get { return track_; } + set { + track_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as RemoteDataTrackPublished); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(RemoteDataTrackPublished other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (!object.Equals(Track, other.Track)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (track_ != null) hash ^= Track.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (track_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Track); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (track_ != null) { + output.WriteRawTag(10); + output.WriteMessage(Track); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (track_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Track); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(RemoteDataTrackPublished other) { + if (other == null) { + return; + } + if (other.track_ != null) { + if (track_ == null) { + Track = new global::LiveKit.Proto.OwnedRemoteDataTrack(); + } + Track.MergeFrom(other.Track); + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + if (track_ == null) { + Track = new global::LiveKit.Proto.OwnedRemoteDataTrack(); + } + input.ReadMessage(Track); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + if (track_ == null) { + Track = new global::LiveKit.Proto.OwnedRemoteDataTrack(); + } + input.ReadMessage(Track); + break; + } + } + } + } + #endif + + } + #endregion } diff --git a/Runtime/Scripts/Proto/Rpc.cs b/Runtime/Scripts/Proto/Rpc.cs index 3404191c..c09b6e2d 100644 --- a/Runtime/Scripts/Proto/Rpc.cs +++ b/Runtime/Scripts/Proto/Rpc.cs @@ -25,33 +25,33 @@ static RpcReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "CglycGMucHJvdG8SDWxpdmVraXQucHJvdG8iNwoIUnBjRXJyb3ISDAoEY29k", - "ZRgBIAIoDRIPCgdtZXNzYWdlGAIgAigJEgwKBGRhdGEYAyABKAkikQEKEVBl", + "ZRgBIAIoDRIPCgdtZXNzYWdlGAIgAigJEgwKBGRhdGEYAyABKAkiqwEKEVBl", "cmZvcm1ScGNSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgB", "IAIoBBIcChRkZXN0aW5hdGlvbl9pZGVudGl0eRgCIAIoCRIOCgZtZXRob2QY", "AyACKAkSDwoHcGF5bG9hZBgEIAIoCRIbChNyZXNwb25zZV90aW1lb3V0X21z", - "GAUgASgNIkwKGFJlZ2lzdGVyUnBjTWV0aG9kUmVxdWVzdBIgChhsb2NhbF9w", - "YXJ0aWNpcGFudF9oYW5kbGUYASACKAQSDgoGbWV0aG9kGAIgAigJIk4KGlVu", - "cmVnaXN0ZXJScGNNZXRob2RSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50", - "X2hhbmRsZRgBIAIoBBIOCgZtZXRob2QYAiACKAkilgEKIlJwY01ldGhvZElu", - "dm9jYXRpb25SZXNwb25zZVJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRf", - "aGFuZGxlGAEgAigEEhUKDWludm9jYXRpb25faWQYAiACKAQSDwoHcGF5bG9h", - "ZBgDIAEoCRImCgVlcnJvchgEIAEoCzIXLmxpdmVraXQucHJvdG8uUnBjRXJy", - "b3IiJgoSUGVyZm9ybVJwY1Jlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIhsK", - "GVJlZ2lzdGVyUnBjTWV0aG9kUmVzcG9uc2UiHQobVW5yZWdpc3RlclJwY01l", - "dGhvZFJlc3BvbnNlIjQKI1JwY01ldGhvZEludm9jYXRpb25SZXNwb25zZVJl", - "c3BvbnNlEg0KBWVycm9yGAEgASgJIl8KElBlcmZvcm1ScGNDYWxsYmFjaxIQ", - "Cghhc3luY19pZBgBIAIoBBIPCgdwYXlsb2FkGAIgASgJEiYKBWVycm9yGAMg", - "ASgLMhcubGl2ZWtpdC5wcm90by5ScGNFcnJvciK+AQoYUnBjTWV0aG9kSW52", - "b2NhdGlvbkV2ZW50EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIo", - "BBIVCg1pbnZvY2F0aW9uX2lkGAIgAigEEg4KBm1ldGhvZBgDIAIoCRISCgpy", - "ZXF1ZXN0X2lkGAQgAigJEhcKD2NhbGxlcl9pZGVudGl0eRgFIAIoCRIPCgdw", - "YXlsb2FkGAYgAigJEhsKE3Jlc3BvbnNlX3RpbWVvdXRfbXMYByACKA1CEKoC", - "DUxpdmVLaXQuUHJvdG8=")); + "GAUgASgNEhgKEHJlcXVlc3RfYXN5bmNfaWQYBiABKAQiTAoYUmVnaXN0ZXJS", + "cGNNZXRob2RSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgB", + "IAIoBBIOCgZtZXRob2QYAiACKAkiTgoaVW5yZWdpc3RlclJwY01ldGhvZFJl", + "cXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEg4KBm1l", + "dGhvZBgCIAIoCSKWAQoiUnBjTWV0aG9kSW52b2NhdGlvblJlc3BvbnNlUmVx", + "dWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSFQoNaW52", + "b2NhdGlvbl9pZBgCIAIoBBIPCgdwYXlsb2FkGAMgASgJEiYKBWVycm9yGAQg", + "ASgLMhcubGl2ZWtpdC5wcm90by5ScGNFcnJvciImChJQZXJmb3JtUnBjUmVz", + "cG9uc2USEAoIYXN5bmNfaWQYASACKAQiGwoZUmVnaXN0ZXJScGNNZXRob2RS", + "ZXNwb25zZSIdChtVbnJlZ2lzdGVyUnBjTWV0aG9kUmVzcG9uc2UiNAojUnBj", + "TWV0aG9kSW52b2NhdGlvblJlc3BvbnNlUmVzcG9uc2USDQoFZXJyb3IYASAB", + "KAkiXwoSUGVyZm9ybVJwY0NhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEg8K", + "B3BheWxvYWQYAiABKAkSJgoFZXJyb3IYAyABKAsyFy5saXZla2l0LnByb3Rv", + "LlJwY0Vycm9yIr4BChhScGNNZXRob2RJbnZvY2F0aW9uRXZlbnQSIAoYbG9j", + "YWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEhUKDWludm9jYXRpb25faWQY", + "AiACKAQSDgoGbWV0aG9kGAMgAigJEhIKCnJlcXVlc3RfaWQYBCACKAkSFwoP", + "Y2FsbGVyX2lkZW50aXR5GAUgAigJEg8KB3BheWxvYWQYBiACKAkSGwoTcmVz", + "cG9uc2VfdGltZW91dF9tcxgHIAIoDUIQqgINTGl2ZUtpdC5Qcm90bw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RpcError), global::LiveKit.Proto.RpcError.Parser, new[]{ "Code", "Message", "Data" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PerformRpcRequest), global::LiveKit.Proto.PerformRpcRequest.Parser, new[]{ "LocalParticipantHandle", "DestinationIdentity", "Method", "Payload", "ResponseTimeoutMs" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PerformRpcRequest), global::LiveKit.Proto.PerformRpcRequest.Parser, new[]{ "LocalParticipantHandle", "DestinationIdentity", "Method", "Payload", "ResponseTimeoutMs", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RegisterRpcMethodRequest), global::LiveKit.Proto.RegisterRpcMethodRequest.Parser, new[]{ "LocalParticipantHandle", "Method" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.UnregisterRpcMethodRequest), global::LiveKit.Proto.UnregisterRpcMethodRequest.Parser, new[]{ "LocalParticipantHandle", "Method" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RpcMethodInvocationResponseRequest), global::LiveKit.Proto.RpcMethodInvocationResponseRequest.Parser, new[]{ "LocalParticipantHandle", "InvocationId", "Payload", "Error" }, null, null, null, null), @@ -429,6 +429,7 @@ public PerformRpcRequest(PerformRpcRequest other) : this() { method_ = other.method_; payload_ = other.payload_; responseTimeoutMs_ = other.responseTimeoutMs_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -570,6 +571,33 @@ public void ClearResponseTimeoutMs() { _hasBits0 &= ~2; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 6; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 4) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 4; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 4) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~4; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -590,6 +618,7 @@ public bool Equals(PerformRpcRequest other) { if (Method != other.Method) return false; if (Payload != other.Payload) return false; if (ResponseTimeoutMs != other.ResponseTimeoutMs) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -602,6 +631,7 @@ public override int GetHashCode() { if (HasMethod) hash ^= Method.GetHashCode(); if (HasPayload) hash ^= Payload.GetHashCode(); if (HasResponseTimeoutMs) hash ^= ResponseTimeoutMs.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -640,6 +670,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(40); output.WriteUInt32(ResponseTimeoutMs); } + if (HasRequestAsyncId) { + output.WriteRawTag(48); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -670,6 +704,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(40); output.WriteUInt32(ResponseTimeoutMs); } + if (HasRequestAsyncId) { + output.WriteRawTag(48); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -695,6 +733,9 @@ public int CalculateSize() { if (HasResponseTimeoutMs) { size += 1 + pb::CodedOutputStream.ComputeUInt32Size(ResponseTimeoutMs); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -722,6 +763,9 @@ public void MergeFrom(PerformRpcRequest other) { if (other.HasResponseTimeoutMs) { ResponseTimeoutMs = other.ResponseTimeoutMs; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -761,6 +805,10 @@ public void MergeFrom(pb::CodedInputStream input) { ResponseTimeoutMs = input.ReadUInt32(); break; } + case 48: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -800,6 +848,10 @@ public void MergeFrom(pb::CodedInputStream input) { ResponseTimeoutMs = input.ReadUInt32(); break; } + case 48: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } diff --git a/Runtime/Scripts/Proto/Track.cs b/Runtime/Scripts/Proto/Track.cs index 8652c72c..d47dcfb8 100644 --- a/Runtime/Scripts/Proto/Track.cs +++ b/Runtime/Scripts/Proto/Track.cs @@ -31,50 +31,51 @@ static TrackReflection() { "ZWtpdC5wcm90by5Pd25lZFRyYWNrIj4KF0NyZWF0ZUF1ZGlvVHJhY2tSZXF1", "ZXN0EgwKBG5hbWUYASACKAkSFQoNc291cmNlX2hhbmRsZRgCIAIoBCJEChhD", "cmVhdGVBdWRpb1RyYWNrUmVzcG9uc2USKAoFdHJhY2sYASACKAsyGS5saXZl", - "a2l0LnByb3RvLk93bmVkVHJhY2siJwoPR2V0U3RhdHNSZXF1ZXN0EhQKDHRy", - "YWNrX2hhbmRsZRgBIAIoBCIkChBHZXRTdGF0c1Jlc3BvbnNlEhAKCGFzeW5j", - "X2lkGAEgAigEIlsKEEdldFN0YXRzQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASAC", - "KAQSDQoFZXJyb3IYAiABKAkSJgoFc3RhdHMYAyADKAsyFy5saXZla2l0LnBy", - "b3RvLlJ0Y1N0YXRzIgwKClRyYWNrRXZlbnQi3QIKFFRyYWNrUHVibGljYXRp", - "b25JbmZvEgsKA3NpZBgBIAIoCRIMCgRuYW1lGAIgAigJEiYKBGtpbmQYAyAC", - "KA4yGC5saXZla2l0LnByb3RvLlRyYWNrS2luZBIqCgZzb3VyY2UYBCACKA4y", - "Gi5saXZla2l0LnByb3RvLlRyYWNrU291cmNlEhMKC3NpbXVsY2FzdGVkGAUg", - "AigIEg0KBXdpZHRoGAYgAigNEg4KBmhlaWdodBgHIAIoDRIRCgltaW1lX3R5", - "cGUYCCACKAkSDQoFbXV0ZWQYCSACKAgSDgoGcmVtb3RlGAogAigIEjYKD2Vu", - "Y3J5cHRpb25fdHlwZRgLIAIoDjIdLmxpdmVraXQucHJvdG8uRW5jcnlwdGlv", - "blR5cGUSOAoOYXVkaW9fZmVhdHVyZXMYDCADKA4yIC5saXZla2l0LnByb3Rv", - "LkF1ZGlvVHJhY2tGZWF0dXJlInkKFU93bmVkVHJhY2tQdWJsaWNhdGlvbhIt", - "CgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxl", - "EjEKBGluZm8YAiACKAsyIy5saXZla2l0LnByb3RvLlRyYWNrUHVibGljYXRp", - "b25JbmZvIp8BCglUcmFja0luZm8SCwoDc2lkGAEgAigJEgwKBG5hbWUYAiAC", - "KAkSJgoEa2luZBgDIAIoDjIYLmxpdmVraXQucHJvdG8uVHJhY2tLaW5kEjAK", - "DHN0cmVhbV9zdGF0ZRgEIAIoDjIaLmxpdmVraXQucHJvdG8uU3RyZWFtU3Rh", - "dGUSDQoFbXV0ZWQYBSACKAgSDgoGcmVtb3RlGAYgAigIImMKCk93bmVkVHJh", - "Y2sSLQoGaGFuZGxlGAEgAigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25lZEhh", - "bmRsZRImCgRpbmZvGAIgAigLMhgubGl2ZWtpdC5wcm90by5UcmFja0luZm8i", - "OwoVTG9jYWxUcmFja011dGVSZXF1ZXN0EhQKDHRyYWNrX2hhbmRsZRgBIAIo", - "BBIMCgRtdXRlGAIgAigIIicKFkxvY2FsVHJhY2tNdXRlUmVzcG9uc2USDQoF", - "bXV0ZWQYASACKAgiQQoYRW5hYmxlUmVtb3RlVHJhY2tSZXF1ZXN0EhQKDHRy", - "YWNrX2hhbmRsZRgBIAIoBBIPCgdlbmFibGVkGAIgAigIIiwKGUVuYWJsZVJl", - "bW90ZVRyYWNrUmVzcG9uc2USDwoHZW5hYmxlZBgBIAIoCCKsAQomU2V0VHJh", - "Y2tTdWJzY3JpcHRpb25QZXJtaXNzaW9uc1JlcXVlc3QSIAoYbG9jYWxfcGFy", - "dGljaXBhbnRfaGFuZGxlGAEgAigEEiAKGGFsbF9wYXJ0aWNpcGFudHNfYWxs", - "b3dlZBgCIAIoCBI+CgtwZXJtaXNzaW9ucxgDIAMoCzIpLmxpdmVraXQucHJv", - "dG8uUGFydGljaXBhbnRUcmFja1Blcm1pc3Npb24iaQoaUGFydGljaXBhbnRU", - "cmFja1Blcm1pc3Npb24SHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkS", - "EQoJYWxsb3dfYWxsGAIgASgIEhoKEmFsbG93ZWRfdHJhY2tfc2lkcxgDIAMo", - "CSIpCidTZXRUcmFja1N1YnNjcmlwdGlvblBlcm1pc3Npb25zUmVzcG9uc2Uq", - "PQoJVHJhY2tLaW5kEhAKDEtJTkRfVU5LTk9XThAAEg4KCktJTkRfQVVESU8Q", - "ARIOCgpLSU5EX1ZJREVPEAIqgQEKC1RyYWNrU291cmNlEhIKDlNPVVJDRV9V", - "TktOT1dOEAASEQoNU09VUkNFX0NBTUVSQRABEhUKEVNPVVJDRV9NSUNST1BI", - "T05FEAISFgoSU09VUkNFX1NDUkVFTlNIQVJFEAMSHAoYU09VUkNFX1NDUkVF", - "TlNIQVJFX0FVRElPEAQqRAoLU3RyZWFtU3RhdGUSEQoNU1RBVEVfVU5LTk9X", - "ThAAEhAKDFNUQVRFX0FDVElWRRABEhAKDFNUQVRFX1BBVVNFRBACKr0BChFB", - "dWRpb1RyYWNrRmVhdHVyZRINCglURl9TVEVSRU8QABINCglURl9OT19EVFgQ", - "ARIYChRURl9BVVRPX0dBSU5fQ09OVFJPTBACEhgKFFRGX0VDSE9fQ0FOQ0VM", - "TEFUSU9OEAMSGAoUVEZfTk9JU0VfU1VQUFJFU1NJT04QBBIiCh5URl9FTkhB", - "TkNFRF9OT0lTRV9DQU5DRUxMQVRJT04QBRIYChRURl9QUkVDT05ORUNUX0JV", - "RkZFUhAGQhCqAg1MaXZlS2l0LlByb3Rv")); + "a2l0LnByb3RvLk93bmVkVHJhY2siQQoPR2V0U3RhdHNSZXF1ZXN0EhQKDHRy", + "YWNrX2hhbmRsZRgBIAIoBBIYChByZXF1ZXN0X2FzeW5jX2lkGAIgASgEIiQK", + "EEdldFN0YXRzUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQiWwoQR2V0U3Rh", + "dHNDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCRIm", + "CgVzdGF0cxgDIAMoCzIXLmxpdmVraXQucHJvdG8uUnRjU3RhdHMiDAoKVHJh", + "Y2tFdmVudCLdAgoUVHJhY2tQdWJsaWNhdGlvbkluZm8SCwoDc2lkGAEgAigJ", + "EgwKBG5hbWUYAiACKAkSJgoEa2luZBgDIAIoDjIYLmxpdmVraXQucHJvdG8u", + "VHJhY2tLaW5kEioKBnNvdXJjZRgEIAIoDjIaLmxpdmVraXQucHJvdG8uVHJh", + "Y2tTb3VyY2USEwoLc2ltdWxjYXN0ZWQYBSACKAgSDQoFd2lkdGgYBiACKA0S", + "DgoGaGVpZ2h0GAcgAigNEhEKCW1pbWVfdHlwZRgIIAIoCRINCgVtdXRlZBgJ", + "IAIoCBIOCgZyZW1vdGUYCiACKAgSNgoPZW5jcnlwdGlvbl90eXBlGAsgAigO", + "Mh0ubGl2ZWtpdC5wcm90by5FbmNyeXB0aW9uVHlwZRI4Cg5hdWRpb19mZWF0", + "dXJlcxgMIAMoDjIgLmxpdmVraXQucHJvdG8uQXVkaW9UcmFja0ZlYXR1cmUi", + "eQoVT3duZWRUcmFja1B1YmxpY2F0aW9uEi0KBmhhbmRsZRgBIAIoCzIdLmxp", + "dmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUSMQoEaW5mbxgCIAIoCzIjLmxp", + "dmVraXQucHJvdG8uVHJhY2tQdWJsaWNhdGlvbkluZm8inwEKCVRyYWNrSW5m", + "bxILCgNzaWQYASACKAkSDAoEbmFtZRgCIAIoCRImCgRraW5kGAMgAigOMhgu", + "bGl2ZWtpdC5wcm90by5UcmFja0tpbmQSMAoMc3RyZWFtX3N0YXRlGAQgAigO", + "MhoubGl2ZWtpdC5wcm90by5TdHJlYW1TdGF0ZRINCgVtdXRlZBgFIAIoCBIO", + "CgZyZW1vdGUYBiACKAgiYwoKT3duZWRUcmFjaxItCgZoYW5kbGUYASACKAsy", + "HS5saXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEiYKBGluZm8YAiACKAsy", + "GC5saXZla2l0LnByb3RvLlRyYWNrSW5mbyI7ChVMb2NhbFRyYWNrTXV0ZVJl", + "cXVlc3QSFAoMdHJhY2tfaGFuZGxlGAEgAigEEgwKBG11dGUYAiACKAgiJwoW", + "TG9jYWxUcmFja011dGVSZXNwb25zZRINCgVtdXRlZBgBIAIoCCJBChhFbmFi", + "bGVSZW1vdGVUcmFja1JlcXVlc3QSFAoMdHJhY2tfaGFuZGxlGAEgAigEEg8K", + "B2VuYWJsZWQYAiACKAgiLAoZRW5hYmxlUmVtb3RlVHJhY2tSZXNwb25zZRIP", + "CgdlbmFibGVkGAEgAigIIqwBCiZTZXRUcmFja1N1YnNjcmlwdGlvblBlcm1p", + "c3Npb25zUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASAC", + "KAQSIAoYYWxsX3BhcnRpY2lwYW50c19hbGxvd2VkGAIgAigIEj4KC3Blcm1p", + "c3Npb25zGAMgAygLMikubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudFRyYWNr", + "UGVybWlzc2lvbiJpChpQYXJ0aWNpcGFudFRyYWNrUGVybWlzc2lvbhIcChRw", + "YXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIRCglhbGxvd19hbGwYAiABKAgS", + "GgoSYWxsb3dlZF90cmFja19zaWRzGAMgAygJIikKJ1NldFRyYWNrU3Vic2Ny", + "aXB0aW9uUGVybWlzc2lvbnNSZXNwb25zZSo9CglUcmFja0tpbmQSEAoMS0lO", + "RF9VTktOT1dOEAASDgoKS0lORF9BVURJTxABEg4KCktJTkRfVklERU8QAiqB", + "AQoLVHJhY2tTb3VyY2USEgoOU09VUkNFX1VOS05PV04QABIRCg1TT1VSQ0Vf", + "Q0FNRVJBEAESFQoRU09VUkNFX01JQ1JPUEhPTkUQAhIWChJTT1VSQ0VfU0NS", + "RUVOU0hBUkUQAxIcChhTT1VSQ0VfU0NSRUVOU0hBUkVfQVVESU8QBCpECgtT", + "dHJlYW1TdGF0ZRIRCg1TVEFURV9VTktOT1dOEAASEAoMU1RBVEVfQUNUSVZF", + "EAESEAoMU1RBVEVfUEFVU0VEEAIqvQEKEUF1ZGlvVHJhY2tGZWF0dXJlEg0K", + "CVRGX1NURVJFTxAAEg0KCVRGX05PX0RUWBABEhgKFFRGX0FVVE9fR0FJTl9D", + "T05UUk9MEAISGAoUVEZfRUNIT19DQU5DRUxMQVRJT04QAxIYChRURl9OT0lT", + "RV9TVVBQUkVTU0lPThAEEiIKHlRGX0VOSEFOQ0VEX05PSVNFX0NBTkNFTExB", + "VElPThAFEhgKFFRGX1BSRUNPTk5FQ1RfQlVGRkVSEAZCEKoCDUxpdmVLaXQu", + "UHJvdG8=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.StatsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.TrackKind), typeof(global::LiveKit.Proto.TrackSource), typeof(global::LiveKit.Proto.StreamState), typeof(global::LiveKit.Proto.AudioTrackFeature), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -82,7 +83,7 @@ static TrackReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CreateVideoTrackResponse), global::LiveKit.Proto.CreateVideoTrackResponse.Parser, new[]{ "Track" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CreateAudioTrackRequest), global::LiveKit.Proto.CreateAudioTrackRequest.Parser, new[]{ "Name", "SourceHandle" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CreateAudioTrackResponse), global::LiveKit.Proto.CreateAudioTrackResponse.Parser, new[]{ "Track" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetStatsRequest), global::LiveKit.Proto.GetStatsRequest.Parser, new[]{ "TrackHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetStatsRequest), global::LiveKit.Proto.GetStatsRequest.Parser, new[]{ "TrackHandle", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetStatsResponse), global::LiveKit.Proto.GetStatsResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.GetStatsCallback), global::LiveKit.Proto.GetStatsCallback.Parser, new[]{ "AsyncId", "Error", "Stats" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TrackEvent), global::LiveKit.Proto.TrackEvent.Parser, null, null, null, null, null), @@ -1129,6 +1130,7 @@ public GetStatsRequest() { public GetStatsRequest(GetStatsRequest other) : this() { _hasBits0 = other._hasBits0; trackHandle_ = other.trackHandle_; + requestAsyncId_ = other.requestAsyncId_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -1165,6 +1167,33 @@ public void ClearTrackHandle() { _hasBits0 &= ~1; } + /// Field number for the "request_async_id" field. + public const int RequestAsyncIdFieldNumber = 2; + private readonly static ulong RequestAsyncIdDefaultValue = 0UL; + + private ulong requestAsyncId_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong RequestAsyncId { + get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } } + set { + _hasBits0 |= 2; + requestAsyncId_ = value; + } + } + /// Gets whether the "request_async_id" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasRequestAsyncId { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "request_async_id" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearRequestAsyncId() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -1181,6 +1210,7 @@ public bool Equals(GetStatsRequest other) { return true; } if (TrackHandle != other.TrackHandle) return false; + if (RequestAsyncId != other.RequestAsyncId) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1189,6 +1219,7 @@ public bool Equals(GetStatsRequest other) { public override int GetHashCode() { int hash = 1; if (HasTrackHandle) hash ^= TrackHandle.GetHashCode(); + if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1211,6 +1242,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(TrackHandle); } + if (HasRequestAsyncId) { + output.WriteRawTag(16); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1225,6 +1260,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(8); output.WriteUInt64(TrackHandle); } + if (HasRequestAsyncId) { + output.WriteRawTag(16); + output.WriteUInt64(RequestAsyncId); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1238,6 +1277,9 @@ public int CalculateSize() { if (HasTrackHandle) { size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle); } + if (HasRequestAsyncId) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1253,6 +1295,9 @@ public void MergeFrom(GetStatsRequest other) { if (other.HasTrackHandle) { TrackHandle = other.TrackHandle; } + if (other.HasRequestAsyncId) { + RequestAsyncId = other.RequestAsyncId; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1276,6 +1321,10 @@ public void MergeFrom(pb::CodedInputStream input) { TrackHandle = input.ReadUInt64(); break; } + case 16: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } #endif @@ -1299,6 +1348,10 @@ public void MergeFrom(pb::CodedInputStream input) { TrackHandle = input.ReadUInt64(); break; } + case 16: { + RequestAsyncId = input.ReadUInt64(); + break; + } } } } From 12fbc694bb8b6d945a875efe898be5aa3b57e9f5 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Mon, 9 Mar 2026 14:37:37 -0700 Subject: [PATCH 03/17] Initial implementation --- Runtime/Scripts/DataTrack.cs | 483 ++++++++++++++++++ Runtime/Scripts/DataTrack.cs.meta | 11 + Runtime/Scripts/Internal/FFIClient.cs | 15 + .../Scripts/Internal/FFIClients/FFIEvents.cs | 7 + .../FFIClients/FfiRequestExtensions.cs | 37 ++ Runtime/Scripts/Participant.cs | 94 ++++ Runtime/Scripts/Proto/DataTrack.cs.meta | 11 + Runtime/Scripts/Room.cs | 9 +- 8 files changed, 666 insertions(+), 1 deletion(-) create mode 100644 Runtime/Scripts/DataTrack.cs create mode 100644 Runtime/Scripts/DataTrack.cs.meta create mode 100644 Runtime/Scripts/Proto/DataTrack.cs.meta diff --git a/Runtime/Scripts/DataTrack.cs b/Runtime/Scripts/DataTrack.cs new file mode 100644 index 00000000..c61943f7 --- /dev/null +++ b/Runtime/Scripts/DataTrack.cs @@ -0,0 +1,483 @@ +using System; +using LiveKit.Internal; +using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Proto; +using UnityEngine; + +namespace LiveKit +{ + /// + /// Information about a published data track. + /// + public sealed class DataTrackInfo + { + /// + /// Unique track identifier assigned by the SFU. + /// + /// + /// This identifier may change if a reconnect occurs. Use + /// if a stable identifier is needed. + /// + public string Sid { get; } + + /// + /// Name of the track assigned by the publisher. + /// + public string Name { get; } + + /// + /// Whether or not frames sent on the track use end-to-end encryption. + /// + public bool UsesE2EE { get; } + + internal DataTrackInfo(Proto.DataTrackInfo proto) + { + Sid = proto.Sid; + Name = proto.Name; + UsesE2EE = proto.UsesE2Ee; + } + } + + /// + /// Options for publishing a data track. + /// + public class DataTrackOptions + { + /// + /// The track name is used to identify the track to other participants. + /// Must not be empty and must be unique per publisher. + /// + public string Name { get; set; } + + public DataTrackOptions(string name) + { + Name = name; + } + } + + /// + /// A frame published on a data track, consisting of a payload and optional metadata. + /// + public class DataTrackFrame + { + /// + /// The frame's payload. + /// + public byte[] Payload { get; } + + /// + /// The frame's user timestamp in milliseconds, if one is associated. + /// + public ulong? UserTimestamp { get; } + + /// + /// Creates a new data track frame. + /// + /// The frame's payload. + /// Optional user timestamp in milliseconds. + public DataTrackFrame(byte[] payload, ulong? userTimestamp = null) + { + Payload = payload; + UserTimestamp = userTimestamp; + } + + internal DataTrackFrame(Proto.DataTrackFrame proto) + { + Payload = proto.Payload.ToByteArray(); + UserTimestamp = proto.HasUserTimestamp ? proto.UserTimestamp : null; + } + + private static ulong TimestampNowMs() + { + return (ulong)DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); + } + + /// + /// Associates the current Unix timestamp (in milliseconds) with the frame. + /// Returns a new with the timestamp set; the original is + /// not modified. + /// + /// A new with the current timestamp. + public DataTrackFrame WithUserTimestampNow() + { + return new DataTrackFrame(Payload, TimestampNowMs()); + } + + /// + /// If the frame has a user timestamp, calculates how long has passed + /// relative to the current system time. + /// + /// + /// The timestamp is assumed to be a Unix timestamp in milliseconds + /// (as set by on the publisher side). + /// + /// The elapsed duration in seconds, or null if no timestamp is set. + public double? DurationSinceTimestamp() + { + if (UserTimestamp == null) + return null; + var elapsedMs = TimestampNowMs() - UserTimestamp.Value; + return elapsedMs / 1000.0; + } + } + + /// + /// An error that can occur when pushing a frame to a data track. + /// + /// + /// Pushing a frame can fail for several reasons: + /// + /// The track has been unpublished by the local participant or SFU + /// The room is no longer connected + /// Frames are being pushed too fast + /// + /// + public sealed class PushFrameError : Exception + { + public PushFrameError(string message) : base(message) { } + } + + /// + /// An error that can occur when subscribing to a data track. + /// + public sealed class SubscribeDataTrackError : Exception + { + public SubscribeDataTrackError(string message) : base(message) { } + } + + /// + /// An error that can occur when publishing a data track. + /// + public sealed class PublishDataTrackError : Exception + { + public PublishDataTrackError(string message) : base(message) { } + } + + /// + /// Data track published by the local participant. + /// + public sealed class LocalDataTrack + { + private readonly FfiHandle _handle; + private readonly DataTrackInfo _info; + + internal LocalDataTrack(OwnedLocalDataTrack owned) + { + _handle = FfiHandle.FromOwnedHandle(owned.Handle); + _info = new DataTrackInfo(owned.Info); + } + + /// + /// Information about the data track. + /// + public DataTrackInfo Info => _info; + + /// + /// Try pushing a frame to subscribers of the track. + /// + /// + /// See for how to construct a frame and attach metadata. + /// + /// The data track frame to send. + /// Thrown if the push fails. + public void TryPush(DataTrackFrame frame) + { + using var request = FFIBridge.Instance.NewRequest(); + var pushReq = request.request; + pushReq.TrackHandle = (ulong)_handle.DangerousGetHandle(); + + var protoFrame = new Proto.DataTrackFrame + { + Payload = Google.Protobuf.ByteString.CopyFrom(frame.Payload) + }; + if (frame.UserTimestamp != null) + { + protoFrame.UserTimestamp = frame.UserTimestamp.Value; + } + pushReq.Frame = protoFrame; + + using var response = request.Send(); + FfiResponse res = response; + if (res.LocalDataTrackTryPush.HasError) + { + throw new PushFrameError(res.LocalDataTrackTryPush.Error); + } + } + + /// + /// Whether or not the track is still published. + /// + /// true if the track is published; false otherwise. + public bool IsPublished() + { + using var request = FFIBridge.Instance.NewRequest(); + var isPublishedReq = request.request; + isPublishedReq.TrackHandle = (ulong)_handle.DangerousGetHandle(); + + using var response = request.Send(); + FfiResponse res = response; + return res.LocalDataTrackIsPublished.IsPublished; + } + + /// + /// Unpublishes the track. + /// + public void Unpublish() + { + using var request = FFIBridge.Instance.NewRequest(); + var unpublishReq = request.request; + unpublishReq.TrackHandle = (ulong)_handle.DangerousGetHandle(); + request.Send(); + } + } + + /// + /// Data track published by a remote participant. + /// + public sealed class RemoteDataTrack + { + private readonly FfiHandle _handle; + private readonly DataTrackInfo _info; + private readonly string _publisherIdentity; + + internal RemoteDataTrack(OwnedRemoteDataTrack owned) + { + _handle = FfiHandle.FromOwnedHandle(owned.Handle); + _info = new DataTrackInfo(owned.Info); + _publisherIdentity = owned.PublisherIdentity; + } + + /// + /// Information about the data track. + /// + public DataTrackInfo Info => _info; + + /// + /// Identity of the participant who published the track. + /// + public string PublisherIdentity => _publisherIdentity; + + /// + /// Subscribes to the data track to receive frames. + /// + /// + /// A that completes when the subscription + /// is established or errors. + /// Check and access + /// to handle the result. + /// + public SubscribeDataTrackInstruction Subscribe() + { + using var request = FFIBridge.Instance.NewRequest(); + var subReq = request.request; + subReq.TrackHandle = (ulong)_handle.DangerousGetHandle(); + subReq.Options = new DataTrackSubscribeOptions(); + + using var response = request.Send(); + FfiResponse res = response; + return new SubscribeDataTrackInstruction(res.SubscribeDataTrack.AsyncId); + } + + /// + /// Whether or not the track is still published. + /// + /// true if the track is published; false otherwise. + public bool IsPublished() + { + using var request = FFIBridge.Instance.NewRequest(); + var isPublishedReq = request.request; + isPublishedReq.TrackHandle = (ulong)_handle.DangerousGetHandle(); + + using var response = request.Send(); + FfiResponse res = response; + return res.RemoteDataTrackIsPublished.IsPublished; + } + } + + /// + /// YieldInstruction for . + /// + /// + /// Access after checking . + /// + public sealed class SubscribeDataTrackInstruction : YieldInstruction + { + private ulong _asyncId; + private DataTrackSubscription _subscription; + + internal SubscribeDataTrackInstruction(ulong asyncId) + { + _asyncId = asyncId; + FfiClient.Instance.SubscribeDataTrackReceived += OnSubscribe; + } + + internal void OnSubscribe(SubscribeDataTrackCallback e) + { + if (e.AsyncId != _asyncId) + return; + + switch (e.ResultCase) + { + case SubscribeDataTrackCallback.ResultOneofCase.Error: + Error = new SubscribeDataTrackError(e.Error); + IsError = true; + break; + case SubscribeDataTrackCallback.ResultOneofCase.Subscription: + _subscription = new DataTrackSubscription(e.Subscription); + break; + } + IsDone = true; + FfiClient.Instance.SubscribeDataTrackReceived -= OnSubscribe; + } + + /// + /// The active subscription to the data track. + /// + /// Thrown if the subscription failed. + public DataTrackSubscription Subscription + { + get + { + if (IsError) throw Error; + return _subscription; + } + } + + public SubscribeDataTrackError Error { get; private set; } + } + + /// + /// An active subscription to a remote data track. + /// + /// + /// Use in a coroutine loop to receive frames: + /// + /// while (!subscription.IsEos) + /// { + /// var frameInstruction = subscription.ReadFrame(); + /// yield return frameInstruction; + /// if (frameInstruction.IsCurrentReadDone) + /// { + /// ProcessFrame(frameInstruction.Frame); + /// } + /// } + /// + /// Calling or dropping the subscription unsubscribes from the track. + /// + public sealed class DataTrackSubscription + { + private readonly FfiHandle _handle; + private readonly ulong _handleId; + private ReadFrameInstruction _currentInstruction; + private bool _closed; + + internal DataTrackSubscription(OwnedDataTrackSubscription owned) + { + _handle = FfiHandle.FromOwnedHandle(owned.Handle); + _handleId = owned.Handle.Id; + FfiClient.Instance.DataTrackSubscriptionEventReceived += OnSubscriptionEvent; + } + + /// + /// True if the subscription has ended (end of stream). + /// + public bool IsEos { get; private set; } + + /// + /// Prepares to read the next frame from the subscription. + /// + /// + /// A that completes when a frame is received + /// or the subscription ends. + /// + public ReadFrameInstruction ReadFrame() + { + _currentInstruction = new ReadFrameInstruction(); + return _currentInstruction; + } + + private void OnSubscriptionEvent(DataTrackSubscriptionEvent e) + { + if (e.SubscriptionHandle != _handleId) + return; + + switch (e.DetailCase) + { + case DataTrackSubscriptionEvent.DetailOneofCase.FrameReceived: + if (_currentInstruction != null) + { + _currentInstruction.SetFrame(new DataTrackFrame(e.FrameReceived.Frame)); + } + break; + case DataTrackSubscriptionEvent.DetailOneofCase.Eos: + IsEos = true; + if (_currentInstruction != null) + { + _currentInstruction.SetEos(); + } + Cleanup(); + break; + } + } + + /// + /// Explicitly close the subscription and unsubscribe from the track. + /// + public void Close() + { + if (_closed) return; + Cleanup(); + _handle.Dispose(); + } + + private void Cleanup() + { + if (_closed) return; + _closed = true; + FfiClient.Instance.DataTrackSubscriptionEventReceived -= OnSubscriptionEvent; + } + + /// + /// YieldInstruction for reading a single frame from a . + /// + /// + /// Usage: while is false (i.e. the subscription has not ended), + /// call , yield the instruction, + /// then check and access . + /// + public sealed class ReadFrameInstruction : CustomYieldInstruction + { + private DataTrackFrame _frame; + + internal ReadFrameInstruction() { } + + /// + /// True if the subscription has ended (end of stream). + /// + public bool IsEos { get; private set; } + + /// + /// True if a frame has been received for the current read. + /// + public bool IsCurrentReadDone { get; private set; } + + public override bool keepWaiting => !IsCurrentReadDone && !IsEos; + + internal void SetFrame(DataTrackFrame frame) + { + _frame = frame; + IsCurrentReadDone = true; + } + + internal void SetEos() + { + IsEos = true; + } + + /// + /// The received data track frame. + /// + public DataTrackFrame Frame => _frame; + } + } +} diff --git a/Runtime/Scripts/DataTrack.cs.meta b/Runtime/Scripts/DataTrack.cs.meta new file mode 100644 index 00000000..d3602372 --- /dev/null +++ b/Runtime/Scripts/DataTrack.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aa5b8cb768085410a8bd45eeb569c2ba +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Internal/FFIClient.cs b/Runtime/Scripts/Internal/FFIClient.cs index d037a3bb..77f68c24 100644 --- a/Runtime/Scripts/Internal/FFIClient.cs +++ b/Runtime/Scripts/Internal/FFIClient.cs @@ -64,6 +64,11 @@ internal sealed class FfiClient : IFFIClient public event TextStreamWriterCloseReceivedDelegate? TextStreamWriterCloseReceived; public event SendTextReceivedDelegate? SendTextReceived; + // Data Track + public event PublishDataTrackReceivedDelegate? PublishDataTrackReceived; + public event SubscribeDataTrackReceivedDelegate? SubscribeDataTrackReceived; + public event DataTrackSubscriptionEventReceivedDelegate? DataTrackSubscriptionEventReceived; + public FfiClient() : this(Pools.NewFfiResponsePool(), new ArrayMemoryPool()) { } @@ -333,6 +338,16 @@ static unsafe void FFICallback(UIntPtr data, UIntPtr size) case FfiEvent.MessageOneofCase.SendText: Instance.SendTextReceived?.Invoke(r.SendText!); break; + // Data Track + case FfiEvent.MessageOneofCase.PublishDataTrack: + Instance.PublishDataTrackReceived?.Invoke(r.PublishDataTrack!); + break; + case FfiEvent.MessageOneofCase.SubscribeDataTrack: + Instance.SubscribeDataTrackReceived?.Invoke(r.SubscribeDataTrack!); + break; + case FfiEvent.MessageOneofCase.DataTrackSubscriptionEvent: + Instance.DataTrackSubscriptionEventReceived?.Invoke(r.DataTrackSubscriptionEvent!); + break; case FfiEvent.MessageOneofCase.Panic: break; default: diff --git a/Runtime/Scripts/Internal/FFIClients/FFIEvents.cs b/Runtime/Scripts/Internal/FFIClients/FFIEvents.cs index 94f0b1da..f358ed0c 100644 --- a/Runtime/Scripts/Internal/FFIClients/FFIEvents.cs +++ b/Runtime/Scripts/Internal/FFIClients/FFIEvents.cs @@ -70,4 +70,11 @@ namespace LiveKit.Internal internal delegate void ByteStreamReaderEventReceivedDelegate(ByteStreamReaderEvent e); internal delegate void TextStreamReaderEventReceivedDelegate(TextStreamReaderEvent e); + + // Data Track + internal delegate void PublishDataTrackReceivedDelegate(PublishDataTrackCallback e); + + internal delegate void SubscribeDataTrackReceivedDelegate(SubscribeDataTrackCallback e); + + internal delegate void DataTrackSubscriptionEventReceivedDelegate(DataTrackSubscriptionEvent e); } \ No newline at end of file diff --git a/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs b/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs index 3e19741f..7838dd52 100644 --- a/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs +++ b/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs @@ -146,6 +146,25 @@ public static void Inject(this FfiRequest ffiRequest, T request) case SetRemoteTrackPublicationQualityRequest setRemoteTrackPublicationQualityRequest: ffiRequest.SetRemoteTrackPublicationQuality = setRemoteTrackPublicationQualityRequest; break; + // Data Track + case PublishDataTrackRequest publishDataTrackRequest: + ffiRequest.PublishDataTrack = publishDataTrackRequest; + break; + case LocalDataTrackTryPushRequest localDataTrackTryPushRequest: + ffiRequest.LocalDataTrackTryPush = localDataTrackTryPushRequest; + break; + case LocalDataTrackUnpublishRequest localDataTrackUnpublishRequest: + ffiRequest.LocalDataTrackUnpublish = localDataTrackUnpublishRequest; + break; + case LocalDataTrackIsPublishedRequest localDataTrackIsPublishedRequest: + ffiRequest.LocalDataTrackIsPublished = localDataTrackIsPublishedRequest; + break; + case SubscribeDataTrackRequest subscribeDataTrackRequest: + ffiRequest.SubscribeDataTrack = subscribeDataTrackRequest; + break; + case RemoteDataTrackIsPublishedRequest remoteDataTrackIsPublishedRequest: + ffiRequest.RemoteDataTrackIsPublished = remoteDataTrackIsPublishedRequest; + break; default: throw new Exception($"Unknown request type: {request?.GetType().FullName ?? "null"}"); } @@ -201,6 +220,15 @@ public static void EnsureClean(this FfiRequest request) || request.UnregisterRpcMethod != null || request.PerformRpc != null || request.RpcMethodInvocationResponse != null + || + + // Data Track + request.PublishDataTrack != null + || request.LocalDataTrackTryPush != null + || request.LocalDataTrackUnpublish != null + || request.LocalDataTrackIsPublished != null + || request.SubscribeDataTrack != null + || request.RemoteDataTrackIsPublished != null ) { throw new InvalidOperationException("Request is not cleared"); @@ -257,6 +285,15 @@ public static void EnsureClean(this FfiResponse response) || response.UnregisterRpcMethod != null || response.PerformRpc != null || response.RpcMethodInvocationResponse != null + || + + // Data Track + response.PublishDataTrack != null + || response.LocalDataTrackTryPush != null + || response.LocalDataTrackUnpublish != null + || response.LocalDataTrackIsPublished != null + || response.SubscribeDataTrack != null + || response.RemoteDataTrackIsPublished != null ) { throw new InvalidOperationException("Response is not cleared: "); diff --git a/Runtime/Scripts/Participant.cs b/Runtime/Scripts/Participant.cs index 426d63aa..8be41fe2 100644 --- a/Runtime/Scripts/Participant.cs +++ b/Runtime/Scripts/Participant.cs @@ -541,6 +541,47 @@ public StreamTextInstruction StreamText(string topic) var options = new StreamTextOptions { Topic = topic }; return StreamText(options); } + + /// + /// Publishes a data track. + /// + /// Options for the data track, including the track name. + /// + /// A that completes when the track is published or errors. + /// Check and access + /// to get the published track. + /// Use to send data frames on the track. + /// + public PublishDataTrackInstruction PublishDataTrack(DataTrackOptions options) + { + using var request = FFIBridge.Instance.NewRequest(); + var publishReq = request.request; + publishReq.LocalParticipantHandle = (ulong)Handle.DangerousGetHandle(); + publishReq.Options = new Proto.DataTrackOptions { Name = options.Name }; + + using var response = request.Send(); + FfiResponse res = response; + return new PublishDataTrackInstruction(res.PublishDataTrack.AsyncId); + } + + /// + /// Publishes a data track. + /// + /// The track name used to identify the track to other participants. + /// Must not be empty and must be unique per publisher. + /// + /// Use the overload to set additional options. + /// + /// + /// A that completes when the track is published or errors. + /// Check and access + /// to get the published track. + /// Use to send data frames on the track. + /// + public PublishDataTrackInstruction PublishDataTrack(string name) + { + return PublishDataTrack(new DataTrackOptions(name)); + } } public sealed class RemoteParticipant : Participant @@ -915,4 +956,57 @@ public ByteStreamWriter Writer public StreamError Error { get; private set; } } + + /// + /// YieldInstruction for publishing a data track. Returned by . + /// + /// + /// Access after checking . + /// + public sealed class PublishDataTrackInstruction : YieldInstruction + { + private ulong _asyncId; + private LocalDataTrack _track; + + internal PublishDataTrackInstruction(ulong asyncId) + { + _asyncId = asyncId; + FfiClient.Instance.PublishDataTrackReceived += OnPublishDataTrack; + } + + internal void OnPublishDataTrack(PublishDataTrackCallback e) + { + if (e.AsyncId != _asyncId) + return; + + switch (e.ResultCase) + { + case PublishDataTrackCallback.ResultOneofCase.Error: + Error = new PublishDataTrackError(e.Error); + IsError = true; + break; + case PublishDataTrackCallback.ResultOneofCase.Track: + _track = new LocalDataTrack(e.Track); + break; + } + IsDone = true; + FfiClient.Instance.PublishDataTrackReceived -= OnPublishDataTrack; + } + + /// + /// The published data track. Use to send + /// data frames on the track. + /// + /// Thrown if the publish operation failed. + public LocalDataTrack Track + { + get + { + if (IsError) throw Error; + return _track; + } + } + + public PublishDataTrackError Error { get; private set; } + } } diff --git a/Runtime/Scripts/Proto/DataTrack.cs.meta b/Runtime/Scripts/Proto/DataTrack.cs.meta new file mode 100644 index 00000000..c0cd2e4a --- /dev/null +++ b/Runtime/Scripts/Proto/DataTrack.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5bb8f4b61313248248b43d1323a2756b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Room.cs b/Runtime/Scripts/Room.cs index d4ec1280..8ce87ece 100644 --- a/Runtime/Scripts/Room.cs +++ b/Runtime/Scripts/Room.cs @@ -126,6 +126,7 @@ public class Room public delegate void ConnectionStateChangeDelegate(ConnectionState connectionState); public delegate void ConnectionDelegate(Room room); public delegate void E2EeStateChangedDelegate(Participant participant, EncryptionState state); + public delegate void RemoteDataTrackPublishedDelegate(RemoteDataTrack track); public string Sid { private set; get; } public string Name { private set; get; } @@ -161,6 +162,7 @@ public class Room public event ParticipantDelegate ParticipantMetadataChanged; public event ParticipantDelegate ParticipantNameChanged; public event ParticipantDelegate ParticipantAttributesChanged; + public event RemoteDataTrackPublishedDelegate RemoteDataTrackPublished; public ConnectInstruction Connect(string url, string token, RoomOptions options) { @@ -501,10 +503,15 @@ internal void OnEventReceived(RoomEvent e) break; case RoomEvent.MessageOneofCase.Moved: { - // Participants moved to new room. UpdateFromInfo(e.Moved); } break; + case RoomEvent.MessageOneofCase.RemoteDataTrackPublished: + { + var track = new RemoteDataTrack(e.RemoteDataTrackPublished.Track); + RemoteDataTrackPublished?.Invoke(track); + } + break; } } From 07a5625b25e9a2c7c49e43704cccf9787f5027c5 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Mon, 9 Mar 2026 15:05:35 -0700 Subject: [PATCH 04/17] End-to-end tests --- Tests/PlayMode/DataTrackTests.cs | 294 ++++++++++++++++++++++++++ Tests/PlayMode/DataTrackTests.cs.meta | 11 + 2 files changed, 305 insertions(+) create mode 100644 Tests/PlayMode/DataTrackTests.cs create mode 100644 Tests/PlayMode/DataTrackTests.cs.meta diff --git a/Tests/PlayMode/DataTrackTests.cs b/Tests/PlayMode/DataTrackTests.cs new file mode 100644 index 00000000..7ddb178d --- /dev/null +++ b/Tests/PlayMode/DataTrackTests.cs @@ -0,0 +1,294 @@ +using System.Collections; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.TestTools; +using LiveKit.PlayModeTests.Utils; + +namespace LiveKit.PlayModeTests +{ + public class DataTrackTests + { + [UnityTest, Category("E2E")] + public IEnumerator PublishDataTrack_Succeeds() + { + using var context = new TestRoomContext(); + yield return context.ConnectAll(); + if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + + var room = context.Rooms[0]; + var publishInstruction = room.LocalParticipant.PublishDataTrack("test-track"); + yield return publishInstruction; + + Assert.IsFalse(publishInstruction.IsError, "PublishDataTrack should not error"); + Assert.IsNotNull(publishInstruction.Track); + } + + [UnityTest, Category("E2E")] + public IEnumerator PublishDataTrack_TrackInfoMatchesOptions() + { + using var context = new TestRoomContext(); + yield return context.ConnectAll(); + if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + + var room = context.Rooms[0]; + var publishInstruction = room.LocalParticipant.PublishDataTrack("my-sensor"); + yield return publishInstruction; + + Assert.IsFalse(publishInstruction.IsError); + var track = publishInstruction.Track; + Assert.AreEqual("my-sensor", track.Info.Name); + } + + [UnityTest, Category("E2E")] + public IEnumerator PublishDataTrack_IsPublishedReturnsTrue() + { + using var context = new TestRoomContext(); + yield return context.ConnectAll(); + if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + + var room = context.Rooms[0]; + var publishInstruction = room.LocalParticipant.PublishDataTrack("test-track"); + yield return publishInstruction; + + Assert.IsFalse(publishInstruction.IsError); + Assert.IsTrue(publishInstruction.Track.IsPublished()); + } + + [UnityTest, Category("E2E")] + public IEnumerator TryPush_Succeeds() + { + using var context = new TestRoomContext(); + yield return context.ConnectAll(); + if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + + var room = context.Rooms[0]; + var publishInstruction = room.LocalParticipant.PublishDataTrack("test-track"); + yield return publishInstruction; + + Assert.IsFalse(publishInstruction.IsError); + var track = publishInstruction.Track; + + Assert.DoesNotThrow(() => + { + track.TryPush(new DataTrackFrame(new byte[] { 0x01, 0x02, 0x03 })); + }); + } + + [UnityTest, Category("E2E")] + public IEnumerator Unpublish_IsPublishedReturnsFalse() + { + using var context = new TestRoomContext(); + yield return context.ConnectAll(); + if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + + var room = context.Rooms[0]; + var publishInstruction = room.LocalParticipant.PublishDataTrack("test-track"); + yield return publishInstruction; + + Assert.IsFalse(publishInstruction.IsError); + var track = publishInstruction.Track; + Assert.IsTrue(track.IsPublished()); + + track.Unpublish(); + Assert.IsFalse(track.IsPublished()); + } + + [UnityTest, Category("E2E")] + public IEnumerator RemoteDataTrackPublished_TriggersEvent() + { + var publisher = TestRoomContext.ConnectionOptions.Default; + publisher.Identity = "publisher"; + var subscriber = TestRoomContext.ConnectionOptions.Default; + subscriber.Identity = "subscriber"; + + using var context = new TestRoomContext(new[] { publisher, subscriber }); + yield return context.ConnectAll(); + if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + + var subscriberRoom = context.Rooms[1]; + var expectation = new Expectation(timeoutSeconds: 10f); + + subscriberRoom.RemoteDataTrackPublished += (track) => + { + if (track.Info.Name == "shared-track" && track.PublisherIdentity == publisher.Identity) + expectation.Fulfill(); + else + expectation.Fail($"Unexpected track: name={track.Info.Name}, publisher={track.PublisherIdentity}"); + }; + + var publisherRoom = context.Rooms[0]; + var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack("shared-track"); + yield return publishInstruction; + if (publishInstruction.IsError) + Assert.Fail($"Failed to publish: {publishInstruction.Error.Message}"); + + yield return expectation.Wait(); + if (expectation.Error != null) Assert.Fail(expectation.Error); + } + + [UnityTest, Category("E2E")] + public IEnumerator Subscribe_Succeeds() + { + var publisher = TestRoomContext.ConnectionOptions.Default; + publisher.Identity = "publisher"; + var subscriber = TestRoomContext.ConnectionOptions.Default; + subscriber.Identity = "subscriber"; + + using var context = new TestRoomContext(new[] { publisher, subscriber }); + yield return context.ConnectAll(); + if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + + var subscriberRoom = context.Rooms[1]; + var trackExpectation = new Expectation(timeoutSeconds: 10f); + RemoteDataTrack remoteTrack = null; + + subscriberRoom.RemoteDataTrackPublished += (track) => + { + remoteTrack = track; + trackExpectation.Fulfill(); + }; + + var publisherRoom = context.Rooms[0]; + var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack("sub-test"); + yield return publishInstruction; + if (publishInstruction.IsError) + Assert.Fail($"Failed to publish: {publishInstruction.Error.Message}"); + + yield return trackExpectation.Wait(); + if (trackExpectation.Error != null) Assert.Fail(trackExpectation.Error); + + var subInstruction = remoteTrack.Subscribe(); + yield return subInstruction; + + Assert.IsFalse(subInstruction.IsError, "Subscribe should not error"); + Assert.IsNotNull(subInstruction.Subscription); + } + + [UnityTest, Category("E2E")] + public IEnumerator PushAndReceive_FramePayloadMatches() + { + var publisher = TestRoomContext.ConnectionOptions.Default; + publisher.Identity = "publisher"; + var subscriber = TestRoomContext.ConnectionOptions.Default; + subscriber.Identity = "subscriber"; + + using var context = new TestRoomContext(new[] { publisher, subscriber }); + yield return context.ConnectAll(); + if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + + var subscriberRoom = context.Rooms[1]; + var trackExpectation = new Expectation(timeoutSeconds: 10f); + RemoteDataTrack remoteTrack = null; + + subscriberRoom.RemoteDataTrackPublished += (track) => + { + remoteTrack = track; + trackExpectation.Fulfill(); + }; + + var publisherRoom = context.Rooms[0]; + var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack("payload-test"); + yield return publishInstruction; + if (publishInstruction.IsError) + Assert.Fail($"Failed to publish: {publishInstruction.Error.Message}"); + + yield return trackExpectation.Wait(); + if (trackExpectation.Error != null) Assert.Fail(trackExpectation.Error); + + var subInstruction = remoteTrack.Subscribe(); + yield return subInstruction; + if (subInstruction.IsError) + Assert.Fail($"Failed to subscribe: {subInstruction.Error.Message}"); + + var subscription = subInstruction.Subscription; + + var sentPayload = new byte[] { 0xDE, 0xAD, 0xBE, 0xEF }; + publishInstruction.Track.TryPush(new DataTrackFrame(sentPayload)); + + var frameInstruction = subscription.ReadFrame(); + yield return frameInstruction; + + Assert.IsTrue(frameInstruction.IsCurrentReadDone, "Should have received a frame"); + Assert.AreEqual(sentPayload, frameInstruction.Frame.Payload); + } + + [UnityTest, Category("E2E")] + public IEnumerator PushAndReceive_TimestampIsPreserved() + { + var publisher = TestRoomContext.ConnectionOptions.Default; + publisher.Identity = "publisher"; + var subscriber = TestRoomContext.ConnectionOptions.Default; + subscriber.Identity = "subscriber"; + + using var context = new TestRoomContext(new[] { publisher, subscriber }); + yield return context.ConnectAll(); + if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + + var subscriberRoom = context.Rooms[1]; + var trackExpectation = new Expectation(timeoutSeconds: 10f); + RemoteDataTrack remoteTrack = null; + + subscriberRoom.RemoteDataTrackPublished += (track) => + { + remoteTrack = track; + trackExpectation.Fulfill(); + }; + + var publisherRoom = context.Rooms[0]; + var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack("ts-test"); + yield return publishInstruction; + if (publishInstruction.IsError) + Assert.Fail($"Failed to publish: {publishInstruction.Error.Message}"); + + yield return trackExpectation.Wait(); + if (trackExpectation.Error != null) Assert.Fail(trackExpectation.Error); + + var subInstruction = remoteTrack.Subscribe(); + yield return subInstruction; + if (subInstruction.IsError) + Assert.Fail($"Failed to subscribe: {subInstruction.Error.Message}"); + + var subscription = subInstruction.Subscription; + + var frame = new DataTrackFrame(new byte[] { 0x01 }).WithUserTimestampNow(); + publishInstruction.Track.TryPush(frame); + + var frameInstruction = subscription.ReadFrame(); + yield return frameInstruction; + + Assert.IsTrue(frameInstruction.IsCurrentReadDone, "Should have received a frame"); + Assert.IsNotNull(frameInstruction.Frame.UserTimestamp, "Timestamp should be preserved"); + + var latency = frameInstruction.Frame.DurationSinceTimestamp(); + Assert.IsNotNull(latency); + Assert.Less(latency.Value, 5.0, "Latency should be reasonable"); + } + + [Test] + public void DataTrackFrame_WithUserTimestampNow_SetsTimestamp() + { + var frame = new DataTrackFrame(new byte[] { 0x01, 0x02 }); + Assert.IsNull(frame.UserTimestamp); + + var stamped = frame.WithUserTimestampNow(); + Assert.IsNotNull(stamped.UserTimestamp); + Assert.AreEqual(frame.Payload, stamped.Payload); + } + + [Test] + public void DataTrackFrame_DurationSinceTimestamp_NullWithoutTimestamp() + { + var frame = new DataTrackFrame(new byte[] { 0x01 }); + Assert.IsNull(frame.DurationSinceTimestamp()); + } + + [Test] + public void DataTrackFrame_DurationSinceTimestamp_ReturnsValue() + { + var frame = new DataTrackFrame(new byte[] { 0x01 }).WithUserTimestampNow(); + var duration = frame.DurationSinceTimestamp(); + Assert.IsNotNull(duration); + Assert.GreaterOrEqual(duration.Value, 0.0); + } + } +} diff --git a/Tests/PlayMode/DataTrackTests.cs.meta b/Tests/PlayMode/DataTrackTests.cs.meta new file mode 100644 index 00000000..61e8b16f --- /dev/null +++ b/Tests/PlayMode/DataTrackTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8774d5b919bdc49f4b50e9365781b7e0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 87f25f22216429409bd8241bc367da4a669d7cd4 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Wed, 11 Mar 2026 14:27:57 -0700 Subject: [PATCH 05/17] Clean up --- Runtime/Scripts/DataTrack.cs | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/Runtime/Scripts/DataTrack.cs b/Runtime/Scripts/DataTrack.cs index c61943f7..778f5606 100644 --- a/Runtime/Scripts/DataTrack.cs +++ b/Runtime/Scripts/DataTrack.cs @@ -311,19 +311,19 @@ internal SubscribeDataTrackInstruction(ulong asyncId) FfiClient.Instance.SubscribeDataTrackReceived += OnSubscribe; } - internal void OnSubscribe(SubscribeDataTrackCallback e) + internal void OnSubscribe(SubscribeDataTrackCallback callback) { - if (e.AsyncId != _asyncId) + if (callback.AsyncId != _asyncId) return; - switch (e.ResultCase) + switch (callback.ResultCase) { case SubscribeDataTrackCallback.ResultOneofCase.Error: - Error = new SubscribeDataTrackError(e.Error); + Error = new SubscribeDataTrackError(callback.Error); IsError = true; break; case SubscribeDataTrackCallback.ResultOneofCase.Subscription: - _subscription = new DataTrackSubscription(e.Subscription); + _subscription = new DataTrackSubscription(callback.Subscription); break; } IsDone = true; @@ -396,25 +396,19 @@ public ReadFrameInstruction ReadFrame() return _currentInstruction; } - private void OnSubscriptionEvent(DataTrackSubscriptionEvent e) + private void OnSubscriptionEvent(DataTrackSubscriptionEvent callback) { - if (e.SubscriptionHandle != _handleId) + if (callback.SubscriptionHandle != _handleId) return; - switch (e.DetailCase) + switch (callback.DetailCase) { case DataTrackSubscriptionEvent.DetailOneofCase.FrameReceived: - if (_currentInstruction != null) - { - _currentInstruction.SetFrame(new DataTrackFrame(e.FrameReceived.Frame)); - } + _currentInstruction?.SetFrame(new DataTrackFrame(callback.FrameReceived.Frame)); break; case DataTrackSubscriptionEvent.DetailOneofCase.Eos: IsEos = true; - if (_currentInstruction != null) - { - _currentInstruction.SetEos(); - } + _currentInstruction?.SetEos(); Cleanup(); break; } From fa069a0d5accfa22eca4c70a04dc45395c3a3c2a Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Wed, 11 Mar 2026 14:35:59 -0700 Subject: [PATCH 06/17] No hardcoded track names in tests --- Tests/PlayMode/DataTrackTests.cs | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/Tests/PlayMode/DataTrackTests.cs b/Tests/PlayMode/DataTrackTests.cs index 7ddb178d..6eaeba94 100644 --- a/Tests/PlayMode/DataTrackTests.cs +++ b/Tests/PlayMode/DataTrackTests.cs @@ -8,6 +8,8 @@ namespace LiveKit.PlayModeTests { public class DataTrackTests { + const string TestTrackName = "test-track"; + [UnityTest, Category("E2E")] public IEnumerator PublishDataTrack_Succeeds() { @@ -16,7 +18,7 @@ public IEnumerator PublishDataTrack_Succeeds() if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); var room = context.Rooms[0]; - var publishInstruction = room.LocalParticipant.PublishDataTrack("test-track"); + var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; Assert.IsFalse(publishInstruction.IsError, "PublishDataTrack should not error"); @@ -31,12 +33,12 @@ public IEnumerator PublishDataTrack_TrackInfoMatchesOptions() if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); var room = context.Rooms[0]; - var publishInstruction = room.LocalParticipant.PublishDataTrack("my-sensor"); + var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; Assert.IsFalse(publishInstruction.IsError); var track = publishInstruction.Track; - Assert.AreEqual("my-sensor", track.Info.Name); + Assert.AreEqual(TestTrackName, track.Info.Name); } [UnityTest, Category("E2E")] @@ -47,7 +49,7 @@ public IEnumerator PublishDataTrack_IsPublishedReturnsTrue() if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); var room = context.Rooms[0]; - var publishInstruction = room.LocalParticipant.PublishDataTrack("test-track"); + var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; Assert.IsFalse(publishInstruction.IsError); @@ -62,7 +64,7 @@ public IEnumerator TryPush_Succeeds() if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); var room = context.Rooms[0]; - var publishInstruction = room.LocalParticipant.PublishDataTrack("test-track"); + var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; Assert.IsFalse(publishInstruction.IsError); @@ -82,7 +84,7 @@ public IEnumerator Unpublish_IsPublishedReturnsFalse() if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); var room = context.Rooms[0]; - var publishInstruction = room.LocalParticipant.PublishDataTrack("test-track"); + var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; Assert.IsFalse(publishInstruction.IsError); @@ -110,14 +112,14 @@ public IEnumerator RemoteDataTrackPublished_TriggersEvent() subscriberRoom.RemoteDataTrackPublished += (track) => { - if (track.Info.Name == "shared-track" && track.PublisherIdentity == publisher.Identity) + if (track.Info.Name == TestTrackName && track.PublisherIdentity == publisher.Identity) expectation.Fulfill(); else expectation.Fail($"Unexpected track: name={track.Info.Name}, publisher={track.PublisherIdentity}"); }; var publisherRoom = context.Rooms[0]; - var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack("shared-track"); + var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; if (publishInstruction.IsError) Assert.Fail($"Failed to publish: {publishInstruction.Error.Message}"); @@ -149,7 +151,7 @@ public IEnumerator Subscribe_Succeeds() }; var publisherRoom = context.Rooms[0]; - var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack("sub-test"); + var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; if (publishInstruction.IsError) Assert.Fail($"Failed to publish: {publishInstruction.Error.Message}"); @@ -187,7 +189,7 @@ public IEnumerator PushAndReceive_FramePayloadMatches() }; var publisherRoom = context.Rooms[0]; - var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack("payload-test"); + var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; if (publishInstruction.IsError) Assert.Fail($"Failed to publish: {publishInstruction.Error.Message}"); @@ -235,7 +237,7 @@ public IEnumerator PushAndReceive_TimestampIsPreserved() }; var publisherRoom = context.Rooms[0]; - var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack("ts-test"); + var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; if (publishInstruction.IsError) Assert.Fail($"Failed to publish: {publishInstruction.Error.Message}"); From b3d52873a620fcb711c2a991ab1ff4584da23747 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Wed, 11 Mar 2026 14:50:27 -0700 Subject: [PATCH 07/17] Use assertions instead of branches --- Tests/PlayMode/DataTrackTests.cs | 57 +++++++++++++++----------------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/Tests/PlayMode/DataTrackTests.cs b/Tests/PlayMode/DataTrackTests.cs index 6eaeba94..23c8d477 100644 --- a/Tests/PlayMode/DataTrackTests.cs +++ b/Tests/PlayMode/DataTrackTests.cs @@ -15,13 +15,13 @@ public IEnumerator PublishDataTrack_Succeeds() { using var context = new TestRoomContext(); yield return context.ConnectAll(); - if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + Assert.IsNull(context.ConnectionError); var room = context.Rooms[0]; var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; - Assert.IsFalse(publishInstruction.IsError, "PublishDataTrack should not error"); + Assert.IsFalse(publishInstruction.IsError); Assert.IsNotNull(publishInstruction.Track); } @@ -30,7 +30,7 @@ public IEnumerator PublishDataTrack_TrackInfoMatchesOptions() { using var context = new TestRoomContext(); yield return context.ConnectAll(); - if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + Assert.IsNull(context.ConnectionError); var room = context.Rooms[0]; var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName); @@ -46,7 +46,7 @@ public IEnumerator PublishDataTrack_IsPublishedReturnsTrue() { using var context = new TestRoomContext(); yield return context.ConnectAll(); - if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + Assert.IsNull(context.ConnectionError); var room = context.Rooms[0]; var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName); @@ -61,7 +61,7 @@ public IEnumerator TryPush_Succeeds() { using var context = new TestRoomContext(); yield return context.ConnectAll(); - if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + Assert.IsNull(context.ConnectionError); var room = context.Rooms[0]; var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName); @@ -81,7 +81,7 @@ public IEnumerator Unpublish_IsPublishedReturnsFalse() { using var context = new TestRoomContext(); yield return context.ConnectAll(); - if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + Assert.IsNull(context.ConnectionError); var room = context.Rooms[0]; var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName); @@ -105,27 +105,27 @@ public IEnumerator RemoteDataTrackPublished_TriggersEvent() using var context = new TestRoomContext(new[] { publisher, subscriber }); yield return context.ConnectAll(); - if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + Assert.IsNull(context.ConnectionError); var subscriberRoom = context.Rooms[1]; var expectation = new Expectation(timeoutSeconds: 10f); + RemoteDataTrack receivedTrack = null; subscriberRoom.RemoteDataTrackPublished += (track) => { - if (track.Info.Name == TestTrackName && track.PublisherIdentity == publisher.Identity) - expectation.Fulfill(); - else - expectation.Fail($"Unexpected track: name={track.Info.Name}, publisher={track.PublisherIdentity}"); + receivedTrack = track; + expectation.Fulfill(); }; var publisherRoom = context.Rooms[0]; var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; - if (publishInstruction.IsError) - Assert.Fail($"Failed to publish: {publishInstruction.Error.Message}"); + Assert.IsFalse(publishInstruction.IsError); yield return expectation.Wait(); - if (expectation.Error != null) Assert.Fail(expectation.Error); + Assert.IsNull(expectation.Error); + Assert.AreEqual(TestTrackName, receivedTrack.Info.Name); + Assert.AreEqual(publisher.Identity, receivedTrack.PublisherIdentity); } [UnityTest, Category("E2E")] @@ -138,7 +138,7 @@ public IEnumerator Subscribe_Succeeds() using var context = new TestRoomContext(new[] { publisher, subscriber }); yield return context.ConnectAll(); - if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + Assert.IsNull(context.ConnectionError); var subscriberRoom = context.Rooms[1]; var trackExpectation = new Expectation(timeoutSeconds: 10f); @@ -153,16 +153,15 @@ public IEnumerator Subscribe_Succeeds() var publisherRoom = context.Rooms[0]; var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; - if (publishInstruction.IsError) - Assert.Fail($"Failed to publish: {publishInstruction.Error.Message}"); + Assert.IsFalse(publishInstruction.IsError); yield return trackExpectation.Wait(); - if (trackExpectation.Error != null) Assert.Fail(trackExpectation.Error); + Assert.IsNull(trackExpectation.Error); var subInstruction = remoteTrack.Subscribe(); yield return subInstruction; - Assert.IsFalse(subInstruction.IsError, "Subscribe should not error"); + Assert.IsFalse(subInstruction.IsError); Assert.IsNotNull(subInstruction.Subscription); } @@ -176,7 +175,7 @@ public IEnumerator PushAndReceive_FramePayloadMatches() using var context = new TestRoomContext(new[] { publisher, subscriber }); yield return context.ConnectAll(); - if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + Assert.IsNull(context.ConnectionError); var subscriberRoom = context.Rooms[1]; var trackExpectation = new Expectation(timeoutSeconds: 10f); @@ -191,16 +190,14 @@ public IEnumerator PushAndReceive_FramePayloadMatches() var publisherRoom = context.Rooms[0]; var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; - if (publishInstruction.IsError) - Assert.Fail($"Failed to publish: {publishInstruction.Error.Message}"); + Assert.IsFalse(publishInstruction.IsError); yield return trackExpectation.Wait(); - if (trackExpectation.Error != null) Assert.Fail(trackExpectation.Error); + Assert.IsNull(trackExpectation.Error); var subInstruction = remoteTrack.Subscribe(); yield return subInstruction; - if (subInstruction.IsError) - Assert.Fail($"Failed to subscribe: {subInstruction.Error.Message}"); + Assert.IsFalse(subInstruction.IsError); var subscription = subInstruction.Subscription; @@ -224,7 +221,7 @@ public IEnumerator PushAndReceive_TimestampIsPreserved() using var context = new TestRoomContext(new[] { publisher, subscriber }); yield return context.ConnectAll(); - if (context.ConnectionError != null) Assert.Fail(context.ConnectionError); + Assert.IsNull(context.ConnectionError); var subscriberRoom = context.Rooms[1]; var trackExpectation = new Expectation(timeoutSeconds: 10f); @@ -239,16 +236,14 @@ public IEnumerator PushAndReceive_TimestampIsPreserved() var publisherRoom = context.Rooms[0]; var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack(TestTrackName); yield return publishInstruction; - if (publishInstruction.IsError) - Assert.Fail($"Failed to publish: {publishInstruction.Error.Message}"); + Assert.IsFalse(publishInstruction.IsError); yield return trackExpectation.Wait(); - if (trackExpectation.Error != null) Assert.Fail(trackExpectation.Error); + Assert.IsNull(trackExpectation.Error); var subInstruction = remoteTrack.Subscribe(); yield return subInstruction; - if (subInstruction.IsError) - Assert.Fail($"Failed to subscribe: {subInstruction.Error.Message}"); + Assert.IsFalse(subInstruction.IsError); var subscription = subInstruction.Subscription; From b927e09328e484b102e5eb0bf37e91cd83ce2ef9 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Wed, 11 Mar 2026 15:00:47 -0700 Subject: [PATCH 08/17] Remove unused import --- Tests/PlayMode/DataTrackTests.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Tests/PlayMode/DataTrackTests.cs b/Tests/PlayMode/DataTrackTests.cs index 23c8d477..35e15341 100644 --- a/Tests/PlayMode/DataTrackTests.cs +++ b/Tests/PlayMode/DataTrackTests.cs @@ -1,6 +1,5 @@ using System.Collections; using NUnit.Framework; -using UnityEngine; using UnityEngine.TestTools; using LiveKit.PlayModeTests.Utils; From 499f6cc2e421d9c3ecee3db433214c114de091a9 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Wed, 11 Mar 2026 15:03:32 -0700 Subject: [PATCH 09/17] Enable data tracks flag in CI --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b2f8dd56..7ce1b2ad 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: - name: Install LiveKit Server run: curl -sSL https://get.livekit.io | bash - name: Run LiveKit Server - run: livekit-server --dev & + run: 'LIVEKIT_CONFIG="enable_data_tracks: true" livekit-server --dev &' - name: Run Tests uses: game-ci/unity-test-runner@v4 id: testRunner From 7f1dc8c8aacdf0fda9adc77371255e6405cd0d90 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Tue, 24 Mar 2026 12:39:51 -0700 Subject: [PATCH 10/17] Pin submodule --- client-sdk-rust~ | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client-sdk-rust~ b/client-sdk-rust~ index 5150309f..132ed05c 160000 --- a/client-sdk-rust~ +++ b/client-sdk-rust~ @@ -1 +1 @@ -Subproject commit 5150309fd69f660d61c0b858921ae446ba6c2530 +Subproject commit 132ed05c1335c753a624169b8183bbab48bfeb47 From 4017e3985287e32436ccb86c528a51d712c6151e Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Tue, 24 Mar 2026 12:40:28 -0700 Subject: [PATCH 11/17] Generate proto --- Runtime/Scripts/Proto/AudioFrame.cs | 332 +++++--- Runtime/Scripts/Proto/DataTrack.cs | 491 ++++++++++- Runtime/Scripts/Proto/E2Ee.cs | 249 ++++-- Runtime/Scripts/Proto/Ffi.cs | 504 +++++++----- Runtime/Scripts/Proto/Participant.cs | 5 +- Runtime/Scripts/Proto/Room.cs | 1128 ++++++++++++++++++-------- Runtime/Scripts/Proto/VideoFrame.cs | 161 ++-- 7 files changed, 2074 insertions(+), 796 deletions(-) diff --git a/Runtime/Scripts/Proto/AudioFrame.cs b/Runtime/Scripts/Proto/AudioFrame.cs index fe8255c8..2a9e3906 100644 --- a/Runtime/Scripts/Proto/AudioFrame.cs +++ b/Runtime/Scripts/Proto/AudioFrame.cs @@ -25,121 +25,123 @@ static AudioFrameReflection() { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "ChFhdWRpb19mcmFtZS5wcm90bxINbGl2ZWtpdC5wcm90bxoMaGFuZGxlLnBy", - "b3RvGgt0cmFjay5wcm90byLbAQoVTmV3QXVkaW9TdHJlYW1SZXF1ZXN0EhQK", + "b3RvGgt0cmFjay5wcm90byL2AQoVTmV3QXVkaW9TdHJlYW1SZXF1ZXN0EhQK", "DHRyYWNrX2hhbmRsZRgBIAIoBBIsCgR0eXBlGAIgAigOMh4ubGl2ZWtpdC5w", "cm90by5BdWRpb1N0cmVhbVR5cGUSEwoLc2FtcGxlX3JhdGUYAyABKA0SFAoM", "bnVtX2NoYW5uZWxzGAQgASgNEh4KFmF1ZGlvX2ZpbHRlcl9tb2R1bGVfaWQY", "BSABKAkSHAoUYXVkaW9fZmlsdGVyX29wdGlvbnMYBiABKAkSFQoNZnJhbWVf", - "c2l6ZV9tcxgHIAEoDSJJChZOZXdBdWRpb1N0cmVhbVJlc3BvbnNlEi8KBnN0", - "cmVhbRgBIAIoCzIfLmxpdmVraXQucHJvdG8uT3duZWRBdWRpb1N0cmVhbSKf", - "AgohQXVkaW9TdHJlYW1Gcm9tUGFydGljaXBhbnRSZXF1ZXN0EhoKEnBhcnRp", - "Y2lwYW50X2hhbmRsZRgBIAIoBBIsCgR0eXBlGAIgAigOMh4ubGl2ZWtpdC5w", - "cm90by5BdWRpb1N0cmVhbVR5cGUSMAoMdHJhY2tfc291cmNlGAMgASgOMhou", - "bGl2ZWtpdC5wcm90by5UcmFja1NvdXJjZRITCgtzYW1wbGVfcmF0ZRgFIAEo", - "DRIUCgxudW1fY2hhbm5lbHMYBiABKA0SHgoWYXVkaW9fZmlsdGVyX21vZHVs", - "ZV9pZBgHIAEoCRIcChRhdWRpb19maWx0ZXJfb3B0aW9ucxgIIAEoCRIVCg1m", - "cmFtZV9zaXplX21zGAkgASgNIlUKIkF1ZGlvU3RyZWFtRnJvbVBhcnRpY2lw", - "YW50UmVzcG9uc2USLwoGc3RyZWFtGAEgAigLMh8ubGl2ZWtpdC5wcm90by5P", - "d25lZEF1ZGlvU3RyZWFtIrsBChVOZXdBdWRpb1NvdXJjZVJlcXVlc3QSLAoE", - "dHlwZRgBIAIoDjIeLmxpdmVraXQucHJvdG8uQXVkaW9Tb3VyY2VUeXBlEjIK", - "B29wdGlvbnMYAiABKAsyIS5saXZla2l0LnByb3RvLkF1ZGlvU291cmNlT3B0", - "aW9ucxITCgtzYW1wbGVfcmF0ZRgDIAIoDRIUCgxudW1fY2hhbm5lbHMYBCAC", - "KA0SFQoNcXVldWVfc2l6ZV9tcxgFIAEoDSJJChZOZXdBdWRpb1NvdXJjZVJl", - "c3BvbnNlEi8KBnNvdXJjZRgBIAIoCzIfLmxpdmVraXQucHJvdG8uT3duZWRB", - "dWRpb1NvdXJjZSKAAQoYQ2FwdHVyZUF1ZGlvRnJhbWVSZXF1ZXN0EhUKDXNv", - "dXJjZV9oYW5kbGUYASACKAQSMwoGYnVmZmVyGAIgAigLMiMubGl2ZWtpdC5w", - "cm90by5BdWRpb0ZyYW1lQnVmZmVySW5mbxIYChByZXF1ZXN0X2FzeW5jX2lk", - "GAMgASgEIi0KGUNhcHR1cmVBdWRpb0ZyYW1lUmVzcG9uc2USEAoIYXN5bmNf", - "aWQYASACKAQiPAoZQ2FwdHVyZUF1ZGlvRnJhbWVDYWxsYmFjaxIQCghhc3lu", - "Y19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSIwChdDbGVhckF1ZGlvQnVmZmVy", - "UmVxdWVzdBIVCg1zb3VyY2VfaGFuZGxlGAEgAigEIhoKGENsZWFyQXVkaW9C", - "dWZmZXJSZXNwb25zZSIaChhOZXdBdWRpb1Jlc2FtcGxlclJlcXVlc3QiUgoZ", - "TmV3QXVkaW9SZXNhbXBsZXJSZXNwb25zZRI1CglyZXNhbXBsZXIYASACKAsy", - "Ii5saXZla2l0LnByb3RvLk93bmVkQXVkaW9SZXNhbXBsZXIikwEKF1JlbWl4", - "QW5kUmVzYW1wbGVSZXF1ZXN0EhgKEHJlc2FtcGxlcl9oYW5kbGUYASACKAQS", - "MwoGYnVmZmVyGAIgAigLMiMubGl2ZWtpdC5wcm90by5BdWRpb0ZyYW1lQnVm", - "ZmVySW5mbxIUCgxudW1fY2hhbm5lbHMYAyACKA0SEwoLc2FtcGxlX3JhdGUY", - "BCACKA0iUAoYUmVtaXhBbmRSZXNhbXBsZVJlc3BvbnNlEjQKBmJ1ZmZlchgB", - "IAIoCzIkLmxpdmVraXQucHJvdG8uT3duZWRBdWRpb0ZyYW1lQnVmZmVyIpUB", - "Cg1OZXdBcG1SZXF1ZXN0Eh4KFmVjaG9fY2FuY2VsbGVyX2VuYWJsZWQYASAC", - "KAgSHwoXZ2Fpbl9jb250cm9sbGVyX2VuYWJsZWQYAiACKAgSIAoYaGlnaF9w", - "YXNzX2ZpbHRlcl9lbmFibGVkGAMgAigIEiEKGW5vaXNlX3N1cHByZXNzaW9u", - "X2VuYWJsZWQYBCACKAgiNgoOTmV3QXBtUmVzcG9uc2USJAoDYXBtGAEgAigL", - "MhcubGl2ZWtpdC5wcm90by5Pd25lZEFwbSJ4ChdBcG1Qcm9jZXNzU3RyZWFt", - "UmVxdWVzdBISCgphcG1faGFuZGxlGAEgAigEEhAKCGRhdGFfcHRyGAIgAigE", - "EgwKBHNpemUYAyACKA0SEwoLc2FtcGxlX3JhdGUYBCACKA0SFAoMbnVtX2No", - "YW5uZWxzGAUgAigNIikKGEFwbVByb2Nlc3NTdHJlYW1SZXNwb25zZRINCgVl", - "cnJvchgBIAEoCSJ/Ch5BcG1Qcm9jZXNzUmV2ZXJzZVN0cmVhbVJlcXVlc3QS", - "EgoKYXBtX2hhbmRsZRgBIAIoBBIQCghkYXRhX3B0chgCIAIoBBIMCgRzaXpl", - "GAMgAigNEhMKC3NhbXBsZV9yYXRlGAQgAigNEhQKDG51bV9jaGFubmVscxgF", - "IAIoDSIwCh9BcG1Qcm9jZXNzUmV2ZXJzZVN0cmVhbVJlc3BvbnNlEg0KBWVy", - "cm9yGAEgASgJIkAKGEFwbVNldFN0cmVhbURlbGF5UmVxdWVzdBISCgphcG1f", - "aGFuZGxlGAEgAigEEhAKCGRlbGF5X21zGAIgAigFIioKGUFwbVNldFN0cmVh", - "bURlbGF5UmVzcG9uc2USDQoFZXJyb3IYASABKAkinAIKFk5ld1NveFJlc2Ft", - "cGxlclJlcXVlc3QSEgoKaW5wdXRfcmF0ZRgBIAIoARITCgtvdXRwdXRfcmF0", - "ZRgCIAIoARIUCgxudW1fY2hhbm5lbHMYAyACKA0SPAoPaW5wdXRfZGF0YV90", - "eXBlGAQgAigOMiMubGl2ZWtpdC5wcm90by5Tb3hSZXNhbXBsZXJEYXRhVHlw", - "ZRI9ChBvdXRwdXRfZGF0YV90eXBlGAUgAigOMiMubGl2ZWtpdC5wcm90by5T", - "b3hSZXNhbXBsZXJEYXRhVHlwZRI3Cg5xdWFsaXR5X3JlY2lwZRgGIAIoDjIf", - "LmxpdmVraXQucHJvdG8uU294UXVhbGl0eVJlY2lwZRINCgVmbGFncxgHIAEo", - "DSJsChdOZXdTb3hSZXNhbXBsZXJSZXNwb25zZRI1CglyZXNhbXBsZXIYASAB", - "KAsyIC5saXZla2l0LnByb3RvLk93bmVkU294UmVzYW1wbGVySAASDwoFZXJy", - "b3IYAiABKAlIAEIJCgdtZXNzYWdlIlMKF1B1c2hTb3hSZXNhbXBsZXJSZXF1", - "ZXN0EhgKEHJlc2FtcGxlcl9oYW5kbGUYASACKAQSEAoIZGF0YV9wdHIYAiAC", - "KAQSDAoEc2l6ZRgDIAIoDSJLChhQdXNoU294UmVzYW1wbGVyUmVzcG9uc2US", - "EgoKb3V0cHV0X3B0chgBIAIoBBIMCgRzaXplGAIgAigNEg0KBWVycm9yGAMg", - "ASgJIjQKGEZsdXNoU294UmVzYW1wbGVyUmVxdWVzdBIYChByZXNhbXBsZXJf", - "aGFuZGxlGAEgAigEIkwKGUZsdXNoU294UmVzYW1wbGVyUmVzcG9uc2USEgoK", - "b3V0cHV0X3B0chgBIAIoBBIMCgRzaXplGAIgAigNEg0KBWVycm9yGAMgASgJ", - "InAKFEF1ZGlvRnJhbWVCdWZmZXJJbmZvEhAKCGRhdGFfcHRyGAEgAigEEhQK", - "DG51bV9jaGFubmVscxgCIAIoDRITCgtzYW1wbGVfcmF0ZRgDIAIoDRIbChNz", - "YW1wbGVzX3Blcl9jaGFubmVsGAQgAigNInkKFU93bmVkQXVkaW9GcmFtZUJ1", - "ZmZlchItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVk", - "SGFuZGxlEjEKBGluZm8YAiACKAsyIy5saXZla2l0LnByb3RvLkF1ZGlvRnJh", - "bWVCdWZmZXJJbmZvIj8KD0F1ZGlvU3RyZWFtSW5mbxIsCgR0eXBlGAEgAigO", - "Mh4ubGl2ZWtpdC5wcm90by5BdWRpb1N0cmVhbVR5cGUibwoQT3duZWRBdWRp", - "b1N0cmVhbRItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93", - "bmVkSGFuZGxlEiwKBGluZm8YAiACKAsyHi5saXZla2l0LnByb3RvLkF1ZGlv", - "U3RyZWFtSW5mbyKfAQoQQXVkaW9TdHJlYW1FdmVudBIVCg1zdHJlYW1faGFu", - "ZGxlGAEgAigEEjsKDmZyYW1lX3JlY2VpdmVkGAIgASgLMiEubGl2ZWtpdC5w", - "cm90by5BdWRpb0ZyYW1lUmVjZWl2ZWRIABIsCgNlb3MYAyABKAsyHS5saXZl", - "a2l0LnByb3RvLkF1ZGlvU3RyZWFtRU9TSABCCQoHbWVzc2FnZSJJChJBdWRp", - "b0ZyYW1lUmVjZWl2ZWQSMwoFZnJhbWUYASACKAsyJC5saXZla2l0LnByb3Rv", - "Lk93bmVkQXVkaW9GcmFtZUJ1ZmZlciIQCg5BdWRpb1N0cmVhbUVPUyJlChJB", - "dWRpb1NvdXJjZU9wdGlvbnMSGQoRZWNob19jYW5jZWxsYXRpb24YASACKAgS", - "GQoRbm9pc2Vfc3VwcHJlc3Npb24YAiACKAgSGQoRYXV0b19nYWluX2NvbnRy", - "b2wYAyACKAgiPwoPQXVkaW9Tb3VyY2VJbmZvEiwKBHR5cGUYAiACKA4yHi5s", - "aXZla2l0LnByb3RvLkF1ZGlvU291cmNlVHlwZSJvChBPd25lZEF1ZGlvU291", - "cmNlEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3duZWRI", - "YW5kbGUSLAoEaW5mbxgCIAIoCzIeLmxpdmVraXQucHJvdG8uQXVkaW9Tb3Vy", - "Y2VJbmZvIhQKEkF1ZGlvUmVzYW1wbGVySW5mbyJ1ChNPd25lZEF1ZGlvUmVz", - "YW1wbGVyEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3du", - "ZWRIYW5kbGUSLwoEaW5mbxgCIAIoCzIhLmxpdmVraXQucHJvdG8uQXVkaW9S", - "ZXNhbXBsZXJJbmZvIjkKCE93bmVkQXBtEi0KBmhhbmRsZRgBIAIoCzIdLmxp", - "dmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUiEgoQU294UmVzYW1wbGVySW5m", - "byJxChFPd25lZFNveFJlc2FtcGxlchItCgZoYW5kbGUYASACKAsyHS5saXZl", - "a2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEi0KBGluZm8YAiACKAsyHy5saXZl", - "a2l0LnByb3RvLlNveFJlc2FtcGxlckluZm8iXAocTG9hZEF1ZGlvRmlsdGVy", - "UGx1Z2luUmVxdWVzdBITCgtwbHVnaW5fcGF0aBgBIAIoCRIUCgxkZXBlbmRl", - "bmNpZXMYAiADKAkSEQoJbW9kdWxlX2lkGAMgAigJIi4KHUxvYWRBdWRpb0Zp", - "bHRlclBsdWdpblJlc3BvbnNlEg0KBWVycm9yGAEgASgJKkoKFFNveFJlc2Ft", - "cGxlckRhdGFUeXBlEhgKFFNPWFJfREFUQVRZUEVfSU5UMTZJEAASGAoUU09Y", - "Ul9EQVRBVFlQRV9JTlQxNlMQASqLAQoQU294UXVhbGl0eVJlY2lwZRIWChJT", - "T1hSX1FVQUxJVFlfUVVJQ0sQABIUChBTT1hSX1FVQUxJVFlfTE9XEAESFwoT", - "U09YUl9RVUFMSVRZX01FRElVTRACEhUKEVNPWFJfUVVBTElUWV9ISUdIEAMS", - "GQoVU09YUl9RVUFMSVRZX1ZFUllISUdIEAQqlwEKC1NveEZsYWdCaXRzEhYK", - "ElNPWFJfUk9MTE9GRl9TTUFMTBAAEhcKE1NPWFJfUk9MTE9GRl9NRURJVU0Q", - "ARIVChFTT1hSX1JPTExPRkZfTk9ORRACEhgKFFNPWFJfSElHSF9QUkVDX0NM", - "T0NLEAMSGQoVU09YUl9ET1VCTEVfUFJFQ0lTSU9OEAQSCwoHU09YUl9WUhAF", - "KkEKD0F1ZGlvU3RyZWFtVHlwZRIXChNBVURJT19TVFJFQU1fTkFUSVZFEAAS", - "FQoRQVVESU9fU1RSRUFNX0hUTUwQASoqCg9BdWRpb1NvdXJjZVR5cGUSFwoT", - "QVVESU9fU09VUkNFX05BVElWRRAAQhCqAg1MaXZlS2l0LlByb3Rv")); + "c2l6ZV9tcxgHIAEoDRIZChFxdWV1ZV9zaXplX2ZyYW1lcxgIIAEoDSJJChZO", + "ZXdBdWRpb1N0cmVhbVJlc3BvbnNlEi8KBnN0cmVhbRgBIAIoCzIfLmxpdmVr", + "aXQucHJvdG8uT3duZWRBdWRpb1N0cmVhbSK6AgohQXVkaW9TdHJlYW1Gcm9t", + "UGFydGljaXBhbnRSZXF1ZXN0EhoKEnBhcnRpY2lwYW50X2hhbmRsZRgBIAIo", + "BBIsCgR0eXBlGAIgAigOMh4ubGl2ZWtpdC5wcm90by5BdWRpb1N0cmVhbVR5", + "cGUSMAoMdHJhY2tfc291cmNlGAMgASgOMhoubGl2ZWtpdC5wcm90by5UcmFj", + "a1NvdXJjZRITCgtzYW1wbGVfcmF0ZRgFIAEoDRIUCgxudW1fY2hhbm5lbHMY", + "BiABKA0SHgoWYXVkaW9fZmlsdGVyX21vZHVsZV9pZBgHIAEoCRIcChRhdWRp", + "b19maWx0ZXJfb3B0aW9ucxgIIAEoCRIVCg1mcmFtZV9zaXplX21zGAkgASgN", + "EhkKEXF1ZXVlX3NpemVfZnJhbWVzGAogASgNIlUKIkF1ZGlvU3RyZWFtRnJv", + "bVBhcnRpY2lwYW50UmVzcG9uc2USLwoGc3RyZWFtGAEgAigLMh8ubGl2ZWtp", + "dC5wcm90by5Pd25lZEF1ZGlvU3RyZWFtIrsBChVOZXdBdWRpb1NvdXJjZVJl", + "cXVlc3QSLAoEdHlwZRgBIAIoDjIeLmxpdmVraXQucHJvdG8uQXVkaW9Tb3Vy", + "Y2VUeXBlEjIKB29wdGlvbnMYAiABKAsyIS5saXZla2l0LnByb3RvLkF1ZGlv", + "U291cmNlT3B0aW9ucxITCgtzYW1wbGVfcmF0ZRgDIAIoDRIUCgxudW1fY2hh", + "bm5lbHMYBCACKA0SFQoNcXVldWVfc2l6ZV9tcxgFIAEoDSJJChZOZXdBdWRp", + "b1NvdXJjZVJlc3BvbnNlEi8KBnNvdXJjZRgBIAIoCzIfLmxpdmVraXQucHJv", + "dG8uT3duZWRBdWRpb1NvdXJjZSKAAQoYQ2FwdHVyZUF1ZGlvRnJhbWVSZXF1", + "ZXN0EhUKDXNvdXJjZV9oYW5kbGUYASACKAQSMwoGYnVmZmVyGAIgAigLMiMu", + "bGl2ZWtpdC5wcm90by5BdWRpb0ZyYW1lQnVmZmVySW5mbxIYChByZXF1ZXN0", + "X2FzeW5jX2lkGAMgASgEIi0KGUNhcHR1cmVBdWRpb0ZyYW1lUmVzcG9uc2US", + "EAoIYXN5bmNfaWQYASACKAQiPAoZQ2FwdHVyZUF1ZGlvRnJhbWVDYWxsYmFj", + "axIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSIwChdDbGVhckF1", + "ZGlvQnVmZmVyUmVxdWVzdBIVCg1zb3VyY2VfaGFuZGxlGAEgAigEIhoKGENs", + "ZWFyQXVkaW9CdWZmZXJSZXNwb25zZSIaChhOZXdBdWRpb1Jlc2FtcGxlclJl", + "cXVlc3QiUgoZTmV3QXVkaW9SZXNhbXBsZXJSZXNwb25zZRI1CglyZXNhbXBs", + "ZXIYASACKAsyIi5saXZla2l0LnByb3RvLk93bmVkQXVkaW9SZXNhbXBsZXIi", + "kwEKF1JlbWl4QW5kUmVzYW1wbGVSZXF1ZXN0EhgKEHJlc2FtcGxlcl9oYW5k", + "bGUYASACKAQSMwoGYnVmZmVyGAIgAigLMiMubGl2ZWtpdC5wcm90by5BdWRp", + "b0ZyYW1lQnVmZmVySW5mbxIUCgxudW1fY2hhbm5lbHMYAyACKA0SEwoLc2Ft", + "cGxlX3JhdGUYBCACKA0iUAoYUmVtaXhBbmRSZXNhbXBsZVJlc3BvbnNlEjQK", + "BmJ1ZmZlchgBIAIoCzIkLmxpdmVraXQucHJvdG8uT3duZWRBdWRpb0ZyYW1l", + "QnVmZmVyIpUBCg1OZXdBcG1SZXF1ZXN0Eh4KFmVjaG9fY2FuY2VsbGVyX2Vu", + "YWJsZWQYASACKAgSHwoXZ2Fpbl9jb250cm9sbGVyX2VuYWJsZWQYAiACKAgS", + "IAoYaGlnaF9wYXNzX2ZpbHRlcl9lbmFibGVkGAMgAigIEiEKGW5vaXNlX3N1", + "cHByZXNzaW9uX2VuYWJsZWQYBCACKAgiNgoOTmV3QXBtUmVzcG9uc2USJAoD", + "YXBtGAEgAigLMhcubGl2ZWtpdC5wcm90by5Pd25lZEFwbSJ4ChdBcG1Qcm9j", + "ZXNzU3RyZWFtUmVxdWVzdBISCgphcG1faGFuZGxlGAEgAigEEhAKCGRhdGFf", + "cHRyGAIgAigEEgwKBHNpemUYAyACKA0SEwoLc2FtcGxlX3JhdGUYBCACKA0S", + "FAoMbnVtX2NoYW5uZWxzGAUgAigNIikKGEFwbVByb2Nlc3NTdHJlYW1SZXNw", + "b25zZRINCgVlcnJvchgBIAEoCSJ/Ch5BcG1Qcm9jZXNzUmV2ZXJzZVN0cmVh", + "bVJlcXVlc3QSEgoKYXBtX2hhbmRsZRgBIAIoBBIQCghkYXRhX3B0chgCIAIo", + "BBIMCgRzaXplGAMgAigNEhMKC3NhbXBsZV9yYXRlGAQgAigNEhQKDG51bV9j", + "aGFubmVscxgFIAIoDSIwCh9BcG1Qcm9jZXNzUmV2ZXJzZVN0cmVhbVJlc3Bv", + "bnNlEg0KBWVycm9yGAEgASgJIkAKGEFwbVNldFN0cmVhbURlbGF5UmVxdWVz", + "dBISCgphcG1faGFuZGxlGAEgAigEEhAKCGRlbGF5X21zGAIgAigFIioKGUFw", + "bVNldFN0cmVhbURlbGF5UmVzcG9uc2USDQoFZXJyb3IYASABKAkinAIKFk5l", + "d1NveFJlc2FtcGxlclJlcXVlc3QSEgoKaW5wdXRfcmF0ZRgBIAIoARITCgtv", + "dXRwdXRfcmF0ZRgCIAIoARIUCgxudW1fY2hhbm5lbHMYAyACKA0SPAoPaW5w", + "dXRfZGF0YV90eXBlGAQgAigOMiMubGl2ZWtpdC5wcm90by5Tb3hSZXNhbXBs", + "ZXJEYXRhVHlwZRI9ChBvdXRwdXRfZGF0YV90eXBlGAUgAigOMiMubGl2ZWtp", + "dC5wcm90by5Tb3hSZXNhbXBsZXJEYXRhVHlwZRI3Cg5xdWFsaXR5X3JlY2lw", + "ZRgGIAIoDjIfLmxpdmVraXQucHJvdG8uU294UXVhbGl0eVJlY2lwZRINCgVm", + "bGFncxgHIAEoDSJsChdOZXdTb3hSZXNhbXBsZXJSZXNwb25zZRI1CglyZXNh", + "bXBsZXIYASABKAsyIC5saXZla2l0LnByb3RvLk93bmVkU294UmVzYW1wbGVy", + "SAASDwoFZXJyb3IYAiABKAlIAEIJCgdtZXNzYWdlIlMKF1B1c2hTb3hSZXNh", + "bXBsZXJSZXF1ZXN0EhgKEHJlc2FtcGxlcl9oYW5kbGUYASACKAQSEAoIZGF0", + "YV9wdHIYAiACKAQSDAoEc2l6ZRgDIAIoDSJLChhQdXNoU294UmVzYW1wbGVy", + "UmVzcG9uc2USEgoKb3V0cHV0X3B0chgBIAIoBBIMCgRzaXplGAIgAigNEg0K", + "BWVycm9yGAMgASgJIjQKGEZsdXNoU294UmVzYW1wbGVyUmVxdWVzdBIYChBy", + "ZXNhbXBsZXJfaGFuZGxlGAEgAigEIkwKGUZsdXNoU294UmVzYW1wbGVyUmVz", + "cG9uc2USEgoKb3V0cHV0X3B0chgBIAIoBBIMCgRzaXplGAIgAigNEg0KBWVy", + "cm9yGAMgASgJInAKFEF1ZGlvRnJhbWVCdWZmZXJJbmZvEhAKCGRhdGFfcHRy", + "GAEgAigEEhQKDG51bV9jaGFubmVscxgCIAIoDRITCgtzYW1wbGVfcmF0ZRgD", + "IAIoDRIbChNzYW1wbGVzX3Blcl9jaGFubmVsGAQgAigNInkKFU93bmVkQXVk", + "aW9GcmFtZUJ1ZmZlchItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3Rv", + "LkZmaU93bmVkSGFuZGxlEjEKBGluZm8YAiACKAsyIy5saXZla2l0LnByb3Rv", + "LkF1ZGlvRnJhbWVCdWZmZXJJbmZvIj8KD0F1ZGlvU3RyZWFtSW5mbxIsCgR0", + "eXBlGAEgAigOMh4ubGl2ZWtpdC5wcm90by5BdWRpb1N0cmVhbVR5cGUibwoQ", + "T3duZWRBdWRpb1N0cmVhbRItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnBy", + "b3RvLkZmaU93bmVkSGFuZGxlEiwKBGluZm8YAiACKAsyHi5saXZla2l0LnBy", + "b3RvLkF1ZGlvU3RyZWFtSW5mbyKfAQoQQXVkaW9TdHJlYW1FdmVudBIVCg1z", + "dHJlYW1faGFuZGxlGAEgAigEEjsKDmZyYW1lX3JlY2VpdmVkGAIgASgLMiEu", + "bGl2ZWtpdC5wcm90by5BdWRpb0ZyYW1lUmVjZWl2ZWRIABIsCgNlb3MYAyAB", + "KAsyHS5saXZla2l0LnByb3RvLkF1ZGlvU3RyZWFtRU9TSABCCQoHbWVzc2Fn", + "ZSJJChJBdWRpb0ZyYW1lUmVjZWl2ZWQSMwoFZnJhbWUYASACKAsyJC5saXZl", + "a2l0LnByb3RvLk93bmVkQXVkaW9GcmFtZUJ1ZmZlciIQCg5BdWRpb1N0cmVh", + "bUVPUyJlChJBdWRpb1NvdXJjZU9wdGlvbnMSGQoRZWNob19jYW5jZWxsYXRp", + "b24YASACKAgSGQoRbm9pc2Vfc3VwcHJlc3Npb24YAiACKAgSGQoRYXV0b19n", + "YWluX2NvbnRyb2wYAyACKAgiPwoPQXVkaW9Tb3VyY2VJbmZvEiwKBHR5cGUY", + "AiACKA4yHi5saXZla2l0LnByb3RvLkF1ZGlvU291cmNlVHlwZSJvChBPd25l", + "ZEF1ZGlvU291cmNlEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8u", + "RmZpT3duZWRIYW5kbGUSLAoEaW5mbxgCIAIoCzIeLmxpdmVraXQucHJvdG8u", + "QXVkaW9Tb3VyY2VJbmZvIhQKEkF1ZGlvUmVzYW1wbGVySW5mbyJ1ChNPd25l", + "ZEF1ZGlvUmVzYW1wbGVyEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJv", + "dG8uRmZpT3duZWRIYW5kbGUSLwoEaW5mbxgCIAIoCzIhLmxpdmVraXQucHJv", + "dG8uQXVkaW9SZXNhbXBsZXJJbmZvIjkKCE93bmVkQXBtEi0KBmhhbmRsZRgB", + "IAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUiEgoQU294UmVz", + "YW1wbGVySW5mbyJxChFPd25lZFNveFJlc2FtcGxlchItCgZoYW5kbGUYASAC", + "KAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEi0KBGluZm8YAiAC", + "KAsyHy5saXZla2l0LnByb3RvLlNveFJlc2FtcGxlckluZm8iXAocTG9hZEF1", + "ZGlvRmlsdGVyUGx1Z2luUmVxdWVzdBITCgtwbHVnaW5fcGF0aBgBIAIoCRIU", + "CgxkZXBlbmRlbmNpZXMYAiADKAkSEQoJbW9kdWxlX2lkGAMgAigJIi4KHUxv", + "YWRBdWRpb0ZpbHRlclBsdWdpblJlc3BvbnNlEg0KBWVycm9yGAEgASgJKkoK", + "FFNveFJlc2FtcGxlckRhdGFUeXBlEhgKFFNPWFJfREFUQVRZUEVfSU5UMTZJ", + "EAASGAoUU09YUl9EQVRBVFlQRV9JTlQxNlMQASqLAQoQU294UXVhbGl0eVJl", + "Y2lwZRIWChJTT1hSX1FVQUxJVFlfUVVJQ0sQABIUChBTT1hSX1FVQUxJVFlf", + "TE9XEAESFwoTU09YUl9RVUFMSVRZX01FRElVTRACEhUKEVNPWFJfUVVBTElU", + "WV9ISUdIEAMSGQoVU09YUl9RVUFMSVRZX1ZFUllISUdIEAQqlwEKC1NveEZs", + "YWdCaXRzEhYKElNPWFJfUk9MTE9GRl9TTUFMTBAAEhcKE1NPWFJfUk9MTE9G", + "Rl9NRURJVU0QARIVChFTT1hSX1JPTExPRkZfTk9ORRACEhgKFFNPWFJfSElH", + "SF9QUkVDX0NMT0NLEAMSGQoVU09YUl9ET1VCTEVfUFJFQ0lTSU9OEAQSCwoH", + "U09YUl9WUhAFKkEKD0F1ZGlvU3RyZWFtVHlwZRIXChNBVURJT19TVFJFQU1f", + "TkFUSVZFEAASFQoRQVVESU9fU1RSRUFNX0hUTUwQASoqCg9BdWRpb1NvdXJj", + "ZVR5cGUSFwoTQVVESU9fU09VUkNFX05BVElWRRAAQhCqAg1MaXZlS2l0LlBy", + "b3Rv")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.SoxResamplerDataType), typeof(global::LiveKit.Proto.SoxQualityRecipe), typeof(global::LiveKit.Proto.SoxFlagBits), typeof(global::LiveKit.Proto.AudioStreamType), typeof(global::LiveKit.Proto.AudioSourceType), }, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewAudioStreamRequest), global::LiveKit.Proto.NewAudioStreamRequest.Parser, new[]{ "TrackHandle", "Type", "SampleRate", "NumChannels", "AudioFilterModuleId", "AudioFilterOptions", "FrameSizeMs" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewAudioStreamRequest), global::LiveKit.Proto.NewAudioStreamRequest.Parser, new[]{ "TrackHandle", "Type", "SampleRate", "NumChannels", "AudioFilterModuleId", "AudioFilterOptions", "FrameSizeMs", "QueueSizeFrames" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewAudioStreamResponse), global::LiveKit.Proto.NewAudioStreamResponse.Parser, new[]{ "Stream" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioStreamFromParticipantRequest), global::LiveKit.Proto.AudioStreamFromParticipantRequest.Parser, new[]{ "ParticipantHandle", "Type", "TrackSource", "SampleRate", "NumChannels", "AudioFilterModuleId", "AudioFilterOptions", "FrameSizeMs" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioStreamFromParticipantRequest), global::LiveKit.Proto.AudioStreamFromParticipantRequest.Parser, new[]{ "ParticipantHandle", "Type", "TrackSource", "SampleRate", "NumChannels", "AudioFilterModuleId", "AudioFilterOptions", "FrameSizeMs", "QueueSizeFrames" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.AudioStreamFromParticipantResponse), global::LiveKit.Proto.AudioStreamFromParticipantResponse.Parser, new[]{ "Stream" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewAudioSourceRequest), global::LiveKit.Proto.NewAudioSourceRequest.Parser, new[]{ "Type", "Options", "SampleRate", "NumChannels", "QueueSizeMs" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewAudioSourceResponse), global::LiveKit.Proto.NewAudioSourceResponse.Parser, new[]{ "Source" }, null, null, null, null), @@ -292,6 +294,7 @@ public NewAudioStreamRequest(NewAudioStreamRequest other) : this() { audioFilterModuleId_ = other.audioFilterModuleId_; audioFilterOptions_ = other.audioFilterOptions_; frameSizeMs_ = other.frameSizeMs_; + queueSizeFrames_ = other.queueSizeFrames_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -491,6 +494,39 @@ public void ClearFrameSizeMs() { _hasBits0 &= ~16; } + /// Field number for the "queue_size_frames" field. + public const int QueueSizeFramesFieldNumber = 8; + private readonly static uint QueueSizeFramesDefaultValue = 0; + + private uint queueSizeFrames_; + /// + /// Maximum number of queued WebRTC sink frames. Each frame is typically 10 ms + /// of decoded PCM audio on the receive path. Omit this field to use the + /// default bounded queue size of 10 frames. Set it to 0 to request unbounded + /// buffering. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint QueueSizeFrames { + get { if ((_hasBits0 & 32) != 0) { return queueSizeFrames_; } else { return QueueSizeFramesDefaultValue; } } + set { + _hasBits0 |= 32; + queueSizeFrames_ = value; + } + } + /// Gets whether the "queue_size_frames" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasQueueSizeFrames { + get { return (_hasBits0 & 32) != 0; } + } + /// Clears the value of the "queue_size_frames" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearQueueSizeFrames() { + _hasBits0 &= ~32; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -513,6 +549,7 @@ public bool Equals(NewAudioStreamRequest other) { if (AudioFilterModuleId != other.AudioFilterModuleId) return false; if (AudioFilterOptions != other.AudioFilterOptions) return false; if (FrameSizeMs != other.FrameSizeMs) return false; + if (QueueSizeFrames != other.QueueSizeFrames) return false; return Equals(_unknownFields, other._unknownFields); } @@ -527,6 +564,7 @@ public override int GetHashCode() { if (HasAudioFilterModuleId) hash ^= AudioFilterModuleId.GetHashCode(); if (HasAudioFilterOptions) hash ^= AudioFilterOptions.GetHashCode(); if (HasFrameSizeMs) hash ^= FrameSizeMs.GetHashCode(); + if (HasQueueSizeFrames) hash ^= QueueSizeFrames.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -573,6 +611,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(56); output.WriteUInt32(FrameSizeMs); } + if (HasQueueSizeFrames) { + output.WriteRawTag(64); + output.WriteUInt32(QueueSizeFrames); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -611,6 +653,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(56); output.WriteUInt32(FrameSizeMs); } + if (HasQueueSizeFrames) { + output.WriteRawTag(64); + output.WriteUInt32(QueueSizeFrames); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -642,6 +688,9 @@ public int CalculateSize() { if (HasFrameSizeMs) { size += 1 + pb::CodedOutputStream.ComputeUInt32Size(FrameSizeMs); } + if (HasQueueSizeFrames) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(QueueSizeFrames); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -675,6 +724,9 @@ public void MergeFrom(NewAudioStreamRequest other) { if (other.HasFrameSizeMs) { FrameSizeMs = other.FrameSizeMs; } + if (other.HasQueueSizeFrames) { + QueueSizeFrames = other.QueueSizeFrames; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -722,6 +774,10 @@ public void MergeFrom(pb::CodedInputStream input) { FrameSizeMs = input.ReadUInt32(); break; } + case 64: { + QueueSizeFrames = input.ReadUInt32(); + break; + } } } #endif @@ -769,6 +825,10 @@ public void MergeFrom(pb::CodedInputStream input) { FrameSizeMs = input.ReadUInt32(); break; } + case 64: { + QueueSizeFrames = input.ReadUInt32(); + break; + } } } } @@ -1028,6 +1088,7 @@ public AudioStreamFromParticipantRequest(AudioStreamFromParticipantRequest other audioFilterModuleId_ = other.audioFilterModuleId_; audioFilterOptions_ = other.audioFilterOptions_; frameSizeMs_ = other.frameSizeMs_; + queueSizeFrames_ = other.queueSizeFrames_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -1251,6 +1312,39 @@ public void ClearFrameSizeMs() { _hasBits0 &= ~32; } + /// Field number for the "queue_size_frames" field. + public const int QueueSizeFramesFieldNumber = 10; + private readonly static uint QueueSizeFramesDefaultValue = 0; + + private uint queueSizeFrames_; + /// + /// Maximum number of queued WebRTC sink frames. Each frame is typically 10 ms + /// of decoded PCM audio on the receive path. Omit this field to use the + /// default bounded queue size of 10 frames. Set it to 0 to request unbounded + /// buffering. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint QueueSizeFrames { + get { if ((_hasBits0 & 64) != 0) { return queueSizeFrames_; } else { return QueueSizeFramesDefaultValue; } } + set { + _hasBits0 |= 64; + queueSizeFrames_ = value; + } + } + /// Gets whether the "queue_size_frames" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasQueueSizeFrames { + get { return (_hasBits0 & 64) != 0; } + } + /// Clears the value of the "queue_size_frames" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearQueueSizeFrames() { + _hasBits0 &= ~64; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -1274,6 +1368,7 @@ public bool Equals(AudioStreamFromParticipantRequest other) { if (AudioFilterModuleId != other.AudioFilterModuleId) return false; if (AudioFilterOptions != other.AudioFilterOptions) return false; if (FrameSizeMs != other.FrameSizeMs) return false; + if (QueueSizeFrames != other.QueueSizeFrames) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1289,6 +1384,7 @@ public override int GetHashCode() { if (HasAudioFilterModuleId) hash ^= AudioFilterModuleId.GetHashCode(); if (HasAudioFilterOptions) hash ^= AudioFilterOptions.GetHashCode(); if (HasFrameSizeMs) hash ^= FrameSizeMs.GetHashCode(); + if (HasQueueSizeFrames) hash ^= QueueSizeFrames.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1339,6 +1435,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(72); output.WriteUInt32(FrameSizeMs); } + if (HasQueueSizeFrames) { + output.WriteRawTag(80); + output.WriteUInt32(QueueSizeFrames); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1381,6 +1481,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(72); output.WriteUInt32(FrameSizeMs); } + if (HasQueueSizeFrames) { + output.WriteRawTag(80); + output.WriteUInt32(QueueSizeFrames); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1415,6 +1519,9 @@ public int CalculateSize() { if (HasFrameSizeMs) { size += 1 + pb::CodedOutputStream.ComputeUInt32Size(FrameSizeMs); } + if (HasQueueSizeFrames) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(QueueSizeFrames); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1451,6 +1558,9 @@ public void MergeFrom(AudioStreamFromParticipantRequest other) { if (other.HasFrameSizeMs) { FrameSizeMs = other.FrameSizeMs; } + if (other.HasQueueSizeFrames) { + QueueSizeFrames = other.QueueSizeFrames; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1502,6 +1612,10 @@ public void MergeFrom(pb::CodedInputStream input) { FrameSizeMs = input.ReadUInt32(); break; } + case 80: { + QueueSizeFrames = input.ReadUInt32(); + break; + } } } #endif @@ -1553,6 +1667,10 @@ public void MergeFrom(pb::CodedInputStream input) { FrameSizeMs = input.ReadUInt32(); break; } + case 80: { + QueueSizeFrames = input.ReadUInt32(); + break; + } } } } diff --git a/Runtime/Scripts/Proto/DataTrack.cs b/Runtime/Scripts/Proto/DataTrack.cs index 2870fee5..32a9da20 100644 --- a/Runtime/Scripts/Proto/DataTrack.cs +++ b/Runtime/Scripts/Proto/DataTrack.cs @@ -50,25 +50,28 @@ static DataTrackReflection() { "cHJvdG8uRmZpT3duZWRIYW5kbGUSKgoEaW5mbxgCIAIoCzIcLmxpdmVraXQu", "cHJvdG8uRGF0YVRyYWNrSW5mbxIaChJwdWJsaXNoZXJfaWRlbnRpdHkYAyAC", "KAkiSwoaT3duZWREYXRhVHJhY2tTdWJzY3JpcHRpb24SLQoGaGFuZGxlGAEg", - "AigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25lZEhhbmRsZSIbChlEYXRhVHJh", - "Y2tTdWJzY3JpYmVPcHRpb25zIjkKIVJlbW90ZURhdGFUcmFja0lzUHVibGlz", - "aGVkUmVxdWVzdBIUCgx0cmFja19oYW5kbGUYASACKAQiOgoiUmVtb3RlRGF0", - "YVRyYWNrSXNQdWJsaXNoZWRSZXNwb25zZRIUCgxpc19wdWJsaXNoZWQYASAC", - "KAgihgEKGVN1YnNjcmliZURhdGFUcmFja1JlcXVlc3QSFAoMdHJhY2tfaGFu", - "ZGxlGAEgAigEEjkKB29wdGlvbnMYAiACKAsyKC5saXZla2l0LnByb3RvLkRh", - "dGFUcmFja1N1YnNjcmliZU9wdGlvbnMSGAoQcmVxdWVzdF9hc3luY19pZBgD", - "IAEoBCIuChpTdWJzY3JpYmVEYXRhVHJhY2tSZXNwb25zZRIQCghhc3luY19p", - "ZBgBIAIoBCKMAQoaU3Vic2NyaWJlRGF0YVRyYWNrQ2FsbGJhY2sSEAoIYXN5", - "bmNfaWQYASACKAQSQQoMc3Vic2NyaXB0aW9uGAIgASgLMikubGl2ZWtpdC5w", - "cm90by5Pd25lZERhdGFUcmFja1N1YnNjcmlwdGlvbkgAEg8KBWVycm9yGAMg", - "ASgJSABCCAoGcmVzdWx0IsgBChpEYXRhVHJhY2tTdWJzY3JpcHRpb25FdmVu", - "dBIbChNzdWJzY3JpcHRpb25faGFuZGxlGAEgAigEEksKDmZyYW1lX3JlY2Vp", - "dmVkGAIgASgLMjEubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tTdWJzY3JpcHRp", - "b25GcmFtZVJlY2VpdmVkSAASNgoDZW9zGAMgASgLMicubGl2ZWtpdC5wcm90", - "by5EYXRhVHJhY2tTdWJzY3JpcHRpb25FT1NIAEIICgZkZXRhaWwiUgoiRGF0", - "YVRyYWNrU3Vic2NyaXB0aW9uRnJhbWVSZWNlaXZlZBIsCgVmcmFtZRgBIAIo", - "CzIdLmxpdmVraXQucHJvdG8uRGF0YVRyYWNrRnJhbWUiGgoYRGF0YVRyYWNr", - "U3Vic2NyaXB0aW9uRU9TQhCqAg1MaXZlS2l0LlByb3Rv")); + "AigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25lZEhhbmRsZSIwChlEYXRhVHJh", + "Y2tTdWJzY3JpYmVPcHRpb25zEhMKC2J1ZmZlcl9zaXplGAEgASgNIjkKIVJl", + "bW90ZURhdGFUcmFja0lzUHVibGlzaGVkUmVxdWVzdBIUCgx0cmFja19oYW5k", + "bGUYASACKAQiOgoiUmVtb3RlRGF0YVRyYWNrSXNQdWJsaXNoZWRSZXNwb25z", + "ZRIUCgxpc19wdWJsaXNoZWQYASACKAgihgEKGVN1YnNjcmliZURhdGFUcmFj", + "a1JlcXVlc3QSFAoMdHJhY2tfaGFuZGxlGAEgAigEEjkKB29wdGlvbnMYAiAC", + "KAsyKC5saXZla2l0LnByb3RvLkRhdGFUcmFja1N1YnNjcmliZU9wdGlvbnMS", + "GAoQcmVxdWVzdF9hc3luY19pZBgDIAEoBCIuChpTdWJzY3JpYmVEYXRhVHJh", + "Y2tSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCKMAQoaU3Vic2NyaWJlRGF0", + "YVRyYWNrQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSQQoMc3Vic2NyaXB0", + "aW9uGAIgASgLMikubGl2ZWtpdC5wcm90by5Pd25lZERhdGFUcmFja1N1YnNj", + "cmlwdGlvbkgAEg8KBWVycm9yGAMgASgJSABCCAoGcmVzdWx0Ij8KIERhdGFU", + "cmFja1N1YnNjcmlwdGlvblJlYWRSZXF1ZXN0EhsKE3N1YnNjcmlwdGlvbl9o", + "YW5kbGUYASACKAQiIwohRGF0YVRyYWNrU3Vic2NyaXB0aW9uUmVhZFJlc3Bv", + "bnNlIsgBChpEYXRhVHJhY2tTdWJzY3JpcHRpb25FdmVudBIbChNzdWJzY3Jp", + "cHRpb25faGFuZGxlGAEgAigEEksKDmZyYW1lX3JlY2VpdmVkGAIgASgLMjEu", + "bGl2ZWtpdC5wcm90by5EYXRhVHJhY2tTdWJzY3JpcHRpb25GcmFtZVJlY2Vp", + "dmVkSAASNgoDZW9zGAMgASgLMicubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tT", + "dWJzY3JpcHRpb25FT1NIAEIICgZkZXRhaWwiUgoiRGF0YVRyYWNrU3Vic2Ny", + "aXB0aW9uRnJhbWVSZWNlaXZlZBIsCgVmcmFtZRgBIAIoCzIdLmxpdmVraXQu", + "cHJvdG8uRGF0YVRyYWNrRnJhbWUiGgoYRGF0YVRyYWNrU3Vic2NyaXB0aW9u", + "RU9TQhCqAg1MaXZlS2l0LlByb3Rv")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { @@ -87,12 +90,14 @@ static DataTrackReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackUnpublishResponse), global::LiveKit.Proto.LocalDataTrackUnpublishResponse.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedRemoteDataTrack), global::LiveKit.Proto.OwnedRemoteDataTrack.Parser, new[]{ "Handle", "Info", "PublisherIdentity" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedDataTrackSubscription), global::LiveKit.Proto.OwnedDataTrackSubscription.Parser, new[]{ "Handle" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscribeOptions), global::LiveKit.Proto.DataTrackSubscribeOptions.Parser, null, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscribeOptions), global::LiveKit.Proto.DataTrackSubscribeOptions.Parser, new[]{ "BufferSize" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest), global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest.Parser, new[]{ "TrackHandle" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse), global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse.Parser, new[]{ "IsPublished" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SubscribeDataTrackRequest), global::LiveKit.Proto.SubscribeDataTrackRequest.Parser, new[]{ "TrackHandle", "Options", "RequestAsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SubscribeDataTrackResponse), global::LiveKit.Proto.SubscribeDataTrackResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SubscribeDataTrackCallback), global::LiveKit.Proto.SubscribeDataTrackCallback.Parser, new[]{ "AsyncId", "Subscription", "Error" }, new[]{ "Result" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionReadRequest), global::LiveKit.Proto.DataTrackSubscriptionReadRequest.Parser, new[]{ "SubscriptionHandle" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionReadResponse), global::LiveKit.Proto.DataTrackSubscriptionReadResponse.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionEvent), global::LiveKit.Proto.DataTrackSubscriptionEvent.Parser, new[]{ "SubscriptionHandle", "FrameReceived", "Eos" }, new[]{ "Detail" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionFrameReceived), global::LiveKit.Proto.DataTrackSubscriptionFrameReceived.Parser, new[]{ "Frame" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionEOS), global::LiveKit.Proto.DataTrackSubscriptionEOS.Parser, null, null, null, null, null) @@ -3871,6 +3876,7 @@ public sealed partial class DataTrackSubscribeOptions : pb::IMessage _parser = new pb::MessageParser(() => new DataTrackSubscribeOptions()); private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public static pb::MessageParser Parser { get { return _parser; } } @@ -3898,6 +3904,8 @@ public DataTrackSubscribeOptions() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public DataTrackSubscribeOptions(DataTrackSubscribeOptions other) : this() { + _hasBits0 = other._hasBits0; + bufferSize_ = other.bufferSize_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -3907,6 +3915,36 @@ public DataTrackSubscribeOptions Clone() { return new DataTrackSubscribeOptions(this); } + /// Field number for the "buffer_size" field. + public const int BufferSizeFieldNumber = 1; + private readonly static uint BufferSizeDefaultValue = 0; + + private uint bufferSize_; + /// + /// Maximum number of frames to buffer internally. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public uint BufferSize { + get { if ((_hasBits0 & 1) != 0) { return bufferSize_; } else { return BufferSizeDefaultValue; } } + set { + _hasBits0 |= 1; + bufferSize_ = value; + } + } + /// Gets whether the "buffer_size" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasBufferSize { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "buffer_size" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearBufferSize() { + _hasBits0 &= ~1; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -3922,6 +3960,7 @@ public bool Equals(DataTrackSubscribeOptions other) { if (ReferenceEquals(other, this)) { return true; } + if (BufferSize != other.BufferSize) return false; return Equals(_unknownFields, other._unknownFields); } @@ -3929,6 +3968,7 @@ public bool Equals(DataTrackSubscribeOptions other) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override int GetHashCode() { int hash = 1; + if (HasBufferSize) hash ^= BufferSize.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -3947,6 +3987,10 @@ public void WriteTo(pb::CodedOutputStream output) { #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE output.WriteRawMessage(this); #else + if (HasBufferSize) { + output.WriteRawTag(8); + output.WriteUInt32(BufferSize); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3957,6 +4001,10 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasBufferSize) { + output.WriteRawTag(8); + output.WriteUInt32(BufferSize); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -3967,6 +4015,9 @@ public void WriteTo(pb::CodedOutputStream output) { [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public int CalculateSize() { int size = 0; + if (HasBufferSize) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(BufferSize); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3979,6 +4030,9 @@ public void MergeFrom(DataTrackSubscribeOptions other) { if (other == null) { return; } + if (other.HasBufferSize) { + BufferSize = other.BufferSize; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -3998,6 +4052,10 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); break; + case 8: { + BufferSize = input.ReadUInt32(); + break; + } } } #endif @@ -4017,6 +4075,10 @@ public void MergeFrom(pb::CodedInputStream input) { default: _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); break; + case 8: { + BufferSize = input.ReadUInt32(); + break; + } } } } @@ -5337,6 +5399,389 @@ public void MergeFrom(pb::CodedInputStream input) { } + /// + /// Signal readiness to handle the next frame. + /// + /// This allows the client to put backpressure on the internal receive buffer. + /// Sending this request will cause the next frame to be sent via `DataTrackSubscriptionFrameReceived` + /// once one is available. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class DataTrackSubscriptionReadRequest : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackSubscriptionReadRequest()); + private pb::UnknownFieldSet _unknownFields; + private int _hasBits0; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[21]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionReadRequest() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionReadRequest(DataTrackSubscriptionReadRequest other) : this() { + _hasBits0 = other._hasBits0; + subscriptionHandle_ = other.subscriptionHandle_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionReadRequest Clone() { + return new DataTrackSubscriptionReadRequest(this); + } + + /// Field number for the "subscription_handle" field. + public const int SubscriptionHandleFieldNumber = 1; + private readonly static ulong SubscriptionHandleDefaultValue = 0UL; + + private ulong subscriptionHandle_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong SubscriptionHandle { + get { if ((_hasBits0 & 1) != 0) { return subscriptionHandle_; } else { return SubscriptionHandleDefaultValue; } } + set { + _hasBits0 |= 1; + subscriptionHandle_ = value; + } + } + /// Gets whether the "subscription_handle" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasSubscriptionHandle { + get { return (_hasBits0 & 1) != 0; } + } + /// Clears the value of the "subscription_handle" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearSubscriptionHandle() { + _hasBits0 &= ~1; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as DataTrackSubscriptionReadRequest); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(DataTrackSubscriptionReadRequest other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (SubscriptionHandle != other.SubscriptionHandle) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasSubscriptionHandle) hash ^= SubscriptionHandle.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasSubscriptionHandle) { + output.WriteRawTag(8); + output.WriteUInt64(SubscriptionHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasSubscriptionHandle) { + output.WriteRawTag(8); + output.WriteUInt64(SubscriptionHandle); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasSubscriptionHandle) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(SubscriptionHandle); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(DataTrackSubscriptionReadRequest other) { + if (other == null) { + return; + } + if (other.HasSubscriptionHandle) { + SubscriptionHandle = other.SubscriptionHandle; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + SubscriptionHandle = input.ReadUInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + SubscriptionHandle = input.ReadUInt64(); + break; + } + } + } + } + #endif + + } + + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class DataTrackSubscriptionReadResponse : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackSubscriptionReadResponse()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[22]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionReadResponse() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionReadResponse(DataTrackSubscriptionReadResponse other) : this() { + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackSubscriptionReadResponse Clone() { + return new DataTrackSubscriptionReadResponse(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as DataTrackSubscriptionReadResponse); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(DataTrackSubscriptionReadResponse other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(DataTrackSubscriptionReadResponse other) { + if (other == null) { + return; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + } + } + } + #endif + + } + /// /// Event emitted on an active subscription. /// @@ -5356,7 +5801,7 @@ public sealed partial class DataTrackSubscriptionEvent : pb::IMessageField number for the "key_ring_size" field. + public const int KeyRingSizeFieldNumber = 5; + private readonly static int KeyRingSizeDefaultValue = 0; + + private int keyRingSize_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int KeyRingSize { + get { if ((_hasBits0 & 4) != 0) { return keyRingSize_; } else { return KeyRingSizeDefaultValue; } } + set { + _hasBits0 |= 4; + keyRingSize_ = value; + } + } + /// Gets whether the "key_ring_size" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasKeyRingSize { + get { return (_hasBits0 & 4) != 0; } + } + /// Clears the value of the "key_ring_size" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearKeyRingSize() { + _hasBits0 &= ~4; + } + + /// Field number for the "key_derivation_function" field. + public const int KeyDerivationFunctionFieldNumber = 6; + private readonly static global::LiveKit.Proto.KeyDerivationFunction KeyDerivationFunctionDefaultValue = global::LiveKit.Proto.KeyDerivationFunction.Pbkdf2; + + private global::LiveKit.Proto.KeyDerivationFunction keyDerivationFunction_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.KeyDerivationFunction KeyDerivationFunction { + get { if ((_hasBits0 & 8) != 0) { return keyDerivationFunction_; } else { return KeyDerivationFunctionDefaultValue; } } + set { + _hasBits0 |= 8; + keyDerivationFunction_ = value; + } + } + /// Gets whether the "key_derivation_function" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasKeyDerivationFunction { + get { return (_hasBits0 & 8) != 0; } + } + /// Clears the value of the "key_derivation_function" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearKeyDerivationFunction() { + _hasBits0 &= ~8; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -695,6 +760,8 @@ public bool Equals(KeyProviderOptions other) { if (RatchetWindowSize != other.RatchetWindowSize) return false; if (RatchetSalt != other.RatchetSalt) return false; if (FailureTolerance != other.FailureTolerance) return false; + if (KeyRingSize != other.KeyRingSize) return false; + if (KeyDerivationFunction != other.KeyDerivationFunction) return false; return Equals(_unknownFields, other._unknownFields); } @@ -706,6 +773,8 @@ public override int GetHashCode() { if (HasRatchetWindowSize) hash ^= RatchetWindowSize.GetHashCode(); if (HasRatchetSalt) hash ^= RatchetSalt.GetHashCode(); if (HasFailureTolerance) hash ^= FailureTolerance.GetHashCode(); + if (HasKeyRingSize) hash ^= KeyRingSize.GetHashCode(); + if (HasKeyDerivationFunction) hash ^= KeyDerivationFunction.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -740,6 +809,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(32); output.WriteInt32(FailureTolerance); } + if (HasKeyRingSize) { + output.WriteRawTag(40); + output.WriteInt32(KeyRingSize); + } + if (HasKeyDerivationFunction) { + output.WriteRawTag(48); + output.WriteEnum((int) KeyDerivationFunction); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -766,6 +843,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(32); output.WriteInt32(FailureTolerance); } + if (HasKeyRingSize) { + output.WriteRawTag(40); + output.WriteInt32(KeyRingSize); + } + if (HasKeyDerivationFunction) { + output.WriteRawTag(48); + output.WriteEnum((int) KeyDerivationFunction); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -788,6 +873,12 @@ public int CalculateSize() { if (HasFailureTolerance) { size += 1 + pb::CodedOutputStream.ComputeInt32Size(FailureTolerance); } + if (HasKeyRingSize) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(KeyRingSize); + } + if (HasKeyDerivationFunction) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) KeyDerivationFunction); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -812,6 +903,12 @@ public void MergeFrom(KeyProviderOptions other) { if (other.HasFailureTolerance) { FailureTolerance = other.FailureTolerance; } + if (other.HasKeyRingSize) { + KeyRingSize = other.KeyRingSize; + } + if (other.HasKeyDerivationFunction) { + KeyDerivationFunction = other.KeyDerivationFunction; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -847,6 +944,14 @@ public void MergeFrom(pb::CodedInputStream input) { FailureTolerance = input.ReadInt32(); break; } + case 40: { + KeyRingSize = input.ReadInt32(); + break; + } + case 48: { + KeyDerivationFunction = (global::LiveKit.Proto.KeyDerivationFunction) input.ReadEnum(); + break; + } } } #endif @@ -882,6 +987,14 @@ public void MergeFrom(pb::CodedInputStream input) { FailureTolerance = input.ReadInt32(); break; } + case 40: { + KeyRingSize = input.ReadInt32(); + break; + } + case 48: { + KeyDerivationFunction = (global::LiveKit.Proto.KeyDerivationFunction) input.ReadEnum(); + break; + } } } } diff --git a/Runtime/Scripts/Proto/Ffi.cs b/Runtime/Scripts/Proto/Ffi.cs index 06c04483..e16ed475 100644 --- a/Runtime/Scripts/Proto/Ffi.cs +++ b/Runtime/Scripts/Proto/Ffi.cs @@ -27,7 +27,7 @@ static FfiReflection() { "CglmZmkucHJvdG8SDWxpdmVraXQucHJvdG8aCmUyZWUucHJvdG8aC3RyYWNr", "LnByb3RvGhd0cmFja19wdWJsaWNhdGlvbi5wcm90bxoKcm9vbS5wcm90bxoR", "dmlkZW9fZnJhbWUucHJvdG8aEWF1ZGlvX2ZyYW1lLnByb3RvGglycGMucHJv", - "dG8aEWRhdGFfc3RyZWFtLnByb3RvGhBkYXRhX3RyYWNrLnByb3RvItMpCgpG", + "dG8aEWRhdGFfc3RyZWFtLnByb3RvGhBkYXRhX3RyYWNrLnByb3RvIqwqCgpG", "ZmlSZXF1ZXN0EjAKB2Rpc3Bvc2UYAiABKAsyHS5saXZla2l0LnByb3RvLkRp", "c3Bvc2VSZXF1ZXN0SAASMAoHY29ubmVjdBgDIAEoCzIdLmxpdmVraXQucHJv", "dG8uQ29ubmVjdFJlcXVlc3RIABI2CgpkaXNjb25uZWN0GAQgASgLMiAubGl2", @@ -146,205 +146,209 @@ static FfiReflection() { "GEkgASgLMigubGl2ZWtpdC5wcm90by5TdWJzY3JpYmVEYXRhVHJhY2tSZXF1", "ZXN0SAASWgoecmVtb3RlX2RhdGFfdHJhY2tfaXNfcHVibGlzaGVkGEogASgL", "MjAubGl2ZWtpdC5wcm90by5SZW1vdGVEYXRhVHJhY2tJc1B1Ymxpc2hlZFJl", - "cXVlc3RIAEIJCgdtZXNzYWdlItgpCgtGZmlSZXNwb25zZRIxCgdkaXNwb3Nl", - "GAIgASgLMh4ubGl2ZWtpdC5wcm90by5EaXNwb3NlUmVzcG9uc2VIABIxCgdj", - "b25uZWN0GAMgASgLMh4ubGl2ZWtpdC5wcm90by5Db25uZWN0UmVzcG9uc2VI", - "ABI3CgpkaXNjb25uZWN0GAQgASgLMiEubGl2ZWtpdC5wcm90by5EaXNjb25u", - "ZWN0UmVzcG9uc2VIABI8Cg1wdWJsaXNoX3RyYWNrGAUgASgLMiMubGl2ZWtp", - "dC5wcm90by5QdWJsaXNoVHJhY2tSZXNwb25zZUgAEkAKD3VucHVibGlzaF90", - "cmFjaxgGIAEoCzIlLmxpdmVraXQucHJvdG8uVW5wdWJsaXNoVHJhY2tSZXNw", - "b25zZUgAEjoKDHB1Ymxpc2hfZGF0YRgHIAEoCzIiLmxpdmVraXQucHJvdG8u", - "UHVibGlzaERhdGFSZXNwb25zZUgAEj4KDnNldF9zdWJzY3JpYmVkGAggASgL", - "MiQubGl2ZWtpdC5wcm90by5TZXRTdWJzY3JpYmVkUmVzcG9uc2VIABJFChJz", - "ZXRfbG9jYWxfbWV0YWRhdGEYCSABKAsyJy5saXZla2l0LnByb3RvLlNldExv", - "Y2FsTWV0YWRhdGFSZXNwb25zZUgAEj0KDnNldF9sb2NhbF9uYW1lGAogASgL", - "MiMubGl2ZWtpdC5wcm90by5TZXRMb2NhbE5hbWVSZXNwb25zZUgAEkkKFHNl", - "dF9sb2NhbF9hdHRyaWJ1dGVzGAsgASgLMikubGl2ZWtpdC5wcm90by5TZXRM", - "b2NhbEF0dHJpYnV0ZXNSZXNwb25zZUgAEkMKEWdldF9zZXNzaW9uX3N0YXRz", - "GAwgASgLMiYubGl2ZWtpdC5wcm90by5HZXRTZXNzaW9uU3RhdHNSZXNwb25z", - "ZUgAEkwKFXB1Ymxpc2hfdHJhbnNjcmlwdGlvbhgNIAEoCzIrLmxpdmVraXQu", - "cHJvdG8uUHVibGlzaFRyYW5zY3JpcHRpb25SZXNwb25zZUgAEkEKEHB1Ymxp", - "c2hfc2lwX2R0bWYYDiABKAsyJS5saXZla2l0LnByb3RvLlB1Ymxpc2hTaXBE", - "dG1mUmVzcG9uc2VIABJFChJjcmVhdGVfdmlkZW9fdHJhY2sYDyABKAsyJy5s", - "aXZla2l0LnByb3RvLkNyZWF0ZVZpZGVvVHJhY2tSZXNwb25zZUgAEkUKEmNy", - "ZWF0ZV9hdWRpb190cmFjaxgQIAEoCzInLmxpdmVraXQucHJvdG8uQ3JlYXRl", - "QXVkaW9UcmFja1Jlc3BvbnNlSAASQQoQbG9jYWxfdHJhY2tfbXV0ZRgRIAEo", - "CzIlLmxpdmVraXQucHJvdG8uTG9jYWxUcmFja011dGVSZXNwb25zZUgAEkcK", - "E2VuYWJsZV9yZW1vdGVfdHJhY2sYEiABKAsyKC5saXZla2l0LnByb3RvLkVu", - "YWJsZVJlbW90ZVRyYWNrUmVzcG9uc2VIABI0CglnZXRfc3RhdHMYEyABKAsy", - "Hy5saXZla2l0LnByb3RvLkdldFN0YXRzUmVzcG9uc2VIABJkCiJzZXRfdHJh", - "Y2tfc3Vic2NyaXB0aW9uX3Blcm1pc3Npb25zGC8gASgLMjYubGl2ZWtpdC5w", - "cm90by5TZXRUcmFja1N1YnNjcmlwdGlvblBlcm1pc3Npb25zUmVzcG9uc2VI", - "ABJBChBuZXdfdmlkZW9fc3RyZWFtGBQgASgLMiUubGl2ZWtpdC5wcm90by5O", - "ZXdWaWRlb1N0cmVhbVJlc3BvbnNlSAASQQoQbmV3X3ZpZGVvX3NvdXJjZRgV", - "IAEoCzIlLmxpdmVraXQucHJvdG8uTmV3VmlkZW9Tb3VyY2VSZXNwb25zZUgA", - "EkcKE2NhcHR1cmVfdmlkZW9fZnJhbWUYFiABKAsyKC5saXZla2l0LnByb3Rv", - "LkNhcHR1cmVWaWRlb0ZyYW1lUmVzcG9uc2VIABI8Cg12aWRlb19jb252ZXJ0", - "GBcgASgLMiMubGl2ZWtpdC5wcm90by5WaWRlb0NvbnZlcnRSZXNwb25zZUgA", - "EloKHXZpZGVvX3N0cmVhbV9mcm9tX3BhcnRpY2lwYW50GBggASgLMjEubGl2", - "ZWtpdC5wcm90by5WaWRlb1N0cmVhbUZyb21QYXJ0aWNpcGFudFJlc3BvbnNl", - "SAASQQoQbmV3X2F1ZGlvX3N0cmVhbRgZIAEoCzIlLmxpdmVraXQucHJvdG8u", - "TmV3QXVkaW9TdHJlYW1SZXNwb25zZUgAEkEKEG5ld19hdWRpb19zb3VyY2UY", - "GiABKAsyJS5saXZla2l0LnByb3RvLk5ld0F1ZGlvU291cmNlUmVzcG9uc2VI", - "ABJHChNjYXB0dXJlX2F1ZGlvX2ZyYW1lGBsgASgLMigubGl2ZWtpdC5wcm90", - "by5DYXB0dXJlQXVkaW9GcmFtZVJlc3BvbnNlSAASRQoSY2xlYXJfYXVkaW9f", - "YnVmZmVyGBwgASgLMicubGl2ZWtpdC5wcm90by5DbGVhckF1ZGlvQnVmZmVy", - "UmVzcG9uc2VIABJHChNuZXdfYXVkaW9fcmVzYW1wbGVyGB0gASgLMigubGl2", - "ZWtpdC5wcm90by5OZXdBdWRpb1Jlc2FtcGxlclJlc3BvbnNlSAASRQoScmVt", - "aXhfYW5kX3Jlc2FtcGxlGB4gASgLMicubGl2ZWtpdC5wcm90by5SZW1peEFu", - "ZFJlc2FtcGxlUmVzcG9uc2VIABJaCh1hdWRpb19zdHJlYW1fZnJvbV9wYXJ0", - "aWNpcGFudBgfIAEoCzIxLmxpdmVraXQucHJvdG8uQXVkaW9TdHJlYW1Gcm9t", - "UGFydGljaXBhbnRSZXNwb25zZUgAEisKBGUyZWUYICABKAsyGy5saXZla2l0", - "LnByb3RvLkUyZWVSZXNwb25zZUgAEkMKEW5ld19zb3hfcmVzYW1wbGVyGCEg", - "ASgLMiYubGl2ZWtpdC5wcm90by5OZXdTb3hSZXNhbXBsZXJSZXNwb25zZUgA", - "EkUKEnB1c2hfc294X3Jlc2FtcGxlchgiIAEoCzInLmxpdmVraXQucHJvdG8u", - "UHVzaFNveFJlc2FtcGxlclJlc3BvbnNlSAASRwoTZmx1c2hfc294X3Jlc2Ft", - "cGxlchgjIAEoCzIoLmxpdmVraXQucHJvdG8uRmx1c2hTb3hSZXNhbXBsZXJS", - "ZXNwb25zZUgAEkMKEXNlbmRfY2hhdF9tZXNzYWdlGCQgASgLMiYubGl2ZWtp", - "dC5wcm90by5TZW5kQ2hhdE1lc3NhZ2VSZXNwb25zZUgAEjgKC3BlcmZvcm1f", - "cnBjGCUgASgLMiEubGl2ZWtpdC5wcm90by5QZXJmb3JtUnBjUmVzcG9uc2VI", - "ABJHChNyZWdpc3Rlcl9ycGNfbWV0aG9kGCYgASgLMigubGl2ZWtpdC5wcm90", - "by5SZWdpc3RlclJwY01ldGhvZFJlc3BvbnNlSAASSwoVdW5yZWdpc3Rlcl9y", - "cGNfbWV0aG9kGCcgASgLMioubGl2ZWtpdC5wcm90by5VbnJlZ2lzdGVyUnBj", - "TWV0aG9kUmVzcG9uc2VIABJcCh5ycGNfbWV0aG9kX2ludm9jYXRpb25fcmVz", - "cG9uc2UYKCABKAsyMi5saXZla2l0LnByb3RvLlJwY01ldGhvZEludm9jYXRp", - "b25SZXNwb25zZVJlc3BvbnNlSAASXgofZW5hYmxlX3JlbW90ZV90cmFja19w", - "dWJsaWNhdGlvbhgpIAEoCzIzLmxpdmVraXQucHJvdG8uRW5hYmxlUmVtb3Rl", - "VHJhY2tQdWJsaWNhdGlvblJlc3BvbnNlSAAScQopdXBkYXRlX3JlbW90ZV90", - "cmFja19wdWJsaWNhdGlvbl9kaW1lbnNpb24YKiABKAsyPC5saXZla2l0LnBy", - "b3RvLlVwZGF0ZVJlbW90ZVRyYWNrUHVibGljYXRpb25EaW1lbnNpb25SZXNw", - "b25zZUgAEkUKEnNlbmRfc3RyZWFtX2hlYWRlchgrIAEoCzInLmxpdmVraXQu", - "cHJvdG8uU2VuZFN0cmVhbUhlYWRlclJlc3BvbnNlSAASQwoRc2VuZF9zdHJl", - "YW1fY2h1bmsYLCABKAsyJi5saXZla2l0LnByb3RvLlNlbmRTdHJlYW1DaHVu", - "a1Jlc3BvbnNlSAASRwoTc2VuZF9zdHJlYW1fdHJhaWxlchgtIAEoCzIoLmxp", - "dmVraXQucHJvdG8uU2VuZFN0cmVhbVRyYWlsZXJSZXNwb25zZUgAEnkKLnNl", - "dF9kYXRhX2NoYW5uZWxfYnVmZmVyZWRfYW1vdW50X2xvd190aHJlc2hvbGQY", - "LiABKAsyPy5saXZla2l0LnByb3RvLlNldERhdGFDaGFubmVsQnVmZmVyZWRB", - "bW91bnRMb3dUaHJlc2hvbGRSZXNwb25zZUgAElAKGGxvYWRfYXVkaW9fZmls", - "dGVyX3BsdWdpbhgwIAEoCzIsLmxpdmVraXQucHJvdG8uTG9hZEF1ZGlvRmls", - "dGVyUGx1Z2luUmVzcG9uc2VIABIwCgduZXdfYXBtGDEgASgLMh0ubGl2ZWtp", - "dC5wcm90by5OZXdBcG1SZXNwb25zZUgAEkUKEmFwbV9wcm9jZXNzX3N0cmVh", - "bRgyIAEoCzInLmxpdmVraXQucHJvdG8uQXBtUHJvY2Vzc1N0cmVhbVJlc3Bv", - "bnNlSAASVAoaYXBtX3Byb2Nlc3NfcmV2ZXJzZV9zdHJlYW0YMyABKAsyLi5s", - "aXZla2l0LnByb3RvLkFwbVByb2Nlc3NSZXZlcnNlU3RyZWFtUmVzcG9uc2VI", - "ABJIChRhcG1fc2V0X3N0cmVhbV9kZWxheRg0IAEoCzIoLmxpdmVraXQucHJv", - "dG8uQXBtU2V0U3RyZWFtRGVsYXlSZXNwb25zZUgAElcKFWJ5dGVfcmVhZF9p", - "bmNyZW1lbnRhbBg1IAEoCzI2LmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVJl", - "YWRlclJlYWRJbmNyZW1lbnRhbFJlc3BvbnNlSAASRwoNYnl0ZV9yZWFkX2Fs", - "bBg2IAEoCzIuLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVJlYWRlclJlYWRB", - "bGxSZXNwb25zZUgAElAKEmJ5dGVfd3JpdGVfdG9fZmlsZRg3IAEoCzIyLmxp", - "dmVraXQucHJvdG8uQnl0ZVN0cmVhbVJlYWRlcldyaXRlVG9GaWxlUmVzcG9u", - "c2VIABJXChV0ZXh0X3JlYWRfaW5jcmVtZW50YWwYOCABKAsyNi5saXZla2l0", - "LnByb3RvLlRleHRTdHJlYW1SZWFkZXJSZWFkSW5jcmVtZW50YWxSZXNwb25z", - "ZUgAEkcKDXRleHRfcmVhZF9hbGwYOSABKAsyLi5saXZla2l0LnByb3RvLlRl", - "eHRTdHJlYW1SZWFkZXJSZWFkQWxsUmVzcG9uc2VIABI6CglzZW5kX2ZpbGUY", - "OiABKAsyJS5saXZla2l0LnByb3RvLlN0cmVhbVNlbmRGaWxlUmVzcG9uc2VI", - "ABI6CglzZW5kX3RleHQYOyABKAsyJS5saXZla2l0LnByb3RvLlN0cmVhbVNl", - "bmRUZXh0UmVzcG9uc2VIABJBChBieXRlX3N0cmVhbV9vcGVuGDwgASgLMiUu", - "bGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtT3BlblJlc3BvbnNlSAASSQoRYnl0", - "ZV9zdHJlYW1fd3JpdGUYPSABKAsyLC5saXZla2l0LnByb3RvLkJ5dGVTdHJl", - "YW1Xcml0ZXJXcml0ZVJlc3BvbnNlSAASSQoRYnl0ZV9zdHJlYW1fY2xvc2UY", - "PiABKAsyLC5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1Xcml0ZXJDbG9zZVJl", - "c3BvbnNlSAASQQoQdGV4dF9zdHJlYW1fb3Blbhg/IAEoCzIlLmxpdmVraXQu", - "cHJvdG8uVGV4dFN0cmVhbU9wZW5SZXNwb25zZUgAEkkKEXRleHRfc3RyZWFt", - "X3dyaXRlGEAgASgLMiwubGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtV3JpdGVy", - "V3JpdGVSZXNwb25zZUgAEkkKEXRleHRfc3RyZWFtX2Nsb3NlGEEgASgLMiwu", - "bGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtV3JpdGVyQ2xvc2VSZXNwb25zZUgA", - "EjwKCnNlbmRfYnl0ZXMYQiABKAsyJi5saXZla2l0LnByb3RvLlN0cmVhbVNl", - "bmRCeXRlc1Jlc3BvbnNlSAASZwokc2V0X3JlbW90ZV90cmFja19wdWJsaWNh", - "dGlvbl9xdWFsaXR5GEMgASgLMjcubGl2ZWtpdC5wcm90by5TZXRSZW1vdGVU", - "cmFja1B1YmxpY2F0aW9uUXVhbGl0eVJlc3BvbnNlSAASRQoScHVibGlzaF9k", - "YXRhX3RyYWNrGEQgASgLMicubGl2ZWtpdC5wcm90by5QdWJsaXNoRGF0YVRy", - "YWNrUmVzcG9uc2VIABJRChlsb2NhbF9kYXRhX3RyYWNrX3RyeV9wdXNoGEUg", - "ASgLMiwubGl2ZWtpdC5wcm90by5Mb2NhbERhdGFUcmFja1RyeVB1c2hSZXNw", - "b25zZUgAElQKGmxvY2FsX2RhdGFfdHJhY2tfdW5wdWJsaXNoGEYgASgLMi4u", - "bGl2ZWtpdC5wcm90by5Mb2NhbERhdGFUcmFja1VucHVibGlzaFJlc3BvbnNl", - "SAASWQodbG9jYWxfZGF0YV90cmFja19pc19wdWJsaXNoZWQYRyABKAsyMC5s", - "aXZla2l0LnByb3RvLkxvY2FsRGF0YVRyYWNrSXNQdWJsaXNoZWRSZXNwb25z", - "ZUgAEkkKFHN1YnNjcmliZV9kYXRhX3RyYWNrGEggASgLMikubGl2ZWtpdC5w", - "cm90by5TdWJzY3JpYmVEYXRhVHJhY2tSZXNwb25zZUgAElsKHnJlbW90ZV9k", - "YXRhX3RyYWNrX2lzX3B1Ymxpc2hlZBhJIAEoCzIxLmxpdmVraXQucHJvdG8u", - "UmVtb3RlRGF0YVRyYWNrSXNQdWJsaXNoZWRSZXNwb25zZUgAQgkKB21lc3Nh", - "Z2Ui6xYKCEZmaUV2ZW50Ei4KCnJvb21fZXZlbnQYASABKAsyGC5saXZla2l0", - "LnByb3RvLlJvb21FdmVudEgAEjAKC3RyYWNrX2V2ZW50GAIgASgLMhkubGl2", - "ZWtpdC5wcm90by5UcmFja0V2ZW50SAASPQoSdmlkZW9fc3RyZWFtX2V2ZW50", - "GAMgASgLMh8ubGl2ZWtpdC5wcm90by5WaWRlb1N0cmVhbUV2ZW50SAASPQoS", - "YXVkaW9fc3RyZWFtX2V2ZW50GAQgASgLMh8ubGl2ZWtpdC5wcm90by5BdWRp", - "b1N0cmVhbUV2ZW50SAASMQoHY29ubmVjdBgFIAEoCzIeLmxpdmVraXQucHJv", - "dG8uQ29ubmVjdENhbGxiYWNrSAASNwoKZGlzY29ubmVjdBgHIAEoCzIhLmxp", - "dmVraXQucHJvdG8uRGlzY29ubmVjdENhbGxiYWNrSAASMQoHZGlzcG9zZRgI", - "IAEoCzIeLmxpdmVraXQucHJvdG8uRGlzcG9zZUNhbGxiYWNrSAASPAoNcHVi", - "bGlzaF90cmFjaxgJIAEoCzIjLmxpdmVraXQucHJvdG8uUHVibGlzaFRyYWNr", - "Q2FsbGJhY2tIABJACg91bnB1Ymxpc2hfdHJhY2sYCiABKAsyJS5saXZla2l0", - "LnByb3RvLlVucHVibGlzaFRyYWNrQ2FsbGJhY2tIABI6CgxwdWJsaXNoX2Rh", - "dGEYCyABKAsyIi5saXZla2l0LnByb3RvLlB1Ymxpc2hEYXRhQ2FsbGJhY2tI", - "ABJMChVwdWJsaXNoX3RyYW5zY3JpcHRpb24YDCABKAsyKy5saXZla2l0LnBy", - "b3RvLlB1Ymxpc2hUcmFuc2NyaXB0aW9uQ2FsbGJhY2tIABJHChNjYXB0dXJl", - "X2F1ZGlvX2ZyYW1lGA0gASgLMigubGl2ZWtpdC5wcm90by5DYXB0dXJlQXVk", - "aW9GcmFtZUNhbGxiYWNrSAASRQoSc2V0X2xvY2FsX21ldGFkYXRhGA4gASgL", - "MicubGl2ZWtpdC5wcm90by5TZXRMb2NhbE1ldGFkYXRhQ2FsbGJhY2tIABI9", - "Cg5zZXRfbG9jYWxfbmFtZRgPIAEoCzIjLmxpdmVraXQucHJvdG8uU2V0TG9j", - "YWxOYW1lQ2FsbGJhY2tIABJJChRzZXRfbG9jYWxfYXR0cmlidXRlcxgQIAEo", - "CzIpLmxpdmVraXQucHJvdG8uU2V0TG9jYWxBdHRyaWJ1dGVzQ2FsbGJhY2tI", - "ABI0CglnZXRfc3RhdHMYESABKAsyHy5saXZla2l0LnByb3RvLkdldFN0YXRz", - "Q2FsbGJhY2tIABInCgRsb2dzGBIgASgLMhcubGl2ZWtpdC5wcm90by5Mb2dC", - "YXRjaEgAEkMKEWdldF9zZXNzaW9uX3N0YXRzGBMgASgLMiYubGl2ZWtpdC5w", - "cm90by5HZXRTZXNzaW9uU3RhdHNDYWxsYmFja0gAEiUKBXBhbmljGBQgASgL", - "MhQubGl2ZWtpdC5wcm90by5QYW5pY0gAEkEKEHB1Ymxpc2hfc2lwX2R0bWYY", - "FSABKAsyJS5saXZla2l0LnByb3RvLlB1Ymxpc2hTaXBEdG1mQ2FsbGJhY2tI", - "ABI+CgxjaGF0X21lc3NhZ2UYFiABKAsyJi5saXZla2l0LnByb3RvLlNlbmRD", - "aGF0TWVzc2FnZUNhbGxiYWNrSAASOAoLcGVyZm9ybV9ycGMYFyABKAsyIS5s", - "aXZla2l0LnByb3RvLlBlcmZvcm1ScGNDYWxsYmFja0gAEkgKFXJwY19tZXRo", - "b2RfaW52b2NhdGlvbhgYIAEoCzInLmxpdmVraXQucHJvdG8uUnBjTWV0aG9k", - "SW52b2NhdGlvbkV2ZW50SAASRQoSc2VuZF9zdHJlYW1faGVhZGVyGBkgASgL", - "MicubGl2ZWtpdC5wcm90by5TZW5kU3RyZWFtSGVhZGVyQ2FsbGJhY2tIABJD", - "ChFzZW5kX3N0cmVhbV9jaHVuaxgaIAEoCzImLmxpdmVraXQucHJvdG8uU2Vu", - "ZFN0cmVhbUNodW5rQ2FsbGJhY2tIABJHChNzZW5kX3N0cmVhbV90cmFpbGVy", - "GBsgASgLMigubGl2ZWtpdC5wcm90by5TZW5kU3RyZWFtVHJhaWxlckNhbGxi", - "YWNrSAASSAoYYnl0ZV9zdHJlYW1fcmVhZGVyX2V2ZW50GBwgASgLMiQubGl2", - "ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyRXZlbnRIABJVChtieXRlX3N0", - "cmVhbV9yZWFkZXJfcmVhZF9hbGwYHSABKAsyLi5saXZla2l0LnByb3RvLkJ5", - "dGVTdHJlYW1SZWFkZXJSZWFkQWxsQ2FsbGJhY2tIABJeCiBieXRlX3N0cmVh", - "bV9yZWFkZXJfd3JpdGVfdG9fZmlsZRgeIAEoCzIyLmxpdmVraXQucHJvdG8u", - "Qnl0ZVN0cmVhbVJlYWRlcldyaXRlVG9GaWxlQ2FsbGJhY2tIABJBChBieXRl", - "X3N0cmVhbV9vcGVuGB8gASgLMiUubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFt", - "T3BlbkNhbGxiYWNrSAASUAoYYnl0ZV9zdHJlYW1fd3JpdGVyX3dyaXRlGCAg", - "ASgLMiwubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtV3JpdGVyV3JpdGVDYWxs", - "YmFja0gAElAKGGJ5dGVfc3RyZWFtX3dyaXRlcl9jbG9zZRghIAEoCzIsLmxp", - "dmVraXQucHJvdG8uQnl0ZVN0cmVhbVdyaXRlckNsb3NlQ2FsbGJhY2tIABI6", - "CglzZW5kX2ZpbGUYIiABKAsyJS5saXZla2l0LnByb3RvLlN0cmVhbVNlbmRG", - "aWxlQ2FsbGJhY2tIABJIChh0ZXh0X3N0cmVhbV9yZWFkZXJfZXZlbnQYIyAB", - "KAsyJC5saXZla2l0LnByb3RvLlRleHRTdHJlYW1SZWFkZXJFdmVudEgAElUK", - "G3RleHRfc3RyZWFtX3JlYWRlcl9yZWFkX2FsbBgkIAEoCzIuLmxpdmVraXQu", - "cHJvdG8uVGV4dFN0cmVhbVJlYWRlclJlYWRBbGxDYWxsYmFja0gAEkEKEHRl", - "eHRfc3RyZWFtX29wZW4YJSABKAsyJS5saXZla2l0LnByb3RvLlRleHRTdHJl", - "YW1PcGVuQ2FsbGJhY2tIABJQChh0ZXh0X3N0cmVhbV93cml0ZXJfd3JpdGUY", - "JiABKAsyLC5saXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJXcml0ZUNh", - "bGxiYWNrSAASUAoYdGV4dF9zdHJlYW1fd3JpdGVyX2Nsb3NlGCcgASgLMiwu", - "bGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtV3JpdGVyQ2xvc2VDYWxsYmFja0gA", - "EjoKCXNlbmRfdGV4dBgoIAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2Vu", - "ZFRleHRDYWxsYmFja0gAEjwKCnNlbmRfYnl0ZXMYKSABKAsyJi5saXZla2l0", - "LnByb3RvLlN0cmVhbVNlbmRCeXRlc0NhbGxiYWNrSAASRQoScHVibGlzaF9k", - "YXRhX3RyYWNrGCogASgLMicubGl2ZWtpdC5wcm90by5QdWJsaXNoRGF0YVRy", - "YWNrQ2FsbGJhY2tIABJJChRzdWJzY3JpYmVfZGF0YV90cmFjaxgrIAEoCzIp", - "LmxpdmVraXQucHJvdG8uU3Vic2NyaWJlRGF0YVRyYWNrQ2FsbGJhY2tIABJS", - "Ch1kYXRhX3RyYWNrX3N1YnNjcmlwdGlvbl9ldmVudBgsIAEoCzIpLmxpdmVr", - "aXQucHJvdG8uRGF0YVRyYWNrU3Vic2NyaXB0aW9uRXZlbnRIAEIJCgdtZXNz", - "YWdlIh8KDkRpc3Bvc2VSZXF1ZXN0Eg0KBWFzeW5jGAEgAigIIiMKD0Rpc3Bv", - "c2VSZXNwb25zZRIQCghhc3luY19pZBgBIAEoBCIjCg9EaXNwb3NlQ2FsbGJh", - "Y2sSEAoIYXN5bmNfaWQYASACKAQihQEKCUxvZ1JlY29yZBImCgVsZXZlbBgB", - "IAIoDjIXLmxpdmVraXQucHJvdG8uTG9nTGV2ZWwSDgoGdGFyZ2V0GAIgAigJ", - "EhMKC21vZHVsZV9wYXRoGAMgASgJEgwKBGZpbGUYBCABKAkSDAoEbGluZRgF", - "IAEoDRIPCgdtZXNzYWdlGAYgAigJIjUKCExvZ0JhdGNoEikKB3JlY29yZHMY", - "ASADKAsyGC5saXZla2l0LnByb3RvLkxvZ1JlY29yZCIYCgVQYW5pYxIPCgdt", - "ZXNzYWdlGAEgAigJKlMKCExvZ0xldmVsEg0KCUxPR19FUlJPUhAAEgwKCExP", - "R19XQVJOEAESDAoITE9HX0lORk8QAhINCglMT0dfREVCVUcQAxINCglMT0df", - "VFJBQ0UQBEIQqgINTGl2ZUtpdC5Qcm90bw==")); + "cXVlc3RIABJXChxkYXRhX3RyYWNrX3N1YnNjcmlwdGlvbl9yZWFkGEsgASgL", + "Mi8ubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tTdWJzY3JpcHRpb25SZWFkUmVx", + "dWVzdEgAQgkKB21lc3NhZ2UisioKC0ZmaVJlc3BvbnNlEjEKB2Rpc3Bvc2UY", + "AiABKAsyHi5saXZla2l0LnByb3RvLkRpc3Bvc2VSZXNwb25zZUgAEjEKB2Nv", + "bm5lY3QYAyABKAsyHi5saXZla2l0LnByb3RvLkNvbm5lY3RSZXNwb25zZUgA", + "EjcKCmRpc2Nvbm5lY3QYBCABKAsyIS5saXZla2l0LnByb3RvLkRpc2Nvbm5l", + "Y3RSZXNwb25zZUgAEjwKDXB1Ymxpc2hfdHJhY2sYBSABKAsyIy5saXZla2l0", + "LnByb3RvLlB1Ymxpc2hUcmFja1Jlc3BvbnNlSAASQAoPdW5wdWJsaXNoX3Ry", + "YWNrGAYgASgLMiUubGl2ZWtpdC5wcm90by5VbnB1Ymxpc2hUcmFja1Jlc3Bv", + "bnNlSAASOgoMcHVibGlzaF9kYXRhGAcgASgLMiIubGl2ZWtpdC5wcm90by5Q", + "dWJsaXNoRGF0YVJlc3BvbnNlSAASPgoOc2V0X3N1YnNjcmliZWQYCCABKAsy", + "JC5saXZla2l0LnByb3RvLlNldFN1YnNjcmliZWRSZXNwb25zZUgAEkUKEnNl", + "dF9sb2NhbF9tZXRhZGF0YRgJIAEoCzInLmxpdmVraXQucHJvdG8uU2V0TG9j", + "YWxNZXRhZGF0YVJlc3BvbnNlSAASPQoOc2V0X2xvY2FsX25hbWUYCiABKAsy", + "Iy5saXZla2l0LnByb3RvLlNldExvY2FsTmFtZVJlc3BvbnNlSAASSQoUc2V0", + "X2xvY2FsX2F0dHJpYnV0ZXMYCyABKAsyKS5saXZla2l0LnByb3RvLlNldExv", + "Y2FsQXR0cmlidXRlc1Jlc3BvbnNlSAASQwoRZ2V0X3Nlc3Npb25fc3RhdHMY", + "DCABKAsyJi5saXZla2l0LnByb3RvLkdldFNlc3Npb25TdGF0c1Jlc3BvbnNl", + "SAASTAoVcHVibGlzaF90cmFuc2NyaXB0aW9uGA0gASgLMisubGl2ZWtpdC5w", + "cm90by5QdWJsaXNoVHJhbnNjcmlwdGlvblJlc3BvbnNlSAASQQoQcHVibGlz", + "aF9zaXBfZHRtZhgOIAEoCzIlLmxpdmVraXQucHJvdG8uUHVibGlzaFNpcER0", + "bWZSZXNwb25zZUgAEkUKEmNyZWF0ZV92aWRlb190cmFjaxgPIAEoCzInLmxp", + "dmVraXQucHJvdG8uQ3JlYXRlVmlkZW9UcmFja1Jlc3BvbnNlSAASRQoSY3Jl", + "YXRlX2F1ZGlvX3RyYWNrGBAgASgLMicubGl2ZWtpdC5wcm90by5DcmVhdGVB", + "dWRpb1RyYWNrUmVzcG9uc2VIABJBChBsb2NhbF90cmFja19tdXRlGBEgASgL", + "MiUubGl2ZWtpdC5wcm90by5Mb2NhbFRyYWNrTXV0ZVJlc3BvbnNlSAASRwoT", + "ZW5hYmxlX3JlbW90ZV90cmFjaxgSIAEoCzIoLmxpdmVraXQucHJvdG8uRW5h", + "YmxlUmVtb3RlVHJhY2tSZXNwb25zZUgAEjQKCWdldF9zdGF0cxgTIAEoCzIf", + "LmxpdmVraXQucHJvdG8uR2V0U3RhdHNSZXNwb25zZUgAEmQKInNldF90cmFj", + "a19zdWJzY3JpcHRpb25fcGVybWlzc2lvbnMYLyABKAsyNi5saXZla2l0LnBy", + "b3RvLlNldFRyYWNrU3Vic2NyaXB0aW9uUGVybWlzc2lvbnNSZXNwb25zZUgA", + "EkEKEG5ld192aWRlb19zdHJlYW0YFCABKAsyJS5saXZla2l0LnByb3RvLk5l", + "d1ZpZGVvU3RyZWFtUmVzcG9uc2VIABJBChBuZXdfdmlkZW9fc291cmNlGBUg", + "ASgLMiUubGl2ZWtpdC5wcm90by5OZXdWaWRlb1NvdXJjZVJlc3BvbnNlSAAS", + "RwoTY2FwdHVyZV92aWRlb19mcmFtZRgWIAEoCzIoLmxpdmVraXQucHJvdG8u", + "Q2FwdHVyZVZpZGVvRnJhbWVSZXNwb25zZUgAEjwKDXZpZGVvX2NvbnZlcnQY", + "FyABKAsyIy5saXZla2l0LnByb3RvLlZpZGVvQ29udmVydFJlc3BvbnNlSAAS", + "WgoddmlkZW9fc3RyZWFtX2Zyb21fcGFydGljaXBhbnQYGCABKAsyMS5saXZl", + "a2l0LnByb3RvLlZpZGVvU3RyZWFtRnJvbVBhcnRpY2lwYW50UmVzcG9uc2VI", + "ABJBChBuZXdfYXVkaW9fc3RyZWFtGBkgASgLMiUubGl2ZWtpdC5wcm90by5O", + "ZXdBdWRpb1N0cmVhbVJlc3BvbnNlSAASQQoQbmV3X2F1ZGlvX3NvdXJjZRga", + "IAEoCzIlLmxpdmVraXQucHJvdG8uTmV3QXVkaW9Tb3VyY2VSZXNwb25zZUgA", + "EkcKE2NhcHR1cmVfYXVkaW9fZnJhbWUYGyABKAsyKC5saXZla2l0LnByb3Rv", + "LkNhcHR1cmVBdWRpb0ZyYW1lUmVzcG9uc2VIABJFChJjbGVhcl9hdWRpb19i", + "dWZmZXIYHCABKAsyJy5saXZla2l0LnByb3RvLkNsZWFyQXVkaW9CdWZmZXJS", + "ZXNwb25zZUgAEkcKE25ld19hdWRpb19yZXNhbXBsZXIYHSABKAsyKC5saXZl", + "a2l0LnByb3RvLk5ld0F1ZGlvUmVzYW1wbGVyUmVzcG9uc2VIABJFChJyZW1p", + "eF9hbmRfcmVzYW1wbGUYHiABKAsyJy5saXZla2l0LnByb3RvLlJlbWl4QW5k", + "UmVzYW1wbGVSZXNwb25zZUgAEloKHWF1ZGlvX3N0cmVhbV9mcm9tX3BhcnRp", + "Y2lwYW50GB8gASgLMjEubGl2ZWtpdC5wcm90by5BdWRpb1N0cmVhbUZyb21Q", + "YXJ0aWNpcGFudFJlc3BvbnNlSAASKwoEZTJlZRggIAEoCzIbLmxpdmVraXQu", + "cHJvdG8uRTJlZVJlc3BvbnNlSAASQwoRbmV3X3NveF9yZXNhbXBsZXIYISAB", + "KAsyJi5saXZla2l0LnByb3RvLk5ld1NveFJlc2FtcGxlclJlc3BvbnNlSAAS", + "RQoScHVzaF9zb3hfcmVzYW1wbGVyGCIgASgLMicubGl2ZWtpdC5wcm90by5Q", + "dXNoU294UmVzYW1wbGVyUmVzcG9uc2VIABJHChNmbHVzaF9zb3hfcmVzYW1w", + "bGVyGCMgASgLMigubGl2ZWtpdC5wcm90by5GbHVzaFNveFJlc2FtcGxlclJl", + "c3BvbnNlSAASQwoRc2VuZF9jaGF0X21lc3NhZ2UYJCABKAsyJi5saXZla2l0", + "LnByb3RvLlNlbmRDaGF0TWVzc2FnZVJlc3BvbnNlSAASOAoLcGVyZm9ybV9y", + "cGMYJSABKAsyIS5saXZla2l0LnByb3RvLlBlcmZvcm1ScGNSZXNwb25zZUgA", + "EkcKE3JlZ2lzdGVyX3JwY19tZXRob2QYJiABKAsyKC5saXZla2l0LnByb3Rv", + "LlJlZ2lzdGVyUnBjTWV0aG9kUmVzcG9uc2VIABJLChV1bnJlZ2lzdGVyX3Jw", + "Y19tZXRob2QYJyABKAsyKi5saXZla2l0LnByb3RvLlVucmVnaXN0ZXJScGNN", + "ZXRob2RSZXNwb25zZUgAElwKHnJwY19tZXRob2RfaW52b2NhdGlvbl9yZXNw", + "b25zZRgoIAEoCzIyLmxpdmVraXQucHJvdG8uUnBjTWV0aG9kSW52b2NhdGlv", + "blJlc3BvbnNlUmVzcG9uc2VIABJeCh9lbmFibGVfcmVtb3RlX3RyYWNrX3B1", + "YmxpY2F0aW9uGCkgASgLMjMubGl2ZWtpdC5wcm90by5FbmFibGVSZW1vdGVU", + "cmFja1B1YmxpY2F0aW9uUmVzcG9uc2VIABJxCil1cGRhdGVfcmVtb3RlX3Ry", + "YWNrX3B1YmxpY2F0aW9uX2RpbWVuc2lvbhgqIAEoCzI8LmxpdmVraXQucHJv", + "dG8uVXBkYXRlUmVtb3RlVHJhY2tQdWJsaWNhdGlvbkRpbWVuc2lvblJlc3Bv", + "bnNlSAASRQoSc2VuZF9zdHJlYW1faGVhZGVyGCsgASgLMicubGl2ZWtpdC5w", + "cm90by5TZW5kU3RyZWFtSGVhZGVyUmVzcG9uc2VIABJDChFzZW5kX3N0cmVh", + "bV9jaHVuaxgsIAEoCzImLmxpdmVraXQucHJvdG8uU2VuZFN0cmVhbUNodW5r", + "UmVzcG9uc2VIABJHChNzZW5kX3N0cmVhbV90cmFpbGVyGC0gASgLMigubGl2", + "ZWtpdC5wcm90by5TZW5kU3RyZWFtVHJhaWxlclJlc3BvbnNlSAASeQouc2V0", + "X2RhdGFfY2hhbm5lbF9idWZmZXJlZF9hbW91bnRfbG93X3RocmVzaG9sZBgu", + "IAEoCzI/LmxpdmVraXQucHJvdG8uU2V0RGF0YUNoYW5uZWxCdWZmZXJlZEFt", + "b3VudExvd1RocmVzaG9sZFJlc3BvbnNlSAASUAoYbG9hZF9hdWRpb19maWx0", + "ZXJfcGx1Z2luGDAgASgLMiwubGl2ZWtpdC5wcm90by5Mb2FkQXVkaW9GaWx0", + "ZXJQbHVnaW5SZXNwb25zZUgAEjAKB25ld19hcG0YMSABKAsyHS5saXZla2l0", + "LnByb3RvLk5ld0FwbVJlc3BvbnNlSAASRQoSYXBtX3Byb2Nlc3Nfc3RyZWFt", + "GDIgASgLMicubGl2ZWtpdC5wcm90by5BcG1Qcm9jZXNzU3RyZWFtUmVzcG9u", + "c2VIABJUChphcG1fcHJvY2Vzc19yZXZlcnNlX3N0cmVhbRgzIAEoCzIuLmxp", + "dmVraXQucHJvdG8uQXBtUHJvY2Vzc1JldmVyc2VTdHJlYW1SZXNwb25zZUgA", + "EkgKFGFwbV9zZXRfc3RyZWFtX2RlbGF5GDQgASgLMigubGl2ZWtpdC5wcm90", + "by5BcG1TZXRTdHJlYW1EZWxheVJlc3BvbnNlSAASVwoVYnl0ZV9yZWFkX2lu", + "Y3JlbWVudGFsGDUgASgLMjYubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVh", + "ZGVyUmVhZEluY3JlbWVudGFsUmVzcG9uc2VIABJHCg1ieXRlX3JlYWRfYWxs", + "GDYgASgLMi4ubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyUmVhZEFs", + "bFJlc3BvbnNlSAASUAoSYnl0ZV93cml0ZV90b19maWxlGDcgASgLMjIubGl2", + "ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyV3JpdGVUb0ZpbGVSZXNwb25z", + "ZUgAElcKFXRleHRfcmVhZF9pbmNyZW1lbnRhbBg4IAEoCzI2LmxpdmVraXQu", + "cHJvdG8uVGV4dFN0cmVhbVJlYWRlclJlYWRJbmNyZW1lbnRhbFJlc3BvbnNl", + "SAASRwoNdGV4dF9yZWFkX2FsbBg5IAEoCzIuLmxpdmVraXQucHJvdG8uVGV4", + "dFN0cmVhbVJlYWRlclJlYWRBbGxSZXNwb25zZUgAEjoKCXNlbmRfZmlsZRg6", + "IAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2VuZEZpbGVSZXNwb25zZUgA", + "EjoKCXNlbmRfdGV4dBg7IAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2Vu", + "ZFRleHRSZXNwb25zZUgAEkEKEGJ5dGVfc3RyZWFtX29wZW4YPCABKAsyJS5s", + "aXZla2l0LnByb3RvLkJ5dGVTdHJlYW1PcGVuUmVzcG9uc2VIABJJChFieXRl", + "X3N0cmVhbV93cml0ZRg9IAEoCzIsLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVh", + "bVdyaXRlcldyaXRlUmVzcG9uc2VIABJJChFieXRlX3N0cmVhbV9jbG9zZRg+", + "IAEoCzIsLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVdyaXRlckNsb3NlUmVz", + "cG9uc2VIABJBChB0ZXh0X3N0cmVhbV9vcGVuGD8gASgLMiUubGl2ZWtpdC5w", + "cm90by5UZXh0U3RyZWFtT3BlblJlc3BvbnNlSAASSQoRdGV4dF9zdHJlYW1f", + "d3JpdGUYQCABKAsyLC5saXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJX", + "cml0ZVJlc3BvbnNlSAASSQoRdGV4dF9zdHJlYW1fY2xvc2UYQSABKAsyLC5s", + "aXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJDbG9zZVJlc3BvbnNlSAAS", + "PAoKc2VuZF9ieXRlcxhCIAEoCzImLmxpdmVraXQucHJvdG8uU3RyZWFtU2Vu", + "ZEJ5dGVzUmVzcG9uc2VIABJnCiRzZXRfcmVtb3RlX3RyYWNrX3B1YmxpY2F0", + "aW9uX3F1YWxpdHkYQyABKAsyNy5saXZla2l0LnByb3RvLlNldFJlbW90ZVRy", + "YWNrUHVibGljYXRpb25RdWFsaXR5UmVzcG9uc2VIABJFChJwdWJsaXNoX2Rh", + "dGFfdHJhY2sYRCABKAsyJy5saXZla2l0LnByb3RvLlB1Ymxpc2hEYXRhVHJh", + "Y2tSZXNwb25zZUgAElEKGWxvY2FsX2RhdGFfdHJhY2tfdHJ5X3B1c2gYRSAB", + "KAsyLC5saXZla2l0LnByb3RvLkxvY2FsRGF0YVRyYWNrVHJ5UHVzaFJlc3Bv", + "bnNlSAASVAoabG9jYWxfZGF0YV90cmFja191bnB1Ymxpc2gYRiABKAsyLi5s", + "aXZla2l0LnByb3RvLkxvY2FsRGF0YVRyYWNrVW5wdWJsaXNoUmVzcG9uc2VI", + "ABJZCh1sb2NhbF9kYXRhX3RyYWNrX2lzX3B1Ymxpc2hlZBhHIAEoCzIwLmxp", + "dmVraXQucHJvdG8uTG9jYWxEYXRhVHJhY2tJc1B1Ymxpc2hlZFJlc3BvbnNl", + "SAASSQoUc3Vic2NyaWJlX2RhdGFfdHJhY2sYSCABKAsyKS5saXZla2l0LnBy", + "b3RvLlN1YnNjcmliZURhdGFUcmFja1Jlc3BvbnNlSAASWwoecmVtb3RlX2Rh", + "dGFfdHJhY2tfaXNfcHVibGlzaGVkGEkgASgLMjEubGl2ZWtpdC5wcm90by5S", + "ZW1vdGVEYXRhVHJhY2tJc1B1Ymxpc2hlZFJlc3BvbnNlSAASWAocZGF0YV90", + "cmFja19zdWJzY3JpcHRpb25fcmVhZBhKIAEoCzIwLmxpdmVraXQucHJvdG8u", + "RGF0YVRyYWNrU3Vic2NyaXB0aW9uUmVhZFJlc3BvbnNlSABCCQoHbWVzc2Fn", + "ZSLrFgoIRmZpRXZlbnQSLgoKcm9vbV9ldmVudBgBIAEoCzIYLmxpdmVraXQu", + "cHJvdG8uUm9vbUV2ZW50SAASMAoLdHJhY2tfZXZlbnQYAiABKAsyGS5saXZl", + "a2l0LnByb3RvLlRyYWNrRXZlbnRIABI9ChJ2aWRlb19zdHJlYW1fZXZlbnQY", + "AyABKAsyHy5saXZla2l0LnByb3RvLlZpZGVvU3RyZWFtRXZlbnRIABI9ChJh", + "dWRpb19zdHJlYW1fZXZlbnQYBCABKAsyHy5saXZla2l0LnByb3RvLkF1ZGlv", + "U3RyZWFtRXZlbnRIABIxCgdjb25uZWN0GAUgASgLMh4ubGl2ZWtpdC5wcm90", + "by5Db25uZWN0Q2FsbGJhY2tIABI3CgpkaXNjb25uZWN0GAcgASgLMiEubGl2", + "ZWtpdC5wcm90by5EaXNjb25uZWN0Q2FsbGJhY2tIABIxCgdkaXNwb3NlGAgg", + "ASgLMh4ubGl2ZWtpdC5wcm90by5EaXNwb3NlQ2FsbGJhY2tIABI8Cg1wdWJs", + "aXNoX3RyYWNrGAkgASgLMiMubGl2ZWtpdC5wcm90by5QdWJsaXNoVHJhY2tD", + "YWxsYmFja0gAEkAKD3VucHVibGlzaF90cmFjaxgKIAEoCzIlLmxpdmVraXQu", + "cHJvdG8uVW5wdWJsaXNoVHJhY2tDYWxsYmFja0gAEjoKDHB1Ymxpc2hfZGF0", + "YRgLIAEoCzIiLmxpdmVraXQucHJvdG8uUHVibGlzaERhdGFDYWxsYmFja0gA", + "EkwKFXB1Ymxpc2hfdHJhbnNjcmlwdGlvbhgMIAEoCzIrLmxpdmVraXQucHJv", + "dG8uUHVibGlzaFRyYW5zY3JpcHRpb25DYWxsYmFja0gAEkcKE2NhcHR1cmVf", + "YXVkaW9fZnJhbWUYDSABKAsyKC5saXZla2l0LnByb3RvLkNhcHR1cmVBdWRp", + "b0ZyYW1lQ2FsbGJhY2tIABJFChJzZXRfbG9jYWxfbWV0YWRhdGEYDiABKAsy", + "Jy5saXZla2l0LnByb3RvLlNldExvY2FsTWV0YWRhdGFDYWxsYmFja0gAEj0K", + "DnNldF9sb2NhbF9uYW1lGA8gASgLMiMubGl2ZWtpdC5wcm90by5TZXRMb2Nh", + "bE5hbWVDYWxsYmFja0gAEkkKFHNldF9sb2NhbF9hdHRyaWJ1dGVzGBAgASgL", + "MikubGl2ZWtpdC5wcm90by5TZXRMb2NhbEF0dHJpYnV0ZXNDYWxsYmFja0gA", + "EjQKCWdldF9zdGF0cxgRIAEoCzIfLmxpdmVraXQucHJvdG8uR2V0U3RhdHND", + "YWxsYmFja0gAEicKBGxvZ3MYEiABKAsyFy5saXZla2l0LnByb3RvLkxvZ0Jh", + "dGNoSAASQwoRZ2V0X3Nlc3Npb25fc3RhdHMYEyABKAsyJi5saXZla2l0LnBy", + "b3RvLkdldFNlc3Npb25TdGF0c0NhbGxiYWNrSAASJQoFcGFuaWMYFCABKAsy", + "FC5saXZla2l0LnByb3RvLlBhbmljSAASQQoQcHVibGlzaF9zaXBfZHRtZhgV", + "IAEoCzIlLmxpdmVraXQucHJvdG8uUHVibGlzaFNpcER0bWZDYWxsYmFja0gA", + "Ej4KDGNoYXRfbWVzc2FnZRgWIAEoCzImLmxpdmVraXQucHJvdG8uU2VuZENo", + "YXRNZXNzYWdlQ2FsbGJhY2tIABI4CgtwZXJmb3JtX3JwYxgXIAEoCzIhLmxp", + "dmVraXQucHJvdG8uUGVyZm9ybVJwY0NhbGxiYWNrSAASSAoVcnBjX21ldGhv", + "ZF9pbnZvY2F0aW9uGBggASgLMicubGl2ZWtpdC5wcm90by5ScGNNZXRob2RJ", + "bnZvY2F0aW9uRXZlbnRIABJFChJzZW5kX3N0cmVhbV9oZWFkZXIYGSABKAsy", + "Jy5saXZla2l0LnByb3RvLlNlbmRTdHJlYW1IZWFkZXJDYWxsYmFja0gAEkMK", + "EXNlbmRfc3RyZWFtX2NodW5rGBogASgLMiYubGl2ZWtpdC5wcm90by5TZW5k", + "U3RyZWFtQ2h1bmtDYWxsYmFja0gAEkcKE3NlbmRfc3RyZWFtX3RyYWlsZXIY", + "GyABKAsyKC5saXZla2l0LnByb3RvLlNlbmRTdHJlYW1UcmFpbGVyQ2FsbGJh", + "Y2tIABJIChhieXRlX3N0cmVhbV9yZWFkZXJfZXZlbnQYHCABKAsyJC5saXZl", + "a2l0LnByb3RvLkJ5dGVTdHJlYW1SZWFkZXJFdmVudEgAElUKG2J5dGVfc3Ry", + "ZWFtX3JlYWRlcl9yZWFkX2FsbBgdIAEoCzIuLmxpdmVraXQucHJvdG8uQnl0", + "ZVN0cmVhbVJlYWRlclJlYWRBbGxDYWxsYmFja0gAEl4KIGJ5dGVfc3RyZWFt", + "X3JlYWRlcl93cml0ZV90b19maWxlGB4gASgLMjIubGl2ZWtpdC5wcm90by5C", + "eXRlU3RyZWFtUmVhZGVyV3JpdGVUb0ZpbGVDYWxsYmFja0gAEkEKEGJ5dGVf", + "c3RyZWFtX29wZW4YHyABKAsyJS5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1P", + "cGVuQ2FsbGJhY2tIABJQChhieXRlX3N0cmVhbV93cml0ZXJfd3JpdGUYICAB", + "KAsyLC5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1Xcml0ZXJXcml0ZUNhbGxi", + "YWNrSAASUAoYYnl0ZV9zdHJlYW1fd3JpdGVyX2Nsb3NlGCEgASgLMiwubGl2", + "ZWtpdC5wcm90by5CeXRlU3RyZWFtV3JpdGVyQ2xvc2VDYWxsYmFja0gAEjoK", + "CXNlbmRfZmlsZRgiIAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2VuZEZp", + "bGVDYWxsYmFja0gAEkgKGHRleHRfc3RyZWFtX3JlYWRlcl9ldmVudBgjIAEo", + "CzIkLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbVJlYWRlckV2ZW50SAASVQob", + "dGV4dF9zdHJlYW1fcmVhZGVyX3JlYWRfYWxsGCQgASgLMi4ubGl2ZWtpdC5w", + "cm90by5UZXh0U3RyZWFtUmVhZGVyUmVhZEFsbENhbGxiYWNrSAASQQoQdGV4", + "dF9zdHJlYW1fb3BlbhglIAEoCzIlLmxpdmVraXQucHJvdG8uVGV4dFN0cmVh", + "bU9wZW5DYWxsYmFja0gAElAKGHRleHRfc3RyZWFtX3dyaXRlcl93cml0ZRgm", + "IAEoCzIsLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbVdyaXRlcldyaXRlQ2Fs", + "bGJhY2tIABJQChh0ZXh0X3N0cmVhbV93cml0ZXJfY2xvc2UYJyABKAsyLC5s", + "aXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJDbG9zZUNhbGxiYWNrSAAS", + "OgoJc2VuZF90ZXh0GCggASgLMiUubGl2ZWtpdC5wcm90by5TdHJlYW1TZW5k", + "VGV4dENhbGxiYWNrSAASPAoKc2VuZF9ieXRlcxgpIAEoCzImLmxpdmVraXQu", + "cHJvdG8uU3RyZWFtU2VuZEJ5dGVzQ2FsbGJhY2tIABJFChJwdWJsaXNoX2Rh", + "dGFfdHJhY2sYKiABKAsyJy5saXZla2l0LnByb3RvLlB1Ymxpc2hEYXRhVHJh", + "Y2tDYWxsYmFja0gAEkkKFHN1YnNjcmliZV9kYXRhX3RyYWNrGCsgASgLMiku", + "bGl2ZWtpdC5wcm90by5TdWJzY3JpYmVEYXRhVHJhY2tDYWxsYmFja0gAElIK", + "HWRhdGFfdHJhY2tfc3Vic2NyaXB0aW9uX2V2ZW50GCwgASgLMikubGl2ZWtp", + "dC5wcm90by5EYXRhVHJhY2tTdWJzY3JpcHRpb25FdmVudEgAQgkKB21lc3Nh", + "Z2UiHwoORGlzcG9zZVJlcXVlc3QSDQoFYXN5bmMYASACKAgiIwoPRGlzcG9z", + "ZVJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgASgEIiMKD0Rpc3Bvc2VDYWxsYmFj", + "axIQCghhc3luY19pZBgBIAIoBCKFAQoJTG9nUmVjb3JkEiYKBWxldmVsGAEg", + "AigOMhcubGl2ZWtpdC5wcm90by5Mb2dMZXZlbBIOCgZ0YXJnZXQYAiACKAkS", + "EwoLbW9kdWxlX3BhdGgYAyABKAkSDAoEZmlsZRgEIAEoCRIMCgRsaW5lGAUg", + "ASgNEg8KB21lc3NhZ2UYBiACKAkiNQoITG9nQmF0Y2gSKQoHcmVjb3JkcxgB", + "IAMoCzIYLmxpdmVraXQucHJvdG8uTG9nUmVjb3JkIhgKBVBhbmljEg8KB21l", + "c3NhZ2UYASACKAkqUwoITG9nTGV2ZWwSDQoJTE9HX0VSUk9SEAASDAoITE9H", + "X1dBUk4QARIMCghMT0dfSU5GTxACEg0KCUxPR19ERUJVRxADEg0KCUxPR19U", + "UkFDRRAEQhCqAg1MaXZlS2l0LlByb3Rv")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, global::LiveKit.Proto.TrackPublicationReflection.Descriptor, global::LiveKit.Proto.RoomReflection.Descriptor, global::LiveKit.Proto.VideoFrameReflection.Descriptor, global::LiveKit.Proto.AudioFrameReflection.Descriptor, global::LiveKit.Proto.RpcReflection.Descriptor, global::LiveKit.Proto.DataStreamReflection.Descriptor, global::LiveKit.Proto.DataTrackReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.LogLevel), }, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiRequest), global::LiveKit.Proto.FfiRequest.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "E2Ee", "AudioStreamFromParticipant", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "EditChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality", "PublishDataTrack", "LocalDataTrackTryPush", "LocalDataTrackUnpublish", "LocalDataTrackIsPublished", "SubscribeDataTrack", "RemoteDataTrackIsPublished" }, new[]{ "Message" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiResponse), global::LiveKit.Proto.FfiResponse.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "AudioStreamFromParticipant", "E2Ee", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality", "PublishDataTrack", "LocalDataTrackTryPush", "LocalDataTrackUnpublish", "LocalDataTrackIsPublished", "SubscribeDataTrack", "RemoteDataTrackIsPublished" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiRequest), global::LiveKit.Proto.FfiRequest.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "E2Ee", "AudioStreamFromParticipant", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "EditChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality", "PublishDataTrack", "LocalDataTrackTryPush", "LocalDataTrackUnpublish", "LocalDataTrackIsPublished", "SubscribeDataTrack", "RemoteDataTrackIsPublished", "DataTrackSubscriptionRead" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiResponse), global::LiveKit.Proto.FfiResponse.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "AudioStreamFromParticipant", "E2Ee", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality", "PublishDataTrack", "LocalDataTrackTryPush", "LocalDataTrackUnpublish", "LocalDataTrackIsPublished", "SubscribeDataTrack", "RemoteDataTrackIsPublished", "DataTrackSubscriptionRead" }, new[]{ "Message" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiEvent), global::LiveKit.Proto.FfiEvent.Parser, new[]{ "RoomEvent", "TrackEvent", "VideoStreamEvent", "AudioStreamEvent", "Connect", "Disconnect", "Dispose", "PublishTrack", "UnpublishTrack", "PublishData", "PublishTranscription", "CaptureAudioFrame", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetStats", "Logs", "GetSessionStats", "Panic", "PublishSipDtmf", "ChatMessage", "PerformRpc", "RpcMethodInvocation", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "ByteStreamReaderEvent", "ByteStreamReaderReadAll", "ByteStreamReaderWriteToFile", "ByteStreamOpen", "ByteStreamWriterWrite", "ByteStreamWriterClose", "SendFile", "TextStreamReaderEvent", "TextStreamReaderReadAll", "TextStreamOpen", "TextStreamWriterWrite", "TextStreamWriterClose", "SendText", "SendBytes", "PublishDataTrack", "SubscribeDataTrack", "DataTrackSubscriptionEvent" }, new[]{ "Message" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisposeRequest), global::LiveKit.Proto.DisposeRequest.Parser, new[]{ "Async" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisposeResponse), global::LiveKit.Proto.DisposeResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), @@ -628,6 +632,9 @@ public FfiRequest(FfiRequest other) : this() { case MessageOneofCase.RemoteDataTrackIsPublished: RemoteDataTrackIsPublished = other.RemoteDataTrackIsPublished.Clone(); break; + case MessageOneofCase.DataTrackSubscriptionRead: + DataTrackSubscriptionRead = other.DataTrackSubscriptionRead.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -1551,6 +1558,18 @@ public FfiRequest Clone() { } } + /// Field number for the "data_track_subscription_read" field. + public const int DataTrackSubscriptionReadFieldNumber = 75; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DataTrackSubscriptionReadRequest DataTrackSubscriptionRead { + get { return messageCase_ == MessageOneofCase.DataTrackSubscriptionRead ? (global::LiveKit.Proto.DataTrackSubscriptionReadRequest) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.DataTrackSubscriptionRead; + } + } + private object message_; /// Enum of possible cases for the "message" oneof. public enum MessageOneofCase { @@ -1628,6 +1647,7 @@ public enum MessageOneofCase { LocalDataTrackIsPublished = 72, SubscribeDataTrack = 73, RemoteDataTrackIsPublished = 74, + DataTrackSubscriptionRead = 75, } private MessageOneofCase messageCase_ = MessageOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1731,6 +1751,7 @@ public bool Equals(FfiRequest other) { if (!object.Equals(LocalDataTrackIsPublished, other.LocalDataTrackIsPublished)) return false; if (!object.Equals(SubscribeDataTrack, other.SubscribeDataTrack)) return false; if (!object.Equals(RemoteDataTrackIsPublished, other.RemoteDataTrackIsPublished)) return false; + if (!object.Equals(DataTrackSubscriptionRead, other.DataTrackSubscriptionRead)) return false; if (MessageCase != other.MessageCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1812,6 +1833,7 @@ public override int GetHashCode() { if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) hash ^= LocalDataTrackIsPublished.GetHashCode(); if (messageCase_ == MessageOneofCase.SubscribeDataTrack) hash ^= SubscribeDataTrack.GetHashCode(); if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) hash ^= RemoteDataTrackIsPublished.GetHashCode(); + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) hash ^= DataTrackSubscriptionRead.GetHashCode(); hash ^= (int) messageCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -2123,6 +2145,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(210, 4); output.WriteMessage(RemoteDataTrackIsPublished); } + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) { + output.WriteRawTag(218, 4); + output.WriteMessage(DataTrackSubscriptionRead); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2425,6 +2451,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(210, 4); output.WriteMessage(RemoteDataTrackIsPublished); } + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) { + output.WriteRawTag(218, 4); + output.WriteMessage(DataTrackSubscriptionRead); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2654,6 +2684,9 @@ public int CalculateSize() { if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(RemoteDataTrackIsPublished); } + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackSubscriptionRead); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -3105,6 +3138,12 @@ public void MergeFrom(FfiRequest other) { } RemoteDataTrackIsPublished.MergeFrom(other.RemoteDataTrackIsPublished); break; + case MessageOneofCase.DataTrackSubscriptionRead: + if (DataTrackSubscriptionRead == null) { + DataTrackSubscriptionRead = new global::LiveKit.Proto.DataTrackSubscriptionReadRequest(); + } + DataTrackSubscriptionRead.MergeFrom(other.DataTrackSubscriptionRead); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -3783,6 +3822,15 @@ public void MergeFrom(pb::CodedInputStream input) { RemoteDataTrackIsPublished = subBuilder; break; } + case 602: { + global::LiveKit.Proto.DataTrackSubscriptionReadRequest subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionReadRequest(); + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) { + subBuilder.MergeFrom(DataTrackSubscriptionRead); + } + input.ReadMessage(subBuilder); + DataTrackSubscriptionRead = subBuilder; + break; + } } } #endif @@ -4459,6 +4507,15 @@ public void MergeFrom(pb::CodedInputStream input) { RemoteDataTrackIsPublished = subBuilder; break; } + case 602: { + global::LiveKit.Proto.DataTrackSubscriptionReadRequest subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionReadRequest(); + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) { + subBuilder.MergeFrom(DataTrackSubscriptionRead); + } + input.ReadMessage(subBuilder); + DataTrackSubscriptionRead = subBuilder; + break; + } } } } @@ -4721,6 +4778,9 @@ public FfiResponse(FfiResponse other) : this() { case MessageOneofCase.RemoteDataTrackIsPublished: RemoteDataTrackIsPublished = other.RemoteDataTrackIsPublished.Clone(); break; + case MessageOneofCase.DataTrackSubscriptionRead: + DataTrackSubscriptionRead = other.DataTrackSubscriptionRead.Clone(); + break; } _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -5632,6 +5692,18 @@ public FfiResponse Clone() { } } + /// Field number for the "data_track_subscription_read" field. + public const int DataTrackSubscriptionReadFieldNumber = 74; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DataTrackSubscriptionReadResponse DataTrackSubscriptionRead { + get { return messageCase_ == MessageOneofCase.DataTrackSubscriptionRead ? (global::LiveKit.Proto.DataTrackSubscriptionReadResponse) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.DataTrackSubscriptionRead; + } + } + private object message_; /// Enum of possible cases for the "message" oneof. public enum MessageOneofCase { @@ -5708,6 +5780,7 @@ public enum MessageOneofCase { LocalDataTrackIsPublished = 71, SubscribeDataTrack = 72, RemoteDataTrackIsPublished = 73, + DataTrackSubscriptionRead = 74, } private MessageOneofCase messageCase_ = MessageOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -5810,6 +5883,7 @@ public bool Equals(FfiResponse other) { if (!object.Equals(LocalDataTrackIsPublished, other.LocalDataTrackIsPublished)) return false; if (!object.Equals(SubscribeDataTrack, other.SubscribeDataTrack)) return false; if (!object.Equals(RemoteDataTrackIsPublished, other.RemoteDataTrackIsPublished)) return false; + if (!object.Equals(DataTrackSubscriptionRead, other.DataTrackSubscriptionRead)) return false; if (MessageCase != other.MessageCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -5890,6 +5964,7 @@ public override int GetHashCode() { if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) hash ^= LocalDataTrackIsPublished.GetHashCode(); if (messageCase_ == MessageOneofCase.SubscribeDataTrack) hash ^= SubscribeDataTrack.GetHashCode(); if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) hash ^= RemoteDataTrackIsPublished.GetHashCode(); + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) hash ^= DataTrackSubscriptionRead.GetHashCode(); hash ^= (int) messageCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -6197,6 +6272,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(202, 4); output.WriteMessage(RemoteDataTrackIsPublished); } + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) { + output.WriteRawTag(210, 4); + output.WriteMessage(DataTrackSubscriptionRead); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -6495,6 +6574,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(202, 4); output.WriteMessage(RemoteDataTrackIsPublished); } + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) { + output.WriteRawTag(210, 4); + output.WriteMessage(DataTrackSubscriptionRead); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -6721,6 +6804,9 @@ public int CalculateSize() { if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(RemoteDataTrackIsPublished); } + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackSubscriptionRead); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -7166,6 +7252,12 @@ public void MergeFrom(FfiResponse other) { } RemoteDataTrackIsPublished.MergeFrom(other.RemoteDataTrackIsPublished); break; + case MessageOneofCase.DataTrackSubscriptionRead: + if (DataTrackSubscriptionRead == null) { + DataTrackSubscriptionRead = new global::LiveKit.Proto.DataTrackSubscriptionReadResponse(); + } + DataTrackSubscriptionRead.MergeFrom(other.DataTrackSubscriptionRead); + break; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -7835,6 +7927,15 @@ public void MergeFrom(pb::CodedInputStream input) { RemoteDataTrackIsPublished = subBuilder; break; } + case 594: { + global::LiveKit.Proto.DataTrackSubscriptionReadResponse subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionReadResponse(); + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) { + subBuilder.MergeFrom(DataTrackSubscriptionRead); + } + input.ReadMessage(subBuilder); + DataTrackSubscriptionRead = subBuilder; + break; + } } } #endif @@ -8502,6 +8603,15 @@ public void MergeFrom(pb::CodedInputStream input) { RemoteDataTrackIsPublished = subBuilder; break; } + case 594: { + global::LiveKit.Proto.DataTrackSubscriptionReadResponse subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionReadResponse(); + if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) { + subBuilder.MergeFrom(DataTrackSubscriptionRead); + } + input.ReadMessage(subBuilder); + DataTrackSubscriptionRead = subBuilder; + break; + } } } } diff --git a/Runtime/Scripts/Proto/Participant.cs b/Runtime/Scripts/Proto/Participant.cs index 60ae0e7f..27ab4e31 100644 --- a/Runtime/Scripts/Proto/Participant.cs +++ b/Runtime/Scripts/Proto/Participant.cs @@ -53,7 +53,7 @@ static ParticipantReflection() { "X0tJTkRfREVUQUlMX0ZPUldBUkRFRBABEi4KKlBBUlRJQ0lQQU5UX0tJTkRf", "REVUQUlMX0NPTk5FQ1RPUl9XSEFUU0FQUBACEiwKKFBBUlRJQ0lQQU5UX0tJ", "TkRfREVUQUlMX0NPTk5FQ1RPUl9UV0lMSU8QAxInCiNQQVJUSUNJUEFOVF9L", - "SU5EX0RFVEFJTF9CUklER0VfUlRTUBAEKtcCChBEaXNjb25uZWN0UmVhc29u", + "SU5EX0RFVEFJTF9CUklER0VfUlRTUBAEKugCChBEaXNjb25uZWN0UmVhc29u", "EhIKDlVOS05PV05fUkVBU09OEAASFAoQQ0xJRU5UX0lOSVRJQVRFRBABEhYK", "EkRVUExJQ0FURV9JREVOVElUWRACEhMKD1NFUlZFUl9TSFVURE9XThADEhcK", "E1BBUlRJQ0lQQU5UX1JFTU9WRUQQBBIQCgxST09NX0RFTEVURUQQBRISCg5T", @@ -61,7 +61,7 @@ static ParticipantReflection() { "ThAIEhAKDFNJR05BTF9DTE9TRRAJEg8KC1JPT01fQ0xPU0VEEAoSFAoQVVNF", "Ul9VTkFWQUlMQUJMRRALEhEKDVVTRVJfUkVKRUNURUQQDBIVChFTSVBfVFJV", "TktfRkFJTFVSRRANEhYKEkNPTk5FQ1RJT05fVElNRU9VVBAOEhEKDU1FRElB", - "X0ZBSUxVUkUQD0IQqgINTGl2ZUtpdC5Qcm90bw==")); + "X0ZBSUxVUkUQDxIPCgtBR0VOVF9FUlJPUhAQQhCqAg1MaXZlS2l0LlByb3Rv")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.ParticipantKind), typeof(global::LiveKit.Proto.ParticipantKindDetail), typeof(global::LiveKit.Proto.DisconnectReason), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -148,6 +148,7 @@ public enum DisconnectReason { [pbr::OriginalName("SIP_TRUNK_FAILURE")] SipTrunkFailure = 13, [pbr::OriginalName("CONNECTION_TIMEOUT")] ConnectionTimeout = 14, [pbr::OriginalName("MEDIA_FAILURE")] MediaFailure = 15, + [pbr::OriginalName("AGENT_ERROR")] AgentError = 16, } #endregion diff --git a/Runtime/Scripts/Proto/Room.cs b/Runtime/Scripts/Proto/Room.cs index daae97d4..676bbd6a 100644 --- a/Runtime/Scripts/Proto/Room.cs +++ b/Runtime/Scripts/Proto/Room.cs @@ -40,310 +40,314 @@ static RoomReflection() { "MhgubGl2ZWtpdC5wcm90by5Pd25lZFJvb20SOgoRbG9jYWxfcGFydGljaXBh", "bnQYAiACKAsyHy5saXZla2l0LnByb3RvLk93bmVkUGFydGljaXBhbnQSSgoM", "cGFydGljaXBhbnRzGAMgAygLMjQubGl2ZWtpdC5wcm90by5Db25uZWN0Q2Fs", - "bGJhY2suUGFydGljaXBhbnRXaXRoVHJhY2tzQgkKB21lc3NhZ2UiQgoRRGlz", + "bGJhY2suUGFydGljaXBhbnRXaXRoVHJhY2tzQgkKB21lc3NhZ2UicwoRRGlz", "Y29ubmVjdFJlcXVlc3QSEwoLcm9vbV9oYW5kbGUYASACKAQSGAoQcmVxdWVz", - "dF9hc3luY19pZBgCIAEoBCImChJEaXNjb25uZWN0UmVzcG9uc2USEAoIYXN5", - "bmNfaWQYASACKAQiJgoSRGlzY29ubmVjdENhbGxiYWNrEhAKCGFzeW5jX2lk", - "GAEgAigEIpwBChNQdWJsaXNoVHJhY2tSZXF1ZXN0EiAKGGxvY2FsX3BhcnRp", - "Y2lwYW50X2hhbmRsZRgBIAIoBBIUCgx0cmFja19oYW5kbGUYAiACKAQSMwoH", - "b3B0aW9ucxgDIAIoCzIiLmxpdmVraXQucHJvdG8uVHJhY2tQdWJsaXNoT3B0", - "aW9ucxIYChByZXF1ZXN0X2FzeW5jX2lkGAQgASgEIigKFFB1Ymxpc2hUcmFj", - "a1Jlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIoEBChRQdWJsaXNoVHJhY2tD", - "YWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIPCgVlcnJvchgCIAEoCUgAEjsK", - "C3B1YmxpY2F0aW9uGAMgASgLMiQubGl2ZWtpdC5wcm90by5Pd25lZFRyYWNr", - "UHVibGljYXRpb25IAEIJCgdtZXNzYWdlIoEBChVVbnB1Ymxpc2hUcmFja1Jl", - "cXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEhEKCXRy", - "YWNrX3NpZBgCIAIoCRIZChFzdG9wX29uX3VucHVibGlzaBgDIAIoCBIYChBy", - "ZXF1ZXN0X2FzeW5jX2lkGAQgASgEIioKFlVucHVibGlzaFRyYWNrUmVzcG9u", - "c2USEAoIYXN5bmNfaWQYASACKAQiOQoWVW5wdWJsaXNoVHJhY2tDYWxsYmFj", - "axIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSLTAQoSUHVibGlz", - "aERhdGFSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIo", - "BBIQCghkYXRhX3B0chgCIAIoBBIQCghkYXRhX2xlbhgDIAIoBBIQCghyZWxp", - "YWJsZRgEIAIoCBIcChBkZXN0aW5hdGlvbl9zaWRzGAUgAygJQgIYARINCgV0", - "b3BpYxgGIAEoCRIeChZkZXN0aW5hdGlvbl9pZGVudGl0aWVzGAcgAygJEhgK", - "EHJlcXVlc3RfYXN5bmNfaWQYCCABKAQiJwoTUHVibGlzaERhdGFSZXNwb25z", - "ZRIQCghhc3luY19pZBgBIAIoBCI2ChNQdWJsaXNoRGF0YUNhbGxiYWNrEhAK", - "CGFzeW5jX2lkGAEgAigEEg0KBWVycm9yGAIgASgJIsABChtQdWJsaXNoVHJh", - "bnNjcmlwdGlvblJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxl", - "GAEgAigEEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAIgAigJEhAKCHRyYWNr", - "X2lkGAMgAigJEjUKCHNlZ21lbnRzGAQgAygLMiMubGl2ZWtpdC5wcm90by5U", - "cmFuc2NyaXB0aW9uU2VnbWVudBIYChByZXF1ZXN0X2FzeW5jX2lkGAUgASgE", - "IjAKHFB1Ymxpc2hUcmFuc2NyaXB0aW9uUmVzcG9uc2USEAoIYXN5bmNfaWQY", - "ASACKAQiPwocUHVibGlzaFRyYW5zY3JpcHRpb25DYWxsYmFjaxIQCghhc3lu", - "Y19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSKQAQoVUHVibGlzaFNpcER0bWZS", - "ZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIMCgRj", - "b2RlGAIgAigNEg0KBWRpZ2l0GAMgAigJEh4KFmRlc3RpbmF0aW9uX2lkZW50", - "aXRpZXMYBCADKAkSGAoQcmVxdWVzdF9hc3luY19pZBgFIAEoBCIqChZQdWJs", - "aXNoU2lwRHRtZlJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIjkKFlB1Ymxp", - "c2hTaXBEdG1mQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IY", - "AiABKAkiZwoXU2V0TG9jYWxNZXRhZGF0YVJlcXVlc3QSIAoYbG9jYWxfcGFy", - "dGljaXBhbnRfaGFuZGxlGAEgAigEEhAKCG1ldGFkYXRhGAIgAigJEhgKEHJl", - "cXVlc3RfYXN5bmNfaWQYAyABKAQiLAoYU2V0TG9jYWxNZXRhZGF0YVJlc3Bv", - "bnNlEhAKCGFzeW5jX2lkGAEgAigEIjsKGFNldExvY2FsTWV0YWRhdGFDYWxs", - "YmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSKeAQoWU2Vu", - "ZENoYXRNZXNzYWdlUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5k", - "bGUYASACKAQSDwoHbWVzc2FnZRgCIAIoCRIeChZkZXN0aW5hdGlvbl9pZGVu", - "dGl0aWVzGAMgAygJEhcKD3NlbmRlcl9pZGVudGl0eRgEIAEoCRIYChByZXF1", - "ZXN0X2FzeW5jX2lkGAUgASgEItYBChZFZGl0Q2hhdE1lc3NhZ2VSZXF1ZXN0", - "EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIRCgllZGl0X3Rl", - "eHQYAiACKAkSNAoQb3JpZ2luYWxfbWVzc2FnZRgDIAIoCzIaLmxpdmVraXQu", - "cHJvdG8uQ2hhdE1lc3NhZ2USHgoWZGVzdGluYXRpb25faWRlbnRpdGllcxgE", - "IAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBSABKAkSGAoQcmVxdWVzdF9hc3lu", - "Y19pZBgGIAEoBCIrChdTZW5kQ2hhdE1lc3NhZ2VSZXNwb25zZRIQCghhc3lu", - "Y19pZBgBIAIoBCJ7ChdTZW5kQ2hhdE1lc3NhZ2VDYWxsYmFjaxIQCghhc3lu", - "Y19pZBgBIAIoBBIPCgVlcnJvchgCIAEoCUgAEjIKDGNoYXRfbWVzc2FnZRgD", - "IAEoCzIaLmxpdmVraXQucHJvdG8uQ2hhdE1lc3NhZ2VIAEIJCgdtZXNzYWdl", - "IosBChlTZXRMb2NhbEF0dHJpYnV0ZXNSZXF1ZXN0EiAKGGxvY2FsX3BhcnRp", - "Y2lwYW50X2hhbmRsZRgBIAIoBBIyCgphdHRyaWJ1dGVzGAIgAygLMh4ubGl2", - "ZWtpdC5wcm90by5BdHRyaWJ1dGVzRW50cnkSGAoQcmVxdWVzdF9hc3luY19p", - "ZBgDIAEoBCItCg9BdHRyaWJ1dGVzRW50cnkSCwoDa2V5GAEgAigJEg0KBXZh", - "bHVlGAIgAigJIi4KGlNldExvY2FsQXR0cmlidXRlc1Jlc3BvbnNlEhAKCGFz", - "eW5jX2lkGAEgAigEIj0KGlNldExvY2FsQXR0cmlidXRlc0NhbGxiYWNrEhAK", - "CGFzeW5jX2lkGAEgAigEEg0KBWVycm9yGAIgASgJIl8KE1NldExvY2FsTmFt", - "ZVJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEgwK", - "BG5hbWUYAiACKAkSGAoQcmVxdWVzdF9hc3luY19pZBgDIAEoBCIoChRTZXRM", - "b2NhbE5hbWVSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCI3ChRTZXRMb2Nh", - "bE5hbWVDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEo", - "CSJFChRTZXRTdWJzY3JpYmVkUmVxdWVzdBIRCglzdWJzY3JpYmUYASACKAgS", - "GgoScHVibGljYXRpb25faGFuZGxlGAIgAigEIhcKFVNldFN1YnNjcmliZWRS", - "ZXNwb25zZSJHChZHZXRTZXNzaW9uU3RhdHNSZXF1ZXN0EhMKC3Jvb21faGFu", - "ZGxlGAEgAigEEhgKEHJlcXVlc3RfYXN5bmNfaWQYAiABKAQiKwoXR2V0U2Vz", - "c2lvblN0YXRzUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQi9wEKF0dldFNl", - "c3Npb25TdGF0c0NhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEg8KBWVycm9y", - "GAIgASgJSAASPwoGcmVzdWx0GAMgASgLMi0ubGl2ZWtpdC5wcm90by5HZXRT", - "ZXNzaW9uU3RhdHNDYWxsYmFjay5SZXN1bHRIABptCgZSZXN1bHQSMAoPcHVi", - "bGlzaGVyX3N0YXRzGAEgAygLMhcubGl2ZWtpdC5wcm90by5SdGNTdGF0cxIx", - "ChBzdWJzY3JpYmVyX3N0YXRzGAIgAygLMhcubGl2ZWtpdC5wcm90by5SdGNT", - "dGF0c0IJCgdtZXNzYWdlIjsKDVZpZGVvRW5jb2RpbmcSEwoLbWF4X2JpdHJh", - "dGUYASACKAQSFQoNbWF4X2ZyYW1lcmF0ZRgCIAIoASIkCg1BdWRpb0VuY29k", - "aW5nEhMKC21heF9iaXRyYXRlGAEgAigEIrUCChNUcmFja1B1Ymxpc2hPcHRp", - "b25zEjQKDnZpZGVvX2VuY29kaW5nGAEgASgLMhwubGl2ZWtpdC5wcm90by5W", - "aWRlb0VuY29kaW5nEjQKDmF1ZGlvX2VuY29kaW5nGAIgASgLMhwubGl2ZWtp", - "dC5wcm90by5BdWRpb0VuY29kaW5nEi4KC3ZpZGVvX2NvZGVjGAMgASgOMhku", - "bGl2ZWtpdC5wcm90by5WaWRlb0NvZGVjEgsKA2R0eBgEIAEoCBILCgNyZWQY", - "BSABKAgSEQoJc2ltdWxjYXN0GAYgASgIEioKBnNvdXJjZRgHIAEoDjIaLmxp", - "dmVraXQucHJvdG8uVHJhY2tTb3VyY2USDgoGc3RyZWFtGAggASgJEhkKEXBy", - "ZWNvbm5lY3RfYnVmZmVyGAkgASgIIj0KCUljZVNlcnZlchIMCgR1cmxzGAEg", - "AygJEhAKCHVzZXJuYW1lGAIgASgJEhAKCHBhc3N3b3JkGAMgASgJIsQBCglS", - "dGNDb25maWcSOwoSaWNlX3RyYW5zcG9ydF90eXBlGAEgASgOMh8ubGl2ZWtp", - "dC5wcm90by5JY2VUcmFuc3BvcnRUeXBlEksKGmNvbnRpbnVhbF9nYXRoZXJp", - "bmdfcG9saWN5GAIgASgOMicubGl2ZWtpdC5wcm90by5Db250aW51YWxHYXRo", - "ZXJpbmdQb2xpY3kSLQoLaWNlX3NlcnZlcnMYAyADKAsyGC5saXZla2l0LnBy", - "b3RvLkljZVNlcnZlciLyAQoLUm9vbU9wdGlvbnMSFgoOYXV0b19zdWJzY3Jp", - "YmUYASABKAgSFwoPYWRhcHRpdmVfc3RyZWFtGAIgASgIEhAKCGR5bmFjYXN0", - "GAMgASgIEiwKBGUyZWUYBCABKAsyGi5saXZla2l0LnByb3RvLkUyZWVPcHRp", - "b25zQgIYARIsCgpydGNfY29uZmlnGAUgASgLMhgubGl2ZWtpdC5wcm90by5S", - "dGNDb25maWcSFAoMam9pbl9yZXRyaWVzGAYgASgNEi4KCmVuY3J5cHRpb24Y", - "ByABKAsyGi5saXZla2l0LnByb3RvLkUyZWVPcHRpb25zIncKFFRyYW5zY3Jp", - "cHRpb25TZWdtZW50EgoKAmlkGAEgAigJEgwKBHRleHQYAiACKAkSEgoKc3Rh", - "cnRfdGltZRgDIAIoBBIQCghlbmRfdGltZRgEIAIoBBINCgVmaW5hbBgFIAIo", - "CBIQCghsYW5ndWFnZRgGIAIoCSIwCgpCdWZmZXJJbmZvEhAKCGRhdGFfcHRy", - "GAEgAigEEhAKCGRhdGFfbGVuGAIgAigEImUKC093bmVkQnVmZmVyEi0KBmhh", - "bmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUSJwoE", - "ZGF0YRgCIAIoCzIZLmxpdmVraXQucHJvdG8uQnVmZmVySW5mbyKLFgoJUm9v", - "bUV2ZW50EhMKC3Jvb21faGFuZGxlGAEgAigEEkQKFXBhcnRpY2lwYW50X2Nv", - "bm5lY3RlZBgCIAEoCzIjLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRDb25u", - "ZWN0ZWRIABJKChhwYXJ0aWNpcGFudF9kaXNjb25uZWN0ZWQYAyABKAsyJi5s", - "aXZla2l0LnByb3RvLlBhcnRpY2lwYW50RGlzY29ubmVjdGVkSAASQwoVbG9j", - "YWxfdHJhY2tfcHVibGlzaGVkGAQgASgLMiIubGl2ZWtpdC5wcm90by5Mb2Nh", - "bFRyYWNrUHVibGlzaGVkSAASRwoXbG9jYWxfdHJhY2tfdW5wdWJsaXNoZWQY", - "BSABKAsyJC5saXZla2l0LnByb3RvLkxvY2FsVHJhY2tVbnB1Ymxpc2hlZEgA", - "EkUKFmxvY2FsX3RyYWNrX3N1YnNjcmliZWQYBiABKAsyIy5saXZla2l0LnBy", - "b3RvLkxvY2FsVHJhY2tTdWJzY3JpYmVkSAASOAoPdHJhY2tfcHVibGlzaGVk", - "GAcgASgLMh0ubGl2ZWtpdC5wcm90by5UcmFja1B1Ymxpc2hlZEgAEjwKEXRy", - "YWNrX3VucHVibGlzaGVkGAggASgLMh8ubGl2ZWtpdC5wcm90by5UcmFja1Vu", - "cHVibGlzaGVkSAASOgoQdHJhY2tfc3Vic2NyaWJlZBgJIAEoCzIeLmxpdmVr", - "aXQucHJvdG8uVHJhY2tTdWJzY3JpYmVkSAASPgoSdHJhY2tfdW5zdWJzY3Jp", - "YmVkGAogASgLMiAubGl2ZWtpdC5wcm90by5UcmFja1Vuc3Vic2NyaWJlZEgA", - "EksKGXRyYWNrX3N1YnNjcmlwdGlvbl9mYWlsZWQYCyABKAsyJi5saXZla2l0", - "LnByb3RvLlRyYWNrU3Vic2NyaXB0aW9uRmFpbGVkSAASMAoLdHJhY2tfbXV0", - "ZWQYDCABKAsyGS5saXZla2l0LnByb3RvLlRyYWNrTXV0ZWRIABI0Cg10cmFj", - "a191bm11dGVkGA0gASgLMhsubGl2ZWtpdC5wcm90by5UcmFja1VubXV0ZWRI", - "ABJHChdhY3RpdmVfc3BlYWtlcnNfY2hhbmdlZBgOIAEoCzIkLmxpdmVraXQu", - "cHJvdG8uQWN0aXZlU3BlYWtlcnNDaGFuZ2VkSAASQwoVcm9vbV9tZXRhZGF0", - "YV9jaGFuZ2VkGA8gASgLMiIubGl2ZWtpdC5wcm90by5Sb29tTWV0YWRhdGFD", - "aGFuZ2VkSAASOQoQcm9vbV9zaWRfY2hhbmdlZBgQIAEoCzIdLmxpdmVraXQu", - "cHJvdG8uUm9vbVNpZENoYW5nZWRIABJRChxwYXJ0aWNpcGFudF9tZXRhZGF0", - "YV9jaGFuZ2VkGBEgASgLMikubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudE1l", - "dGFkYXRhQ2hhbmdlZEgAEkkKGHBhcnRpY2lwYW50X25hbWVfY2hhbmdlZBgS", - "IAEoCzIlLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnROYW1lQ2hhbmdlZEgA", - "ElUKHnBhcnRpY2lwYW50X2F0dHJpYnV0ZXNfY2hhbmdlZBgTIAEoCzIrLmxp", - "dmVraXQucHJvdG8uUGFydGljaXBhbnRBdHRyaWJ1dGVzQ2hhbmdlZEgAEk0K", - "GmNvbm5lY3Rpb25fcXVhbGl0eV9jaGFuZ2VkGBQgASgLMicubGl2ZWtpdC5w", - "cm90by5Db25uZWN0aW9uUXVhbGl0eUNoYW5nZWRIABJJChhjb25uZWN0aW9u", - "X3N0YXRlX2NoYW5nZWQYFSABKAsyJS5saXZla2l0LnByb3RvLkNvbm5lY3Rp", - "b25TdGF0ZUNoYW5nZWRIABIzCgxkaXNjb25uZWN0ZWQYFiABKAsyGy5saXZl", - "a2l0LnByb3RvLkRpc2Nvbm5lY3RlZEgAEjMKDHJlY29ubmVjdGluZxgXIAEo", - "CzIbLmxpdmVraXQucHJvdG8uUmVjb25uZWN0aW5nSAASMQoLcmVjb25uZWN0", - "ZWQYGCABKAsyGi5saXZla2l0LnByb3RvLlJlY29ubmVjdGVkSAASPQoSZTJl", - "ZV9zdGF0ZV9jaGFuZ2VkGBkgASgLMh8ubGl2ZWtpdC5wcm90by5FMmVlU3Rh", - "dGVDaGFuZ2VkSAASJQoDZW9zGBogASgLMhYubGl2ZWtpdC5wcm90by5Sb29t", - "RU9TSAASQQoUZGF0YV9wYWNrZXRfcmVjZWl2ZWQYGyABKAsyIS5saXZla2l0", - "LnByb3RvLkRhdGFQYWNrZXRSZWNlaXZlZEgAEkYKFnRyYW5zY3JpcHRpb25f", - "cmVjZWl2ZWQYHCABKAsyJC5saXZla2l0LnByb3RvLlRyYW5zY3JpcHRpb25S", - "ZWNlaXZlZEgAEjoKDGNoYXRfbWVzc2FnZRgdIAEoCzIiLmxpdmVraXQucHJv", - "dG8uQ2hhdE1lc3NhZ2VSZWNlaXZlZEgAEkkKFnN0cmVhbV9oZWFkZXJfcmVj", - "ZWl2ZWQYHiABKAsyJy5saXZla2l0LnByb3RvLkRhdGFTdHJlYW1IZWFkZXJS", - "ZWNlaXZlZEgAEkcKFXN0cmVhbV9jaHVua19yZWNlaXZlZBgfIAEoCzImLmxp", - "dmVraXQucHJvdG8uRGF0YVN0cmVhbUNodW5rUmVjZWl2ZWRIABJLChdzdHJl", - "YW1fdHJhaWxlcl9yZWNlaXZlZBggIAEoCzIoLmxpdmVraXQucHJvdG8uRGF0", - "YVN0cmVhbVRyYWlsZXJSZWNlaXZlZEgAEmkKImRhdGFfY2hhbm5lbF9sb3df", - "dGhyZXNob2xkX2NoYW5nZWQYISABKAsyOy5saXZla2l0LnByb3RvLkRhdGFD", - "aGFubmVsQnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGRDaGFuZ2VkSAASPQoS", - "Ynl0ZV9zdHJlYW1fb3BlbmVkGCIgASgLMh8ubGl2ZWtpdC5wcm90by5CeXRl", - "U3RyZWFtT3BlbmVkSAASPQoSdGV4dF9zdHJlYW1fb3BlbmVkGCMgASgLMh8u", - "bGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtT3BlbmVkSAASLwoMcm9vbV91cGRh", - "dGVkGCQgASgLMhcubGl2ZWtpdC5wcm90by5Sb29tSW5mb0gAEigKBW1vdmVk", - "GCUgASgLMhcubGl2ZWtpdC5wcm90by5Sb29tSW5mb0gAEkIKFHBhcnRpY2lw", - "YW50c191cGRhdGVkGCYgASgLMiIubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFu", - "dHNVcGRhdGVkSAASYgolcGFydGljaXBhbnRfZW5jcnlwdGlvbl9zdGF0dXNf", - "Y2hhbmdlZBgnIAEoCzIxLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRFbmNy", - "eXB0aW9uU3RhdHVzQ2hhbmdlZEgAElUKHnBhcnRpY2lwYW50X3Blcm1pc3Np", - "b25fY2hhbmdlZBgpIAEoCzIrLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRQ", - "ZXJtaXNzaW9uQ2hhbmdlZEgAEjgKD3Rva2VuX3JlZnJlc2hlZBgoIAEoCzId", - "LmxpdmVraXQucHJvdG8uVG9rZW5SZWZyZXNoZWRIABJOChtyZW1vdGVfZGF0", - "YV90cmFja19wdWJsaXNoZWQYKiABKAsyJy5saXZla2l0LnByb3RvLlJlbW90", - "ZURhdGFUcmFja1B1Ymxpc2hlZEgAQgkKB21lc3NhZ2UiyQIKCFJvb21JbmZv", - "EgsKA3NpZBgBIAEoCRIMCgRuYW1lGAIgAigJEhAKCG1ldGFkYXRhGAMgAigJ", - "Ei4KJmxvc3N5X2RjX2J1ZmZlcmVkX2Ftb3VudF9sb3dfdGhyZXNob2xkGAQg", - "AigEEjEKKXJlbGlhYmxlX2RjX2J1ZmZlcmVkX2Ftb3VudF9sb3dfdGhyZXNo", - "b2xkGAUgAigEEhUKDWVtcHR5X3RpbWVvdXQYBiACKA0SGQoRZGVwYXJ0dXJl", - "X3RpbWVvdXQYByACKA0SGAoQbWF4X3BhcnRpY2lwYW50cxgIIAIoDRIVCg1j", - "cmVhdGlvbl90aW1lGAkgAigDEhgKEG51bV9wYXJ0aWNpcGFudHMYCiACKA0S", - "FgoObnVtX3B1Ymxpc2hlcnMYCyACKA0SGAoQYWN0aXZlX3JlY29yZGluZxgM", - "IAIoCCJhCglPd25lZFJvb20SLQoGaGFuZGxlGAEgAigLMh0ubGl2ZWtpdC5w", - "cm90by5GZmlPd25lZEhhbmRsZRIlCgRpbmZvGAIgAigLMhcubGl2ZWtpdC5w", - "cm90by5Sb29tSW5mbyJLChNQYXJ0aWNpcGFudHNVcGRhdGVkEjQKDHBhcnRp", - "Y2lwYW50cxgBIAMoCzIeLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRJbmZv", - "IkUKFFBhcnRpY2lwYW50Q29ubmVjdGVkEi0KBGluZm8YASACKAsyHy5saXZl", - "a2l0LnByb3RvLk93bmVkUGFydGljaXBhbnQicwoXUGFydGljaXBhbnREaXNj", - "b25uZWN0ZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSOgoRZGlz", - "Y29ubmVjdF9yZWFzb24YAiACKA4yHy5saXZla2l0LnByb3RvLkRpc2Nvbm5l", - "Y3RSZWFzb24iKAoTTG9jYWxUcmFja1B1Ymxpc2hlZBIRCgl0cmFja19zaWQY", - "ASACKAkiMAoVTG9jYWxUcmFja1VucHVibGlzaGVkEhcKD3B1YmxpY2F0aW9u", - "X3NpZBgBIAIoCSIpChRMb2NhbFRyYWNrU3Vic2NyaWJlZBIRCgl0cmFja19z", - "aWQYAiACKAkiaQoOVHJhY2tQdWJsaXNoZWQSHAoUcGFydGljaXBhbnRfaWRl", - "bnRpdHkYASACKAkSOQoLcHVibGljYXRpb24YAiACKAsyJC5saXZla2l0LnBy", - "b3RvLk93bmVkVHJhY2tQdWJsaWNhdGlvbiJJChBUcmFja1VucHVibGlzaGVk", - "EhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEhcKD3B1YmxpY2F0aW9u", - "X3NpZBgCIAIoCSJZCg9UcmFja1N1YnNjcmliZWQSHAoUcGFydGljaXBhbnRf", - "aWRlbnRpdHkYASACKAkSKAoFdHJhY2sYAiACKAsyGS5saXZla2l0LnByb3Rv", - "Lk93bmVkVHJhY2siRAoRVHJhY2tVbnN1YnNjcmliZWQSHAoUcGFydGljaXBh", - "bnRfaWRlbnRpdHkYASACKAkSEQoJdHJhY2tfc2lkGAIgAigJIlkKF1RyYWNr", - "U3Vic2NyaXB0aW9uRmFpbGVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEg", - "AigJEhEKCXRyYWNrX3NpZBgCIAIoCRINCgVlcnJvchgDIAIoCSI9CgpUcmFj", - "a011dGVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEhEKCXRyYWNr", - "X3NpZBgCIAIoCSI/CgxUcmFja1VubXV0ZWQSHAoUcGFydGljaXBhbnRfaWRl", - "bnRpdHkYASACKAkSEQoJdHJhY2tfc2lkGAIgAigJIl8KEEUyZWVTdGF0ZUNo", - "YW5nZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSLQoFc3RhdGUY", - "AiACKA4yHi5saXZla2l0LnByb3RvLkVuY3J5cHRpb25TdGF0ZSI3ChVBY3Rp", - "dmVTcGVha2Vyc0NoYW5nZWQSHgoWcGFydGljaXBhbnRfaWRlbnRpdGllcxgB", - "IAMoCSInChNSb29tTWV0YWRhdGFDaGFuZ2VkEhAKCG1ldGFkYXRhGAEgAigJ", - "Ih0KDlJvb21TaWRDaGFuZ2VkEgsKA3NpZBgBIAIoCSJMChpQYXJ0aWNpcGFu", - "dE1ldGFkYXRhQ2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIo", - "CRIQCghtZXRhZGF0YRgCIAIoCSKsAQocUGFydGljaXBhbnRBdHRyaWJ1dGVz", - "Q2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIyCgphdHRy", - "aWJ1dGVzGAIgAygLMh4ubGl2ZWtpdC5wcm90by5BdHRyaWJ1dGVzRW50cnkS", - "OgoSY2hhbmdlZF9hdHRyaWJ1dGVzGAMgAygLMh4ubGl2ZWtpdC5wcm90by5B", - "dHRyaWJ1dGVzRW50cnkiWAoiUGFydGljaXBhbnRFbmNyeXB0aW9uU3RhdHVz", - "Q2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIUCgxpc19l", - "bmNyeXB0ZWQYAiACKAgiRAoWUGFydGljaXBhbnROYW1lQ2hhbmdlZBIcChRw", - "YXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIMCgRuYW1lGAIgAigJInYKHFBh", - "cnRpY2lwYW50UGVybWlzc2lvbkNoYW5nZWQSHAoUcGFydGljaXBhbnRfaWRl", - "bnRpdHkYASACKAkSOAoKcGVybWlzc2lvbhgCIAEoCzIkLmxpdmVraXQucHJv", - "dG8uUGFydGljaXBhbnRQZXJtaXNzaW9uImsKGENvbm5lY3Rpb25RdWFsaXR5", - "Q2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIxCgdxdWFs", - "aXR5GAIgAigOMiAubGl2ZWtpdC5wcm90by5Db25uZWN0aW9uUXVhbGl0eSJF", - "CgpVc2VyUGFja2V0EigKBGRhdGEYASACKAsyGi5saXZla2l0LnByb3RvLk93", - "bmVkQnVmZmVyEg0KBXRvcGljGAIgASgJInkKC0NoYXRNZXNzYWdlEgoKAmlk", - "GAEgAigJEhEKCXRpbWVzdGFtcBgCIAIoAxIPCgdtZXNzYWdlGAMgAigJEhYK", - "DmVkaXRfdGltZXN0YW1wGAQgASgDEg8KB2RlbGV0ZWQYBSABKAgSEQoJZ2Vu", - "ZXJhdGVkGAYgASgIImAKE0NoYXRNZXNzYWdlUmVjZWl2ZWQSKwoHbWVzc2Fn", - "ZRgBIAIoCzIaLmxpdmVraXQucHJvdG8uQ2hhdE1lc3NhZ2USHAoUcGFydGlj", - "aXBhbnRfaWRlbnRpdHkYAiACKAkiJgoHU2lwRFRNRhIMCgRjb2RlGAEgAigN", - "Eg0KBWRpZ2l0GAIgASgJIr8BChJEYXRhUGFja2V0UmVjZWl2ZWQSKwoEa2lu", - "ZBgBIAIoDjIdLmxpdmVraXQucHJvdG8uRGF0YVBhY2tldEtpbmQSHAoUcGFy", - "dGljaXBhbnRfaWRlbnRpdHkYAiACKAkSKQoEdXNlchgEIAEoCzIZLmxpdmVr", - "aXQucHJvdG8uVXNlclBhY2tldEgAEioKCHNpcF9kdG1mGAUgASgLMhYubGl2", - "ZWtpdC5wcm90by5TaXBEVE1GSABCBwoFdmFsdWUifwoVVHJhbnNjcmlwdGlv", - "blJlY2VpdmVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgASgJEhEKCXRy", - "YWNrX3NpZBgCIAEoCRI1CghzZWdtZW50cxgDIAMoCzIjLmxpdmVraXQucHJv", - "dG8uVHJhbnNjcmlwdGlvblNlZ21lbnQiRwoWQ29ubmVjdGlvblN0YXRlQ2hh", - "bmdlZBItCgVzdGF0ZRgBIAIoDjIeLmxpdmVraXQucHJvdG8uQ29ubmVjdGlv", - "blN0YXRlIgsKCUNvbm5lY3RlZCI/CgxEaXNjb25uZWN0ZWQSLwoGcmVhc29u", - "GAEgAigOMh8ubGl2ZWtpdC5wcm90by5EaXNjb25uZWN0UmVhc29uIg4KDFJl", - "Y29ubmVjdGluZyINCgtSZWNvbm5lY3RlZCIfCg5Ub2tlblJlZnJlc2hlZBIN", - "CgV0b2tlbhgBIAIoCSIJCgdSb29tRU9TIo4HCgpEYXRhU3RyZWFtGqoBCgpU", - "ZXh0SGVhZGVyEj8KDm9wZXJhdGlvbl90eXBlGAEgAigOMicubGl2ZWtpdC5w", - "cm90by5EYXRhU3RyZWFtLk9wZXJhdGlvblR5cGUSDwoHdmVyc2lvbhgCIAEo", - "BRIaChJyZXBseV90b19zdHJlYW1faWQYAyABKAkSGwoTYXR0YWNoZWRfc3Ry", - "ZWFtX2lkcxgEIAMoCRIRCglnZW5lcmF0ZWQYBSABKAgaGgoKQnl0ZUhlYWRl", - "chIMCgRuYW1lGAEgAigJGusCCgZIZWFkZXISEQoJc3RyZWFtX2lkGAEgAigJ", - "EhEKCXRpbWVzdGFtcBgCIAIoAxIRCgltaW1lX3R5cGUYAyACKAkSDQoFdG9w", - "aWMYBCACKAkSFAoMdG90YWxfbGVuZ3RoGAUgASgEEkQKCmF0dHJpYnV0ZXMY", - "BiADKAsyMC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uSGVhZGVyLkF0dHJp", - "YnV0ZXNFbnRyeRI7Cgt0ZXh0X2hlYWRlchgHIAEoCzIkLmxpdmVraXQucHJv", - "dG8uRGF0YVN0cmVhbS5UZXh0SGVhZGVySAASOwoLYnl0ZV9oZWFkZXIYCCAB", - "KAsyJC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uQnl0ZUhlYWRlckgAGjEK", - "D0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6", - "AjgBQhAKDmNvbnRlbnRfaGVhZGVyGl0KBUNodW5rEhEKCXN0cmVhbV9pZBgB", - "IAIoCRITCgtjaHVua19pbmRleBgCIAIoBBIPCgdjb250ZW50GAMgAigMEg8K", - "B3ZlcnNpb24YBCABKAUSCgoCaXYYBSABKAwapgEKB1RyYWlsZXISEQoJc3Ry", - "ZWFtX2lkGAEgAigJEg4KBnJlYXNvbhgCIAIoCRJFCgphdHRyaWJ1dGVzGAMg", - "AygLMjEubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFtLlRyYWlsZXIuQXR0cmli", - "dXRlc0VudHJ5GjEKD0F0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoF", - "dmFsdWUYAiABKAk6AjgBIkEKDU9wZXJhdGlvblR5cGUSCgoGQ1JFQVRFEAAS", - "CgoGVVBEQVRFEAESCgoGREVMRVRFEAISDAoIUkVBQ1RJT04QAyJqChhEYXRh", - "U3RyZWFtSGVhZGVyUmVjZWl2ZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkY", - "ASACKAkSMAoGaGVhZGVyGAIgAigLMiAubGl2ZWtpdC5wcm90by5EYXRhU3Ry", - "ZWFtLkhlYWRlciJnChdEYXRhU3RyZWFtQ2h1bmtSZWNlaXZlZBIcChRwYXJ0", - "aWNpcGFudF9pZGVudGl0eRgBIAIoCRIuCgVjaHVuaxgCIAIoCzIfLmxpdmVr", - "aXQucHJvdG8uRGF0YVN0cmVhbS5DaHVuayJtChlEYXRhU3RyZWFtVHJhaWxl", - "clJlY2VpdmVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEjIKB3Ry", - "YWlsZXIYAiACKAsyIS5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uVHJhaWxl", - "ciLAAQoXU2VuZFN0cmVhbUhlYWRlclJlcXVlc3QSIAoYbG9jYWxfcGFydGlj", - "aXBhbnRfaGFuZGxlGAEgAigEEjAKBmhlYWRlchgCIAIoCzIgLmxpdmVraXQu", - "cHJvdG8uRGF0YVN0cmVhbS5IZWFkZXISHgoWZGVzdGluYXRpb25faWRlbnRp", - "dGllcxgDIAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBCACKAkSGAoQcmVxdWVz", - "dF9hc3luY19pZBgFIAEoBCK9AQoWU2VuZFN0cmVhbUNodW5rUmVxdWVzdBIg", - "Chhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSLgoFY2h1bmsYAiAC", - "KAsyHy5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uQ2h1bmsSHgoWZGVzdGlu", - "YXRpb25faWRlbnRpdGllcxgDIAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBCAC", - "KAkSGAoQcmVxdWVzdF9hc3luY19pZBgFIAEoBCLDAQoYU2VuZFN0cmVhbVRy", - "YWlsZXJSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIo", - "BBIyCgd0cmFpbGVyGAIgAigLMiEubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFt", - "LlRyYWlsZXISHgoWZGVzdGluYXRpb25faWRlbnRpdGllcxgDIAMoCRIXCg9z", - "ZW5kZXJfaWRlbnRpdHkYBCACKAkSGAoQcmVxdWVzdF9hc3luY19pZBgFIAEo", - "BCIsChhTZW5kU3RyZWFtSGVhZGVyUmVzcG9uc2USEAoIYXN5bmNfaWQYASAC", - "KAQiKwoXU2VuZFN0cmVhbUNodW5rUmVzcG9uc2USEAoIYXN5bmNfaWQYASAC", - "KAQiLQoZU2VuZFN0cmVhbVRyYWlsZXJSZXNwb25zZRIQCghhc3luY19pZBgB", - "IAIoBCI7ChhTZW5kU3RyZWFtSGVhZGVyQ2FsbGJhY2sSEAoIYXN5bmNfaWQY", - "ASACKAQSDQoFZXJyb3IYAiABKAkiOgoXU2VuZFN0cmVhbUNodW5rQ2FsbGJh", - "Y2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAkiPAoZU2VuZFN0", - "cmVhbVRyYWlsZXJDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJv", - "chgCIAEoCSKTAQovU2V0RGF0YUNoYW5uZWxCdWZmZXJlZEFtb3VudExvd1Ro", - "cmVzaG9sZFJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEg", - "AigEEhEKCXRocmVzaG9sZBgCIAIoBBIrCgRraW5kGAMgAigOMh0ubGl2ZWtp", - "dC5wcm90by5EYXRhUGFja2V0S2luZCIyCjBTZXREYXRhQ2hhbm5lbEJ1ZmZl", - "cmVkQW1vdW50TG93VGhyZXNob2xkUmVzcG9uc2UibgosRGF0YUNoYW5uZWxC", - "dWZmZXJlZEFtb3VudExvd1RocmVzaG9sZENoYW5nZWQSKwoEa2luZBgBIAIo", - "DjIdLmxpdmVraXQucHJvdG8uRGF0YVBhY2tldEtpbmQSEQoJdGhyZXNob2xk", - "GAIgAigEImYKEEJ5dGVTdHJlYW1PcGVuZWQSNAoGcmVhZGVyGAEgAigLMiQu", - "bGl2ZWtpdC5wcm90by5Pd25lZEJ5dGVTdHJlYW1SZWFkZXISHAoUcGFydGlj", - "aXBhbnRfaWRlbnRpdHkYAiACKAkiZgoQVGV4dFN0cmVhbU9wZW5lZBI0CgZy", - "ZWFkZXIYASACKAsyJC5saXZla2l0LnByb3RvLk93bmVkVGV4dFN0cmVhbVJl", - "YWRlchIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgCIAIoCSJOChhSZW1vdGVE", - "YXRhVHJhY2tQdWJsaXNoZWQSMgoFdHJhY2sYASACKAsyIy5saXZla2l0LnBy", - "b3RvLk93bmVkUmVtb3RlRGF0YVRyYWNrKlAKEEljZVRyYW5zcG9ydFR5cGUS", - "EwoPVFJBTlNQT1JUX1JFTEFZEAASFAoQVFJBTlNQT1JUX05PSE9TVBABEhEK", - "DVRSQU5TUE9SVF9BTEwQAipDChhDb250aW51YWxHYXRoZXJpbmdQb2xpY3kS", - "DwoLR0FUSEVSX09OQ0UQABIWChJHQVRIRVJfQ09OVElOVUFMTFkQASpgChFD", - "b25uZWN0aW9uUXVhbGl0eRIQCgxRVUFMSVRZX1BPT1IQABIQCgxRVUFMSVRZ", - "X0dPT0QQARIVChFRVUFMSVRZX0VYQ0VMTEVOVBACEhAKDFFVQUxJVFlfTE9T", - "VBADKlMKD0Nvbm5lY3Rpb25TdGF0ZRIVChFDT05OX0RJU0NPTk5FQ1RFRBAA", - "EhIKDkNPTk5fQ09OTkVDVEVEEAESFQoRQ09OTl9SRUNPTk5FQ1RJTkcQAioz", - "Cg5EYXRhUGFja2V0S2luZBIOCgpLSU5EX0xPU1NZEAASEQoNS0lORF9SRUxJ", - "QUJMRRABQhCqAg1MaXZlS2l0LlByb3Rv")); + "dF9hc3luY19pZBgCIAEoBBIvCgZyZWFzb24YAyABKA4yHy5saXZla2l0LnBy", + "b3RvLkRpc2Nvbm5lY3RSZWFzb24iJgoSRGlzY29ubmVjdFJlc3BvbnNlEhAK", + "CGFzeW5jX2lkGAEgAigEIiYKEkRpc2Nvbm5lY3RDYWxsYmFjaxIQCghhc3lu", + "Y19pZBgBIAIoBCKcAQoTUHVibGlzaFRyYWNrUmVxdWVzdBIgChhsb2NhbF9w", + "YXJ0aWNpcGFudF9oYW5kbGUYASACKAQSFAoMdHJhY2tfaGFuZGxlGAIgAigE", + "EjMKB29wdGlvbnMYAyACKAsyIi5saXZla2l0LnByb3RvLlRyYWNrUHVibGlz", + "aE9wdGlvbnMSGAoQcmVxdWVzdF9hc3luY19pZBgEIAEoBCIoChRQdWJsaXNo", + "VHJhY2tSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCKBAQoUUHVibGlzaFRy", + "YWNrQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDwoFZXJyb3IYAiABKAlI", + "ABI7CgtwdWJsaWNhdGlvbhgDIAEoCzIkLmxpdmVraXQucHJvdG8uT3duZWRU", + "cmFja1B1YmxpY2F0aW9uSABCCQoHbWVzc2FnZSKBAQoVVW5wdWJsaXNoVHJh", + "Y2tSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIR", + "Cgl0cmFja19zaWQYAiACKAkSGQoRc3RvcF9vbl91bnB1Ymxpc2gYAyACKAgS", + "GAoQcmVxdWVzdF9hc3luY19pZBgEIAEoBCIqChZVbnB1Ymxpc2hUcmFja1Jl", + "c3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIjkKFlVucHVibGlzaFRyYWNrQ2Fs", + "bGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAki0wEKElB1", + "Ymxpc2hEYXRhUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUY", + "ASACKAQSEAoIZGF0YV9wdHIYAiACKAQSEAoIZGF0YV9sZW4YAyACKAQSEAoI", + "cmVsaWFibGUYBCACKAgSHAoQZGVzdGluYXRpb25fc2lkcxgFIAMoCUICGAES", + "DQoFdG9waWMYBiABKAkSHgoWZGVzdGluYXRpb25faWRlbnRpdGllcxgHIAMo", + "CRIYChByZXF1ZXN0X2FzeW5jX2lkGAggASgEIicKE1B1Ymxpc2hEYXRhUmVz", + "cG9uc2USEAoIYXN5bmNfaWQYASACKAQiNgoTUHVibGlzaERhdGFDYWxsYmFj", + "axIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSLAAQobUHVibGlz", + "aFRyYW5zY3JpcHRpb25SZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hh", + "bmRsZRgBIAIoBBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgCIAIoCRIQCgh0", + "cmFja19pZBgDIAIoCRI1CghzZWdtZW50cxgEIAMoCzIjLmxpdmVraXQucHJv", + "dG8uVHJhbnNjcmlwdGlvblNlZ21lbnQSGAoQcmVxdWVzdF9hc3luY19pZBgF", + "IAEoBCIwChxQdWJsaXNoVHJhbnNjcmlwdGlvblJlc3BvbnNlEhAKCGFzeW5j", + "X2lkGAEgAigEIj8KHFB1Ymxpc2hUcmFuc2NyaXB0aW9uQ2FsbGJhY2sSEAoI", + "YXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAkikAEKFVB1Ymxpc2hTaXBE", + "dG1mUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQS", + "DAoEY29kZRgCIAIoDRINCgVkaWdpdBgDIAIoCRIeChZkZXN0aW5hdGlvbl9p", + "ZGVudGl0aWVzGAQgAygJEhgKEHJlcXVlc3RfYXN5bmNfaWQYBSABKAQiKgoW", + "UHVibGlzaFNpcER0bWZSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCI5ChZQ", + "dWJsaXNoU2lwRHRtZkNhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEg0KBWVy", + "cm9yGAIgASgJImcKF1NldExvY2FsTWV0YWRhdGFSZXF1ZXN0EiAKGGxvY2Fs", + "X3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIQCghtZXRhZGF0YRgCIAIoCRIY", + "ChByZXF1ZXN0X2FzeW5jX2lkGAMgASgEIiwKGFNldExvY2FsTWV0YWRhdGFS", + "ZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCI7ChhTZXRMb2NhbE1ldGFkYXRh", + "Q2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAkingEK", + "FlNlbmRDaGF0TWVzc2FnZVJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRf", + "aGFuZGxlGAEgAigEEg8KB21lc3NhZ2UYAiACKAkSHgoWZGVzdGluYXRpb25f", + "aWRlbnRpdGllcxgDIAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBCABKAkSGAoQ", + "cmVxdWVzdF9hc3luY19pZBgFIAEoBCLWAQoWRWRpdENoYXRNZXNzYWdlUmVx", + "dWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSEQoJZWRp", + "dF90ZXh0GAIgAigJEjQKEG9yaWdpbmFsX21lc3NhZ2UYAyACKAsyGi5saXZl", + "a2l0LnByb3RvLkNoYXRNZXNzYWdlEh4KFmRlc3RpbmF0aW9uX2lkZW50aXRp", + "ZXMYBCADKAkSFwoPc2VuZGVyX2lkZW50aXR5GAUgASgJEhgKEHJlcXVlc3Rf", + "YXN5bmNfaWQYBiABKAQiKwoXU2VuZENoYXRNZXNzYWdlUmVzcG9uc2USEAoI", + "YXN5bmNfaWQYASACKAQiewoXU2VuZENoYXRNZXNzYWdlQ2FsbGJhY2sSEAoI", + "YXN5bmNfaWQYASACKAQSDwoFZXJyb3IYAiABKAlIABIyCgxjaGF0X21lc3Nh", + "Z2UYAyABKAsyGi5saXZla2l0LnByb3RvLkNoYXRNZXNzYWdlSABCCQoHbWVz", + "c2FnZSKLAQoZU2V0TG9jYWxBdHRyaWJ1dGVzUmVxdWVzdBIgChhsb2NhbF9w", + "YXJ0aWNpcGFudF9oYW5kbGUYASACKAQSMgoKYXR0cmlidXRlcxgCIAMoCzIe", + "LmxpdmVraXQucHJvdG8uQXR0cmlidXRlc0VudHJ5EhgKEHJlcXVlc3RfYXN5", + "bmNfaWQYAyABKAQiLQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAIoCRIN", + "CgV2YWx1ZRgCIAIoCSIuChpTZXRMb2NhbEF0dHJpYnV0ZXNSZXNwb25zZRIQ", + "Cghhc3luY19pZBgBIAIoBCI9ChpTZXRMb2NhbEF0dHJpYnV0ZXNDYWxsYmFj", + "axIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSJfChNTZXRMb2Nh", + "bE5hbWVSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIo", + "BBIMCgRuYW1lGAIgAigJEhgKEHJlcXVlc3RfYXN5bmNfaWQYAyABKAQiKAoU", + "U2V0TG9jYWxOYW1lUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQiNwoUU2V0", + "TG9jYWxOYW1lQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IY", + "AiABKAkiRQoUU2V0U3Vic2NyaWJlZFJlcXVlc3QSEQoJc3Vic2NyaWJlGAEg", + "AigIEhoKEnB1YmxpY2F0aW9uX2hhbmRsZRgCIAIoBCIXChVTZXRTdWJzY3Jp", + "YmVkUmVzcG9uc2UiRwoWR2V0U2Vzc2lvblN0YXRzUmVxdWVzdBITCgtyb29t", + "X2hhbmRsZRgBIAIoBBIYChByZXF1ZXN0X2FzeW5jX2lkGAIgASgEIisKF0dl", + "dFNlc3Npb25TdGF0c1Jlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIvcBChdH", + "ZXRTZXNzaW9uU3RhdHNDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIPCgVl", + "cnJvchgCIAEoCUgAEj8KBnJlc3VsdBgDIAEoCzItLmxpdmVraXQucHJvdG8u", + "R2V0U2Vzc2lvblN0YXRzQ2FsbGJhY2suUmVzdWx0SAAabQoGUmVzdWx0EjAK", + "D3B1Ymxpc2hlcl9zdGF0cxgBIAMoCzIXLmxpdmVraXQucHJvdG8uUnRjU3Rh", + "dHMSMQoQc3Vic2NyaWJlcl9zdGF0cxgCIAMoCzIXLmxpdmVraXQucHJvdG8u", + "UnRjU3RhdHNCCQoHbWVzc2FnZSI7Cg1WaWRlb0VuY29kaW5nEhMKC21heF9i", + "aXRyYXRlGAEgAigEEhUKDW1heF9mcmFtZXJhdGUYAiACKAEiJAoNQXVkaW9F", + "bmNvZGluZxITCgttYXhfYml0cmF0ZRgBIAIoBCK1AgoTVHJhY2tQdWJsaXNo", + "T3B0aW9ucxI0Cg52aWRlb19lbmNvZGluZxgBIAEoCzIcLmxpdmVraXQucHJv", + "dG8uVmlkZW9FbmNvZGluZxI0Cg5hdWRpb19lbmNvZGluZxgCIAEoCzIcLmxp", + "dmVraXQucHJvdG8uQXVkaW9FbmNvZGluZxIuCgt2aWRlb19jb2RlYxgDIAEo", + "DjIZLmxpdmVraXQucHJvdG8uVmlkZW9Db2RlYxILCgNkdHgYBCABKAgSCwoD", + "cmVkGAUgASgIEhEKCXNpbXVsY2FzdBgGIAEoCBIqCgZzb3VyY2UYByABKA4y", + "Gi5saXZla2l0LnByb3RvLlRyYWNrU291cmNlEg4KBnN0cmVhbRgIIAEoCRIZ", + "ChFwcmVjb25uZWN0X2J1ZmZlchgJIAEoCCI9CglJY2VTZXJ2ZXISDAoEdXJs", + "cxgBIAMoCRIQCgh1c2VybmFtZRgCIAEoCRIQCghwYXNzd29yZBgDIAEoCSLE", + "AQoJUnRjQ29uZmlnEjsKEmljZV90cmFuc3BvcnRfdHlwZRgBIAEoDjIfLmxp", + "dmVraXQucHJvdG8uSWNlVHJhbnNwb3J0VHlwZRJLChpjb250aW51YWxfZ2F0", + "aGVyaW5nX3BvbGljeRgCIAEoDjInLmxpdmVraXQucHJvdG8uQ29udGludWFs", + "R2F0aGVyaW5nUG9saWN5Ei0KC2ljZV9zZXJ2ZXJzGAMgAygLMhgubGl2ZWtp", + "dC5wcm90by5JY2VTZXJ2ZXIirgIKC1Jvb21PcHRpb25zEhYKDmF1dG9fc3Vi", + "c2NyaWJlGAEgASgIEhcKD2FkYXB0aXZlX3N0cmVhbRgCIAEoCBIQCghkeW5h", + "Y2FzdBgDIAEoCBIsCgRlMmVlGAQgASgLMhoubGl2ZWtpdC5wcm90by5FMmVl", + "T3B0aW9uc0ICGAESLAoKcnRjX2NvbmZpZxgFIAEoCzIYLmxpdmVraXQucHJv", + "dG8uUnRjQ29uZmlnEhQKDGpvaW5fcmV0cmllcxgGIAEoDRIuCgplbmNyeXB0", + "aW9uGAcgASgLMhoubGl2ZWtpdC5wcm90by5FMmVlT3B0aW9ucxIeChZzaW5n", + "bGVfcGVlcl9jb25uZWN0aW9uGAggASgIEhoKEmNvbm5lY3RfdGltZW91dF9t", + "cxgJIAEoBCJ3ChRUcmFuc2NyaXB0aW9uU2VnbWVudBIKCgJpZBgBIAIoCRIM", + "CgR0ZXh0GAIgAigJEhIKCnN0YXJ0X3RpbWUYAyACKAQSEAoIZW5kX3RpbWUY", + "BCACKAQSDQoFZmluYWwYBSACKAgSEAoIbGFuZ3VhZ2UYBiACKAkiMAoKQnVm", + "ZmVySW5mbxIQCghkYXRhX3B0chgBIAIoBBIQCghkYXRhX2xlbhgCIAIoBCJl", + "CgtPd25lZEJ1ZmZlchItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3Rv", + "LkZmaU93bmVkSGFuZGxlEicKBGRhdGEYAiACKAsyGS5saXZla2l0LnByb3Rv", + "LkJ1ZmZlckluZm8ixRYKCVJvb21FdmVudBITCgtyb29tX2hhbmRsZRgBIAIo", + "BBJEChVwYXJ0aWNpcGFudF9jb25uZWN0ZWQYAiABKAsyIy5saXZla2l0LnBy", + "b3RvLlBhcnRpY2lwYW50Q29ubmVjdGVkSAASSgoYcGFydGljaXBhbnRfZGlz", + "Y29ubmVjdGVkGAMgASgLMiYubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudERp", + "c2Nvbm5lY3RlZEgAEkMKFWxvY2FsX3RyYWNrX3B1Ymxpc2hlZBgEIAEoCzIi", + "LmxpdmVraXQucHJvdG8uTG9jYWxUcmFja1B1Ymxpc2hlZEgAEkcKF2xvY2Fs", + "X3RyYWNrX3VucHVibGlzaGVkGAUgASgLMiQubGl2ZWtpdC5wcm90by5Mb2Nh", + "bFRyYWNrVW5wdWJsaXNoZWRIABJFChZsb2NhbF90cmFja19zdWJzY3JpYmVk", + "GAYgASgLMiMubGl2ZWtpdC5wcm90by5Mb2NhbFRyYWNrU3Vic2NyaWJlZEgA", + "EjgKD3RyYWNrX3B1Ymxpc2hlZBgHIAEoCzIdLmxpdmVraXQucHJvdG8uVHJh", + "Y2tQdWJsaXNoZWRIABI8ChF0cmFja191bnB1Ymxpc2hlZBgIIAEoCzIfLmxp", + "dmVraXQucHJvdG8uVHJhY2tVbnB1Ymxpc2hlZEgAEjoKEHRyYWNrX3N1YnNj", + "cmliZWQYCSABKAsyHi5saXZla2l0LnByb3RvLlRyYWNrU3Vic2NyaWJlZEgA", + "Ej4KEnRyYWNrX3Vuc3Vic2NyaWJlZBgKIAEoCzIgLmxpdmVraXQucHJvdG8u", + "VHJhY2tVbnN1YnNjcmliZWRIABJLChl0cmFja19zdWJzY3JpcHRpb25fZmFp", + "bGVkGAsgASgLMiYubGl2ZWtpdC5wcm90by5UcmFja1N1YnNjcmlwdGlvbkZh", + "aWxlZEgAEjAKC3RyYWNrX211dGVkGAwgASgLMhkubGl2ZWtpdC5wcm90by5U", + "cmFja011dGVkSAASNAoNdHJhY2tfdW5tdXRlZBgNIAEoCzIbLmxpdmVraXQu", + "cHJvdG8uVHJhY2tVbm11dGVkSAASRwoXYWN0aXZlX3NwZWFrZXJzX2NoYW5n", + "ZWQYDiABKAsyJC5saXZla2l0LnByb3RvLkFjdGl2ZVNwZWFrZXJzQ2hhbmdl", + "ZEgAEkMKFXJvb21fbWV0YWRhdGFfY2hhbmdlZBgPIAEoCzIiLmxpdmVraXQu", + "cHJvdG8uUm9vbU1ldGFkYXRhQ2hhbmdlZEgAEjkKEHJvb21fc2lkX2NoYW5n", + "ZWQYECABKAsyHS5saXZla2l0LnByb3RvLlJvb21TaWRDaGFuZ2VkSAASUQoc", + "cGFydGljaXBhbnRfbWV0YWRhdGFfY2hhbmdlZBgRIAEoCzIpLmxpdmVraXQu", + "cHJvdG8uUGFydGljaXBhbnRNZXRhZGF0YUNoYW5nZWRIABJJChhwYXJ0aWNp", + "cGFudF9uYW1lX2NoYW5nZWQYEiABKAsyJS5saXZla2l0LnByb3RvLlBhcnRp", + "Y2lwYW50TmFtZUNoYW5nZWRIABJVCh5wYXJ0aWNpcGFudF9hdHRyaWJ1dGVz", + "X2NoYW5nZWQYEyABKAsyKy5saXZla2l0LnByb3RvLlBhcnRpY2lwYW50QXR0", + "cmlidXRlc0NoYW5nZWRIABJNChpjb25uZWN0aW9uX3F1YWxpdHlfY2hhbmdl", + "ZBgUIAEoCzInLmxpdmVraXQucHJvdG8uQ29ubmVjdGlvblF1YWxpdHlDaGFu", + "Z2VkSAASSQoYY29ubmVjdGlvbl9zdGF0ZV9jaGFuZ2VkGBUgASgLMiUubGl2", + "ZWtpdC5wcm90by5Db25uZWN0aW9uU3RhdGVDaGFuZ2VkSAASMwoMZGlzY29u", + "bmVjdGVkGBYgASgLMhsubGl2ZWtpdC5wcm90by5EaXNjb25uZWN0ZWRIABIz", + "CgxyZWNvbm5lY3RpbmcYFyABKAsyGy5saXZla2l0LnByb3RvLlJlY29ubmVj", + "dGluZ0gAEjEKC3JlY29ubmVjdGVkGBggASgLMhoubGl2ZWtpdC5wcm90by5S", + "ZWNvbm5lY3RlZEgAEj0KEmUyZWVfc3RhdGVfY2hhbmdlZBgZIAEoCzIfLmxp", + "dmVraXQucHJvdG8uRTJlZVN0YXRlQ2hhbmdlZEgAEiUKA2VvcxgaIAEoCzIW", + "LmxpdmVraXQucHJvdG8uUm9vbUVPU0gAEkEKFGRhdGFfcGFja2V0X3JlY2Vp", + "dmVkGBsgASgLMiEubGl2ZWtpdC5wcm90by5EYXRhUGFja2V0UmVjZWl2ZWRI", + "ABJGChZ0cmFuc2NyaXB0aW9uX3JlY2VpdmVkGBwgASgLMiQubGl2ZWtpdC5w", + "cm90by5UcmFuc2NyaXB0aW9uUmVjZWl2ZWRIABI6CgxjaGF0X21lc3NhZ2UY", + "HSABKAsyIi5saXZla2l0LnByb3RvLkNoYXRNZXNzYWdlUmVjZWl2ZWRIABJJ", + "ChZzdHJlYW1faGVhZGVyX3JlY2VpdmVkGB4gASgLMicubGl2ZWtpdC5wcm90", + "by5EYXRhU3RyZWFtSGVhZGVyUmVjZWl2ZWRIABJHChVzdHJlYW1fY2h1bmtf", + "cmVjZWl2ZWQYHyABKAsyJi5saXZla2l0LnByb3RvLkRhdGFTdHJlYW1DaHVu", + "a1JlY2VpdmVkSAASSwoXc3RyZWFtX3RyYWlsZXJfcmVjZWl2ZWQYICABKAsy", + "KC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW1UcmFpbGVyUmVjZWl2ZWRIABJp", + "CiJkYXRhX2NoYW5uZWxfbG93X3RocmVzaG9sZF9jaGFuZ2VkGCEgASgLMjsu", + "bGl2ZWtpdC5wcm90by5EYXRhQ2hhbm5lbEJ1ZmZlcmVkQW1vdW50TG93VGhy", + "ZXNob2xkQ2hhbmdlZEgAEj0KEmJ5dGVfc3RyZWFtX29wZW5lZBgiIAEoCzIf", + "LmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbU9wZW5lZEgAEj0KEnRleHRfc3Ry", + "ZWFtX29wZW5lZBgjIAEoCzIfLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbU9w", + "ZW5lZEgAEi8KDHJvb21fdXBkYXRlZBgkIAEoCzIXLmxpdmVraXQucHJvdG8u", + "Um9vbUluZm9IABIoCgVtb3ZlZBglIAEoCzIXLmxpdmVraXQucHJvdG8uUm9v", + "bUluZm9IABJCChRwYXJ0aWNpcGFudHNfdXBkYXRlZBgmIAEoCzIiLmxpdmVr", + "aXQucHJvdG8uUGFydGljaXBhbnRzVXBkYXRlZEgAEmIKJXBhcnRpY2lwYW50", + "X2VuY3J5cHRpb25fc3RhdHVzX2NoYW5nZWQYJyABKAsyMS5saXZla2l0LnBy", + "b3RvLlBhcnRpY2lwYW50RW5jcnlwdGlvblN0YXR1c0NoYW5nZWRIABJVCh5w", + "YXJ0aWNpcGFudF9wZXJtaXNzaW9uX2NoYW5nZWQYKSABKAsyKy5saXZla2l0", + "LnByb3RvLlBhcnRpY2lwYW50UGVybWlzc2lvbkNoYW5nZWRIABI4Cg90b2tl", + "bl9yZWZyZXNoZWQYKCABKAsyHS5saXZla2l0LnByb3RvLlRva2VuUmVmcmVz", + "aGVkSAASQQoUZGF0YV90cmFja19wdWJsaXNoZWQYKiABKAsyIS5saXZla2l0", + "LnByb3RvLkRhdGFUcmFja1B1Ymxpc2hlZEgAEkUKFmRhdGFfdHJhY2tfdW5w", + "dWJsaXNoZWQYKyABKAsyIy5saXZla2l0LnByb3RvLkRhdGFUcmFja1VucHVi", + "bGlzaGVkSABCCQoHbWVzc2FnZSLJAgoIUm9vbUluZm8SCwoDc2lkGAEgASgJ", + "EgwKBG5hbWUYAiACKAkSEAoIbWV0YWRhdGEYAyACKAkSLgombG9zc3lfZGNf", + "YnVmZmVyZWRfYW1vdW50X2xvd190aHJlc2hvbGQYBCACKAQSMQopcmVsaWFi", + "bGVfZGNfYnVmZmVyZWRfYW1vdW50X2xvd190aHJlc2hvbGQYBSACKAQSFQoN", + "ZW1wdHlfdGltZW91dBgGIAIoDRIZChFkZXBhcnR1cmVfdGltZW91dBgHIAIo", + "DRIYChBtYXhfcGFydGljaXBhbnRzGAggAigNEhUKDWNyZWF0aW9uX3RpbWUY", + "CSACKAMSGAoQbnVtX3BhcnRpY2lwYW50cxgKIAIoDRIWCg5udW1fcHVibGlz", + "aGVycxgLIAIoDRIYChBhY3RpdmVfcmVjb3JkaW5nGAwgAigIImEKCU93bmVk", + "Um9vbRItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVk", + "SGFuZGxlEiUKBGluZm8YAiACKAsyFy5saXZla2l0LnByb3RvLlJvb21JbmZv", + "IksKE1BhcnRpY2lwYW50c1VwZGF0ZWQSNAoMcGFydGljaXBhbnRzGAEgAygL", + "Mh4ubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudEluZm8iRQoUUGFydGljaXBh", + "bnRDb25uZWN0ZWQSLQoEaW5mbxgBIAIoCzIfLmxpdmVraXQucHJvdG8uT3du", + "ZWRQYXJ0aWNpcGFudCJzChdQYXJ0aWNpcGFudERpc2Nvbm5lY3RlZBIcChRw", + "YXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRI6ChFkaXNjb25uZWN0X3JlYXNv", + "bhgCIAIoDjIfLmxpdmVraXQucHJvdG8uRGlzY29ubmVjdFJlYXNvbiIoChNM", + "b2NhbFRyYWNrUHVibGlzaGVkEhEKCXRyYWNrX3NpZBgBIAIoCSIwChVMb2Nh", + "bFRyYWNrVW5wdWJsaXNoZWQSFwoPcHVibGljYXRpb25fc2lkGAEgAigJIikK", + "FExvY2FsVHJhY2tTdWJzY3JpYmVkEhEKCXRyYWNrX3NpZBgCIAIoCSJpCg5U", + "cmFja1B1Ymxpc2hlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRI5", + "CgtwdWJsaWNhdGlvbhgCIAIoCzIkLmxpdmVraXQucHJvdG8uT3duZWRUcmFj", + "a1B1YmxpY2F0aW9uIkkKEFRyYWNrVW5wdWJsaXNoZWQSHAoUcGFydGljaXBh", + "bnRfaWRlbnRpdHkYASACKAkSFwoPcHVibGljYXRpb25fc2lkGAIgAigJIlkK", + "D1RyYWNrU3Vic2NyaWJlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIo", + "CRIoCgV0cmFjaxgCIAIoCzIZLmxpdmVraXQucHJvdG8uT3duZWRUcmFjayJE", + "ChFUcmFja1Vuc3Vic2NyaWJlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgB", + "IAIoCRIRCgl0cmFja19zaWQYAiACKAkiWQoXVHJhY2tTdWJzY3JpcHRpb25G", + "YWlsZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSEQoJdHJhY2tf", + "c2lkGAIgAigJEg0KBWVycm9yGAMgAigJIj0KClRyYWNrTXV0ZWQSHAoUcGFy", + "dGljaXBhbnRfaWRlbnRpdHkYASACKAkSEQoJdHJhY2tfc2lkGAIgAigJIj8K", + "DFRyYWNrVW5tdXRlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIR", + "Cgl0cmFja19zaWQYAiACKAkiXwoQRTJlZVN0YXRlQ2hhbmdlZBIcChRwYXJ0", + "aWNpcGFudF9pZGVudGl0eRgBIAIoCRItCgVzdGF0ZRgCIAIoDjIeLmxpdmVr", + "aXQucHJvdG8uRW5jcnlwdGlvblN0YXRlIjcKFUFjdGl2ZVNwZWFrZXJzQ2hh", + "bmdlZBIeChZwYXJ0aWNpcGFudF9pZGVudGl0aWVzGAEgAygJIicKE1Jvb21N", + "ZXRhZGF0YUNoYW5nZWQSEAoIbWV0YWRhdGEYASACKAkiHQoOUm9vbVNpZENo", + "YW5nZWQSCwoDc2lkGAEgAigJIkwKGlBhcnRpY2lwYW50TWV0YWRhdGFDaGFu", + "Z2VkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEhAKCG1ldGFkYXRh", + "GAIgAigJIqwBChxQYXJ0aWNpcGFudEF0dHJpYnV0ZXNDaGFuZ2VkEhwKFHBh", + "cnRpY2lwYW50X2lkZW50aXR5GAEgAigJEjIKCmF0dHJpYnV0ZXMYAiADKAsy", + "Hi5saXZla2l0LnByb3RvLkF0dHJpYnV0ZXNFbnRyeRI6ChJjaGFuZ2VkX2F0", + "dHJpYnV0ZXMYAyADKAsyHi5saXZla2l0LnByb3RvLkF0dHJpYnV0ZXNFbnRy", + "eSJYCiJQYXJ0aWNpcGFudEVuY3J5cHRpb25TdGF0dXNDaGFuZ2VkEhwKFHBh", + "cnRpY2lwYW50X2lkZW50aXR5GAEgAigJEhQKDGlzX2VuY3J5cHRlZBgCIAIo", + "CCJEChZQYXJ0aWNpcGFudE5hbWVDaGFuZ2VkEhwKFHBhcnRpY2lwYW50X2lk", + "ZW50aXR5GAEgAigJEgwKBG5hbWUYAiACKAkidgocUGFydGljaXBhbnRQZXJt", + "aXNzaW9uQ2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRI4", + "CgpwZXJtaXNzaW9uGAIgASgLMiQubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFu", + "dFBlcm1pc3Npb24iawoYQ29ubmVjdGlvblF1YWxpdHlDaGFuZ2VkEhwKFHBh", + "cnRpY2lwYW50X2lkZW50aXR5GAEgAigJEjEKB3F1YWxpdHkYAiACKA4yIC5s", + "aXZla2l0LnByb3RvLkNvbm5lY3Rpb25RdWFsaXR5IkUKClVzZXJQYWNrZXQS", + "KAoEZGF0YRgBIAIoCzIaLmxpdmVraXQucHJvdG8uT3duZWRCdWZmZXISDQoF", + "dG9waWMYAiABKAkieQoLQ2hhdE1lc3NhZ2USCgoCaWQYASACKAkSEQoJdGlt", + "ZXN0YW1wGAIgAigDEg8KB21lc3NhZ2UYAyACKAkSFgoOZWRpdF90aW1lc3Rh", + "bXAYBCABKAMSDwoHZGVsZXRlZBgFIAEoCBIRCglnZW5lcmF0ZWQYBiABKAgi", + "YAoTQ2hhdE1lc3NhZ2VSZWNlaXZlZBIrCgdtZXNzYWdlGAEgAigLMhoubGl2", + "ZWtpdC5wcm90by5DaGF0TWVzc2FnZRIcChRwYXJ0aWNpcGFudF9pZGVudGl0", + "eRgCIAIoCSImCgdTaXBEVE1GEgwKBGNvZGUYASACKA0SDQoFZGlnaXQYAiAB", + "KAkivwEKEkRhdGFQYWNrZXRSZWNlaXZlZBIrCgRraW5kGAEgAigOMh0ubGl2", + "ZWtpdC5wcm90by5EYXRhUGFja2V0S2luZBIcChRwYXJ0aWNpcGFudF9pZGVu", + "dGl0eRgCIAIoCRIpCgR1c2VyGAQgASgLMhkubGl2ZWtpdC5wcm90by5Vc2Vy", + "UGFja2V0SAASKgoIc2lwX2R0bWYYBSABKAsyFi5saXZla2l0LnByb3RvLlNp", + "cERUTUZIAEIHCgV2YWx1ZSJ/ChVUcmFuc2NyaXB0aW9uUmVjZWl2ZWQSHAoU", + "cGFydGljaXBhbnRfaWRlbnRpdHkYASABKAkSEQoJdHJhY2tfc2lkGAIgASgJ", + "EjUKCHNlZ21lbnRzGAMgAygLMiMubGl2ZWtpdC5wcm90by5UcmFuc2NyaXB0", + "aW9uU2VnbWVudCJHChZDb25uZWN0aW9uU3RhdGVDaGFuZ2VkEi0KBXN0YXRl", + "GAEgAigOMh4ubGl2ZWtpdC5wcm90by5Db25uZWN0aW9uU3RhdGUiCwoJQ29u", + "bmVjdGVkIj8KDERpc2Nvbm5lY3RlZBIvCgZyZWFzb24YASACKA4yHy5saXZl", + "a2l0LnByb3RvLkRpc2Nvbm5lY3RSZWFzb24iDgoMUmVjb25uZWN0aW5nIg0K", + "C1JlY29ubmVjdGVkIh8KDlRva2VuUmVmcmVzaGVkEg0KBXRva2VuGAEgAigJ", + "IgkKB1Jvb21FT1MijgcKCkRhdGFTdHJlYW0aqgEKClRleHRIZWFkZXISPwoO", + "b3BlcmF0aW9uX3R5cGUYASACKA4yJy5saXZla2l0LnByb3RvLkRhdGFTdHJl", + "YW0uT3BlcmF0aW9uVHlwZRIPCgd2ZXJzaW9uGAIgASgFEhoKEnJlcGx5X3Rv", + "X3N0cmVhbV9pZBgDIAEoCRIbChNhdHRhY2hlZF9zdHJlYW1faWRzGAQgAygJ", + "EhEKCWdlbmVyYXRlZBgFIAEoCBoaCgpCeXRlSGVhZGVyEgwKBG5hbWUYASAC", + "KAka6wIKBkhlYWRlchIRCglzdHJlYW1faWQYASACKAkSEQoJdGltZXN0YW1w", + "GAIgAigDEhEKCW1pbWVfdHlwZRgDIAIoCRINCgV0b3BpYxgEIAIoCRIUCgx0", + "b3RhbF9sZW5ndGgYBSABKAQSRAoKYXR0cmlidXRlcxgGIAMoCzIwLmxpdmVr", + "aXQucHJvdG8uRGF0YVN0cmVhbS5IZWFkZXIuQXR0cmlidXRlc0VudHJ5EjsK", + "C3RleHRfaGVhZGVyGAcgASgLMiQubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFt", + "LlRleHRIZWFkZXJIABI7CgtieXRlX2hlYWRlchgIIAEoCzIkLmxpdmVraXQu", + "cHJvdG8uRGF0YVN0cmVhbS5CeXRlSGVhZGVySAAaMQoPQXR0cmlidXRlc0Vu", + "dHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCEAoOY29udGVu", + "dF9oZWFkZXIaXQoFQ2h1bmsSEQoJc3RyZWFtX2lkGAEgAigJEhMKC2NodW5r", + "X2luZGV4GAIgAigEEg8KB2NvbnRlbnQYAyACKAwSDwoHdmVyc2lvbhgEIAEo", + "BRIKCgJpdhgFIAEoDBqmAQoHVHJhaWxlchIRCglzdHJlYW1faWQYASACKAkS", + "DgoGcmVhc29uGAIgAigJEkUKCmF0dHJpYnV0ZXMYAyADKAsyMS5saXZla2l0", + "LnByb3RvLkRhdGFTdHJlYW0uVHJhaWxlci5BdHRyaWJ1dGVzRW50cnkaMQoP", + "QXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToC", + "OAEiQQoNT3BlcmF0aW9uVHlwZRIKCgZDUkVBVEUQABIKCgZVUERBVEUQARIK", + "CgZERUxFVEUQAhIMCghSRUFDVElPThADImoKGERhdGFTdHJlYW1IZWFkZXJS", + "ZWNlaXZlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIwCgZoZWFk", + "ZXIYAiACKAsyIC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uSGVhZGVyImcK", + "F0RhdGFTdHJlYW1DaHVua1JlY2VpdmVkEhwKFHBhcnRpY2lwYW50X2lkZW50", + "aXR5GAEgAigJEi4KBWNodW5rGAIgAigLMh8ubGl2ZWtpdC5wcm90by5EYXRh", + "U3RyZWFtLkNodW5rIm0KGURhdGFTdHJlYW1UcmFpbGVyUmVjZWl2ZWQSHAoU", + "cGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSMgoHdHJhaWxlchgCIAIoCzIh", + "LmxpdmVraXQucHJvdG8uRGF0YVN0cmVhbS5UcmFpbGVyIsABChdTZW5kU3Ry", + "ZWFtSGVhZGVyUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUY", + "ASACKAQSMAoGaGVhZGVyGAIgAigLMiAubGl2ZWtpdC5wcm90by5EYXRhU3Ry", + "ZWFtLkhlYWRlchIeChZkZXN0aW5hdGlvbl9pZGVudGl0aWVzGAMgAygJEhcK", + "D3NlbmRlcl9pZGVudGl0eRgEIAIoCRIYChByZXF1ZXN0X2FzeW5jX2lkGAUg", + "ASgEIr0BChZTZW5kU3RyZWFtQ2h1bmtSZXF1ZXN0EiAKGGxvY2FsX3BhcnRp", + "Y2lwYW50X2hhbmRsZRgBIAIoBBIuCgVjaHVuaxgCIAIoCzIfLmxpdmVraXQu", + "cHJvdG8uRGF0YVN0cmVhbS5DaHVuaxIeChZkZXN0aW5hdGlvbl9pZGVudGl0", + "aWVzGAMgAygJEhcKD3NlbmRlcl9pZGVudGl0eRgEIAIoCRIYChByZXF1ZXN0", + "X2FzeW5jX2lkGAUgASgEIsMBChhTZW5kU3RyZWFtVHJhaWxlclJlcXVlc3QS", + "IAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEjIKB3RyYWlsZXIY", + "AiACKAsyIS5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uVHJhaWxlchIeChZk", + "ZXN0aW5hdGlvbl9pZGVudGl0aWVzGAMgAygJEhcKD3NlbmRlcl9pZGVudGl0", + "eRgEIAIoCRIYChByZXF1ZXN0X2FzeW5jX2lkGAUgASgEIiwKGFNlbmRTdHJl", + "YW1IZWFkZXJSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCIrChdTZW5kU3Ry", + "ZWFtQ2h1bmtSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCItChlTZW5kU3Ry", + "ZWFtVHJhaWxlclJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIjsKGFNlbmRT", + "dHJlYW1IZWFkZXJDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJv", + "chgCIAEoCSI6ChdTZW5kU3RyZWFtQ2h1bmtDYWxsYmFjaxIQCghhc3luY19p", + "ZBgBIAIoBBINCgVlcnJvchgCIAEoCSI8ChlTZW5kU3RyZWFtVHJhaWxlckNh", + "bGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEg0KBWVycm9yGAIgASgJIpMBCi9T", + "ZXREYXRhQ2hhbm5lbEJ1ZmZlcmVkQW1vdW50TG93VGhyZXNob2xkUmVxdWVz", + "dBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSEQoJdGhyZXNo", + "b2xkGAIgAigEEisKBGtpbmQYAyACKA4yHS5saXZla2l0LnByb3RvLkRhdGFQ", + "YWNrZXRLaW5kIjIKMFNldERhdGFDaGFubmVsQnVmZmVyZWRBbW91bnRMb3dU", + "aHJlc2hvbGRSZXNwb25zZSJuCixEYXRhQ2hhbm5lbEJ1ZmZlcmVkQW1vdW50", + "TG93VGhyZXNob2xkQ2hhbmdlZBIrCgRraW5kGAEgAigOMh0ubGl2ZWtpdC5w", + "cm90by5EYXRhUGFja2V0S2luZBIRCgl0aHJlc2hvbGQYAiACKAQiZgoQQnl0", + "ZVN0cmVhbU9wZW5lZBI0CgZyZWFkZXIYASACKAsyJC5saXZla2l0LnByb3Rv", + "Lk93bmVkQnl0ZVN0cmVhbVJlYWRlchIcChRwYXJ0aWNpcGFudF9pZGVudGl0", + "eRgCIAIoCSJmChBUZXh0U3RyZWFtT3BlbmVkEjQKBnJlYWRlchgBIAIoCzIk", + "LmxpdmVraXQucHJvdG8uT3duZWRUZXh0U3RyZWFtUmVhZGVyEhwKFHBhcnRp", + "Y2lwYW50X2lkZW50aXR5GAIgAigJIkgKEkRhdGFUcmFja1B1Ymxpc2hlZBIy", + "CgV0cmFjaxgBIAIoCzIjLmxpdmVraXQucHJvdG8uT3duZWRSZW1vdGVEYXRh", + "VHJhY2siIwoURGF0YVRyYWNrVW5wdWJsaXNoZWQSCwoDc2lkGAEgAigJKlAK", + "EEljZVRyYW5zcG9ydFR5cGUSEwoPVFJBTlNQT1JUX1JFTEFZEAASFAoQVFJB", + "TlNQT1JUX05PSE9TVBABEhEKDVRSQU5TUE9SVF9BTEwQAipDChhDb250aW51", + "YWxHYXRoZXJpbmdQb2xpY3kSDwoLR0FUSEVSX09OQ0UQABIWChJHQVRIRVJf", + "Q09OVElOVUFMTFkQASpgChFDb25uZWN0aW9uUXVhbGl0eRIQCgxRVUFMSVRZ", + "X1BPT1IQABIQCgxRVUFMSVRZX0dPT0QQARIVChFRVUFMSVRZX0VYQ0VMTEVO", + "VBACEhAKDFFVQUxJVFlfTE9TVBADKlMKD0Nvbm5lY3Rpb25TdGF0ZRIVChFD", + "T05OX0RJU0NPTk5FQ1RFRBAAEhIKDkNPTk5fQ09OTkVDVEVEEAESFQoRQ09O", + "Tl9SRUNPTk5FQ1RJTkcQAiozCg5EYXRhUGFja2V0S2luZBIOCgpLSU5EX0xP", + "U1NZEAASEQoNS0lORF9SRUxJQUJMRRABQhCqAg1MaXZlS2l0LlByb3Rv")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.ParticipantReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, global::LiveKit.Proto.VideoFrameReflection.Descriptor, global::LiveKit.Proto.StatsReflection.Descriptor, global::LiveKit.Proto.DataStreamReflection.Descriptor, global::LiveKit.Proto.DataTrackReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.IceTransportType), typeof(global::LiveKit.Proto.ContinualGatheringPolicy), typeof(global::LiveKit.Proto.ConnectionQuality), typeof(global::LiveKit.Proto.ConnectionState), typeof(global::LiveKit.Proto.DataPacketKind), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -351,7 +355,7 @@ static RoomReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectResponse), global::LiveKit.Proto.ConnectResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectCallback), global::LiveKit.Proto.ConnectCallback.Parser, new[]{ "AsyncId", "Error", "Result" }, new[]{ "Message" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectCallback.Types.ParticipantWithTracks), global::LiveKit.Proto.ConnectCallback.Types.ParticipantWithTracks.Parser, new[]{ "Participant", "Publications" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectCallback.Types.Result), global::LiveKit.Proto.ConnectCallback.Types.Result.Parser, new[]{ "Room", "LocalParticipant", "Participants" }, null, null, null, null)}), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisconnectRequest), global::LiveKit.Proto.DisconnectRequest.Parser, new[]{ "RoomHandle", "RequestAsyncId" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisconnectRequest), global::LiveKit.Proto.DisconnectRequest.Parser, new[]{ "RoomHandle", "RequestAsyncId", "Reason" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisconnectResponse), global::LiveKit.Proto.DisconnectResponse.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisconnectCallback), global::LiveKit.Proto.DisconnectCallback.Parser, new[]{ "AsyncId" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishTrackRequest), global::LiveKit.Proto.PublishTrackRequest.Parser, new[]{ "LocalParticipantHandle", "TrackHandle", "Options", "RequestAsyncId" }, null, null, null, null), @@ -393,11 +397,11 @@ static RoomReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TrackPublishOptions), global::LiveKit.Proto.TrackPublishOptions.Parser, new[]{ "VideoEncoding", "AudioEncoding", "VideoCodec", "Dtx", "Red", "Simulcast", "Source", "Stream", "PreconnectBuffer" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.IceServer), global::LiveKit.Proto.IceServer.Parser, new[]{ "Urls", "Username", "Password" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RtcConfig), global::LiveKit.Proto.RtcConfig.Parser, new[]{ "IceTransportType", "ContinualGatheringPolicy", "IceServers" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomOptions), global::LiveKit.Proto.RoomOptions.Parser, new[]{ "AutoSubscribe", "AdaptiveStream", "Dynacast", "E2Ee", "RtcConfig", "JoinRetries", "Encryption" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomOptions), global::LiveKit.Proto.RoomOptions.Parser, new[]{ "AutoSubscribe", "AdaptiveStream", "Dynacast", "E2Ee", "RtcConfig", "JoinRetries", "Encryption", "SinglePeerConnection", "ConnectTimeoutMs" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TranscriptionSegment), global::LiveKit.Proto.TranscriptionSegment.Parser, new[]{ "Id", "Text", "StartTime", "EndTime", "Final", "Language" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.BufferInfo), global::LiveKit.Proto.BufferInfo.Parser, new[]{ "DataPtr", "DataLen" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedBuffer), global::LiveKit.Proto.OwnedBuffer.Parser, new[]{ "Handle", "Data" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomEvent), global::LiveKit.Proto.RoomEvent.Parser, new[]{ "RoomHandle", "ParticipantConnected", "ParticipantDisconnected", "LocalTrackPublished", "LocalTrackUnpublished", "LocalTrackSubscribed", "TrackPublished", "TrackUnpublished", "TrackSubscribed", "TrackUnsubscribed", "TrackSubscriptionFailed", "TrackMuted", "TrackUnmuted", "ActiveSpeakersChanged", "RoomMetadataChanged", "RoomSidChanged", "ParticipantMetadataChanged", "ParticipantNameChanged", "ParticipantAttributesChanged", "ConnectionQualityChanged", "ConnectionStateChanged", "Disconnected", "Reconnecting", "Reconnected", "E2EeStateChanged", "Eos", "DataPacketReceived", "TranscriptionReceived", "ChatMessage", "StreamHeaderReceived", "StreamChunkReceived", "StreamTrailerReceived", "DataChannelLowThresholdChanged", "ByteStreamOpened", "TextStreamOpened", "RoomUpdated", "Moved", "ParticipantsUpdated", "ParticipantEncryptionStatusChanged", "ParticipantPermissionChanged", "TokenRefreshed", "RemoteDataTrackPublished" }, new[]{ "Message" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomEvent), global::LiveKit.Proto.RoomEvent.Parser, new[]{ "RoomHandle", "ParticipantConnected", "ParticipantDisconnected", "LocalTrackPublished", "LocalTrackUnpublished", "LocalTrackSubscribed", "TrackPublished", "TrackUnpublished", "TrackSubscribed", "TrackUnsubscribed", "TrackSubscriptionFailed", "TrackMuted", "TrackUnmuted", "ActiveSpeakersChanged", "RoomMetadataChanged", "RoomSidChanged", "ParticipantMetadataChanged", "ParticipantNameChanged", "ParticipantAttributesChanged", "ConnectionQualityChanged", "ConnectionStateChanged", "Disconnected", "Reconnecting", "Reconnected", "E2EeStateChanged", "Eos", "DataPacketReceived", "TranscriptionReceived", "ChatMessage", "StreamHeaderReceived", "StreamChunkReceived", "StreamTrailerReceived", "DataChannelLowThresholdChanged", "ByteStreamOpened", "TextStreamOpened", "RoomUpdated", "Moved", "ParticipantsUpdated", "ParticipantEncryptionStatusChanged", "ParticipantPermissionChanged", "TokenRefreshed", "DataTrackPublished", "DataTrackUnpublished" }, new[]{ "Message" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomInfo), global::LiveKit.Proto.RoomInfo.Parser, new[]{ "Sid", "Name", "Metadata", "LossyDcBufferedAmountLowThreshold", "ReliableDcBufferedAmountLowThreshold", "EmptyTimeout", "DepartureTimeout", "MaxParticipants", "CreationTime", "NumParticipants", "NumPublishers", "ActiveRecording" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedRoom), global::LiveKit.Proto.OwnedRoom.Parser, new[]{ "Handle", "Info" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ParticipantsUpdated), global::LiveKit.Proto.ParticipantsUpdated.Parser, new[]{ "Participants" }, null, null, null, null), @@ -458,7 +462,8 @@ static RoomReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataChannelBufferedAmountLowThresholdChanged), global::LiveKit.Proto.DataChannelBufferedAmountLowThresholdChanged.Parser, new[]{ "Kind", "Threshold" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamOpened), global::LiveKit.Proto.ByteStreamOpened.Parser, new[]{ "Reader", "ParticipantIdentity" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamOpened), global::LiveKit.Proto.TextStreamOpened.Parser, new[]{ "Reader", "ParticipantIdentity" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RemoteDataTrackPublished), global::LiveKit.Proto.RemoteDataTrackPublished.Parser, new[]{ "Track" }, null, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackPublished), global::LiveKit.Proto.DataTrackPublished.Parser, new[]{ "Track" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackUnpublished), global::LiveKit.Proto.DataTrackUnpublished.Parser, new[]{ "Sid" }, null, null, null, null) })); } #endregion @@ -1993,6 +1998,7 @@ public DisconnectRequest(DisconnectRequest other) : this() { _hasBits0 = other._hasBits0; roomHandle_ = other.roomHandle_; requestAsyncId_ = other.requestAsyncId_; + reason_ = other.reason_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -2056,6 +2062,33 @@ public void ClearRequestAsyncId() { _hasBits0 &= ~2; } + /// Field number for the "reason" field. + public const int ReasonFieldNumber = 3; + private readonly static global::LiveKit.Proto.DisconnectReason ReasonDefaultValue = global::LiveKit.Proto.DisconnectReason.UnknownReason; + + private global::LiveKit.Proto.DisconnectReason reason_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DisconnectReason Reason { + get { if ((_hasBits0 & 4) != 0) { return reason_; } else { return ReasonDefaultValue; } } + set { + _hasBits0 |= 4; + reason_ = value; + } + } + /// Gets whether the "reason" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasReason { + get { return (_hasBits0 & 4) != 0; } + } + /// Clears the value of the "reason" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearReason() { + _hasBits0 &= ~4; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -2073,6 +2106,7 @@ public bool Equals(DisconnectRequest other) { } if (RoomHandle != other.RoomHandle) return false; if (RequestAsyncId != other.RequestAsyncId) return false; + if (Reason != other.Reason) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2082,6 +2116,7 @@ public override int GetHashCode() { int hash = 1; if (HasRoomHandle) hash ^= RoomHandle.GetHashCode(); if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode(); + if (HasReason) hash ^= Reason.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -2108,6 +2143,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(16); output.WriteUInt64(RequestAsyncId); } + if (HasReason) { + output.WriteRawTag(24); + output.WriteEnum((int) Reason); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2126,6 +2165,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(16); output.WriteUInt64(RequestAsyncId); } + if (HasReason) { + output.WriteRawTag(24); + output.WriteEnum((int) Reason); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -2142,6 +2185,9 @@ public int CalculateSize() { if (HasRequestAsyncId) { size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId); } + if (HasReason) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Reason); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -2160,6 +2206,9 @@ public void MergeFrom(DisconnectRequest other) { if (other.HasRequestAsyncId) { RequestAsyncId = other.RequestAsyncId; } + if (other.HasReason) { + Reason = other.Reason; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -2187,6 +2236,10 @@ public void MergeFrom(pb::CodedInputStream input) { RequestAsyncId = input.ReadUInt64(); break; } + case 24: { + Reason = (global::LiveKit.Proto.DisconnectReason) input.ReadEnum(); + break; + } } } #endif @@ -2214,6 +2267,10 @@ public void MergeFrom(pb::CodedInputStream input) { RequestAsyncId = input.ReadUInt64(); break; } + case 24: { + Reason = (global::LiveKit.Proto.DisconnectReason) input.ReadEnum(); + break; + } } } } @@ -14466,6 +14523,8 @@ public RoomOptions(RoomOptions other) : this() { rtcConfig_ = other.rtcConfig_ != null ? other.rtcConfig_.Clone() : null; joinRetries_ = other.joinRetries_; encryption_ = other.encryption_ != null ? other.encryption_.Clone() : null; + singlePeerConnection_ = other.singlePeerConnection_; + connectTimeoutMs_ = other.connectTimeoutMs_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -14623,6 +14682,66 @@ public void ClearJoinRetries() { } } + /// Field number for the "single_peer_connection" field. + public const int SinglePeerConnectionFieldNumber = 8; + private readonly static bool SinglePeerConnectionDefaultValue = false; + + private bool singlePeerConnection_; + /// + /// use single peer connection for both publish/subscribe (default: false) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool SinglePeerConnection { + get { if ((_hasBits0 & 16) != 0) { return singlePeerConnection_; } else { return SinglePeerConnectionDefaultValue; } } + set { + _hasBits0 |= 16; + singlePeerConnection_ = value; + } + } + /// Gets whether the "single_peer_connection" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasSinglePeerConnection { + get { return (_hasBits0 & 16) != 0; } + } + /// Clears the value of the "single_peer_connection" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearSinglePeerConnection() { + _hasBits0 &= ~16; + } + + /// Field number for the "connect_timeout_ms" field. + public const int ConnectTimeoutMsFieldNumber = 9; + private readonly static ulong ConnectTimeoutMsDefaultValue = 0UL; + + private ulong connectTimeoutMs_; + /// + /// timeout in milliseconds for each signal connection attempt (default: 5000) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public ulong ConnectTimeoutMs { + get { if ((_hasBits0 & 32) != 0) { return connectTimeoutMs_; } else { return ConnectTimeoutMsDefaultValue; } } + set { + _hasBits0 |= 32; + connectTimeoutMs_ = value; + } + } + /// Gets whether the "connect_timeout_ms" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasConnectTimeoutMs { + get { return (_hasBits0 & 32) != 0; } + } + /// Clears the value of the "connect_timeout_ms" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearConnectTimeoutMs() { + _hasBits0 &= ~32; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -14645,6 +14764,8 @@ public bool Equals(RoomOptions other) { if (!object.Equals(RtcConfig, other.RtcConfig)) return false; if (JoinRetries != other.JoinRetries) return false; if (!object.Equals(Encryption, other.Encryption)) return false; + if (SinglePeerConnection != other.SinglePeerConnection) return false; + if (ConnectTimeoutMs != other.ConnectTimeoutMs) return false; return Equals(_unknownFields, other._unknownFields); } @@ -14659,6 +14780,8 @@ public override int GetHashCode() { if (rtcConfig_ != null) hash ^= RtcConfig.GetHashCode(); if (HasJoinRetries) hash ^= JoinRetries.GetHashCode(); if (encryption_ != null) hash ^= Encryption.GetHashCode(); + if (HasSinglePeerConnection) hash ^= SinglePeerConnection.GetHashCode(); + if (HasConnectTimeoutMs) hash ^= ConnectTimeoutMs.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -14705,6 +14828,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(58); output.WriteMessage(Encryption); } + if (HasSinglePeerConnection) { + output.WriteRawTag(64); + output.WriteBool(SinglePeerConnection); + } + if (HasConnectTimeoutMs) { + output.WriteRawTag(72); + output.WriteUInt64(ConnectTimeoutMs); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -14743,6 +14874,14 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(58); output.WriteMessage(Encryption); } + if (HasSinglePeerConnection) { + output.WriteRawTag(64); + output.WriteBool(SinglePeerConnection); + } + if (HasConnectTimeoutMs) { + output.WriteRawTag(72); + output.WriteUInt64(ConnectTimeoutMs); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -14774,6 +14913,12 @@ public int CalculateSize() { if (encryption_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Encryption); } + if (HasSinglePeerConnection) { + size += 1 + 1; + } + if (HasConnectTimeoutMs) { + size += 1 + pb::CodedOutputStream.ComputeUInt64Size(ConnectTimeoutMs); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -14816,6 +14961,12 @@ public void MergeFrom(RoomOptions other) { } Encryption.MergeFrom(other.Encryption); } + if (other.HasSinglePeerConnection) { + SinglePeerConnection = other.SinglePeerConnection; + } + if (other.HasConnectTimeoutMs) { + ConnectTimeoutMs = other.ConnectTimeoutMs; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -14872,6 +15023,14 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Encryption); break; } + case 64: { + SinglePeerConnection = input.ReadBool(); + break; + } + case 72: { + ConnectTimeoutMs = input.ReadUInt64(); + break; + } } } #endif @@ -14928,6 +15087,14 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Encryption); break; } + case 64: { + SinglePeerConnection = input.ReadBool(); + break; + } + case 72: { + ConnectTimeoutMs = input.ReadUInt64(); + break; + } } } } @@ -16086,8 +16253,11 @@ public RoomEvent(RoomEvent other) : this() { case MessageOneofCase.TokenRefreshed: TokenRefreshed = other.TokenRefreshed.Clone(); break; - case MessageOneofCase.RemoteDataTrackPublished: - RemoteDataTrackPublished = other.RemoteDataTrackPublished.Clone(); + case MessageOneofCase.DataTrackPublished: + DataTrackPublished = other.DataTrackPublished.Clone(); + break; + case MessageOneofCase.DataTrackUnpublished: + DataTrackUnpublished = other.DataTrackUnpublished.Clone(); break; } @@ -16628,15 +16798,27 @@ public void ClearRoomHandle() { } } - /// Field number for the "remote_data_track_published" field. - public const int RemoteDataTrackPublishedFieldNumber = 42; + /// Field number for the "data_track_published" field. + public const int DataTrackPublishedFieldNumber = 42; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public global::LiveKit.Proto.RemoteDataTrackPublished RemoteDataTrackPublished { - get { return messageCase_ == MessageOneofCase.RemoteDataTrackPublished ? (global::LiveKit.Proto.RemoteDataTrackPublished) message_ : null; } + public global::LiveKit.Proto.DataTrackPublished DataTrackPublished { + get { return messageCase_ == MessageOneofCase.DataTrackPublished ? (global::LiveKit.Proto.DataTrackPublished) message_ : null; } set { message_ = value; - messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.RemoteDataTrackPublished; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.DataTrackPublished; + } + } + + /// Field number for the "data_track_unpublished" field. + public const int DataTrackUnpublishedFieldNumber = 43; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public global::LiveKit.Proto.DataTrackUnpublished DataTrackUnpublished { + get { return messageCase_ == MessageOneofCase.DataTrackUnpublished ? (global::LiveKit.Proto.DataTrackUnpublished) message_ : null; } + set { + message_ = value; + messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.DataTrackUnpublished; } } @@ -16684,7 +16866,8 @@ public enum MessageOneofCase { ParticipantEncryptionStatusChanged = 39, ParticipantPermissionChanged = 41, TokenRefreshed = 40, - RemoteDataTrackPublished = 42, + DataTrackPublished = 42, + DataTrackUnpublished = 43, } private MessageOneofCase messageCase_ = MessageOneofCase.None; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -16756,7 +16939,8 @@ public bool Equals(RoomEvent other) { if (!object.Equals(ParticipantEncryptionStatusChanged, other.ParticipantEncryptionStatusChanged)) return false; if (!object.Equals(ParticipantPermissionChanged, other.ParticipantPermissionChanged)) return false; if (!object.Equals(TokenRefreshed, other.TokenRefreshed)) return false; - if (!object.Equals(RemoteDataTrackPublished, other.RemoteDataTrackPublished)) return false; + if (!object.Equals(DataTrackPublished, other.DataTrackPublished)) return false; + if (!object.Equals(DataTrackUnpublished, other.DataTrackUnpublished)) return false; if (MessageCase != other.MessageCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -16806,7 +16990,8 @@ public override int GetHashCode() { if (messageCase_ == MessageOneofCase.ParticipantEncryptionStatusChanged) hash ^= ParticipantEncryptionStatusChanged.GetHashCode(); if (messageCase_ == MessageOneofCase.ParticipantPermissionChanged) hash ^= ParticipantPermissionChanged.GetHashCode(); if (messageCase_ == MessageOneofCase.TokenRefreshed) hash ^= TokenRefreshed.GetHashCode(); - if (messageCase_ == MessageOneofCase.RemoteDataTrackPublished) hash ^= RemoteDataTrackPublished.GetHashCode(); + if (messageCase_ == MessageOneofCase.DataTrackPublished) hash ^= DataTrackPublished.GetHashCode(); + if (messageCase_ == MessageOneofCase.DataTrackUnpublished) hash ^= DataTrackUnpublished.GetHashCode(); hash ^= (int) messageCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -16990,9 +17175,13 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(202, 2); output.WriteMessage(ParticipantPermissionChanged); } - if (messageCase_ == MessageOneofCase.RemoteDataTrackPublished) { + if (messageCase_ == MessageOneofCase.DataTrackPublished) { output.WriteRawTag(210, 2); - output.WriteMessage(RemoteDataTrackPublished); + output.WriteMessage(DataTrackPublished); + } + if (messageCase_ == MessageOneofCase.DataTrackUnpublished) { + output.WriteRawTag(218, 2); + output.WriteMessage(DataTrackUnpublished); } if (_unknownFields != null) { _unknownFields.WriteTo(output); @@ -17168,9 +17357,13 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(202, 2); output.WriteMessage(ParticipantPermissionChanged); } - if (messageCase_ == MessageOneofCase.RemoteDataTrackPublished) { + if (messageCase_ == MessageOneofCase.DataTrackPublished) { output.WriteRawTag(210, 2); - output.WriteMessage(RemoteDataTrackPublished); + output.WriteMessage(DataTrackPublished); + } + if (messageCase_ == MessageOneofCase.DataTrackUnpublished) { + output.WriteRawTag(218, 2); + output.WriteMessage(DataTrackUnpublished); } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); @@ -17305,8 +17498,11 @@ public int CalculateSize() { if (messageCase_ == MessageOneofCase.TokenRefreshed) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(TokenRefreshed); } - if (messageCase_ == MessageOneofCase.RemoteDataTrackPublished) { - size += 2 + pb::CodedOutputStream.ComputeMessageSize(RemoteDataTrackPublished); + if (messageCase_ == MessageOneofCase.DataTrackPublished) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackPublished); + } + if (messageCase_ == MessageOneofCase.DataTrackUnpublished) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackUnpublished); } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); @@ -17564,11 +17760,17 @@ public void MergeFrom(RoomEvent other) { } TokenRefreshed.MergeFrom(other.TokenRefreshed); break; - case MessageOneofCase.RemoteDataTrackPublished: - if (RemoteDataTrackPublished == null) { - RemoteDataTrackPublished = new global::LiveKit.Proto.RemoteDataTrackPublished(); + case MessageOneofCase.DataTrackPublished: + if (DataTrackPublished == null) { + DataTrackPublished = new global::LiveKit.Proto.DataTrackPublished(); } - RemoteDataTrackPublished.MergeFrom(other.RemoteDataTrackPublished); + DataTrackPublished.MergeFrom(other.DataTrackPublished); + break; + case MessageOneofCase.DataTrackUnpublished: + if (DataTrackUnpublished == null) { + DataTrackUnpublished = new global::LiveKit.Proto.DataTrackUnpublished(); + } + DataTrackUnpublished.MergeFrom(other.DataTrackUnpublished); break; } @@ -17956,12 +18158,21 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 338: { - global::LiveKit.Proto.RemoteDataTrackPublished subBuilder = new global::LiveKit.Proto.RemoteDataTrackPublished(); - if (messageCase_ == MessageOneofCase.RemoteDataTrackPublished) { - subBuilder.MergeFrom(RemoteDataTrackPublished); + global::LiveKit.Proto.DataTrackPublished subBuilder = new global::LiveKit.Proto.DataTrackPublished(); + if (messageCase_ == MessageOneofCase.DataTrackPublished) { + subBuilder.MergeFrom(DataTrackPublished); + } + input.ReadMessage(subBuilder); + DataTrackPublished = subBuilder; + break; + } + case 346: { + global::LiveKit.Proto.DataTrackUnpublished subBuilder = new global::LiveKit.Proto.DataTrackUnpublished(); + if (messageCase_ == MessageOneofCase.DataTrackUnpublished) { + subBuilder.MergeFrom(DataTrackUnpublished); } input.ReadMessage(subBuilder); - RemoteDataTrackPublished = subBuilder; + DataTrackUnpublished = subBuilder; break; } } @@ -18348,12 +18559,21 @@ public void MergeFrom(pb::CodedInputStream input) { break; } case 338: { - global::LiveKit.Proto.RemoteDataTrackPublished subBuilder = new global::LiveKit.Proto.RemoteDataTrackPublished(); - if (messageCase_ == MessageOneofCase.RemoteDataTrackPublished) { - subBuilder.MergeFrom(RemoteDataTrackPublished); + global::LiveKit.Proto.DataTrackPublished subBuilder = new global::LiveKit.Proto.DataTrackPublished(); + if (messageCase_ == MessageOneofCase.DataTrackPublished) { + subBuilder.MergeFrom(DataTrackPublished); + } + input.ReadMessage(subBuilder); + DataTrackPublished = subBuilder; + break; + } + case 346: { + global::LiveKit.Proto.DataTrackUnpublished subBuilder = new global::LiveKit.Proto.DataTrackUnpublished(); + if (messageCase_ == MessageOneofCase.DataTrackUnpublished) { + subBuilder.MergeFrom(DataTrackUnpublished); } input.ReadMessage(subBuilder); - RemoteDataTrackPublished = subBuilder; + DataTrackUnpublished = subBuilder; break; } } @@ -35064,16 +35284,16 @@ public void MergeFrom(pb::CodedInputStream input) { /// A remote participant published a data track. /// [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] - public sealed partial class RemoteDataTrackPublished : pb::IMessage + public sealed partial class DataTrackPublished : pb::IMessage #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE , pb::IBufferMessage #endif { - private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RemoteDataTrackPublished()); + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackPublished()); private pb::UnknownFieldSet _unknownFields; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public static pb::MessageParser Parser { get { return _parser; } } + public static pb::MessageParser Parser { get { return _parser; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -35089,7 +35309,7 @@ public sealed partial class RemoteDataTrackPublished : pb::IMessageField number for the "track" field. @@ -35123,12 +35343,12 @@ public RemoteDataTrackPublished Clone() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { - return Equals(other as RemoteDataTrackPublished); + return Equals(other as DataTrackPublished); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public bool Equals(RemoteDataTrackPublished other) { + public bool Equals(DataTrackPublished other) { if (ReferenceEquals(other, null)) { return false; } @@ -35201,7 +35421,7 @@ public int CalculateSize() { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] - public void MergeFrom(RemoteDataTrackPublished other) { + public void MergeFrom(DataTrackPublished other) { if (other == null) { return; } @@ -35270,6 +35490,224 @@ public void MergeFrom(pb::CodedInputStream input) { } + /// + /// A remote participant unpublished a data track. + /// + [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")] + public sealed partial class DataTrackUnpublished : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackUnpublished()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public static pbr::MessageDescriptor Descriptor { + get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[107]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackUnpublished() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackUnpublished(DataTrackUnpublished other) : this() { + sid_ = other.sid_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public DataTrackUnpublished Clone() { + return new DataTrackUnpublished(this); + } + + /// Field number for the "sid" field. + public const int SidFieldNumber = 1; + private readonly static string SidDefaultValue = ""; + + private string sid_; + /// + /// SID of the track that was unpublished. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public string Sid { + get { return sid_ ?? SidDefaultValue; } + set { + sid_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + /// Gets whether the "sid" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasSid { + get { return sid_ != null; } + } + /// Clears the value of the "sid" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearSid() { + sid_ = null; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override bool Equals(object other) { + return Equals(other as DataTrackUnpublished); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool Equals(DataTrackUnpublished other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Sid != other.Sid) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override int GetHashCode() { + int hash = 1; + if (HasSid) hash ^= Sid.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (HasSid) { + output.WriteRawTag(10); + output.WriteString(Sid); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (HasSid) { + output.WriteRawTag(10); + output.WriteString(Sid); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public int CalculateSize() { + int size = 0; + if (HasSid) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Sid); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(DataTrackUnpublished other) { + if (other == null) { + return; + } + if (other.HasSid) { + Sid = other.Sid; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Sid = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + if ((tag & 7) == 4) { + // Abort on any end group tag. + return; + } + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Sid = input.ReadString(); + break; + } + } + } + } + #endif + + } + #endregion } diff --git a/Runtime/Scripts/Proto/VideoFrame.cs b/Runtime/Scripts/Proto/VideoFrame.cs index 45d9a353..4ba2f788 100644 --- a/Runtime/Scripts/Proto/VideoFrame.cs +++ b/Runtime/Scripts/Proto/VideoFrame.cs @@ -37,58 +37,59 @@ static VideoFrameReflection() { "cm90by5UcmFja1NvdXJjZRIuCgZmb3JtYXQYBCABKA4yHi5saXZla2l0LnBy", "b3RvLlZpZGVvQnVmZmVyVHlwZRIYChBub3JtYWxpemVfc3RyaWRlGAUgASgI", "IlUKIlZpZGVvU3RyZWFtRnJvbVBhcnRpY2lwYW50UmVzcG9uc2USLwoGc3Ry", - "ZWFtGAEgAigLMh8ubGl2ZWtpdC5wcm90by5Pd25lZFZpZGVvU3RyZWFtIn8K", - "FU5ld1ZpZGVvU291cmNlUmVxdWVzdBIsCgR0eXBlGAEgAigOMh4ubGl2ZWtp", - "dC5wcm90by5WaWRlb1NvdXJjZVR5cGUSOAoKcmVzb2x1dGlvbhgCIAIoCzIk", - "LmxpdmVraXQucHJvdG8uVmlkZW9Tb3VyY2VSZXNvbHV0aW9uIkkKFk5ld1Zp", - "ZGVvU291cmNlUmVzcG9uc2USLwoGc291cmNlGAEgAigLMh8ubGl2ZWtpdC5w", - "cm90by5Pd25lZFZpZGVvU291cmNlIqcBChhDYXB0dXJlVmlkZW9GcmFtZVJl", - "cXVlc3QSFQoNc291cmNlX2hhbmRsZRgBIAIoBBIuCgZidWZmZXIYAiACKAsy", - "Hi5saXZla2l0LnByb3RvLlZpZGVvQnVmZmVySW5mbxIUCgx0aW1lc3RhbXBf", - "dXMYAyACKAMSLgoIcm90YXRpb24YBCACKA4yHC5saXZla2l0LnByb3RvLlZp", - "ZGVvUm90YXRpb24iGwoZQ2FwdHVyZVZpZGVvRnJhbWVSZXNwb25zZSKHAQoT", - "VmlkZW9Db252ZXJ0UmVxdWVzdBIOCgZmbGlwX3kYASABKAgSLgoGYnVmZmVy", - "GAIgAigLMh4ubGl2ZWtpdC5wcm90by5WaWRlb0J1ZmZlckluZm8SMAoIZHN0", - "X3R5cGUYAyACKA4yHi5saXZla2l0LnByb3RvLlZpZGVvQnVmZmVyVHlwZSJl", - "ChRWaWRlb0NvbnZlcnRSZXNwb25zZRIPCgVlcnJvchgBIAEoCUgAEjEKBmJ1", - "ZmZlchgCIAEoCzIfLmxpdmVraXQucHJvdG8uT3duZWRWaWRlb0J1ZmZlckgA", - "QgkKB21lc3NhZ2UiRAoPVmlkZW9SZXNvbHV0aW9uEg0KBXdpZHRoGAEgAigN", - "Eg4KBmhlaWdodBgCIAIoDRISCgpmcmFtZV9yYXRlGAMgAigBIoMCCg9WaWRl", - "b0J1ZmZlckluZm8SLAoEdHlwZRgBIAIoDjIeLmxpdmVraXQucHJvdG8uVmlk", - "ZW9CdWZmZXJUeXBlEg0KBXdpZHRoGAIgAigNEg4KBmhlaWdodBgDIAIoDRIQ", - "CghkYXRhX3B0chgEIAIoBBIOCgZzdHJpZGUYBiABKA0SQAoKY29tcG9uZW50", - "cxgHIAMoCzIsLmxpdmVraXQucHJvdG8uVmlkZW9CdWZmZXJJbmZvLkNvbXBv", - "bmVudEluZm8aPwoNQ29tcG9uZW50SW5mbxIQCghkYXRhX3B0chgBIAIoBBIO", - "CgZzdHJpZGUYAiACKA0SDAoEc2l6ZRgDIAIoDSJvChBPd25lZFZpZGVvQnVm", - "ZmVyEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQucHJvdG8uRmZpT3duZWRI", - "YW5kbGUSLAoEaW5mbxgCIAIoCzIeLmxpdmVraXQucHJvdG8uVmlkZW9CdWZm", - "ZXJJbmZvIj8KD1ZpZGVvU3RyZWFtSW5mbxIsCgR0eXBlGAEgAigOMh4ubGl2", - "ZWtpdC5wcm90by5WaWRlb1N0cmVhbVR5cGUibwoQT3duZWRWaWRlb1N0cmVh", - "bRItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVkSGFu", - "ZGxlEiwKBGluZm8YAiACKAsyHi5saXZla2l0LnByb3RvLlZpZGVvU3RyZWFt", - "SW5mbyKfAQoQVmlkZW9TdHJlYW1FdmVudBIVCg1zdHJlYW1faGFuZGxlGAEg", - "AigEEjsKDmZyYW1lX3JlY2VpdmVkGAIgASgLMiEubGl2ZWtpdC5wcm90by5W", - "aWRlb0ZyYW1lUmVjZWl2ZWRIABIsCgNlb3MYAyABKAsyHS5saXZla2l0LnBy", - "b3RvLlZpZGVvU3RyZWFtRU9TSABCCQoHbWVzc2FnZSKLAQoSVmlkZW9GcmFt", - "ZVJlY2VpdmVkEi8KBmJ1ZmZlchgBIAIoCzIfLmxpdmVraXQucHJvdG8uT3du", - "ZWRWaWRlb0J1ZmZlchIUCgx0aW1lc3RhbXBfdXMYAiACKAMSLgoIcm90YXRp", - "b24YAyACKA4yHC5saXZla2l0LnByb3RvLlZpZGVvUm90YXRpb24iEAoOVmlk", - "ZW9TdHJlYW1FT1MiNgoVVmlkZW9Tb3VyY2VSZXNvbHV0aW9uEg0KBXdpZHRo", - "GAEgAigNEg4KBmhlaWdodBgCIAIoDSI/Cg9WaWRlb1NvdXJjZUluZm8SLAoE", - "dHlwZRgBIAIoDjIeLmxpdmVraXQucHJvdG8uVmlkZW9Tb3VyY2VUeXBlIm8K", - "EE93bmVkVmlkZW9Tb3VyY2USLQoGaGFuZGxlGAEgAigLMh0ubGl2ZWtpdC5w", - "cm90by5GZmlPd25lZEhhbmRsZRIsCgRpbmZvGAIgAigLMh4ubGl2ZWtpdC5w", - "cm90by5WaWRlb1NvdXJjZUluZm8qOwoKVmlkZW9Db2RlYxIHCgNWUDgQABII", - "CgRIMjY0EAESBwoDQVYxEAISBwoDVlA5EAMSCAoESDI2NRAEKmwKDVZpZGVv", - "Um90YXRpb24SFAoQVklERU9fUk9UQVRJT05fMBAAEhUKEVZJREVPX1JPVEFU", - "SU9OXzkwEAESFgoSVklERU9fUk9UQVRJT05fMTgwEAISFgoSVklERU9fUk9U", - "QVRJT05fMjcwEAMqgQEKD1ZpZGVvQnVmZmVyVHlwZRIICgRSR0JBEAASCAoE", - "QUJHUhABEggKBEFSR0IQAhIICgRCR1JBEAMSCQoFUkdCMjQQBBIICgRJNDIw", - "EAUSCQoFSTQyMEEQBhIICgRJNDIyEAcSCAoESTQ0NBAIEggKBEkwMTAQCRII", - "CgROVjEyEAoqWQoPVmlkZW9TdHJlYW1UeXBlEhcKE1ZJREVPX1NUUkVBTV9O", - "QVRJVkUQABIWChJWSURFT19TVFJFQU1fV0VCR0wQARIVChFWSURFT19TVFJF", - "QU1fSFRNTBACKioKD1ZpZGVvU291cmNlVHlwZRIXChNWSURFT19TT1VSQ0Vf", - "TkFUSVZFEABCEKoCDUxpdmVLaXQuUHJvdG8=")); + "ZWFtGAEgAigLMh8ubGl2ZWtpdC5wcm90by5Pd25lZFZpZGVvU3RyZWFtIpYB", + "ChVOZXdWaWRlb1NvdXJjZVJlcXVlc3QSLAoEdHlwZRgBIAIoDjIeLmxpdmVr", + "aXQucHJvdG8uVmlkZW9Tb3VyY2VUeXBlEjgKCnJlc29sdXRpb24YAiACKAsy", + "JC5saXZla2l0LnByb3RvLlZpZGVvU291cmNlUmVzb2x1dGlvbhIVCg1pc19z", + "Y3JlZW5jYXN0GAMgASgIIkkKFk5ld1ZpZGVvU291cmNlUmVzcG9uc2USLwoG", + "c291cmNlGAEgAigLMh8ubGl2ZWtpdC5wcm90by5Pd25lZFZpZGVvU291cmNl", + "IqcBChhDYXB0dXJlVmlkZW9GcmFtZVJlcXVlc3QSFQoNc291cmNlX2hhbmRs", + "ZRgBIAIoBBIuCgZidWZmZXIYAiACKAsyHi5saXZla2l0LnByb3RvLlZpZGVv", + "QnVmZmVySW5mbxIUCgx0aW1lc3RhbXBfdXMYAyACKAMSLgoIcm90YXRpb24Y", + "BCACKA4yHC5saXZla2l0LnByb3RvLlZpZGVvUm90YXRpb24iGwoZQ2FwdHVy", + "ZVZpZGVvRnJhbWVSZXNwb25zZSKHAQoTVmlkZW9Db252ZXJ0UmVxdWVzdBIO", + "CgZmbGlwX3kYASABKAgSLgoGYnVmZmVyGAIgAigLMh4ubGl2ZWtpdC5wcm90", + "by5WaWRlb0J1ZmZlckluZm8SMAoIZHN0X3R5cGUYAyACKA4yHi5saXZla2l0", + "LnByb3RvLlZpZGVvQnVmZmVyVHlwZSJlChRWaWRlb0NvbnZlcnRSZXNwb25z", + "ZRIPCgVlcnJvchgBIAEoCUgAEjEKBmJ1ZmZlchgCIAEoCzIfLmxpdmVraXQu", + "cHJvdG8uT3duZWRWaWRlb0J1ZmZlckgAQgkKB21lc3NhZ2UiRAoPVmlkZW9S", + "ZXNvbHV0aW9uEg0KBXdpZHRoGAEgAigNEg4KBmhlaWdodBgCIAIoDRISCgpm", + "cmFtZV9yYXRlGAMgAigBIoMCCg9WaWRlb0J1ZmZlckluZm8SLAoEdHlwZRgB", + "IAIoDjIeLmxpdmVraXQucHJvdG8uVmlkZW9CdWZmZXJUeXBlEg0KBXdpZHRo", + "GAIgAigNEg4KBmhlaWdodBgDIAIoDRIQCghkYXRhX3B0chgEIAIoBBIOCgZz", + "dHJpZGUYBiABKA0SQAoKY29tcG9uZW50cxgHIAMoCzIsLmxpdmVraXQucHJv", + "dG8uVmlkZW9CdWZmZXJJbmZvLkNvbXBvbmVudEluZm8aPwoNQ29tcG9uZW50", + "SW5mbxIQCghkYXRhX3B0chgBIAIoBBIOCgZzdHJpZGUYAiACKA0SDAoEc2l6", + "ZRgDIAIoDSJvChBPd25lZFZpZGVvQnVmZmVyEi0KBmhhbmRsZRgBIAIoCzId", + "LmxpdmVraXQucHJvdG8uRmZpT3duZWRIYW5kbGUSLAoEaW5mbxgCIAIoCzIe", + "LmxpdmVraXQucHJvdG8uVmlkZW9CdWZmZXJJbmZvIj8KD1ZpZGVvU3RyZWFt", + "SW5mbxIsCgR0eXBlGAEgAigOMh4ubGl2ZWtpdC5wcm90by5WaWRlb1N0cmVh", + "bVR5cGUibwoQT3duZWRWaWRlb1N0cmVhbRItCgZoYW5kbGUYASACKAsyHS5s", + "aXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEiwKBGluZm8YAiACKAsyHi5s", + "aXZla2l0LnByb3RvLlZpZGVvU3RyZWFtSW5mbyKfAQoQVmlkZW9TdHJlYW1F", + "dmVudBIVCg1zdHJlYW1faGFuZGxlGAEgAigEEjsKDmZyYW1lX3JlY2VpdmVk", + "GAIgASgLMiEubGl2ZWtpdC5wcm90by5WaWRlb0ZyYW1lUmVjZWl2ZWRIABIs", + "CgNlb3MYAyABKAsyHS5saXZla2l0LnByb3RvLlZpZGVvU3RyZWFtRU9TSABC", + "CQoHbWVzc2FnZSKLAQoSVmlkZW9GcmFtZVJlY2VpdmVkEi8KBmJ1ZmZlchgB", + "IAIoCzIfLmxpdmVraXQucHJvdG8uT3duZWRWaWRlb0J1ZmZlchIUCgx0aW1l", + "c3RhbXBfdXMYAiACKAMSLgoIcm90YXRpb24YAyACKA4yHC5saXZla2l0LnBy", + "b3RvLlZpZGVvUm90YXRpb24iEAoOVmlkZW9TdHJlYW1FT1MiNgoVVmlkZW9T", + "b3VyY2VSZXNvbHV0aW9uEg0KBXdpZHRoGAEgAigNEg4KBmhlaWdodBgCIAIo", + "DSI/Cg9WaWRlb1NvdXJjZUluZm8SLAoEdHlwZRgBIAIoDjIeLmxpdmVraXQu", + "cHJvdG8uVmlkZW9Tb3VyY2VUeXBlIm8KEE93bmVkVmlkZW9Tb3VyY2USLQoG", + "aGFuZGxlGAEgAigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25lZEhhbmRsZRIs", + "CgRpbmZvGAIgAigLMh4ubGl2ZWtpdC5wcm90by5WaWRlb1NvdXJjZUluZm8q", + "OwoKVmlkZW9Db2RlYxIHCgNWUDgQABIICgRIMjY0EAESBwoDQVYxEAISBwoD", + "VlA5EAMSCAoESDI2NRAEKmwKDVZpZGVvUm90YXRpb24SFAoQVklERU9fUk9U", + "QVRJT05fMBAAEhUKEVZJREVPX1JPVEFUSU9OXzkwEAESFgoSVklERU9fUk9U", + "QVRJT05fMTgwEAISFgoSVklERU9fUk9UQVRJT05fMjcwEAMqgQEKD1ZpZGVv", + "QnVmZmVyVHlwZRIICgRSR0JBEAASCAoEQUJHUhABEggKBEFSR0IQAhIICgRC", + "R1JBEAMSCQoFUkdCMjQQBBIICgRJNDIwEAUSCQoFSTQyMEEQBhIICgRJNDIy", + "EAcSCAoESTQ0NBAIEggKBEkwMTAQCRIICgROVjEyEAoqWQoPVmlkZW9TdHJl", + "YW1UeXBlEhcKE1ZJREVPX1NUUkVBTV9OQVRJVkUQABIWChJWSURFT19TVFJF", + "QU1fV0VCR0wQARIVChFWSURFT19TVFJFQU1fSFRNTBACKioKD1ZpZGVvU291", + "cmNlVHlwZRIXChNWSURFT19TT1VSQ0VfTkFUSVZFEABCEKoCDUxpdmVLaXQu", + "UHJvdG8=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.VideoCodec), typeof(global::LiveKit.Proto.VideoRotation), typeof(global::LiveKit.Proto.VideoBufferType), typeof(global::LiveKit.Proto.VideoStreamType), typeof(global::LiveKit.Proto.VideoSourceType), }, null, new pbr::GeneratedClrTypeInfo[] { @@ -96,7 +97,7 @@ static VideoFrameReflection() { new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewVideoStreamResponse), global::LiveKit.Proto.NewVideoStreamResponse.Parser, new[]{ "Stream" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoStreamFromParticipantRequest), global::LiveKit.Proto.VideoStreamFromParticipantRequest.Parser, new[]{ "ParticipantHandle", "Type", "TrackSource", "Format", "NormalizeStride" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.VideoStreamFromParticipantResponse), global::LiveKit.Proto.VideoStreamFromParticipantResponse.Parser, new[]{ "Stream" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewVideoSourceRequest), global::LiveKit.Proto.NewVideoSourceRequest.Parser, new[]{ "Type", "Resolution" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewVideoSourceRequest), global::LiveKit.Proto.NewVideoSourceRequest.Parser, new[]{ "Type", "Resolution", "IsScreencast" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.NewVideoSourceResponse), global::LiveKit.Proto.NewVideoSourceResponse.Parser, new[]{ "Source" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CaptureVideoFrameRequest), global::LiveKit.Proto.CaptureVideoFrameRequest.Parser, new[]{ "SourceHandle", "Buffer", "TimestampUs", "Rotation" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.CaptureVideoFrameResponse), global::LiveKit.Proto.CaptureVideoFrameResponse.Parser, null, null, null, null, null), @@ -1429,6 +1430,7 @@ public NewVideoSourceRequest(NewVideoSourceRequest other) : this() { _hasBits0 = other._hasBits0; type_ = other.type_; resolution_ = other.resolution_ != null ? other.resolution_.Clone() : null; + isScreencast_ = other.isScreencast_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -1470,7 +1472,7 @@ public void ClearType() { private global::LiveKit.Proto.VideoSourceResolution resolution_; /// /// Used to determine which encodings to use + simulcast layers - /// Most of the time it corresponds to the source resolution + /// Most of the time it corresponds to the source resolution /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] @@ -1481,6 +1483,33 @@ public void ClearType() { } } + /// Field number for the "is_screencast" field. + public const int IsScreencastFieldNumber = 3; + private readonly static bool IsScreencastDefaultValue = false; + + private bool isScreencast_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool IsScreencast { + get { if ((_hasBits0 & 2) != 0) { return isScreencast_; } else { return IsScreencastDefaultValue; } } + set { + _hasBits0 |= 2; + isScreencast_ = value; + } + } + /// Gets whether the "is_screencast" field is set + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public bool HasIsScreencast { + get { return (_hasBits0 & 2) != 0; } + } + /// Clears the value of the "is_screencast" field + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] + public void ClearIsScreencast() { + _hasBits0 &= ~2; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)] public override bool Equals(object other) { @@ -1498,6 +1527,7 @@ public bool Equals(NewVideoSourceRequest other) { } if (Type != other.Type) return false; if (!object.Equals(Resolution, other.Resolution)) return false; + if (IsScreencast != other.IsScreencast) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1507,6 +1537,7 @@ public override int GetHashCode() { int hash = 1; if (HasType) hash ^= Type.GetHashCode(); if (resolution_ != null) hash ^= Resolution.GetHashCode(); + if (HasIsScreencast) hash ^= IsScreencast.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1533,6 +1564,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteMessage(Resolution); } + if (HasIsScreencast) { + output.WriteRawTag(24); + output.WriteBool(IsScreencast); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1551,6 +1586,10 @@ public void WriteTo(pb::CodedOutputStream output) { output.WriteRawTag(18); output.WriteMessage(Resolution); } + if (HasIsScreencast) { + output.WriteRawTag(24); + output.WriteBool(IsScreencast); + } if (_unknownFields != null) { _unknownFields.WriteTo(ref output); } @@ -1567,6 +1606,9 @@ public int CalculateSize() { if (resolution_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Resolution); } + if (HasIsScreencast) { + size += 1 + 1; + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1588,6 +1630,9 @@ public void MergeFrom(NewVideoSourceRequest other) { } Resolution.MergeFrom(other.Resolution); } + if (other.HasIsScreencast) { + IsScreencast = other.IsScreencast; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1618,6 +1663,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Resolution); break; } + case 24: { + IsScreencast = input.ReadBool(); + break; + } } } #endif @@ -1648,6 +1697,10 @@ public void MergeFrom(pb::CodedInputStream input) { input.ReadMessage(Resolution); break; } + case 24: { + IsScreencast = input.ReadBool(); + break; + } } } } From f1f090da7f707c101590b7f46a87f0a5b91b9434 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Tue, 24 Mar 2026 12:42:58 -0700 Subject: [PATCH 12/17] Rename event --- Runtime/Scripts/Room.cs | 12 ++++++------ Tests/PlayMode/DataTrackTests.cs | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Runtime/Scripts/Room.cs b/Runtime/Scripts/Room.cs index 8ce87ece..e8645b2f 100644 --- a/Runtime/Scripts/Room.cs +++ b/Runtime/Scripts/Room.cs @@ -126,7 +126,7 @@ public class Room public delegate void ConnectionStateChangeDelegate(ConnectionState connectionState); public delegate void ConnectionDelegate(Room room); public delegate void E2EeStateChangedDelegate(Participant participant, EncryptionState state); - public delegate void RemoteDataTrackPublishedDelegate(RemoteDataTrack track); + public delegate void DataTrackPublishedDelegate(RemoteDataTrack track); public string Sid { private set; get; } public string Name { private set; get; } @@ -162,7 +162,7 @@ public class Room public event ParticipantDelegate ParticipantMetadataChanged; public event ParticipantDelegate ParticipantNameChanged; public event ParticipantDelegate ParticipantAttributesChanged; - public event RemoteDataTrackPublishedDelegate RemoteDataTrackPublished; + public event DataTrackPublishedDelegate DataTrackPublished; public ConnectInstruction Connect(string url, string token, RoomOptions options) { @@ -236,7 +236,7 @@ internal void UpdateFromInfo(RoomInfo info) Sid = info.Sid; Name = info.Name; Metadata = info.Metadata; - NumParticipants = info.NumParticipants; + NumParticipants = info.NumParticipants; } internal void OnRpcMethodInvocationReceived(RpcMethodInvocationEvent e) @@ -506,10 +506,10 @@ internal void OnEventReceived(RoomEvent e) UpdateFromInfo(e.Moved); } break; - case RoomEvent.MessageOneofCase.RemoteDataTrackPublished: + case RoomEvent.MessageOneofCase.DataTrackPublished: { - var track = new RemoteDataTrack(e.RemoteDataTrackPublished.Track); - RemoteDataTrackPublished?.Invoke(track); + var track = new RemoteDataTrack(e.DataTrackPublished.Track); + DataTrackPublished?.Invoke(track); } break; } diff --git a/Tests/PlayMode/DataTrackTests.cs b/Tests/PlayMode/DataTrackTests.cs index 35e15341..1d5d8760 100644 --- a/Tests/PlayMode/DataTrackTests.cs +++ b/Tests/PlayMode/DataTrackTests.cs @@ -95,7 +95,7 @@ public IEnumerator Unpublish_IsPublishedReturnsFalse() } [UnityTest, Category("E2E")] - public IEnumerator RemoteDataTrackPublished_TriggersEvent() + public IEnumerator DataTrackPublished_TriggersEvent() { var publisher = TestRoomContext.ConnectionOptions.Default; publisher.Identity = "publisher"; @@ -110,7 +110,7 @@ public IEnumerator RemoteDataTrackPublished_TriggersEvent() var expectation = new Expectation(timeoutSeconds: 10f); RemoteDataTrack receivedTrack = null; - subscriberRoom.RemoteDataTrackPublished += (track) => + subscriberRoom.DataTrackPublished += (track) => { receivedTrack = track; expectation.Fulfill(); @@ -143,7 +143,7 @@ public IEnumerator Subscribe_Succeeds() var trackExpectation = new Expectation(timeoutSeconds: 10f); RemoteDataTrack remoteTrack = null; - subscriberRoom.RemoteDataTrackPublished += (track) => + subscriberRoom.DataTrackPublished += (track) => { remoteTrack = track; trackExpectation.Fulfill(); @@ -180,7 +180,7 @@ public IEnumerator PushAndReceive_FramePayloadMatches() var trackExpectation = new Expectation(timeoutSeconds: 10f); RemoteDataTrack remoteTrack = null; - subscriberRoom.RemoteDataTrackPublished += (track) => + subscriberRoom.DataTrackPublished += (track) => { remoteTrack = track; trackExpectation.Fulfill(); @@ -226,7 +226,7 @@ public IEnumerator PushAndReceive_TimestampIsPreserved() var trackExpectation = new Expectation(timeoutSeconds: 10f); RemoteDataTrack remoteTrack = null; - subscriberRoom.RemoteDataTrackPublished += (track) => + subscriberRoom.DataTrackPublished += (track) => { remoteTrack = track; trackExpectation.Fulfill(); From 42fc03dd22e8e6caf1a24b45cc5b175ae10b4fb3 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Tue, 24 Mar 2026 12:52:18 -0700 Subject: [PATCH 13/17] Expose unpublished event --- Runtime/Scripts/Room.cs | 7 +++++++ Tests/PlayMode/DataTrackTests.cs | 25 ++++++++++++++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/Runtime/Scripts/Room.cs b/Runtime/Scripts/Room.cs index e8645b2f..97c6f9e4 100644 --- a/Runtime/Scripts/Room.cs +++ b/Runtime/Scripts/Room.cs @@ -127,6 +127,7 @@ public class Room public delegate void ConnectionDelegate(Room room); public delegate void E2EeStateChangedDelegate(Participant participant, EncryptionState state); public delegate void DataTrackPublishedDelegate(RemoteDataTrack track); + public delegate void DataTrackUnpublishedDelegate(string sid); public string Sid { private set; get; } public string Name { private set; get; } @@ -163,6 +164,7 @@ public class Room public event ParticipantDelegate ParticipantNameChanged; public event ParticipantDelegate ParticipantAttributesChanged; public event DataTrackPublishedDelegate DataTrackPublished; + public event DataTrackUnpublishedDelegate DataTrackUnpublished; public ConnectInstruction Connect(string url, string token, RoomOptions options) { @@ -512,6 +514,11 @@ internal void OnEventReceived(RoomEvent e) DataTrackPublished?.Invoke(track); } break; + case RoomEvent.MessageOneofCase.DataTrackUnpublished: + { + DataTrackUnpublished?.Invoke(e.DataTrackUnpublished.Sid); + } + break; } } diff --git a/Tests/PlayMode/DataTrackTests.cs b/Tests/PlayMode/DataTrackTests.cs index 1d5d8760..89130eed 100644 --- a/Tests/PlayMode/DataTrackTests.cs +++ b/Tests/PlayMode/DataTrackTests.cs @@ -95,7 +95,7 @@ public IEnumerator Unpublish_IsPublishedReturnsFalse() } [UnityTest, Category("E2E")] - public IEnumerator DataTrackPublished_TriggersEvent() + public IEnumerator PublishAndUnpublish_TriggersEvents() { var publisher = TestRoomContext.ConnectionOptions.Default; publisher.Identity = "publisher"; @@ -107,13 +107,13 @@ public IEnumerator DataTrackPublished_TriggersEvent() Assert.IsNull(context.ConnectionError); var subscriberRoom = context.Rooms[1]; - var expectation = new Expectation(timeoutSeconds: 10f); + var publishedExpectation = new Expectation(timeoutSeconds: 10f); RemoteDataTrack receivedTrack = null; subscriberRoom.DataTrackPublished += (track) => { receivedTrack = track; - expectation.Fulfill(); + publishedExpectation.Fulfill(); }; var publisherRoom = context.Rooms[0]; @@ -121,10 +121,25 @@ public IEnumerator DataTrackPublished_TriggersEvent() yield return publishInstruction; Assert.IsFalse(publishInstruction.IsError); - yield return expectation.Wait(); - Assert.IsNull(expectation.Error); + yield return publishedExpectation.Wait(); + Assert.IsNull(publishedExpectation.Error); Assert.AreEqual(TestTrackName, receivedTrack.Info.Name); Assert.AreEqual(publisher.Identity, receivedTrack.PublisherIdentity); + + var unpublishedExpectation = new Expectation(timeoutSeconds: 10f); + string unpublishedSid = null; + + subscriberRoom.DataTrackUnpublished += (sid) => + { + unpublishedSid = sid; + unpublishedExpectation.Fulfill(); + }; + + publishInstruction.Track.Unpublish(); + + yield return unpublishedExpectation.Wait(); + Assert.IsNull(unpublishedExpectation.Error); + Assert.AreEqual(receivedTrack.Info.Sid, unpublishedSid); } [UnityTest, Category("E2E")] From 0d8acfdde23ae2d42ce2fbd638008a515f562957 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Tue, 24 Mar 2026 12:59:26 -0700 Subject: [PATCH 14/17] Expose buffer size subscribe option --- Runtime/Scripts/DataTrack.cs | 43 ++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/Runtime/Scripts/DataTrack.cs b/Runtime/Scripts/DataTrack.cs index 778f5606..e88f9e7c 100644 --- a/Runtime/Scripts/DataTrack.cs +++ b/Runtime/Scripts/DataTrack.cs @@ -55,6 +55,23 @@ public DataTrackOptions(string name) } } + /// + /// Options for subscribing to a remote data track. + /// + public class DataTrackSubscribeOptions + { + /// + /// Sets the maximum number of received frames buffered internally. + /// + /// + /// Zero is not a valid buffer size; if a value of zero is provided, it will be clamped to one. + /// + /// If there is already an active subscription for a given track, specifying a + /// different buffer size when obtaining a new subscription will have no effect. + /// + public uint? BufferSize { get; set; } + } + /// /// A frame published on a data track, consisting of a payload and optional metadata. /// @@ -260,24 +277,46 @@ internal RemoteDataTrack(OwnedRemoteDataTrack owned) /// /// Subscribes to the data track to receive frames. /// + /// Options for the subscription, such as buffer size. /// /// A that completes when the subscription /// is established or errors. /// Check and access /// to handle the result. /// - public SubscribeDataTrackInstruction Subscribe() + public SubscribeDataTrackInstruction Subscribe(DataTrackSubscribeOptions options) { using var request = FFIBridge.Instance.NewRequest(); var subReq = request.request; subReq.TrackHandle = (ulong)_handle.DangerousGetHandle(); - subReq.Options = new DataTrackSubscribeOptions(); + + var protoOptions = new Proto.DataTrackSubscribeOptions(); + if (options.BufferSize.HasValue) + protoOptions.BufferSize = options.BufferSize.Value; + subReq.Options = protoOptions; using var response = request.Send(); FfiResponse res = response; return new SubscribeDataTrackInstruction(res.SubscribeDataTrack.AsyncId); } + /// + /// Subscribes to the data track to receive frames using default options. + /// + /// + /// Use the overload to configure subscription options. + /// + /// + /// A that completes when the subscription + /// is established or errors. + /// Check and access + /// to handle the result. + /// + public SubscribeDataTrackInstruction Subscribe() + { + return Subscribe(new DataTrackSubscribeOptions()); + } + /// /// Whether or not the track is still published. /// From 60f31eb694b8aec4748d4a8c77bb0271d2c70962 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Tue, 24 Mar 2026 13:09:14 -0700 Subject: [PATCH 15/17] Add explicit request to receive next frame for subscription --- Runtime/Scripts/DataTrack.cs | 5 +++++ Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/Runtime/Scripts/DataTrack.cs b/Runtime/Scripts/DataTrack.cs index e88f9e7c..5eb6aa35 100644 --- a/Runtime/Scripts/DataTrack.cs +++ b/Runtime/Scripts/DataTrack.cs @@ -432,6 +432,11 @@ internal DataTrackSubscription(OwnedDataTrackSubscription owned) public ReadFrameInstruction ReadFrame() { _currentInstruction = new ReadFrameInstruction(); + + using var request = FFIBridge.Instance.NewRequest(); + request.request.SubscriptionHandle = _handleId; + using var response = request.Send(); + return _currentInstruction; } diff --git a/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs b/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs index 7838dd52..9311dfb3 100644 --- a/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs +++ b/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs @@ -165,6 +165,9 @@ public static void Inject(this FfiRequest ffiRequest, T request) case RemoteDataTrackIsPublishedRequest remoteDataTrackIsPublishedRequest: ffiRequest.RemoteDataTrackIsPublished = remoteDataTrackIsPublishedRequest; break; + case DataTrackSubscriptionReadRequest dataTrackSubscriptionReadRequest: + ffiRequest.DataTrackSubscriptionRead = dataTrackSubscriptionReadRequest; + break; default: throw new Exception($"Unknown request type: {request?.GetType().FullName ?? "null"}"); } @@ -229,6 +232,7 @@ public static void EnsureClean(this FfiRequest request) || request.LocalDataTrackIsPublished != null || request.SubscribeDataTrack != null || request.RemoteDataTrackIsPublished != null + || request.DataTrackSubscriptionRead != null ) { throw new InvalidOperationException("Request is not cleared"); @@ -294,6 +298,7 @@ public static void EnsureClean(this FfiResponse response) || response.LocalDataTrackIsPublished != null || response.SubscribeDataTrack != null || response.RemoteDataTrackIsPublished != null + || response.DataTrackSubscriptionRead != null ) { throw new InvalidOperationException("Response is not cleared: "); From fbf8cfcc0eb3ac86462dba8ce09ac36f6f69a003 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Tue, 24 Mar 2026 13:39:27 -0700 Subject: [PATCH 16/17] Adopt new pattern for one-shot async completion --- Runtime/Scripts/DataTrack.cs | 14 ++++++++++---- Runtime/Scripts/Internal/FFIClient.cs | 10 ++-------- Runtime/Scripts/Participant.cs | 14 ++++++++++---- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/Runtime/Scripts/DataTrack.cs b/Runtime/Scripts/DataTrack.cs index 5eb6aa35..9397edb4 100644 --- a/Runtime/Scripts/DataTrack.cs +++ b/Runtime/Scripts/DataTrack.cs @@ -295,9 +295,9 @@ public SubscribeDataTrackInstruction Subscribe(DataTrackSubscribeOptions options protoOptions.BufferSize = options.BufferSize.Value; subReq.Options = protoOptions; + var instruction = new SubscribeDataTrackInstruction(request.RequestAsyncId); using var response = request.Send(); - FfiResponse res = response; - return new SubscribeDataTrackInstruction(res.SubscribeDataTrack.AsyncId); + return instruction; } /// @@ -347,7 +347,7 @@ public sealed class SubscribeDataTrackInstruction : YieldInstruction internal SubscribeDataTrackInstruction(ulong asyncId) { _asyncId = asyncId; - FfiClient.Instance.SubscribeDataTrackReceived += OnSubscribe; + FfiClient.Instance.RegisterPendingCallback(asyncId, static e => e.SubscribeDataTrack, OnSubscribe, OnCanceled); } internal void OnSubscribe(SubscribeDataTrackCallback callback) @@ -366,7 +366,13 @@ internal void OnSubscribe(SubscribeDataTrackCallback callback) break; } IsDone = true; - FfiClient.Instance.SubscribeDataTrackReceived -= OnSubscribe; + } + + void OnCanceled() + { + Error = new SubscribeDataTrackError("Canceled"); + IsError = true; + IsDone = true; } /// diff --git a/Runtime/Scripts/Internal/FFIClient.cs b/Runtime/Scripts/Internal/FFIClient.cs index 960b199e..5f412390 100644 --- a/Runtime/Scripts/Internal/FFIClient.cs +++ b/Runtime/Scripts/Internal/FFIClient.cs @@ -62,8 +62,6 @@ internal sealed class FfiClient : IFFIClient public event TextStreamReaderEventReceivedDelegate? TextStreamReaderEventReceived; // Data Track - public event PublishDataTrackReceivedDelegate? PublishDataTrackReceived; - public event SubscribeDataTrackReceivedDelegate? SubscribeDataTrackReceived; public event DataTrackSubscriptionEventReceivedDelegate? DataTrackSubscriptionEventReceived; public FfiClient() : this(Pools.NewFfiResponsePool(), new ArrayMemoryPool()) @@ -337,12 +335,6 @@ static unsafe void FFICallback(UIntPtr data, UIntPtr size) Instance.TextStreamReaderEventReceived?.Invoke(r.TextStreamReaderEvent!); break; // Data Track - case FfiEvent.MessageOneofCase.PublishDataTrack: - Instance.PublishDataTrackReceived?.Invoke(r.PublishDataTrack!); - break; - case FfiEvent.MessageOneofCase.SubscribeDataTrack: - Instance.SubscribeDataTrackReceived?.Invoke(r.SubscribeDataTrack!); - break; case FfiEvent.MessageOneofCase.DataTrackSubscriptionEvent: Instance.DataTrackSubscriptionEventReceived?.Invoke(r.DataTrackSubscriptionEvent!); break; @@ -410,6 +402,8 @@ private bool TryDispatchPendingCallback(ulong requestAsyncId, FfiEvent ffiEvent) FfiEvent.MessageOneofCase.TextStreamWriterWrite => ffiEvent.TextStreamWriterWrite?.AsyncId, FfiEvent.MessageOneofCase.TextStreamWriterClose => ffiEvent.TextStreamWriterClose?.AsyncId, FfiEvent.MessageOneofCase.SendText => ffiEvent.SendText?.AsyncId, + FfiEvent.MessageOneofCase.PublishDataTrack => ffiEvent.PublishDataTrack?.AsyncId, + FfiEvent.MessageOneofCase.SubscribeDataTrack => ffiEvent.SubscribeDataTrack?.AsyncId, _ => null, }; } diff --git a/Runtime/Scripts/Participant.cs b/Runtime/Scripts/Participant.cs index 13fe60f3..81a61cc8 100644 --- a/Runtime/Scripts/Participant.cs +++ b/Runtime/Scripts/Participant.cs @@ -559,9 +559,9 @@ public PublishDataTrackInstruction PublishDataTrack(DataTrackOptions options) publishReq.LocalParticipantHandle = (ulong)Handle.DangerousGetHandle(); publishReq.Options = new Proto.DataTrackOptions { Name = options.Name }; + var instruction = new PublishDataTrackInstruction(request.RequestAsyncId); using var response = request.Send(); - FfiResponse res = response; - return new PublishDataTrackInstruction(res.PublishDataTrack.AsyncId); + return instruction; } /// @@ -1029,7 +1029,7 @@ public sealed class PublishDataTrackInstruction : YieldInstruction internal PublishDataTrackInstruction(ulong asyncId) { _asyncId = asyncId; - FfiClient.Instance.PublishDataTrackReceived += OnPublishDataTrack; + FfiClient.Instance.RegisterPendingCallback(asyncId, static e => e.PublishDataTrack, OnPublishDataTrack, OnCanceled); } internal void OnPublishDataTrack(PublishDataTrackCallback e) @@ -1048,7 +1048,13 @@ internal void OnPublishDataTrack(PublishDataTrackCallback e) break; } IsDone = true; - FfiClient.Instance.PublishDataTrackReceived -= OnPublishDataTrack; + } + + void OnCanceled() + { + Error = new PublishDataTrackError("Canceled"); + IsError = true; + IsDone = true; } /// From dbefe11bbfb0aeb039565441ec3b5b31507d49c7 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Tue, 24 Mar 2026 13:47:55 -0700 Subject: [PATCH 17/17] Remove custom SFU config in CI --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7ce1b2ad..b2f8dd56 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: - name: Install LiveKit Server run: curl -sSL https://get.livekit.io | bash - name: Run LiveKit Server - run: 'LIVEKIT_CONFIG="enable_data_tracks: true" livekit-server --dev &' + run: livekit-server --dev & - name: Run Tests uses: game-ci/unity-test-runner@v4 id: testRunner