@openkaiden/opnshll-sdk 0.0.111 → 0.0.113

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@ import { file_sandbox } from "./sandbox_pb.js";
8
8
  /**
9
9
  * Describes the file openshell.proto.
10
10
  */
11
- export const file_openshell = /*@__PURE__*/ fileDesc("Cg9vcGVuc2hlbGwucHJvdG8SDG9wZW5zaGVsbC52MSIaChhJc3N1ZVNhbmRib3hUb2tlblJlcXVlc3QiRwoZSXNzdWVTYW5kYm94VG9rZW5SZXNwb25zZRITCgV0b2tlbhgBIAEoCUIEiLUYARIVCg1leHBpcmVzX2F0X21zGAIgASgDIj0KGlJlZnJlc2hTYW5kYm94VG9rZW5SZXF1ZXN0Eh8KF2V4dGVuc2lvbl9zZXJ2aWNlX25hbWVzGAEgAygJIpIBChtSZWZyZXNoU2FuZGJveFRva2VuUmVzcG9uc2USEwoFdG9rZW4YASABKAlCBIi1GAESFQoNZXhwaXJlc19hdF9tcxgCIAEoAxJHChVleHRlbnNpb25fY3JlZGVudGlhbHMYAyADKAsyKC5vcGVuc2hlbGwudjEuRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwiDwoNSGVhbHRoUmVxdWVzdCJOCg5IZWFsdGhSZXNwb25zZRIrCgZzdGF0dXMYASABKA4yGy5vcGVuc2hlbGwudjEuU2VydmljZVN0YXR1cxIPCgd2ZXJzaW9uGAIgASgJIhcKFUdldEN1cnJlbnRVc2VyUmVxdWVzdCJ5ChZHZXRDdXJyZW50VXNlclJlc3BvbnNlEg8KB3N1YmplY3QYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg0KBXJvbGVzGAMgAygJEg4KBnNjb3BlcxgEIAMoCRIZChFpZGVudGl0eV9wcm92aWRlchgFIAEoCSIXChVHZXRHYXRld2F5SW5mb1JlcXVlc3QimAEKFkdldEdhdGV3YXlJbmZvUmVzcG9uc2USKwoGc3RhdHVzGAEgASgOMhsub3BlbnNoZWxsLnYxLlNlcnZpY2VTdGF0dXMSFwoPZ2F0ZXdheV92ZXJzaW9uGAIgASgJEjgKD2NvbXB1dGVfZHJpdmVycxgDIAMoCzIfLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVySW5mbyJgChFDb21wdXRlRHJpdmVySW5mbxIMCgRuYW1lGAEgASgJEj0KDGNhcGFiaWxpdGllcxgCIAEoCzInLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzIkgKGUNvbXB1dGVEcml2ZXJDYXBhYmlsaXRpZXMSEwoLZHJpdmVyX25hbWUYASABKAkSFgoOZHJpdmVyX3ZlcnNpb24YAiABKAkiwAEKB1NhbmRib3gSNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESJwoEc3BlYxgCIAEoCzIZLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYxIrCgZzdGF0dXMYAyABKAsyGy5vcGVuc2hlbGwudjEuU2FuZGJveFN0YXR1c0oECAQQBUoECAUQBlIFcGhhc2VSFmN1cnJlbnRfcG9saWN5X3ZlcnNpb24inwMKC1NhbmRib3hTcGVjEhEKCWxvZ19sZXZlbBgBIAEoCRI/CgtlbnZpcm9ubWVudBgFIAMoCzIqLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYy5FbnZpcm9ubWVudEVudHJ5Ei8KCHRlbXBsYXRlGAYgASgLMh0ub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZRIzCgZwb2xpY3kYByABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EhEKCXByb3ZpZGVycxgIIAMoCRJBChVyZXNvdXJjZV9yZXF1aXJlbWVudHMYCSABKAsyIi5vcGVuc2hlbGwudjEuUmVzb3VyY2VSZXF1aXJlbWVudHMSDwoHY29tbWFuZBgMIAMoCRILCgN0dHkYDSABKAgaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIChALSgQICxAMUgpncHVfZGV2aWNlUhZwcm9wb3NhbF9hcHByb3ZhbF9tb2RlIkoKFFJlc291cmNlUmVxdWlyZW1lbnRzEjIKA2dwdRgBIAEoCzIlLm9wZW5zaGVsbC52MS5HcHVSZXNvdXJjZVJlcXVpcmVtZW50cyI3ChdHcHVSZXNvdXJjZVJlcXVpcmVtZW50cxISCgVjb3VudBgBIAEoDUgAiAEBQggKBl9jb3VudCLaBAoPU2FuZGJveFRlbXBsYXRlEg0KBWltYWdlGAEgASgJEhoKEnJ1bnRpbWVfY2xhc3NfbmFtZRgCIAEoCRIUCgxhZ2VudF9zb2NrZXQYAyABKAkSOQoGbGFiZWxzGAQgAygLMikub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZS5MYWJlbHNFbnRyeRJDCgthbm5vdGF0aW9ucxgFIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuQW5ub3RhdGlvbnNFbnRyeRJDCgtlbnZpcm9ubWVudBgGIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuRW52aXJvbm1lbnRFbnRyeRIqCglyZXNvdXJjZXMYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhwKD3VzZXJfbmFtZXNwYWNlcxgKIAEoCEgAiAEBEi4KDWRyaXZlcl9jb25maWcYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Gi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUISChBfdXNlcl9uYW1lc3BhY2VzSgQICRAKUhZ2b2x1bWVfY2xhaW1fdGVtcGxhdGVzIqUCCg1TYW5kYm94U3RhdHVzEhQKDHNhbmRib3hfbmFtZRgBIAEoCRIRCglhZ2VudF9wb2QYAiABKAkSEAoIYWdlbnRfZmQYAyABKAkSEgoKc2FuZGJveF9mZBgEIAEoCRIyCgpjb25kaXRpb25zGAUgAygLMh4ub3BlbnNoZWxsLnYxLlNhbmRib3hDb25kaXRpb24SKQoFcGhhc2UYBiABKA4yGi5vcGVuc2hlbGwudjEuU2FuZGJveFBoYXNlEh4KFmN1cnJlbnRfcG9saWN5X3ZlcnNpb24YByABKA0SIAoYbWFpbl9wcm9jZXNzX2luc3RhbmNlX2lkGAggASgJEhYKCWV4aXRfY29kZRgJIAEoBUgAiAEBQgwKCl9leGl0X2NvZGUibwoQU2FuZGJveENvbmRpdGlvbhIMCgR0eXBlGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIOCgZyZWFzb24YAyABKAkSDwoHbWVzc2FnZRgEIAEoCRIcChRsYXN0X3RyYW5zaXRpb25fdGltZRgFIAEoCSLSAQoNUGxhdGZvcm1FdmVudBIUCgx0aW1lc3RhbXBfbXMYASABKAMSDgoGc291cmNlGAIgASgJEgwKBHR5cGUYAyABKAkSDgoGcmVhc29uGAQgASgJEg8KB21lc3NhZ2UYBSABKAkSOwoIbWV0YWRhdGEYBiADKAsyKS5vcGVuc2hlbGwudjEuUGxhdGZvcm1FdmVudC5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASLNAgoUQ3JlYXRlU2FuZGJveFJlcXVlc3QSJwoEc3BlYxgBIAEoCzIZLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYxIMCgRuYW1lGAIgASgJEj4KBmxhYmVscxgDIAMoCzIuLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdC5MYWJlbHNFbnRyeRJICgthbm5vdGF0aW9ucxgEIAMoCzIzLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdC5Bbm5vdGF0aW9uc0VudHJ5EhEKCXdvcmtzcGFjZRgFIAEoCRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0ChFHZXRTYW5kYm94UmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJ4ChRMaXN0U2FuZGJveGVzUmVxdWVzdBINCgVsaW1pdBgBIAEoDRIOCgZvZmZzZXQYAiABKA0SFgoObGFiZWxfc2VsZWN0b3IYAyABKAkSEQoJd29ya3NwYWNlGAQgASgJEhYKDmFsbF93b3Jrc3BhY2VzGAUgASgIIkYKG0xpc3RTYW5kYm94UHJvdmlkZXJzUmVxdWVzdBIUCgxzYW5kYm94X25hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIoEBChxBdHRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0EhQKDHNhbmRib3hfbmFtZRgBIAEoCRIVCg1wcm92aWRlcl9uYW1lGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEQoJd29ya3NwYWNlGAQgASgJIoEBChxEZXRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0EhQKDHNhbmRib3hfbmFtZRgBIAEoCRIVCg1wcm92aWRlcl9uYW1lGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEQoJd29ya3NwYWNlGAQgASgJIjcKFERlbGV0ZVNhbmRib3hSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjUKElN0b3BTYW5kYm94UmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSI2ChNTdGFydFNhbmRib3hSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjkKD1NhbmRib3hSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3giQQoVTGlzdFNhbmRib3hlc1Jlc3BvbnNlEigKCXNhbmRib3hlcxgBIAMoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94IlMKHExpc3RTYW5kYm94UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJZCh1BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSEAoIYXR0YWNoZWQYAiABKAgiWQodRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVzcG9uc2USJgoHc2FuZGJveBgBIAEoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EhAKCGRldGFjaGVkGAIgASgIIigKFURlbGV0ZVNhbmRib3hSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIi0KF0NyZWF0ZVNzaFNlc3Npb25SZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkivAEKGENyZWF0ZVNzaFNlc3Npb25SZXNwb25zZRISCgpzYW5kYm94X2lkGAEgASgJEhMKBXRva2VuGAIgASgJQgSItRgBEhQKDGdhdGV3YXlfaG9zdBgDIAEoCRIUCgxnYXRld2F5X3BvcnQYBCABKA0SFgoOZ2F0ZXdheV9zY2hlbWUYBSABKAkSHAoUaG9zdF9rZXlfZmluZ2VycHJpbnQYByABKAkSFQoNZXhwaXJlc19hdF9tcxgIIAEoAyJwChRFeHBvc2VTZXJ2aWNlUmVxdWVzdBIPCgdzYW5kYm94GAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEwoLdGFyZ2V0X3BvcnQYAyABKA0SDgoGZG9tYWluGAQgASgIEhEKCXdvcmtzcGFjZRgFIAEoCSJIChFHZXRTZXJ2aWNlUmVxdWVzdBIPCgdzYW5kYm94GAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJInAKE0xpc3RTZXJ2aWNlc1JlcXVlc3QSDwoHc2FuZGJveBgBIAEoCRINCgVsaW1pdBgCIAEoDRIOCgZvZmZzZXQYAyABKA0SEQoJd29ya3NwYWNlGAQgASgJEhYKDmFsbF93b3Jrc3BhY2VzGAUgASgIIk8KFExpc3RTZXJ2aWNlc1Jlc3BvbnNlEjcKCHNlcnZpY2VzGAEgAygLMiUub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludFJlc3BvbnNlIksKFERlbGV0ZVNlcnZpY2VSZXF1ZXN0Eg8KB3NhbmRib3gYASABKAkSDwoHc2VydmljZRgCIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkiKAoVRGVsZXRlU2VydmljZVJlc3BvbnNlEg8KB2RlbGV0ZWQYASABKAgirAEKD1NlcnZpY2VFbmRwb2ludBI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRISCgpzYW5kYm94X2lkGAIgASgJEhQKDHNhbmRib3hfbmFtZRgDIAEoCRIUCgxzZXJ2aWNlX25hbWUYBCABKAkSEwoLdGFyZ2V0X3BvcnQYBSABKA0SDgoGZG9tYWluGAYgASgIIlcKF1NlcnZpY2VFbmRwb2ludFJlc3BvbnNlEi8KCGVuZHBvaW50GAEgASgLMh0ub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludBILCgN1cmwYAiABKAkiLgoXUmV2b2tlU3NoU2Vzc2lvblJlcXVlc3QSEwoFdG9rZW4YASABKAlCBIi1GAEiKwoYUmV2b2tlU3NoU2Vzc2lvblJlc3BvbnNlEg8KB3Jldm9rZWQYASABKAgilwIKEkV4ZWNTYW5kYm94UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEg8KB2NvbW1hbmQYAiADKAkSDwoHd29ya2RpchgDIAEoCRJGCgtlbnZpcm9ubWVudBgEIAMoCzIxLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3QuRW52aXJvbm1lbnRFbnRyeRIXCg90aW1lb3V0X3NlY29uZHMYBSABKA0SDQoFc3RkaW4YBiABKAwSCwoDdHR5GAcgASgIEgwKBGNvbHMYCCABKA0SDAoEcm93cxgJIAEoDRoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiIQoRRXhlY1NhbmRib3hTdGRvdXQSDAoEZGF0YRgBIAEoDCIhChFFeGVjU2FuZGJveFN0ZGVychIMCgRkYXRhGAEgASgMIiQKD0V4ZWNTYW5kYm94RXhpdBIRCglleGl0X2NvZGUYASABKAUisgEKEEV4ZWNTYW5kYm94RXZlbnQSMQoGc3Rkb3V0GAEgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3Rkb3V0SAASMQoGc3RkZXJyGAIgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3RkZXJySAASLQoEZXhpdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV4aXRIAEIJCgdwYXlsb2FkIr8BCg5UY3BGb3J3YXJkSW5pdBISCgpzYW5kYm94X2lkGAEgASgJEhIKCnNlcnZpY2VfaWQYBCABKAkSKwoDc3NoGAUgASgLMhwub3BlbnNoZWxsLnYxLlNzaFJlbGF5VGFyZ2V0SAASKwoDdGNwGAYgASgLMhwub3BlbnNoZWxsLnYxLlRjcFJlbGF5VGFyZ2V0SAASIQoTYXV0aG9yaXphdGlvbl90b2tlbhgHIAEoCUIEiLUYAUIICgZ0YXJnZXQiWgoPVGNwRm9yd2FyZEZyYW1lEiwKBGluaXQYASABKAsyHC5vcGVuc2hlbGwudjEuVGNwRm9yd2FyZEluaXRIABIOCgRkYXRhGAIgASgMSABCCQoHcGF5bG9hZCKaAQoQRXhlY1NhbmRib3hJbnB1dBIxCgVzdGFydBgBIAEoCzIgLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3RIABIPCgVzdGRpbhgCIAEoDEgAEjcKBnJlc2l6ZRgDIAEoCzIlLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFdpbmRvd1Jlc2l6ZUgAQgkKB3BheWxvYWQiNQoXRXhlY1NhbmRib3hXaW5kb3dSZXNpemUSDAoEY29scxgBIAEoDRIMCgRyb3dzGAIgASgNIpMBCgpTc2hTZXNzaW9uEjQKCG1ldGFkYXRhGAEgASgLMiIub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5PYmplY3RNZXRhEhIKCnNhbmRib3hfaWQYAiABKAkSEwoFdG9rZW4YAyABKAlCBIi1GAESFQoNZXhwaXJlc19hdF9tcxgEIAEoAxIPCgdyZXZva2VkGAUgASgIIuwBChNXYXRjaFNhbmRib3hSZXF1ZXN0EgoKAmlkGAEgASgJEhUKDWZvbGxvd19zdGF0dXMYAiABKAgSEwoLZm9sbG93X2xvZ3MYAyABKAgSFQoNZm9sbG93X2V2ZW50cxgEIAEoCBIWCg5sb2dfdGFpbF9saW5lcxgFIAEoDRISCgpldmVudF90YWlsGAYgASgNEhgKEHN0b3Bfb25fdGVybWluYWwYByABKAgSFAoMbG9nX3NpbmNlX21zGAggASgDEhMKC2xvZ19zb3VyY2VzGAkgAygJEhUKDWxvZ19taW5fbGV2ZWwYCiABKAkimwIKElNhbmRib3hTdHJlYW1FdmVudBIoCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3hIABIrCgNsb2cYAiABKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmVIABIsCgVldmVudBgDIAEoCzIbLm9wZW5zaGVsbC52MS5QbGF0Zm9ybUV2ZW50SAASNQoHd2FybmluZxgEIAEoCzIiLm9wZW5zaGVsbC52MS5TYW5kYm94U3RyZWFtV2FybmluZ0gAEj4KE2RyYWZ0X3BvbGljeV91cGRhdGUYBSABKAsyHy5vcGVuc2hlbGwudjEuRHJhZnRQb2xpY3lVcGRhdGVIAEIJCgdwYXlsb2FkIuMBCg5TYW5kYm94TG9nTGluZRISCgpzYW5kYm94X2lkGAEgASgJEhQKDHRpbWVzdGFtcF9tcxgCIAEoAxINCgVsZXZlbBgDIAEoCRIOCgZ0YXJnZXQYBCABKAkSDwoHbWVzc2FnZRgFIAEoCRIOCgZzb3VyY2UYBiABKAkSOAoGZmllbGRzGAcgAygLMigub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lLkZpZWxkc0VudHJ5Gi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiJwoUU2FuZGJveFN0cmVhbVdhcm5pbmcSDwoHbWVzc2FnZRgBIAEoCSJeChVDcmVhdGVQcm92aWRlclJlcXVlc3QSMgoIcHJvdmlkZXIYASABKAsyIC5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLlByb3ZpZGVyEhEKCXdvcmtzcGFjZRgCIAEoCSI1ChJHZXRQcm92aWRlclJlcXVlc3QSDAoEbmFtZRgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkiYAoUTGlzdFByb3ZpZGVyc1JlcXVlc3QSDQoFbGltaXQYASABKA0SDgoGb2Zmc2V0GAIgASgNEhEKCXdvcmtzcGFjZRgDIAEoCRIWCg5hbGxfd29ya3NwYWNlcxgEIAEoCCL+AQoVVXBkYXRlUHJvdmlkZXJSZXF1ZXN0EjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchJgChhjcmVkZW50aWFsX2V4cGlyZXNfYXRfbXMYAiADKAsyPi5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJSZXF1ZXN0LkNyZWRlbnRpYWxFeHBpcmVzQXRNc0VudHJ5EhEKCXdvcmtzcGFjZRgDIAEoCRo8ChpDcmVkZW50aWFsRXhwaXJlc0F0TXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBIjgKFURlbGV0ZVByb3ZpZGVyUmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJGChBQcm92aWRlclJlc3BvbnNlEjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJMChVMaXN0UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJPChtMaXN0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSDQoFbGltaXQYASABKA0SDgoGb2Zmc2V0GAIgASgNEhEKCXdvcmtzcGFjZRgDIAEoCSI6ChlHZXRQcm92aWRlclByb2ZpbGVSZXF1ZXN0EgoKAmlkGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJbChlQcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEi4KB3Byb2ZpbGUYASABKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEg4KBnNvdXJjZRgCIAEoCSJxChlQcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEg4KBnNvdXJjZRgBIAEoCRISCgpwcm9maWxlX2lkGAIgASgJEg0KBWZpZWxkGAMgASgJEg8KB21lc3NhZ2UYBCABKAkSEAoIc2V2ZXJpdHkYBSABKAkiegosUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNEgwKBHBhdGgYAyABKAkSEAoIYXVkaWVuY2UYBCABKAkSDgoGc2NvcGVzGAUgAygJIoUCChxQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50EhYKDnRva2VuX2VuZHBvaW50GAEgASgJEhAKCGF1ZGllbmNlGAIgASgJEhkKEWp3dF9zdmlkX2F1ZGllbmNlGAYgASgJEg4KBnNjb3BlcxgDIAMoCRIZChFjYWNoZV90dGxfc2Vjb25kcxgEIAEoAxJWChJhdWRpZW5jZV9vdmVycmlkZXMYBSADKAsyOi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSHQoVY2xpZW50X2Fzc2VydGlvbl90eXBlGAcgASgJIrICChlQcm92aWRlclByb2ZpbGVDcmVkZW50aWFsEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIZW52X3ZhcnMYAyADKAkSEAoIcmVxdWlyZWQYBCABKAgSEgoKYXV0aF9zdHlsZRgFIAEoCRITCgtoZWFkZXJfbmFtZRgGIAEoCRITCgtxdWVyeV9wYXJhbRgHIAEoCRI4CgdyZWZyZXNoGAggASgLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2gSFQoNcGF0aF90ZW1wbGF0ZRgJIAEoCRI/Cgt0b2tlbl9ncmFudBgKIAEoCzIqLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50ImgKIVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hNYXRlcmlhbBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCHJlcXVpcmVkGAMgASgIEg4KBnNlY3JldBgEIAEoCCJFCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0Eg4KBm91dHB1dBgBIAEoCRISCgpjcmVkZW50aWFsGAIgASgJIs0CChlQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoEkEKCHN0cmF0ZWd5GAEgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRIRCgl0b2tlbl91cmwYAiABKAkSDgoGc2NvcGVzGAMgAygJEh4KFnJlZnJlc2hfYmVmb3JlX3NlY29uZHMYBCABKAMSHAoUbWF4X2xpZmV0aW1lX3NlY29uZHMYBSABKAMSQQoIbWF0ZXJpYWwYBiADKAsyLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaE1hdGVyaWFsEkkKEmFkZGl0aW9uYWxfb3V0cHV0cxgHIAMoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0IpsCCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzEhUKDXByb3ZpZGVyX25hbWUYASABKAkSEwoLcHJvdmlkZXJfaWQYAiABKAkSFgoOY3JlZGVudGlhbF9rZXkYAyABKAkSQQoIc3RyYXRlZ3kYBCABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5Eg4KBnN0YXR1cxgFIAEoCRIVCg1leHBpcmVzX2F0X21zGAYgASgDEhoKEm5leHRfcmVmcmVzaF9hdF9tcxgHIAEoAxIaChJsYXN0X3JlZnJlc2hfYXRfbXMYCCABKAMSEgoKbGFzdF9lcnJvchgJIAEoCSIvChhQcm92aWRlclByb2ZpbGVEaXNjb3ZlcnkSEwoLY3JlZGVudGlhbHMYASADKAkizwgKJFN0b3JlZFByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0ZRI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRITCgtwcm92aWRlcl9pZBgCIAEoCRIVCg1wcm92aWRlcl9uYW1lGAMgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAQgASgJEkEKCHN0cmF0ZWd5GAUgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRJYCghtYXRlcmlhbBgGIAMoCzJALm9wZW5zaGVsbC52MS5TdG9yZWRQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdGUuTWF0ZXJpYWxFbnRyeUIEiLUYARIcChRzZWNyZXRfbWF0ZXJpYWxfa2V5cxgHIAMoCRIVCg1leHBpcmVzX2F0X21zGAggASgDEhoKEm5leHRfcmVmcmVzaF9hdF9tcxgJIAEoAxIaChJsYXN0X3JlZnJlc2hfYXRfbXMYCiABKAMSDgoGc3RhdHVzGAsgASgJEhIKCmxhc3RfZXJyb3IYDCABKAkSEQoJdG9rZW5fdXJsGA0gASgJEg4KBnNjb3BlcxgOIAMoCRIeChZyZWZyZXNoX2JlZm9yZV9zZWNvbmRzGA8gASgDEhwKFG1heF9saWZldGltZV9zZWNvbmRzGBAgASgDEmwKFmFkZGl0aW9uYWxfb3V0cHV0X2tleXMYESADKAsyTC5vcGVuc2hlbGwudjEuU3RvcmVkUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXRlLkFkZGl0aW9uYWxPdXRwdXRLZXlzRW50cnkSGwoTYXV0aG9yaXphdGlvbl9lcG9jaBgSIAEoCRJuChdzZWNyZXRfbWF0ZXJpYWxfaGFuZGxlcxgTIAMoCzJNLm9wZW5zaGVsbC52MS5TdG9yZWRQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdGUuU2VjcmV0TWF0ZXJpYWxIYW5kbGVzRW50cnkSTQoYcGVuZGluZ19zZWNyZXRfZGVsZXRpb25zGBQgAygLMisub3BlbnNoZWxsLnYxLlN0b3JlZFJlZnJlc2hNYXRlcmlhbERlbGV0aW9uGi8KDU1hdGVyaWFsRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo7ChlBZGRpdGlvbmFsT3V0cHV0S2V5c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaZgoaU2VjcmV0TWF0ZXJpYWxIYW5kbGVzRW50cnkSCwoDa2V5GAEgASgJEjcKBXZhbHVlGAIgASgLMigub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5DcmVkZW50aWFsSGFuZGxlOgI4ASJvCh1TdG9yZWRSZWZyZXNoTWF0ZXJpYWxEZWxldGlvbhIUCgxtYXRlcmlhbF9rZXkYASABKAkSOAoGaGFuZGxlGAIgASgLMigub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5DcmVkZW50aWFsSGFuZGxlIl4KH0dldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1JlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJImYKIEdldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1Jlc3BvbnNlEkIKC2NyZWRlbnRpYWxzGAEgAygLMi0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0dXMi8wIKH0NvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSQQoIc3RyYXRlZ3kYAyABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5ElMKCG1hdGVyaWFsGAQgAygLMjsub3BlbnNoZWxsLnYxLkNvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QuTWF0ZXJpYWxFbnRyeUIEiLUYARIcChRzZWNyZXRfbWF0ZXJpYWxfa2V5cxgFIAMoCRIaCg1leHBpcmVzX2F0X21zGAYgASgDSACIAQESEQoJd29ya3NwYWNlGAcgASgJGi8KDU1hdGVyaWFsRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIQCg5fZXhwaXJlc19hdF9tcyJhCiBDb25maWd1cmVQcm92aWRlclJlZnJlc2hSZXNwb25zZRI9CgZzdGF0dXMYASABKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyJeCh9Sb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXF1ZXN0EhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSJhCiBSb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXNwb25zZRI9CgZzdGF0dXMYASABKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyJbChxEZWxldGVQcm92aWRlclJlZnJlc2hSZXF1ZXN0EhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSIwCh1EZWxldGVQcm92aWRlclJlZnJlc2hSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIrgECg9Qcm92aWRlclByb2ZpbGUSCgoCaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEjcKCGNhdGVnb3J5GAQgASgOMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUNhdGVnb3J5EjwKC2NyZWRlbnRpYWxzGAUgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUNyZWRlbnRpYWwSOAoJZW5kcG9pbnRzGAYgAygLMiUub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0VuZHBvaW50EjUKCGJpbmFyaWVzGAcgAygLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0JpbmFyeRIZChFpbmZlcmVuY2VfY2FwYWJsZRgIIAEoCBI5CglkaXNjb3ZlcnkYCSABKAsyJi5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlzY292ZXJ5EhgKEHJlc291cmNlX3ZlcnNpb24YCiABKAQSQwoLYW5ub3RhdGlvbnMYCyADKAsyLi5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlLkFubm90YXRpb25zRW50cnkSDgoGc291cmNlGAwgASgJEg0KBXNjb3BlGA0gASgJGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJ9ChVTdG9yZWRQcm92aWRlclByb2ZpbGUSNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESLgoHcHJvZmlsZRgCIAEoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUiSQoXUHJvdmlkZXJQcm9maWxlUmVzcG9uc2USLgoHcHJvZmlsZRgBIAEoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUiTwocTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRIvCghwcm9maWxlcxgBIAMoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUibQodSW1wb3J0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSOQoIcHJvZmlsZXMYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlSW1wb3J0SXRlbRIRCgl3b3Jrc3BhY2UYAiABKAkioQEKHkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRI8CgtkaWFnbm9zdGljcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEi8KCHByb2ZpbGVzGAIgAygLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIQCghpbXBvcnRlZBgDIAEoCCKbAQodVXBkYXRlUHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSOAoHcHJvZmlsZRgBIAEoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAiABKAQSCgoCaWQYAyABKAkSEQoJd29ya3NwYWNlGAQgASgJIp8BCh5VcGRhdGVQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USPAoLZGlhZ25vc3RpY3MYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxIuCgdwcm9maWxlGAIgASgLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIPCgd1cGRhdGVkGAMgASgIImsKG0xpbnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBI5Cghwcm9maWxlcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEhEKCXdvcmtzcGFjZRgCIAEoCSJrChxMaW50UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlEjwKC2RpYWdub3N0aWNzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZURpYWdub3N0aWMSDQoFdmFsaWQYAiABKAgiKQoWRGVsZXRlUHJvdmlkZXJSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIj0KHERlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlcXVlc3QSCgoCaWQYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjAKHURlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlc3BvbnNlEg8KB2RlbGV0ZWQYASABKAgiZwokR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSKwojc3VwcG9ydHNfc3RhdGljX2NyZWRlbnRpYWxfYmluZGluZ3MYAiABKAgiSwofU3RhdGljQ3JlZGVudGlhbEVuZHBvaW50QmluZGluZxIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0SDAoEcGF0aBgDIAEoCSKcAQoXU3RhdGljQ3JlZGVudGlhbEJpbmRpbmcSQAoJZW5kcG9pbnRzGAEgAygLMi0ub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxFbmRwb2ludEJpbmRpbmcSGwoTY3JlZGVudGlhbF9pZGVudGl0eRgCIAEoCRIiChp3b3JrbG9hZF9jcmVkZW50aWFsX2hhbmRsZRgDIAEoCSLdBgolR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZRJfCgtlbnZpcm9ubWVudBgBIAMoCzJELm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkVudmlyb25tZW50RW50cnlCBIi1GAESHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAIgASgEEnAKGGNyZWRlbnRpYWxfZXhwaXJlc19hdF9tcxgDIAMoCzJOLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkNyZWRlbnRpYWxFeHBpcmVzQXRNc0VudHJ5EmgKE2R5bmFtaWNfY3JlZGVudGlhbHMYBCADKAsySy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZS5EeW5hbWljQ3JlZGVudGlhbHNFbnRyeRJ1ChpzdGF0aWNfY3JlZGVudGlhbF9iaW5kaW5ncxgFIAMoCzJRLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLlN0YXRpY0NyZWRlbnRpYWxCaW5kaW5nc0VudHJ5EiMKG25vbl9zZWNyZXRfZW52aXJvbm1lbnRfa2V5cxgGIAMoCRoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaPAoaQ3JlZGVudGlhbEV4cGlyZXNBdE1zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgDOgI4ARpiChdEeW5hbWljQ3JlZGVudGlhbHNFbnRyeRILCgNrZXkYASABKAkSNgoFdmFsdWUYAiABKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlQ3JlZGVudGlhbDoCOAEaZgodU3RhdGljQ3JlZGVudGlhbEJpbmRpbmdzRW50cnkSCwoDa2V5GAEgASgJEjQKBXZhbHVlGAIgASgLMiUub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxCaW5kaW5nOgI4ASLBAwoTVXBkYXRlQ29uZmlnUmVxdWVzdBIMCgRuYW1lGAEgASgJEjMKBnBvbGljeRgCIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSEwoLc2V0dGluZ19rZXkYAyABKAkSOQoNc2V0dGluZ192YWx1ZRgEIAEoCzIiLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNldHRpbmdWYWx1ZRIWCg5kZWxldGVfc2V0dGluZxgFIAEoCBIOCgZnbG9iYWwYBiABKAgSPAoQbWVyZ2Vfb3BlcmF0aW9ucxgHIAMoCzIiLm9wZW5zaGVsbC52MS5Qb2xpY3lNZXJnZU9wZXJhdGlvbhIhChlleHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9uGAggASgEEkcKC2Fubm90YXRpb25zGAkgAygLMjIub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1JlcXVlc3QuQW5ub3RhdGlvbnNFbnRyeRIRCgl3b3Jrc3BhY2UYCiABKAkaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIvcCChRQb2xpY3lNZXJnZU9wZXJhdGlvbhIwCghhZGRfcnVsZRgBIAEoCzIcLm9wZW5zaGVsbC52MS5BZGROZXR3b3JrUnVsZUgAEj4KD3JlbW92ZV9lbmRwb2ludBgCIAEoCzIjLm9wZW5zaGVsbC52MS5SZW1vdmVOZXR3b3JrRW5kcG9pbnRIABI2CgtyZW1vdmVfcnVsZRgDIAEoCzIfLm9wZW5zaGVsbC52MS5SZW1vdmVOZXR3b3JrUnVsZUgAEjQKDmFkZF9kZW55X3J1bGVzGAQgASgLMhoub3BlbnNoZWxsLnYxLkFkZERlbnlSdWxlc0gAEjYKD2FkZF9hbGxvd19ydWxlcxgFIAEoCzIbLm9wZW5zaGVsbC52MS5BZGRBbGxvd1J1bGVzSAASOgoNcmVtb3ZlX2JpbmFyeRgGIAEoCzIhLm9wZW5zaGVsbC52MS5SZW1vdmVOZXR3b3JrQmluYXJ5SABCCwoJb3BlcmF0aW9uIloKDkFkZE5ldHdvcmtSdWxlEhEKCXJ1bGVfbmFtZRgBIAEoCRI1CgRydWxlGAIgASgLMicub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya1BvbGljeVJ1bGUiRgoVUmVtb3ZlTmV0d29ya0VuZHBvaW50EhEKCXJ1bGVfbmFtZRgBIAEoCRIMCgRob3N0GAIgASgJEgwKBHBvcnQYAyABKA0iJgoRUmVtb3ZlTmV0d29ya1J1bGUSEQoJcnVsZV9uYW1lGAEgASgJImAKDEFkZERlbnlSdWxlcxIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0SNAoKZGVueV9ydWxlcxgDIAMoCzIgLm9wZW5zaGVsbC5zYW5kYm94LnYxLkw3RGVueVJ1bGUiWAoNQWRkQWxsb3dSdWxlcxIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0SKwoFcnVsZXMYAyADKAsyHC5vcGVuc2hlbGwuc2FuZGJveC52MS5MN1J1bGUiPQoTUmVtb3ZlTmV0d29ya0JpbmFyeRIRCglydWxlX25hbWUYASABKAkSEwoLYmluYXJ5X3BhdGgYAiABKAki5gEKFFVwZGF0ZUNvbmZpZ1Jlc3BvbnNlEg8KB3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkSGQoRc2V0dGluZ3NfcmV2aXNpb24YAyABKAQSDwoHZGVsZXRlZBgEIAEoCBJICgthbm5vdGF0aW9ucxgFIAMoCzIzLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXNwb25zZS5Bbm5vdGF0aW9uc0VudHJ5GjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJhCh1HZXRTYW5kYm94UG9saWN5U3RhdHVzUmVxdWVzdBIMCgRuYW1lGAEgASgJEg8KB3ZlcnNpb24YAiABKA0SDgoGZ2xvYmFsGAMgASgIEhEKCXdvcmtzcGFjZRgEIAEoCSJvCh5HZXRTYW5kYm94UG9saWN5U3RhdHVzUmVzcG9uc2USNQoIcmV2aXNpb24YASABKAsyIy5vcGVuc2hlbGwudjEuU2FuZGJveFBvbGljeVJldmlzaW9uEhYKDmFjdGl2ZV92ZXJzaW9uGAIgASgNImwKGkxpc3RTYW5kYm94UG9saWNpZXNSZXF1ZXN0EgwKBG5hbWUYASABKAkSDQoFbGltaXQYAiABKA0SDgoGb2Zmc2V0GAMgASgNEg4KBmdsb2JhbBgEIAEoCBIRCgl3b3Jrc3BhY2UYBSABKAkiVQobTGlzdFNhbmRib3hQb2xpY2llc1Jlc3BvbnNlEjYKCXJldmlzaW9ucxgBIAMoCzIjLm9wZW5zaGVsbC52MS5TYW5kYm94UG9saWN5UmV2aXNpb24igAEKGVJlcG9ydFBvbGljeVN0YXR1c1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgNEioKBnN0YXR1cxgDIAEoDjIaLm9wZW5zaGVsbC52MS5Qb2xpY3lTdGF0dXMSEgoKbG9hZF9lcnJvchgEIAEoCSIcChpSZXBvcnRQb2xpY3lTdGF0dXNSZXNwb25zZSLbAgoVU2FuZGJveFBvbGljeVJldmlzaW9uEg8KB3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkSKgoGc3RhdHVzGAMgASgOMhoub3BlbnNoZWxsLnYxLlBvbGljeVN0YXR1cxISCgpsb2FkX2Vycm9yGAQgASgJEhUKDWNyZWF0ZWRfYXRfbXMYBSABKAMSFAoMbG9hZGVkX2F0X21zGAYgASgDEjMKBnBvbGljeRgHIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSRwoKcHJvdmVuYW5jZRgIIAMoCzIzLm9wZW5zaGVsbC52MS5TYW5kYm94UG9saWN5UmV2aXNpb24uUHJvdmVuYW5jZUVudHJ5GjEKD1Byb3ZlbmFuY2VFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIoMBChVHZXRTYW5kYm94TG9nc1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRINCgVsaW5lcxgCIAEoDRIQCghzaW5jZV9tcxgDIAEoAxIPCgdzb3VyY2VzGAQgAygJEhEKCW1pbl9sZXZlbBgFIAEoCRIRCgl3b3Jrc3BhY2UYBiABKAkiWAoWUHVzaFNhbmRib3hMb2dzUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEioKBGxvZ3MYAiADKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmUiGQoXUHVzaFNhbmRib3hMb2dzUmVzcG9uc2UiWgoWR2V0U2FuZGJveExvZ3NSZXNwb25zZRIqCgRsb2dzGAEgAygLMhwub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lEhQKDGJ1ZmZlcl90b3RhbBgCIAEoDSLzAQoRU3VwZXJ2aXNvck1lc3NhZ2USLgoFaGVsbG8YASABKAsyHS5vcGVuc2hlbGwudjEuU3VwZXJ2aXNvckhlbGxvSAASNgoJaGVhcnRiZWF0GAIgASgLMiEub3BlbnNoZWxsLnYxLlN1cGVydmlzb3JIZWFydGJlYXRIABI6ChFyZWxheV9vcGVuX3Jlc3VsdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5SZWxheU9wZW5SZXN1bHRIABIvCgtyZWxheV9jbG9zZRgEIAEoCzIYLm9wZW5zaGVsbC52MS5SZWxheUNsb3NlSABCCQoHcGF5bG9hZCKmAgoOR2F0ZXdheU1lc3NhZ2USOQoQc2Vzc2lvbl9hY2NlcHRlZBgBIAEoCzIdLm9wZW5zaGVsbC52MS5TZXNzaW9uQWNjZXB0ZWRIABI5ChBzZXNzaW9uX3JlamVjdGVkGAIgASgLMh0ub3BlbnNoZWxsLnYxLlNlc3Npb25SZWplY3RlZEgAEjMKCWhlYXJ0YmVhdBgDIAEoCzIeLm9wZW5zaGVsbC52MS5HYXRld2F5SGVhcnRiZWF0SAASLQoKcmVsYXlfb3BlbhgEIAEoCzIXLm9wZW5zaGVsbC52MS5SZWxheU9wZW5IABIvCgtyZWxheV9jbG9zZRgFIAEoCzIYLm9wZW5zaGVsbC52MS5SZWxheUNsb3NlSABCCQoHcGF5bG9hZCI6Cg9TdXBlcnZpc29ySGVsbG8SEgoKc2FuZGJveF9pZBgBIAEoCRITCgtpbnN0YW5jZV9pZBgCIAEoCSJGCg9TZXNzaW9uQWNjZXB0ZWQSEgoKc2Vzc2lvbl9pZBgBIAEoCRIfChdoZWFydGJlYXRfaW50ZXJ2YWxfc2VjcxgCIAEoDSIhCg9TZXNzaW9uUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIhUKE1N1cGVydmlzb3JIZWFydGJlYXQiEgoQR2F0ZXdheUhlYXJ0YmVhdCJaChxSZXBvcnRNYWluUHJvY2Vzc0V4aXRSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSEwoLaW5zdGFuY2VfaWQYAiABKAkSEQoJZXhpdF9jb2RlGAMgASgFIh8KHVJlcG9ydE1haW5Qcm9jZXNzRXhpdFJlc3BvbnNlIpcBCglSZWxheU9wZW4SEgoKY2hhbm5lbF9pZBgBIAEoCRIrCgNzc2gYAiABKAsyHC5vcGVuc2hlbGwudjEuU3NoUmVsYXlUYXJnZXRIABIrCgN0Y3AYAyABKAsyHC5vcGVuc2hlbGwudjEuVGNwUmVsYXlUYXJnZXRIABISCgpzZXJ2aWNlX2lkGAUgASgJQggKBnRhcmdldCIQCg5Tc2hSZWxheVRhcmdldCIsCg5UY3BSZWxheVRhcmdldBIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0iHwoJUmVsYXlJbml0EhIKCmNoYW5uZWxfaWQYASABKAkiUAoKUmVsYXlGcmFtZRInCgRpbml0GAEgASgLMhcub3BlbnNoZWxsLnYxLlJlbGF5SW5pdEgAEg4KBGRhdGEYAiABKAxIAEIJCgdwYXlsb2FkIkUKD1JlbGF5T3BlblJlc3VsdBISCgpjaGFubmVsX2lkGAEgASgJEg8KB3N1Y2Nlc3MYAiABKAgSDQoFZXJyb3IYAyABKAkiMAoKUmVsYXlDbG9zZRISCgpjaGFubmVsX2lkGAEgASgJEg4KBnJlYXNvbhgCIAEoCSJQCg9MN1JlcXVlc3RTYW1wbGUSDgoGbWV0aG9kGAEgASgJEgwKBHBhdGgYAiABKAkSEAoIZGVjaXNpb24YAyABKAkSDQoFY291bnQYBCABKA0ilQMKDURlbmlhbFN1bW1hcnkSEgoKc2FuZGJveF9pZBgBIAEoCRIMCgRob3N0GAIgASgJEgwKBHBvcnQYAyABKA0SDgoGYmluYXJ5GAQgASgJEhEKCWFuY2VzdG9ycxgFIAMoCRITCgtkZW55X3JlYXNvbhgGIAEoCRIVCg1maXJzdF9zZWVuX21zGAcgASgDEhQKDGxhc3Rfc2Vlbl9tcxgIIAEoAxINCgVjb3VudBgJIAEoDRIYChBzdXBwcmVzc2VkX2NvdW50GAogASgNEhMKC3RvdGFsX2NvdW50GAsgASgNEhcKD3NhbXBsZV9jbWRsaW5lcxgMIAMoCRIVCg1iaW5hcnlfc2hhMjU2GA0gASgJEhIKCnBlcnNpc3RlbnQYDiABKAgSFAoMZGVuaWFsX3N0YWdlGA8gASgJEjkKEmw3X3JlcXVlc3Rfc2FtcGxlcxgQIAMoCzIdLm9wZW5zaGVsbC52MS5MN1JlcXVlc3RTYW1wbGUSHAoUbDdfaW5zcGVjdGlvbl9hY3RpdmUYESABKAgiPAoQRGVuaWFsR3JvdXBDb3VudBISCgpkZW55X2dyb3VwGAEgASgJEhQKDGRlbmllZF9jb3VudBgCIAEoDSKPAQoWTmV0d29ya0FjdGl2aXR5U3VtbWFyeRIeChZuZXR3b3JrX2FjdGl2aXR5X2NvdW50GAEgASgNEhsKE2RlbmllZF9hY3Rpb25fY291bnQYAiABKA0SOAoQZGVuaWFsc19ieV9ncm91cBgDIAMoCzIeLm9wZW5zaGVsbC52MS5EZW5pYWxHcm91cENvdW50IrYDCgtQb2xpY3lDaHVuaxIKCgJpZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSEQoJcnVsZV9uYW1lGAMgASgJEj4KDXByb3Bvc2VkX3J1bGUYBCABKAsyJy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrUG9saWN5UnVsZRIRCglyYXRpb25hbGUYBSABKAkSFgoOc2VjdXJpdHlfbm90ZXMYBiABKAkSEgoKY29uZmlkZW5jZRgHIAEoAhIaChJkZW5pYWxfc3VtbWFyeV9pZHMYCCADKAkSFQoNY3JlYXRlZF9hdF9tcxgJIAEoAxIVCg1kZWNpZGVkX2F0X21zGAogASgDEg0KBXN0YWdlGAsgASgJEhsKE3N1cGVyc2VkZXNfY2h1bmtfaWQYDCABKAkSEQoJaGl0X2NvdW50GA0gASgFEhUKDWZpcnN0X3NlZW5fbXMYDiABKAMSFAoMbGFzdF9zZWVuX21zGA8gASgDEg4KBmJpbmFyeRgQIAEoCRIZChF2YWxpZGF0aW9uX3Jlc3VsdBgRIAEoCRIYChByZWplY3Rpb25fcmVhc29uGBIgASgJImYKEURyYWZ0UG9saWN5VXBkYXRlEhUKDWRyYWZ0X3ZlcnNpb24YASABKAQSEgoKbmV3X2NodW5rcxgCIAEoDRIVCg10b3RhbF9wZW5kaW5nGAMgASgNEg8KB3N1bW1hcnkYBCABKAkigwIKG1N1Ym1pdFBvbGljeUFuYWx5c2lzUmVxdWVzdBIuCglzdW1tYXJpZXMYASADKAsyGy5vcGVuc2hlbGwudjEuRGVuaWFsU3VtbWFyeRIyCg9wcm9wb3NlZF9jaHVua3MYAiADKAsyGS5vcGVuc2hlbGwudjEuUG9saWN5Q2h1bmsSFQoNYW5hbHlzaXNfbW9kZRgDIAEoCRIMCgRuYW1lGAQgASgJEkgKGm5ldHdvcmtfYWN0aXZpdHlfc3VtbWFyaWVzGAUgAygLMiQub3BlbnNoZWxsLnYxLk5ldHdvcmtBY3Rpdml0eVN1bW1hcnkSEQoJd29ya3NwYWNlGAYgASgJIocBChxTdWJtaXRQb2xpY3lBbmFseXNpc1Jlc3BvbnNlEhcKD2FjY2VwdGVkX2NodW5rcxgBIAEoDRIXCg9yZWplY3RlZF9jaHVua3MYAiABKA0SGQoRcmVqZWN0aW9uX3JlYXNvbnMYAyADKAkSGgoSYWNjZXB0ZWRfY2h1bmtfaWRzGAQgAygJIk8KFUdldERyYWZ0UG9saWN5UmVxdWVzdBIMCgRuYW1lGAEgASgJEhUKDXN0YXR1c19maWx0ZXIYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJIpABChZHZXREcmFmdFBvbGljeVJlc3BvbnNlEikKBmNodW5rcxgBIAMoCzIZLm9wZW5zaGVsbC52MS5Qb2xpY3lDaHVuaxIXCg9yb2xsaW5nX3N1bW1hcnkYAiABKAkSFQoNZHJhZnRfdmVyc2lvbhgDIAEoBBIbChNsYXN0X2FuYWx5emVkX2F0X21zGAQgASgDIk0KGEFwcHJvdmVEcmFmdENodW5rUmVxdWVzdBIMCgRuYW1lGAEgASgJEhAKCGNodW5rX2lkGAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSJIChlBcHByb3ZlRHJhZnRDaHVua1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJIlwKF1JlamVjdERyYWZ0Q2h1bmtSZXF1ZXN0EgwKBG5hbWUYASABKAkSEAoIY2h1bmtfaWQYAiABKAkSDgoGcmVhc29uGAMgASgJEhEKCXdvcmtzcGFjZRgEIAEoCSIaChhSZWplY3REcmFmdENodW5rUmVzcG9uc2UiYQocQXBwcm92ZUFsbERyYWZ0Q2h1bmtzUmVxdWVzdBIMCgRuYW1lGAEgASgJEiAKGGluY2x1ZGVfc2VjdXJpdHlfZmxhZ2dlZBgCIAEoCBIRCgl3b3Jrc3BhY2UYAyABKAkifQodQXBwcm92ZUFsbERyYWZ0Q2h1bmtzUmVzcG9uc2USFgoOcG9saWN5X3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkSFwoPY2h1bmtzX2FwcHJvdmVkGAMgASgNEhYKDmNodW5rc19za2lwcGVkGAQgASgNIooBChVFZGl0RHJhZnRDaHVua1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIQCghjaHVua19pZBgCIAEoCRI+Cg1wcm9wb3NlZF9ydWxlGAMgASgLMicub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya1BvbGljeVJ1bGUSEQoJd29ya3NwYWNlGAQgASgJIhgKFkVkaXREcmFmdENodW5rUmVzcG9uc2UiSgoVVW5kb0RyYWZ0Q2h1bmtSZXF1ZXN0EgwKBG5hbWUYASABKAkSEAoIY2h1bmtfaWQYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJIkUKFlVuZG9EcmFmdENodW5rUmVzcG9uc2USFgoOcG9saWN5X3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkiOgoXQ2xlYXJEcmFmdENodW5rc1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkiMgoYQ2xlYXJEcmFmdENodW5rc1Jlc3BvbnNlEhYKDmNodW5rc19jbGVhcmVkGAEgASgNIjkKFkdldERyYWZ0SGlzdG9yeVJlcXVlc3QSDAoEbmFtZRgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkiZAoRRHJhZnRIaXN0b3J5RW50cnkSFAoMdGltZXN0YW1wX21zGAEgASgDEhIKCmV2ZW50X3R5cGUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSEAoIY2h1bmtfaWQYBCABKAkiSwoXR2V0RHJhZnRIaXN0b3J5UmVzcG9uc2USMAoHZW50cmllcxgBIAMoCzIfLm9wZW5zaGVsbC52MS5EcmFmdEhpc3RvcnlFbnRyeSKAAgoVUG9saWN5UmV2aXNpb25QYXlsb2FkEjMKBnBvbGljeRgBIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSDAoEaGFzaBgCIAEoCRISCgpsb2FkX2Vycm9yGAMgASgJEhQKDGxvYWRlZF9hdF9tcxgEIAEoAxJHCgpwcm92ZW5hbmNlGAUgAygLMjMub3BlbnNoZWxsLnYxLlBvbGljeVJldmlzaW9uUGF5bG9hZC5Qcm92ZW5hbmNlRW50cnkaMQoPUHJvdmVuYW5jZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEitAIKEURyYWZ0Q2h1bmtQYXlsb2FkEhEKCXJ1bGVfbmFtZRgBIAEoCRI+Cg1wcm9wb3NlZF9ydWxlGAIgASgLMicub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya1BvbGljeVJ1bGUSEQoJcmF0aW9uYWxlGAMgASgJEhYKDnNlY3VyaXR5X25vdGVzGAQgASgJEhIKCmNvbmZpZGVuY2UYBSABKAISFQoNZGVjaWRlZF9hdF9tcxgGIAEoAxIMCgRob3N0GAcgASgJEgwKBHBvcnQYCCABKAUSDgoGYmluYXJ5GAkgASgJEhUKDWRyYWZ0X3ZlcnNpb24YCiABKAMSGQoRdmFsaWRhdGlvbl9yZXN1bHQYCyABKAkSGAoQcmVqZWN0aW9uX3JlYXNvbhgMIAEoCSLqAgoUU3RvcmVkUG9saWN5UmV2aXNpb24SCgoCaWQYASABKAkSEgoKc2FuZGJveF9pZBgCIAEoCRIPCgd2ZXJzaW9uGAMgASgDEhYKDnBvbGljeV9wYXlsb2FkGAQgASgMEhMKC3BvbGljeV9oYXNoGAUgASgJEg4KBnN0YXR1cxgGIAEoCRIXCgpsb2FkX2Vycm9yGAcgASgJSACIAQESFQoNY3JlYXRlZF9hdF9tcxgIIAEoAxIZCgxsb2FkZWRfYXRfbXMYCSABKANIAYgBARJGCgpwcm92ZW5hbmNlGAogAygLMjIub3BlbnNoZWxsLnYxLlN0b3JlZFBvbGljeVJldmlzaW9uLlByb3ZlbmFuY2VFbnRyeRoxCg9Qcm92ZW5hbmNlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUINCgtfbG9hZF9lcnJvckIPCg1fbG9hZGVkX2F0X21zIqgDChBTdG9yZWREcmFmdENodW5rEgoKAmlkGAEgASgJEhIKCnNhbmRib3hfaWQYAiABKAkSFQoNZHJhZnRfdmVyc2lvbhgDIAEoAxIOCgZzdGF0dXMYBCABKAkSEQoJcnVsZV9uYW1lGAUgASgJEhUKDXByb3Bvc2VkX3J1bGUYBiABKAwSEQoJcmF0aW9uYWxlGAcgASgJEhYKDnNlY3VyaXR5X25vdGVzGAggASgJEhIKCmNvbmZpZGVuY2UYCSABKAESFQoNY3JlYXRlZF9hdF9tcxgKIAEoAxIaCg1kZWNpZGVkX2F0X21zGAsgASgDSACIAQESDAoEaG9zdBgMIAEoCRIMCgRwb3J0GA0gASgFEg4KBmJpbmFyeRgOIAEoCRIRCgloaXRfY291bnQYDyABKAUSFQoNZmlyc3Rfc2Vlbl9tcxgQIAEoAxIUCgxsYXN0X3NlZW5fbXMYESABKAMSGQoRdmFsaWRhdGlvbl9yZXN1bHQYEiABKAkSGAoQcmVqZWN0aW9uX3JlYXNvbhgTIAEoCUIQCg5fZGVjaWRlZF9hdF9tcyKXAQoWQ3JlYXRlV29ya3NwYWNlUmVxdWVzdBIMCgRuYW1lGAEgASgJEkAKBmxhYmVscxgCIAMoCzIwLm9wZW5zaGVsbC52MS5DcmVhdGVXb3Jrc3BhY2VSZXF1ZXN0LkxhYmVsc0VudHJ5Gi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiTwoXQ3JlYXRlV29ya3NwYWNlUmVzcG9uc2USNAoJd29ya3NwYWNlGAEgASgLMiEub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2UiIwoTR2V0V29ya3NwYWNlUmVxdWVzdBIMCgRuYW1lGAEgASgJIkwKFEdldFdvcmtzcGFjZVJlc3BvbnNlEjQKCXdvcmtzcGFjZRgBIAEoCzIhLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlIk4KFUxpc3RXb3Jrc3BhY2VzUmVxdWVzdBINCgVsaW1pdBgBIAEoDRIOCgZvZmZzZXQYAiABKA0SFgoObGFiZWxfc2VsZWN0b3IYAyABKAkiTwoWTGlzdFdvcmtzcGFjZXNSZXNwb25zZRI1Cgp3b3Jrc3BhY2VzGAEgAygLMiEub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2UiJgoWRGVsZXRlV29ya3NwYWNlUmVxdWVzdBIMCgRuYW1lGAEgASgJIioKF0RlbGV0ZVdvcmtzcGFjZVJlc3BvbnNlEg8KB2RlbGV0ZWQYASABKAgijQEKD1dvcmtzcGFjZU1lbWJlchI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRIZChFwcmluY2lwYWxfc3ViamVjdBgCIAEoCRIpCgRyb2xlGAMgASgOMhsub3BlbnNoZWxsLnYxLldvcmtzcGFjZVJvbGUidAoZQWRkV29ya3NwYWNlTWVtYmVyUmVxdWVzdBIRCgl3b3Jrc3BhY2UYASABKAkSGQoRcHJpbmNpcGFsX3N1YmplY3QYAiABKAkSKQoEcm9sZRgDIAEoDjIbLm9wZW5zaGVsbC52MS5Xb3Jrc3BhY2VSb2xlIksKGkFkZFdvcmtzcGFjZU1lbWJlclJlc3BvbnNlEi0KBm1lbWJlchgBIAEoCzIdLm9wZW5zaGVsbC52MS5Xb3Jrc3BhY2VNZW1iZXIiTAocUmVtb3ZlV29ya3NwYWNlTWVtYmVyUmVxdWVzdBIRCgl3b3Jrc3BhY2UYASABKAkSGQoRcHJpbmNpcGFsX3N1YmplY3QYAiABKAkiMAodUmVtb3ZlV29ya3NwYWNlTWVtYmVyUmVzcG9uc2USDwoHcmVtb3ZlZBgBIAEoCCJPChtMaXN0V29ya3NwYWNlTWVtYmVyc1JlcXVlc3QSEQoJd29ya3NwYWNlGAEgASgJEg0KBWxpbWl0GAIgASgNEg4KBm9mZnNldBgDIAEoDSJOChxMaXN0V29ya3NwYWNlTWVtYmVyc1Jlc3BvbnNlEi4KB21lbWJlcnMYASADKAsyHS5vcGVuc2hlbGwudjEuV29ya3NwYWNlTWVtYmVyIl4KGkV4dGVuc2lvblNlcnZpY2VDcmVkZW50aWFsEhQKDHNlcnZpY2VfbmFtZRgBIAEoCRITCgV0b2tlbhgCIAEoCUIEiLUYARIVCg1leHBpcmVzX2F0X21zGAMgASgDKokCCgxTYW5kYm94UGhhc2USHQoZU0FOREJPWF9QSEFTRV9VTlNQRUNJRklFRBAAEh4KGlNBTkRCT1hfUEhBU0VfUFJPVklTSU9OSU5HEAESFwoTU0FOREJPWF9QSEFTRV9SRUFEWRACEhcKE1NBTkRCT1hfUEhBU0VfRVJST1IQAxIaChZTQU5EQk9YX1BIQVNFX0RFTEVUSU5HEAQSGQoVU0FOREJPWF9QSEFTRV9VTktOT1dOEAUSGgoWU0FOREJPWF9QSEFTRV9TVE9QUElORxAGEhkKFVNBTkRCT1hfUEhBU0VfU1RPUFBFRBAHEhoKFlNBTkRCT1hfUEhBU0VfU1RBUlRJTkcQCCrDAwohUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5EjQKMFBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9VTlNQRUNJRklFRBAAEi8KK1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9TVEFUSUMQARIxCi1QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfRVhURVJOQUwQAhI9CjlQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfT0FVVEgyX1JFRlJFU0hfVE9LRU4QAxJCCj5QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfT0FVVEgyX0NMSUVOVF9DUkVERU5USUFMUxAEEkMKP1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9HT09HTEVfU0VSVklDRV9BQ0NPVU5UX0pXVBAFEjwKOFBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9BV1NfU1RTX0FTU1VNRV9ST0xFEAYq2wIKF1Byb3ZpZGVyUHJvZmlsZUNhdGVnb3J5EikKJVBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfVU5TUEVDSUZJRUQQABIjCh9QUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX09USEVSEAESJwojUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9JTkZFUkVOQ0UQAhIjCh9QUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX0FHRU5UEAMSLAooUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9TT1VSQ0VfQ09OVFJPTBAEEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfTUVTU0FHSU5HEAUSIgoeUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9EQVRBEAYSJwojUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9LTk9XTEVER0UQByqaAQoMUG9saWN5U3RhdHVzEh0KGVBPTElDWV9TVEFUVVNfVU5TUEVDSUZJRUQQABIZChVQT0xJQ1lfU1RBVFVTX1BFTkRJTkcQARIYChRQT0xJQ1lfU1RBVFVTX0xPQURFRBACEhgKFFBPTElDWV9TVEFUVVNfRkFJTEVEEAMSHAoYUE9MSUNZX1NUQVRVU19TVVBFUlNFREVEEAQqhgEKDVNlcnZpY2VTdGF0dXMSHgoaU0VSVklDRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIaChZTRVJWSUNFX1NUQVRVU19IRUFMVEhZEAESGwoXU0VSVklDRV9TVEFUVVNfREVHUkFERUQQAhIcChhTRVJWSUNFX1NUQVRVU19VTkhFQUxUSFkQAypiCg1Xb3Jrc3BhY2VSb2xlEh4KGldPUktTUEFDRV9ST0xFX1VOU1BFQ0lGSUVEEAASFwoTV09SS1NQQUNFX1JPTEVfVVNFUhABEhgKFFdPUktTUEFDRV9ST0xFX0FETUlOEAIylUUKCU9wZW5TaGVsbBJaCgZIZWFsdGgSGy5vcGVuc2hlbGwudjEuSGVhbHRoUmVxdWVzdBocLm9wZW5zaGVsbC52MS5IZWFsdGhSZXNwb25zZSIVgrUYEQoPdW5hdXRoZW50aWNhdGVkEmkKDkdldEN1cnJlbnRVc2VyEiMub3BlbnNoZWxsLnYxLkdldEN1cnJlbnRVc2VyUmVxdWVzdBokLm9wZW5zaGVsbC52MS5HZXRDdXJyZW50VXNlclJlc3BvbnNlIgyCtRgICgZiZWFyZXIShgEKDkdldEdhdGV3YXlJbmZvEiMub3BlbnNoZWxsLnYxLkdldEdhdGV3YXlJbmZvUmVxdWVzdBokLm9wZW5zaGVsbC52MS5HZXRHYXRld2F5SW5mb1Jlc3BvbnNlIimCtRglCgZiZWFyZXIaDnBsYXRmb3JtX2FkbWluIgtjb25maWc6cmVhZBJ1Cg1DcmVhdGVTYW5kYm94EiIub3BlbnNoZWxsLnYxLkNyZWF0ZVNhbmRib3hSZXF1ZXN0Gh0ub3BlbnNoZWxsLnYxLlNhbmRib3hSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEm4KCkdldFNhbmRib3gSHy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ6Cg1MaXN0U2FuZGJveGVzEiIub3BlbnNoZWxsLnYxLkxpc3RTYW5kYm94ZXNSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkxpc3RTYW5kYm94ZXNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSjwEKFExpc3RTYW5kYm94UHJvdmlkZXJzEikub3BlbnNoZWxsLnYxLkxpc3RTYW5kYm94UHJvdmlkZXJzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFByb3ZpZGVyc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBKTAQoVQXR0YWNoU2FuZGJveFByb3ZpZGVyEioub3BlbnNoZWxsLnYxLkF0dGFjaFNhbmRib3hQcm92aWRlclJlcXVlc3QaKy5vcGVuc2hlbGwudjEuQXR0YWNoU2FuZGJveFByb3ZpZGVyUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRKTAQoVRGV0YWNoU2FuZGJveFByb3ZpZGVyEioub3BlbnNoZWxsLnYxLkRldGFjaFNhbmRib3hQcm92aWRlclJlcXVlc3QaKy5vcGVuc2hlbGwudjEuRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJ7Cg1EZWxldGVTYW5kYm94EiIub3BlbnNoZWxsLnYxLkRlbGV0ZVNhbmRib3hSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkRlbGV0ZVNhbmRib3hSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnEKC1N0b3BTYW5kYm94EiAub3BlbnNoZWxsLnYxLlN0b3BTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJzCgxTdGFydFNhbmRib3gSIS5vcGVuc2hlbGwudjEuU3RhcnRTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRKEAQoQQ3JlYXRlU3NoU2Vzc2lvbhIlLm9wZW5zaGVsbC52MS5DcmVhdGVTc2hTZXNzaW9uUmVxdWVzdBomLm9wZW5zaGVsbC52MS5DcmVhdGVTc2hTZXNzaW9uUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJ9Cg1FeHBvc2VTZXJ2aWNlEiIub3BlbnNoZWxsLnYxLkV4cG9zZVNlcnZpY2VSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSdgoKR2V0U2VydmljZRIfLm9wZW5zaGVsbC52MS5HZXRTZXJ2aWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnRSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSdwoMTGlzdFNlcnZpY2VzEiEub3BlbnNoZWxsLnYxLkxpc3RTZXJ2aWNlc1JlcXVlc3QaIi5vcGVuc2hlbGwudjEuTGlzdFNlcnZpY2VzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEnsKDURlbGV0ZVNlcnZpY2USIi5vcGVuc2hlbGwudjEuRGVsZXRlU2VydmljZVJlcXVlc3QaIy5vcGVuc2hlbGwudjEuRGVsZXRlU2VydmljZVJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUShAEKEFJldm9rZVNzaFNlc3Npb24SJS5vcGVuc2hlbGwudjEuUmV2b2tlU3NoU2Vzc2lvblJlcXVlc3QaJi5vcGVuc2hlbGwudjEuUmV2b2tlU3NoU2Vzc2lvblJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSdAoLRXhlY1NhbmRib3gSIC5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94RXZlbnQiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZTABEnEKCkZvcndhcmRUY3ASHS5vcGVuc2hlbGwudjEuVGNwRm9yd2FyZEZyYW1lGh0ub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRGcmFtZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlKAEwARJ/ChZFeGVjU2FuZGJveEludGVyYWN0aXZlEh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94SW5wdXQaHi5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hFdmVudCIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlKAEwARJ6Cg5DcmVhdGVQcm92aWRlchIjLm9wZW5zaGVsbC52MS5DcmVhdGVQcm92aWRlclJlcXVlc3QaHi5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUScgoLR2V0UHJvdmlkZXISIC5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBJ7Cg1MaXN0UHJvdmlkZXJzEiIub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlcnNSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlcnNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEpABChRMaXN0UHJvdmlkZXJQcm9maWxlcxIpLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEocBChJHZXRQcm92aWRlclByb2ZpbGUSJy5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJQcm9maWxlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEpgBChZJbXBvcnRQcm92aWRlclByb2ZpbGVzEisub3BlbnNoZWxsLnYxLkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSmAEKFlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXMSKy5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJQcm9maWxlc1JlcXVlc3QaLC5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKQAQoUTGludFByb3ZpZGVyUHJvZmlsZXMSKS5vcGVuc2hlbGwudjEuTGludFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpbnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBJ6Cg5VcGRhdGVQcm92aWRlchIjLm9wZW5zaGVsbC52MS5VcGRhdGVQcm92aWRlclJlcXVlc3QaHi5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSnAEKGEdldFByb3ZpZGVyUmVmcmVzaFN0YXR1cxItLm9wZW5zaGVsbC52MS5HZXRQcm92aWRlclJlZnJlc2hTdGF0dXNSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSngEKGENvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaBItLm9wZW5zaGVsbC52MS5Db25maWd1cmVQcm92aWRlclJlZnJlc2hSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLkNvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKeAQoYUm90YXRlUHJvdmlkZXJDcmVkZW50aWFsEi0ub3BlbnNoZWxsLnYxLlJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlcXVlc3QaLi5vcGVuc2hlbGwudjEuUm90YXRlUHJvdmlkZXJDcmVkZW50aWFsUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpUBChVEZWxldGVQcm92aWRlclJlZnJlc2gSKi5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBorLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlZnJlc2hSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSgAEKDkRlbGV0ZVByb3ZpZGVyEiMub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUmVxdWVzdBokLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKVAQoVRGVsZXRlUHJvdmlkZXJQcm9maWxlEioub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlcXVlc3QaKy5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJQcm9maWxlUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpABChBHZXRTYW5kYm94Q29uZmlnEi0ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0U2FuZGJveENvbmZpZ1JlcXVlc3QaLi5vcGVuc2hlbGwuc2FuZGJveC52MS5HZXRTYW5kYm94Q29uZmlnUmVzcG9uc2UiHYK1GBkKBGR1YWwSBHVzZXIiC2NvbmZpZzpyZWFkEowBChBHZXRHYXRld2F5Q29uZmlnEi0ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0R2F0ZXdheUNvbmZpZ1JlcXVlc3QaLi5vcGVuc2hlbGwuc2FuZGJveC52MS5HZXRHYXRld2F5Q29uZmlnUmVzcG9uc2UiGYK1GBUKBmJlYXJlciILY29uZmlnOnJlYWQSdgoMVXBkYXRlQ29uZmlnEiEub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1JlcXVlc3QaIi5vcGVuc2hlbGwudjEuVXBkYXRlQ29uZmlnUmVzcG9uc2UiH4K1GBsKBGR1YWwSBWFkbWluIgxjb25maWc6d3JpdGUSlQEKFkdldFNhbmRib3hQb2xpY3lTdGF0dXMSKy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFBvbGljeVN0YXR1c1JlcXVlc3QaLC5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFBvbGljeVN0YXR1c1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBKMAQoTTGlzdFNhbmRib3hQb2xpY2llcxIoLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFBvbGljaWVzUmVxdWVzdBopLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFBvbGljaWVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEnYKElJlcG9ydFBvbGljeVN0YXR1cxInLm9wZW5zaGVsbC52MS5SZXBvcnRQb2xpY3lTdGF0dXNSZXF1ZXN0Gigub3BlbnNoZWxsLnYxLlJlcG9ydFBvbGljeVN0YXR1c1Jlc3BvbnNlIg2CtRgJCgdzYW5kYm94EpcBCh1HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudBIyLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlcXVlc3QaMy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZSINgrUYCQoHc2FuZGJveBJ9Cg5HZXRTYW5kYm94TG9ncxIjLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94TG9nc1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0U2FuZGJveExvZ3NSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSbwoPUHVzaFNhbmRib3hMb2dzEiQub3BlbnNoZWxsLnYxLlB1c2hTYW5kYm94TG9nc1JlcXVlc3QaJS5vcGVuc2hlbGwudjEuUHVzaFNhbmRib3hMb2dzUmVzcG9uc2UiDYK1GAkKB3NhbmRib3goARJlChFDb25uZWN0U3VwZXJ2aXNvchIfLm9wZW5zaGVsbC52MS5TdXBlcnZpc29yTWVzc2FnZRocLm9wZW5zaGVsbC52MS5HYXRld2F5TWVzc2FnZSINgrUYCQoHc2FuZGJveCgBMAESfwoVUmVwb3J0TWFpblByb2Nlc3NFeGl0Eioub3BlbnNoZWxsLnYxLlJlcG9ydE1haW5Qcm9jZXNzRXhpdFJlcXVlc3QaKy5vcGVuc2hlbGwudjEuUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSVAoLUmVsYXlTdHJlYW0SGC5vcGVuc2hlbGwudjEuUmVsYXlGcmFtZRoYLm9wZW5zaGVsbC52MS5SZWxheUZyYW1lIg2CtRgJCgdzYW5kYm94KAEwARJ3CgxXYXRjaFNhbmRib3gSIS5vcGVuc2hlbGwudjEuV2F0Y2hTYW5kYm94UmVxdWVzdBogLm9wZW5zaGVsbC52MS5TYW5kYm94U3RyZWFtRXZlbnQiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkMAESfAoUU3VibWl0UG9saWN5QW5hbHlzaXMSKS5vcGVuc2hlbGwudjEuU3VibWl0UG9saWN5QW5hbHlzaXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLlN1Ym1pdFBvbGljeUFuYWx5c2lzUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSegoOR2V0RHJhZnRQb2xpY3kSIy5vcGVuc2hlbGwudjEuR2V0RHJhZnRQb2xpY3lSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkdldERyYWZ0UG9saWN5UmVzcG9uc2UiHYK1GBkKBGR1YWwSBHVzZXIiC2NvbmZpZzpyZWFkEocBChFBcHByb3ZlRHJhZnRDaHVuaxImLm9wZW5zaGVsbC52MS5BcHByb3ZlRHJhZnRDaHVua1JlcXVlc3QaJy5vcGVuc2hlbGwudjEuQXBwcm92ZURyYWZ0Q2h1bmtSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEoQBChBSZWplY3REcmFmdENodW5rEiUub3BlbnNoZWxsLnYxLlJlamVjdERyYWZ0Q2h1bmtSZXF1ZXN0GiYub3BlbnNoZWxsLnYxLlJlamVjdERyYWZ0Q2h1bmtSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEpMBChVBcHByb3ZlQWxsRHJhZnRDaHVua3MSKi5vcGVuc2hlbGwudjEuQXBwcm92ZUFsbERyYWZ0Q2h1bmtzUmVxdWVzdBorLm9wZW5zaGVsbC52MS5BcHByb3ZlQWxsRHJhZnRDaHVua3NSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEn4KDkVkaXREcmFmdENodW5rEiMub3BlbnNoZWxsLnYxLkVkaXREcmFmdENodW5rUmVxdWVzdBokLm9wZW5zaGVsbC52MS5FZGl0RHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSfgoOVW5kb0RyYWZ0Q2h1bmsSIy5vcGVuc2hlbGwudjEuVW5kb0RyYWZ0Q2h1bmtSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLlVuZG9EcmFmdENodW5rUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRKEAQoQQ2xlYXJEcmFmdENodW5rcxIlLm9wZW5zaGVsbC52MS5DbGVhckRyYWZ0Q2h1bmtzUmVxdWVzdBomLm9wZW5zaGVsbC52MS5DbGVhckRyYWZ0Q2h1bmtzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRJ/Cg9HZXREcmFmdEhpc3RvcnkSJC5vcGVuc2hlbGwudjEuR2V0RHJhZnRIaXN0b3J5UmVxdWVzdBolLm9wZW5zaGVsbC52MS5HZXREcmFmdEhpc3RvcnlSZXNwb25zZSIfgrUYGwoGYmVhcmVyEgR1c2VyIgtjb25maWc6cmVhZBJzChFJc3N1ZVNhbmRib3hUb2tlbhImLm9wZW5zaGVsbC52MS5Jc3N1ZVNhbmRib3hUb2tlblJlcXVlc3QaJy5vcGVuc2hlbGwudjEuSXNzdWVTYW5kYm94VG9rZW5SZXNwb25zZSINgrUYCQoHc2FuZGJveBJ5ChNSZWZyZXNoU2FuZGJveFRva2VuEigub3BlbnNoZWxsLnYxLlJlZnJlc2hTYW5kYm94VG9rZW5SZXF1ZXN0Gikub3BlbnNoZWxsLnYxLlJlZnJlc2hTYW5kYm94VG9rZW5SZXNwb25zZSINgrUYCQoHc2FuZGJveBKNAQoPQ3JlYXRlV29ya3NwYWNlEiQub3BlbnNoZWxsLnYxLkNyZWF0ZVdvcmtzcGFjZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuQ3JlYXRlV29ya3NwYWNlUmVzcG9uc2UiLYK1GCkKBmJlYXJlchoOcGxhdGZvcm1fYWRtaW4iD3dvcmtzcGFjZTp3cml0ZRJ5CgxHZXRXb3Jrc3BhY2USIS5vcGVuc2hlbGwudjEuR2V0V29ya3NwYWNlUmVxdWVzdBoiLm9wZW5zaGVsbC52MS5HZXRXb3Jrc3BhY2VSZXNwb25zZSIigrUYHgoGYmVhcmVyEgR1c2VyIg53b3Jrc3BhY2U6cmVhZBJ/Cg5MaXN0V29ya3NwYWNlcxIjLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlc1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuTGlzdFdvcmtzcGFjZXNSZXNwb25zZSIigrUYHgoGYmVhcmVyEgR1c2VyIg53b3Jrc3BhY2U6cmVhZBKNAQoPRGVsZXRlV29ya3NwYWNlEiQub3BlbnNoZWxsLnYxLkRlbGV0ZVdvcmtzcGFjZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuRGVsZXRlV29ya3NwYWNlUmVzcG9uc2UiLYK1GCkKBmJlYXJlchoOcGxhdGZvcm1fYWRtaW4iD3dvcmtzcGFjZTp3cml0ZRKNAQoSQWRkV29ya3NwYWNlTWVtYmVyEicub3BlbnNoZWxsLnYxLkFkZFdvcmtzcGFjZU1lbWJlclJlcXVlc3QaKC5vcGVuc2hlbGwudjEuQWRkV29ya3NwYWNlTWVtYmVyUmVzcG9uc2UiJIK1GCAKBmJlYXJlchIFYWRtaW4iD3dvcmtzcGFjZTp3cml0ZRKWAQoVUmVtb3ZlV29ya3NwYWNlTWVtYmVyEioub3BlbnNoZWxsLnYxLlJlbW92ZVdvcmtzcGFjZU1lbWJlclJlcXVlc3QaKy5vcGVuc2hlbGwudjEuUmVtb3ZlV29ya3NwYWNlTWVtYmVyUmVzcG9uc2UiJIK1GCAKBmJlYXJlchIFYWRtaW4iD3dvcmtzcGFjZTp3cml0ZRKRAQoUTGlzdFdvcmtzcGFjZU1lbWJlcnMSKS5vcGVuc2hlbGwudjEuTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RXb3Jrc3BhY2VNZW1iZXJzUmVzcG9uc2UiIoK1GB4KBmJlYXJlchIEdXNlciIOd29ya3NwYWNlOnJlYWRiBnByb3RvMw", [file_datamodel, file_google_protobuf_struct, file_options, file_sandbox]);
11
+ export const file_openshell = /*@__PURE__*/ fileDesc("Cg9vcGVuc2hlbGwucHJvdG8SDG9wZW5zaGVsbC52MSIaChhJc3N1ZVNhbmRib3hUb2tlblJlcXVlc3QiRwoZSXNzdWVTYW5kYm94VG9rZW5SZXNwb25zZRITCgV0b2tlbhgBIAEoCUIEiLUYARIVCg1leHBpcmVzX2F0X21zGAIgASgDIj0KGlJlZnJlc2hTYW5kYm94VG9rZW5SZXF1ZXN0Eh8KF2V4dGVuc2lvbl9zZXJ2aWNlX25hbWVzGAEgAygJIpIBChtSZWZyZXNoU2FuZGJveFRva2VuUmVzcG9uc2USEwoFdG9rZW4YASABKAlCBIi1GAESFQoNZXhwaXJlc19hdF9tcxgCIAEoAxJHChVleHRlbnNpb25fY3JlZGVudGlhbHMYAyADKAsyKC5vcGVuc2hlbGwudjEuRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwiDwoNSGVhbHRoUmVxdWVzdCJOCg5IZWFsdGhSZXNwb25zZRIrCgZzdGF0dXMYASABKA4yGy5vcGVuc2hlbGwudjEuU2VydmljZVN0YXR1cxIPCgd2ZXJzaW9uGAIgASgJIhcKFUdldEN1cnJlbnRVc2VyUmVxdWVzdCJ5ChZHZXRDdXJyZW50VXNlclJlc3BvbnNlEg8KB3N1YmplY3QYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg0KBXJvbGVzGAMgAygJEg4KBnNjb3BlcxgEIAMoCRIZChFpZGVudGl0eV9wcm92aWRlchgFIAEoCSIXChVHZXRHYXRld2F5SW5mb1JlcXVlc3QimAEKFkdldEdhdGV3YXlJbmZvUmVzcG9uc2USKwoGc3RhdHVzGAEgASgOMhsub3BlbnNoZWxsLnYxLlNlcnZpY2VTdGF0dXMSFwoPZ2F0ZXdheV92ZXJzaW9uGAIgASgJEjgKD2NvbXB1dGVfZHJpdmVycxgDIAMoCzIfLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVySW5mbyJgChFDb21wdXRlRHJpdmVySW5mbxIMCgRuYW1lGAEgASgJEj0KDGNhcGFiaWxpdGllcxgCIAEoCzInLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzIkgKGUNvbXB1dGVEcml2ZXJDYXBhYmlsaXRpZXMSEwoLZHJpdmVyX25hbWUYASABKAkSFgoOZHJpdmVyX3ZlcnNpb24YAiABKAkiwAEKB1NhbmRib3gSNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESJwoEc3BlYxgCIAEoCzIZLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYxIrCgZzdGF0dXMYAyABKAsyGy5vcGVuc2hlbGwudjEuU2FuZGJveFN0YXR1c0oECAQQBUoECAUQBlIFcGhhc2VSFmN1cnJlbnRfcG9saWN5X3ZlcnNpb24inwMKC1NhbmRib3hTcGVjEhEKCWxvZ19sZXZlbBgBIAEoCRI/CgtlbnZpcm9ubWVudBgFIAMoCzIqLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYy5FbnZpcm9ubWVudEVudHJ5Ei8KCHRlbXBsYXRlGAYgASgLMh0ub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZRIzCgZwb2xpY3kYByABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EhEKCXByb3ZpZGVycxgIIAMoCRJBChVyZXNvdXJjZV9yZXF1aXJlbWVudHMYCSABKAsyIi5vcGVuc2hlbGwudjEuUmVzb3VyY2VSZXF1aXJlbWVudHMSDwoHY29tbWFuZBgMIAMoCRILCgN0dHkYDSABKAgaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIChALSgQICxAMUgpncHVfZGV2aWNlUhZwcm9wb3NhbF9hcHByb3ZhbF9tb2RlIkoKFFJlc291cmNlUmVxdWlyZW1lbnRzEjIKA2dwdRgBIAEoCzIlLm9wZW5zaGVsbC52MS5HcHVSZXNvdXJjZVJlcXVpcmVtZW50cyI3ChdHcHVSZXNvdXJjZVJlcXVpcmVtZW50cxISCgVjb3VudBgBIAEoDUgAiAEBQggKBl9jb3VudCLaBAoPU2FuZGJveFRlbXBsYXRlEg0KBWltYWdlGAEgASgJEhoKEnJ1bnRpbWVfY2xhc3NfbmFtZRgCIAEoCRIUCgxhZ2VudF9zb2NrZXQYAyABKAkSOQoGbGFiZWxzGAQgAygLMikub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZS5MYWJlbHNFbnRyeRJDCgthbm5vdGF0aW9ucxgFIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuQW5ub3RhdGlvbnNFbnRyeRJDCgtlbnZpcm9ubWVudBgGIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuRW52aXJvbm1lbnRFbnRyeRIqCglyZXNvdXJjZXMYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhwKD3VzZXJfbmFtZXNwYWNlcxgKIAEoCEgAiAEBEi4KDWRyaXZlcl9jb25maWcYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Gi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUISChBfdXNlcl9uYW1lc3BhY2VzSgQICRAKUhZ2b2x1bWVfY2xhaW1fdGVtcGxhdGVzIqUCCg1TYW5kYm94U3RhdHVzEhQKDHNhbmRib3hfbmFtZRgBIAEoCRIRCglhZ2VudF9wb2QYAiABKAkSEAoIYWdlbnRfZmQYAyABKAkSEgoKc2FuZGJveF9mZBgEIAEoCRIyCgpjb25kaXRpb25zGAUgAygLMh4ub3BlbnNoZWxsLnYxLlNhbmRib3hDb25kaXRpb24SKQoFcGhhc2UYBiABKA4yGi5vcGVuc2hlbGwudjEuU2FuZGJveFBoYXNlEh4KFmN1cnJlbnRfcG9saWN5X3ZlcnNpb24YByABKA0SIAoYbWFpbl9wcm9jZXNzX2luc3RhbmNlX2lkGAggASgJEhYKCWV4aXRfY29kZRgJIAEoBUgAiAEBQgwKCl9leGl0X2NvZGUibwoQU2FuZGJveENvbmRpdGlvbhIMCgR0eXBlGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIOCgZyZWFzb24YAyABKAkSDwoHbWVzc2FnZRgEIAEoCRIcChRsYXN0X3RyYW5zaXRpb25fdGltZRgFIAEoCSLSAQoNUGxhdGZvcm1FdmVudBIUCgx0aW1lc3RhbXBfbXMYASABKAMSDgoGc291cmNlGAIgASgJEgwKBHR5cGUYAyABKAkSDgoGcmVhc29uGAQgASgJEg8KB21lc3NhZ2UYBSABKAkSOwoIbWV0YWRhdGEYBiADKAsyKS5vcGVuc2hlbGwudjEuUGxhdGZvcm1FdmVudC5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASLNAgoUQ3JlYXRlU2FuZGJveFJlcXVlc3QSJwoEc3BlYxgBIAEoCzIZLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYxIMCgRuYW1lGAIgASgJEj4KBmxhYmVscxgDIAMoCzIuLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdC5MYWJlbHNFbnRyeRJICgthbm5vdGF0aW9ucxgEIAMoCzIzLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdC5Bbm5vdGF0aW9uc0VudHJ5EhEKCXdvcmtzcGFjZRgFIAEoCRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0ChFHZXRTYW5kYm94UmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJ4ChRMaXN0U2FuZGJveGVzUmVxdWVzdBINCgVsaW1pdBgBIAEoDRIOCgZvZmZzZXQYAiABKA0SFgoObGFiZWxfc2VsZWN0b3IYAyABKAkSEQoJd29ya3NwYWNlGAQgASgJEhYKDmFsbF93b3Jrc3BhY2VzGAUgASgIIkYKG0xpc3RTYW5kYm94UHJvdmlkZXJzUmVxdWVzdBIUCgxzYW5kYm94X25hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIoEBChxBdHRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0EhQKDHNhbmRib3hfbmFtZRgBIAEoCRIVCg1wcm92aWRlcl9uYW1lGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEQoJd29ya3NwYWNlGAQgASgJIoEBChxEZXRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0EhQKDHNhbmRib3hfbmFtZRgBIAEoCRIVCg1wcm92aWRlcl9uYW1lGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEQoJd29ya3NwYWNlGAQgASgJIjcKFERlbGV0ZVNhbmRib3hSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjUKElN0b3BTYW5kYm94UmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSI2ChNTdGFydFNhbmRib3hSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjkKD1NhbmRib3hSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3giQQoVTGlzdFNhbmRib3hlc1Jlc3BvbnNlEigKCXNhbmRib3hlcxgBIAMoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94IlMKHExpc3RTYW5kYm94UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJZCh1BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSEAoIYXR0YWNoZWQYAiABKAgiWQodRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVzcG9uc2USJgoHc2FuZGJveBgBIAEoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EhAKCGRldGFjaGVkGAIgASgIIigKFURlbGV0ZVNhbmRib3hSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIi0KF0NyZWF0ZVNzaFNlc3Npb25SZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkivAEKGENyZWF0ZVNzaFNlc3Npb25SZXNwb25zZRISCgpzYW5kYm94X2lkGAEgASgJEhMKBXRva2VuGAIgASgJQgSItRgBEhQKDGdhdGV3YXlfaG9zdBgDIAEoCRIUCgxnYXRld2F5X3BvcnQYBCABKA0SFgoOZ2F0ZXdheV9zY2hlbWUYBSABKAkSHAoUaG9zdF9rZXlfZmluZ2VycHJpbnQYByABKAkSFQoNZXhwaXJlc19hdF9tcxgIIAEoAyJwChRFeHBvc2VTZXJ2aWNlUmVxdWVzdBIPCgdzYW5kYm94GAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEwoLdGFyZ2V0X3BvcnQYAyABKA0SDgoGZG9tYWluGAQgASgIEhEKCXdvcmtzcGFjZRgFIAEoCSJIChFHZXRTZXJ2aWNlUmVxdWVzdBIPCgdzYW5kYm94GAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJInAKE0xpc3RTZXJ2aWNlc1JlcXVlc3QSDwoHc2FuZGJveBgBIAEoCRINCgVsaW1pdBgCIAEoDRIOCgZvZmZzZXQYAyABKA0SEQoJd29ya3NwYWNlGAQgASgJEhYKDmFsbF93b3Jrc3BhY2VzGAUgASgIIk8KFExpc3RTZXJ2aWNlc1Jlc3BvbnNlEjcKCHNlcnZpY2VzGAEgAygLMiUub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludFJlc3BvbnNlIksKFERlbGV0ZVNlcnZpY2VSZXF1ZXN0Eg8KB3NhbmRib3gYASABKAkSDwoHc2VydmljZRgCIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkiKAoVRGVsZXRlU2VydmljZVJlc3BvbnNlEg8KB2RlbGV0ZWQYASABKAgirAEKD1NlcnZpY2VFbmRwb2ludBI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRISCgpzYW5kYm94X2lkGAIgASgJEhQKDHNhbmRib3hfbmFtZRgDIAEoCRIUCgxzZXJ2aWNlX25hbWUYBCABKAkSEwoLdGFyZ2V0X3BvcnQYBSABKA0SDgoGZG9tYWluGAYgASgIIlcKF1NlcnZpY2VFbmRwb2ludFJlc3BvbnNlEi8KCGVuZHBvaW50GAEgASgLMh0ub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludBILCgN1cmwYAiABKAkiLgoXUmV2b2tlU3NoU2Vzc2lvblJlcXVlc3QSEwoFdG9rZW4YASABKAlCBIi1GAEiKwoYUmV2b2tlU3NoU2Vzc2lvblJlc3BvbnNlEg8KB3Jldm9rZWQYASABKAgilwIKEkV4ZWNTYW5kYm94UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEg8KB2NvbW1hbmQYAiADKAkSDwoHd29ya2RpchgDIAEoCRJGCgtlbnZpcm9ubWVudBgEIAMoCzIxLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3QuRW52aXJvbm1lbnRFbnRyeRIXCg90aW1lb3V0X3NlY29uZHMYBSABKA0SDQoFc3RkaW4YBiABKAwSCwoDdHR5GAcgASgIEgwKBGNvbHMYCCABKA0SDAoEcm93cxgJIAEoDRoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiIQoRRXhlY1NhbmRib3hTdGRvdXQSDAoEZGF0YRgBIAEoDCIhChFFeGVjU2FuZGJveFN0ZGVychIMCgRkYXRhGAEgASgMIiQKD0V4ZWNTYW5kYm94RXhpdBIRCglleGl0X2NvZGUYASABKAUisgEKEEV4ZWNTYW5kYm94RXZlbnQSMQoGc3Rkb3V0GAEgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3Rkb3V0SAASMQoGc3RkZXJyGAIgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3RkZXJySAASLQoEZXhpdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV4aXRIAEIJCgdwYXlsb2FkIr8BCg5UY3BGb3J3YXJkSW5pdBISCgpzYW5kYm94X2lkGAEgASgJEhIKCnNlcnZpY2VfaWQYBCABKAkSKwoDc3NoGAUgASgLMhwub3BlbnNoZWxsLnYxLlNzaFJlbGF5VGFyZ2V0SAASKwoDdGNwGAYgASgLMhwub3BlbnNoZWxsLnYxLlRjcFJlbGF5VGFyZ2V0SAASIQoTYXV0aG9yaXphdGlvbl90b2tlbhgHIAEoCUIEiLUYAUIICgZ0YXJnZXQiWgoPVGNwRm9yd2FyZEZyYW1lEiwKBGluaXQYASABKAsyHC5vcGVuc2hlbGwudjEuVGNwRm9yd2FyZEluaXRIABIOCgRkYXRhGAIgASgMSABCCQoHcGF5bG9hZCKaAQoQRXhlY1NhbmRib3hJbnB1dBIxCgVzdGFydBgBIAEoCzIgLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3RIABIPCgVzdGRpbhgCIAEoDEgAEjcKBnJlc2l6ZRgDIAEoCzIlLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFdpbmRvd1Jlc2l6ZUgAQgkKB3BheWxvYWQiNQoXRXhlY1NhbmRib3hXaW5kb3dSZXNpemUSDAoEY29scxgBIAEoDRIMCgRyb3dzGAIgASgNIpMBCgpTc2hTZXNzaW9uEjQKCG1ldGFkYXRhGAEgASgLMiIub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5PYmplY3RNZXRhEhIKCnNhbmRib3hfaWQYAiABKAkSEwoFdG9rZW4YAyABKAlCBIi1GAESFQoNZXhwaXJlc19hdF9tcxgEIAEoAxIPCgdyZXZva2VkGAUgASgIIuwBChNXYXRjaFNhbmRib3hSZXF1ZXN0EgoKAmlkGAEgASgJEhUKDWZvbGxvd19zdGF0dXMYAiABKAgSEwoLZm9sbG93X2xvZ3MYAyABKAgSFQoNZm9sbG93X2V2ZW50cxgEIAEoCBIWCg5sb2dfdGFpbF9saW5lcxgFIAEoDRISCgpldmVudF90YWlsGAYgASgNEhgKEHN0b3Bfb25fdGVybWluYWwYByABKAgSFAoMbG9nX3NpbmNlX21zGAggASgDEhMKC2xvZ19zb3VyY2VzGAkgAygJEhUKDWxvZ19taW5fbGV2ZWwYCiABKAkimwIKElNhbmRib3hTdHJlYW1FdmVudBIoCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3hIABIrCgNsb2cYAiABKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmVIABIsCgVldmVudBgDIAEoCzIbLm9wZW5zaGVsbC52MS5QbGF0Zm9ybUV2ZW50SAASNQoHd2FybmluZxgEIAEoCzIiLm9wZW5zaGVsbC52MS5TYW5kYm94U3RyZWFtV2FybmluZ0gAEj4KE2RyYWZ0X3BvbGljeV91cGRhdGUYBSABKAsyHy5vcGVuc2hlbGwudjEuRHJhZnRQb2xpY3lVcGRhdGVIAEIJCgdwYXlsb2FkIuMBCg5TYW5kYm94TG9nTGluZRISCgpzYW5kYm94X2lkGAEgASgJEhQKDHRpbWVzdGFtcF9tcxgCIAEoAxINCgVsZXZlbBgDIAEoCRIOCgZ0YXJnZXQYBCABKAkSDwoHbWVzc2FnZRgFIAEoCRIOCgZzb3VyY2UYBiABKAkSOAoGZmllbGRzGAcgAygLMigub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lLkZpZWxkc0VudHJ5Gi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiJwoUU2FuZGJveFN0cmVhbVdhcm5pbmcSDwoHbWVzc2FnZRgBIAEoCSJeChVDcmVhdGVQcm92aWRlclJlcXVlc3QSMgoIcHJvdmlkZXIYASABKAsyIC5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLlByb3ZpZGVyEhEKCXdvcmtzcGFjZRgCIAEoCSI1ChJHZXRQcm92aWRlclJlcXVlc3QSDAoEbmFtZRgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkiYAoUTGlzdFByb3ZpZGVyc1JlcXVlc3QSDQoFbGltaXQYASABKA0SDgoGb2Zmc2V0GAIgASgNEhEKCXdvcmtzcGFjZRgDIAEoCRIWCg5hbGxfd29ya3NwYWNlcxgEIAEoCCL+AQoVVXBkYXRlUHJvdmlkZXJSZXF1ZXN0EjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchJgChhjcmVkZW50aWFsX2V4cGlyZXNfYXRfbXMYAiADKAsyPi5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJSZXF1ZXN0LkNyZWRlbnRpYWxFeHBpcmVzQXRNc0VudHJ5EhEKCXdvcmtzcGFjZRgDIAEoCRo8ChpDcmVkZW50aWFsRXhwaXJlc0F0TXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBIjgKFURlbGV0ZVByb3ZpZGVyUmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJGChBQcm92aWRlclJlc3BvbnNlEjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJMChVMaXN0UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJPChtMaXN0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSDQoFbGltaXQYASABKA0SDgoGb2Zmc2V0GAIgASgNEhEKCXdvcmtzcGFjZRgDIAEoCSI6ChlHZXRQcm92aWRlclByb2ZpbGVSZXF1ZXN0EgoKAmlkGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJbChlQcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEi4KB3Byb2ZpbGUYASABKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEg4KBnNvdXJjZRgCIAEoCSJxChlQcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEg4KBnNvdXJjZRgBIAEoCRISCgpwcm9maWxlX2lkGAIgASgJEg0KBWZpZWxkGAMgASgJEg8KB21lc3NhZ2UYBCABKAkSEAoIc2V2ZXJpdHkYBSABKAkiegosUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNEgwKBHBhdGgYAyABKAkSEAoIYXVkaWVuY2UYBCABKAkSDgoGc2NvcGVzGAUgAygJImoKKFByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRTdWJqZWN0VG9rZW4SDgoGc291cmNlGAEgASgJEhIKCmNyZWRlbnRpYWwYAiABKAkSGgoSc3ViamVjdF90b2tlbl90eXBlGAMgASgJIrYDChxQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50EhYKDnRva2VuX2VuZHBvaW50GAEgASgJEhAKCGF1ZGllbmNlGAIgASgJEhkKEWp3dF9zdmlkX2F1ZGllbmNlGAYgASgJEg4KBnNjb3BlcxgDIAMoCRIZChFjYWNoZV90dGxfc2Vjb25kcxgEIAEoAxJWChJhdWRpZW5jZV9vdmVycmlkZXMYBSADKAsyOi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSHQoVY2xpZW50X2Fzc2VydGlvbl90eXBlGAcgASgJEkIKCmdyYW50X3R5cGUYCCABKA4yLi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudFR5cGUSTQoNc3ViamVjdF90b2tlbhgJIAEoCzI2Lm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50U3ViamVjdFRva2VuEhwKFHJlcXVlc3RlZF90b2tlbl90eXBlGAogASgJIrICChlQcm92aWRlclByb2ZpbGVDcmVkZW50aWFsEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIZW52X3ZhcnMYAyADKAkSEAoIcmVxdWlyZWQYBCABKAgSEgoKYXV0aF9zdHlsZRgFIAEoCRITCgtoZWFkZXJfbmFtZRgGIAEoCRITCgtxdWVyeV9wYXJhbRgHIAEoCRI4CgdyZWZyZXNoGAggASgLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2gSFQoNcGF0aF90ZW1wbGF0ZRgJIAEoCRI/Cgt0b2tlbl9ncmFudBgKIAEoCzIqLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50ImgKIVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hNYXRlcmlhbBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCHJlcXVpcmVkGAMgASgIEg4KBnNlY3JldBgEIAEoCCJFCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0Eg4KBm91dHB1dBgBIAEoCRISCgpjcmVkZW50aWFsGAIgASgJIs0CChlQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoEkEKCHN0cmF0ZWd5GAEgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRIRCgl0b2tlbl91cmwYAiABKAkSDgoGc2NvcGVzGAMgAygJEh4KFnJlZnJlc2hfYmVmb3JlX3NlY29uZHMYBCABKAMSHAoUbWF4X2xpZmV0aW1lX3NlY29uZHMYBSABKAMSQQoIbWF0ZXJpYWwYBiADKAsyLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaE1hdGVyaWFsEkkKEmFkZGl0aW9uYWxfb3V0cHV0cxgHIAMoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0IpsCCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzEhUKDXByb3ZpZGVyX25hbWUYASABKAkSEwoLcHJvdmlkZXJfaWQYAiABKAkSFgoOY3JlZGVudGlhbF9rZXkYAyABKAkSQQoIc3RyYXRlZ3kYBCABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5Eg4KBnN0YXR1cxgFIAEoCRIVCg1leHBpcmVzX2F0X21zGAYgASgDEhoKEm5leHRfcmVmcmVzaF9hdF9tcxgHIAEoAxIaChJsYXN0X3JlZnJlc2hfYXRfbXMYCCABKAMSEgoKbGFzdF9lcnJvchgJIAEoCSIvChhQcm92aWRlclByb2ZpbGVEaXNjb3ZlcnkSEwoLY3JlZGVudGlhbHMYASADKAkizwgKJFN0b3JlZFByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0ZRI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRITCgtwcm92aWRlcl9pZBgCIAEoCRIVCg1wcm92aWRlcl9uYW1lGAMgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAQgASgJEkEKCHN0cmF0ZWd5GAUgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRJYCghtYXRlcmlhbBgGIAMoCzJALm9wZW5zaGVsbC52MS5TdG9yZWRQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdGUuTWF0ZXJpYWxFbnRyeUIEiLUYARIcChRzZWNyZXRfbWF0ZXJpYWxfa2V5cxgHIAMoCRIVCg1leHBpcmVzX2F0X21zGAggASgDEhoKEm5leHRfcmVmcmVzaF9hdF9tcxgJIAEoAxIaChJsYXN0X3JlZnJlc2hfYXRfbXMYCiABKAMSDgoGc3RhdHVzGAsgASgJEhIKCmxhc3RfZXJyb3IYDCABKAkSEQoJdG9rZW5fdXJsGA0gASgJEg4KBnNjb3BlcxgOIAMoCRIeChZyZWZyZXNoX2JlZm9yZV9zZWNvbmRzGA8gASgDEhwKFG1heF9saWZldGltZV9zZWNvbmRzGBAgASgDEmwKFmFkZGl0aW9uYWxfb3V0cHV0X2tleXMYESADKAsyTC5vcGVuc2hlbGwudjEuU3RvcmVkUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXRlLkFkZGl0aW9uYWxPdXRwdXRLZXlzRW50cnkSGwoTYXV0aG9yaXphdGlvbl9lcG9jaBgSIAEoCRJuChdzZWNyZXRfbWF0ZXJpYWxfaGFuZGxlcxgTIAMoCzJNLm9wZW5zaGVsbC52MS5TdG9yZWRQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdGUuU2VjcmV0TWF0ZXJpYWxIYW5kbGVzRW50cnkSTQoYcGVuZGluZ19zZWNyZXRfZGVsZXRpb25zGBQgAygLMisub3BlbnNoZWxsLnYxLlN0b3JlZFJlZnJlc2hNYXRlcmlhbERlbGV0aW9uGi8KDU1hdGVyaWFsRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo7ChlBZGRpdGlvbmFsT3V0cHV0S2V5c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaZgoaU2VjcmV0TWF0ZXJpYWxIYW5kbGVzRW50cnkSCwoDa2V5GAEgASgJEjcKBXZhbHVlGAIgASgLMigub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5DcmVkZW50aWFsSGFuZGxlOgI4ASJvCh1TdG9yZWRSZWZyZXNoTWF0ZXJpYWxEZWxldGlvbhIUCgxtYXRlcmlhbF9rZXkYASABKAkSOAoGaGFuZGxlGAIgASgLMigub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5DcmVkZW50aWFsSGFuZGxlIl4KH0dldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1JlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJImYKIEdldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1Jlc3BvbnNlEkIKC2NyZWRlbnRpYWxzGAEgAygLMi0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0dXMi8wIKH0NvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSQQoIc3RyYXRlZ3kYAyABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5ElMKCG1hdGVyaWFsGAQgAygLMjsub3BlbnNoZWxsLnYxLkNvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QuTWF0ZXJpYWxFbnRyeUIEiLUYARIcChRzZWNyZXRfbWF0ZXJpYWxfa2V5cxgFIAMoCRIaCg1leHBpcmVzX2F0X21zGAYgASgDSACIAQESEQoJd29ya3NwYWNlGAcgASgJGi8KDU1hdGVyaWFsRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIQCg5fZXhwaXJlc19hdF9tcyJhCiBDb25maWd1cmVQcm92aWRlclJlZnJlc2hSZXNwb25zZRI9CgZzdGF0dXMYASABKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyJeCh9Sb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXF1ZXN0EhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSJhCiBSb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXNwb25zZRI9CgZzdGF0dXMYASABKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyJbChxEZWxldGVQcm92aWRlclJlZnJlc2hSZXF1ZXN0EhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSIwCh1EZWxldGVQcm92aWRlclJlZnJlc2hSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIrgECg9Qcm92aWRlclByb2ZpbGUSCgoCaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEjcKCGNhdGVnb3J5GAQgASgOMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUNhdGVnb3J5EjwKC2NyZWRlbnRpYWxzGAUgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUNyZWRlbnRpYWwSOAoJZW5kcG9pbnRzGAYgAygLMiUub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0VuZHBvaW50EjUKCGJpbmFyaWVzGAcgAygLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0JpbmFyeRIZChFpbmZlcmVuY2VfY2FwYWJsZRgIIAEoCBI5CglkaXNjb3ZlcnkYCSABKAsyJi5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlzY292ZXJ5EhgKEHJlc291cmNlX3ZlcnNpb24YCiABKAQSQwoLYW5ub3RhdGlvbnMYCyADKAsyLi5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlLkFubm90YXRpb25zRW50cnkSDgoGc291cmNlGAwgASgJEg0KBXNjb3BlGA0gASgJGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJ9ChVTdG9yZWRQcm92aWRlclByb2ZpbGUSNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESLgoHcHJvZmlsZRgCIAEoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUiSQoXUHJvdmlkZXJQcm9maWxlUmVzcG9uc2USLgoHcHJvZmlsZRgBIAEoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUiTwocTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRIvCghwcm9maWxlcxgBIAMoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUibQodSW1wb3J0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSOQoIcHJvZmlsZXMYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlSW1wb3J0SXRlbRIRCgl3b3Jrc3BhY2UYAiABKAkioQEKHkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRI8CgtkaWFnbm9zdGljcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEi8KCHByb2ZpbGVzGAIgAygLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIQCghpbXBvcnRlZBgDIAEoCCKbAQodVXBkYXRlUHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSOAoHcHJvZmlsZRgBIAEoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAiABKAQSCgoCaWQYAyABKAkSEQoJd29ya3NwYWNlGAQgASgJIp8BCh5VcGRhdGVQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USPAoLZGlhZ25vc3RpY3MYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxIuCgdwcm9maWxlGAIgASgLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIPCgd1cGRhdGVkGAMgASgIImsKG0xpbnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBI5Cghwcm9maWxlcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEhEKCXdvcmtzcGFjZRgCIAEoCSJrChxMaW50UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlEjwKC2RpYWdub3N0aWNzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZURpYWdub3N0aWMSDQoFdmFsaWQYAiABKAgiKQoWRGVsZXRlUHJvdmlkZXJSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIj0KHERlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlcXVlc3QSCgoCaWQYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjAKHURlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlc3BvbnNlEg8KB2RlbGV0ZWQYASABKAgiZwokR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSKwojc3VwcG9ydHNfc3RhdGljX2NyZWRlbnRpYWxfYmluZGluZ3MYAiABKAgiSwofU3RhdGljQ3JlZGVudGlhbEVuZHBvaW50QmluZGluZxIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0SDAoEcGF0aBgDIAEoCSKcAQoXU3RhdGljQ3JlZGVudGlhbEJpbmRpbmcSQAoJZW5kcG9pbnRzGAEgAygLMi0ub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxFbmRwb2ludEJpbmRpbmcSGwoTY3JlZGVudGlhbF9pZGVudGl0eRgCIAEoCRIiChp3b3JrbG9hZF9jcmVkZW50aWFsX2hhbmRsZRgDIAEoCSLdBgolR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZRJfCgtlbnZpcm9ubWVudBgBIAMoCzJELm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkVudmlyb25tZW50RW50cnlCBIi1GAESHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAIgASgEEnAKGGNyZWRlbnRpYWxfZXhwaXJlc19hdF9tcxgDIAMoCzJOLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkNyZWRlbnRpYWxFeHBpcmVzQXRNc0VudHJ5EmgKE2R5bmFtaWNfY3JlZGVudGlhbHMYBCADKAsySy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZS5EeW5hbWljQ3JlZGVudGlhbHNFbnRyeRJ1ChpzdGF0aWNfY3JlZGVudGlhbF9iaW5kaW5ncxgFIAMoCzJRLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLlN0YXRpY0NyZWRlbnRpYWxCaW5kaW5nc0VudHJ5EiMKG25vbl9zZWNyZXRfZW52aXJvbm1lbnRfa2V5cxgGIAMoCRoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaPAoaQ3JlZGVudGlhbEV4cGlyZXNBdE1zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgDOgI4ARpiChdEeW5hbWljQ3JlZGVudGlhbHNFbnRyeRILCgNrZXkYASABKAkSNgoFdmFsdWUYAiABKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlQ3JlZGVudGlhbDoCOAEaZgodU3RhdGljQ3JlZGVudGlhbEJpbmRpbmdzRW50cnkSCwoDa2V5GAEgASgJEjQKBXZhbHVlGAIgASgLMiUub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxCaW5kaW5nOgI4ASKGAQojRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRIQCghwcm92aWRlchgCIAEoCRIWCg5jcmVkZW50aWFsX2tleRgDIAEoCRIhChNzdXBlcnZpc29yX2p3dF9zdmlkGAQgASgJQgSItRgBImoKJEV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW5SZXNwb25zZRIaCgxhY2Nlc3NfdG9rZW4YASABKAlCBIi1GAESEgoKZXhwaXJlc19pbhgCIAEoAxISCgp0b2tlbl90eXBlGAMgASgJIsEDChNVcGRhdGVDb25maWdSZXF1ZXN0EgwKBG5hbWUYASABKAkSMwoGcG9saWN5GAIgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRITCgtzZXR0aW5nX2tleRgDIAEoCRI5Cg1zZXR0aW5nX3ZhbHVlGAQgASgLMiIub3BlbnNoZWxsLnNhbmRib3gudjEuU2V0dGluZ1ZhbHVlEhYKDmRlbGV0ZV9zZXR0aW5nGAUgASgIEg4KBmdsb2JhbBgGIAEoCBI8ChBtZXJnZV9vcGVyYXRpb25zGAcgAygLMiIub3BlbnNoZWxsLnYxLlBvbGljeU1lcmdlT3BlcmF0aW9uEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YCCABKAQSRwoLYW5ub3RhdGlvbnMYCSADKAsyMi5vcGVuc2hlbGwudjEuVXBkYXRlQ29uZmlnUmVxdWVzdC5Bbm5vdGF0aW9uc0VudHJ5EhEKCXdvcmtzcGFjZRgKIAEoCRoyChBBbm5vdGF0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEi9wIKFFBvbGljeU1lcmdlT3BlcmF0aW9uEjAKCGFkZF9ydWxlGAEgASgLMhwub3BlbnNoZWxsLnYxLkFkZE5ldHdvcmtSdWxlSAASPgoPcmVtb3ZlX2VuZHBvaW50GAIgASgLMiMub3BlbnNoZWxsLnYxLlJlbW92ZU5ldHdvcmtFbmRwb2ludEgAEjYKC3JlbW92ZV9ydWxlGAMgASgLMh8ub3BlbnNoZWxsLnYxLlJlbW92ZU5ldHdvcmtSdWxlSAASNAoOYWRkX2RlbnlfcnVsZXMYBCABKAsyGi5vcGVuc2hlbGwudjEuQWRkRGVueVJ1bGVzSAASNgoPYWRkX2FsbG93X3J1bGVzGAUgASgLMhsub3BlbnNoZWxsLnYxLkFkZEFsbG93UnVsZXNIABI6Cg1yZW1vdmVfYmluYXJ5GAYgASgLMiEub3BlbnNoZWxsLnYxLlJlbW92ZU5ldHdvcmtCaW5hcnlIAEILCglvcGVyYXRpb24iWgoOQWRkTmV0d29ya1J1bGUSEQoJcnVsZV9uYW1lGAEgASgJEjUKBHJ1bGUYAiABKAsyJy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrUG9saWN5UnVsZSJGChVSZW1vdmVOZXR3b3JrRW5kcG9pbnQSEQoJcnVsZV9uYW1lGAEgASgJEgwKBGhvc3QYAiABKAkSDAoEcG9ydBgDIAEoDSImChFSZW1vdmVOZXR3b3JrUnVsZRIRCglydWxlX25hbWUYASABKAkiYAoMQWRkRGVueVJ1bGVzEgwKBGhvc3QYASABKAkSDAoEcG9ydBgCIAEoDRI0CgpkZW55X3J1bGVzGAMgAygLMiAub3BlbnNoZWxsLnNhbmRib3gudjEuTDdEZW55UnVsZSJYCg1BZGRBbGxvd1J1bGVzEgwKBGhvc3QYASABKAkSDAoEcG9ydBgCIAEoDRIrCgVydWxlcxgDIAMoCzIcLm9wZW5zaGVsbC5zYW5kYm94LnYxLkw3UnVsZSI9ChNSZW1vdmVOZXR3b3JrQmluYXJ5EhEKCXJ1bGVfbmFtZRgBIAEoCRITCgtiaW5hcnlfcGF0aBgCIAEoCSLmAQoUVXBkYXRlQ29uZmlnUmVzcG9uc2USDwoHdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIZChFzZXR0aW5nc19yZXZpc2lvbhgDIAEoBBIPCgdkZWxldGVkGAQgASgIEkgKC2Fubm90YXRpb25zGAUgAygLMjMub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1Jlc3BvbnNlLkFubm90YXRpb25zRW50cnkaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBImEKHUdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXF1ZXN0EgwKBG5hbWUYASABKAkSDwoHdmVyc2lvbhgCIAEoDRIOCgZnbG9iYWwYAyABKAgSEQoJd29ya3NwYWNlGAQgASgJIm8KHkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXNwb25zZRI1CghyZXZpc2lvbhgBIAEoCzIjLm9wZW5zaGVsbC52MS5TYW5kYm94UG9saWN5UmV2aXNpb24SFgoOYWN0aXZlX3ZlcnNpb24YAiABKA0ibAoaTGlzdFNhbmRib3hQb2xpY2llc1JlcXVlc3QSDAoEbmFtZRgBIAEoCRINCgVsaW1pdBgCIAEoDRIOCgZvZmZzZXQYAyABKA0SDgoGZ2xvYmFsGAQgASgIEhEKCXdvcmtzcGFjZRgFIAEoCSJVChtMaXN0U2FuZGJveFBvbGljaWVzUmVzcG9uc2USNgoJcmV2aXNpb25zGAEgAygLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbiKAAQoZUmVwb3J0UG9saWN5U3RhdHVzUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEg8KB3ZlcnNpb24YAiABKA0SKgoGc3RhdHVzGAMgASgOMhoub3BlbnNoZWxsLnYxLlBvbGljeVN0YXR1cxISCgpsb2FkX2Vycm9yGAQgASgJIhwKGlJlcG9ydFBvbGljeVN0YXR1c1Jlc3BvbnNlItsCChVTYW5kYm94UG9saWN5UmV2aXNpb24SDwoHdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIqCgZzdGF0dXMYAyABKA4yGi5vcGVuc2hlbGwudjEuUG9saWN5U3RhdHVzEhIKCmxvYWRfZXJyb3IYBCABKAkSFQoNY3JlYXRlZF9hdF9tcxgFIAEoAxIUCgxsb2FkZWRfYXRfbXMYBiABKAMSMwoGcG9saWN5GAcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRJHCgpwcm92ZW5hbmNlGAggAygLMjMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbi5Qcm92ZW5hbmNlRW50cnkaMQoPUHJvdmVuYW5jZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEigwEKFUdldFNhbmRib3hMb2dzUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEg0KBWxpbmVzGAIgASgNEhAKCHNpbmNlX21zGAMgASgDEg8KB3NvdXJjZXMYBCADKAkSEQoJbWluX2xldmVsGAUgASgJEhEKCXdvcmtzcGFjZRgGIAEoCSJYChZQdXNoU2FuZGJveExvZ3NSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSKgoEbG9ncxgCIAMoCzIcLm9wZW5zaGVsbC52MS5TYW5kYm94TG9nTGluZSIZChdQdXNoU2FuZGJveExvZ3NSZXNwb25zZSJaChZHZXRTYW5kYm94TG9nc1Jlc3BvbnNlEioKBGxvZ3MYASADKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmUSFAoMYnVmZmVyX3RvdGFsGAIgASgNIvMBChFTdXBlcnZpc29yTWVzc2FnZRIuCgVoZWxsbxgBIAEoCzIdLm9wZW5zaGVsbC52MS5TdXBlcnZpc29ySGVsbG9IABI2CgloZWFydGJlYXQYAiABKAsyIS5vcGVuc2hlbGwudjEuU3VwZXJ2aXNvckhlYXJ0YmVhdEgAEjoKEXJlbGF5X29wZW5fcmVzdWx0GAMgASgLMh0ub3BlbnNoZWxsLnYxLlJlbGF5T3BlblJlc3VsdEgAEi8KC3JlbGF5X2Nsb3NlGAQgASgLMhgub3BlbnNoZWxsLnYxLlJlbGF5Q2xvc2VIAEIJCgdwYXlsb2FkIqYCCg5HYXRld2F5TWVzc2FnZRI5ChBzZXNzaW9uX2FjY2VwdGVkGAEgASgLMh0ub3BlbnNoZWxsLnYxLlNlc3Npb25BY2NlcHRlZEgAEjkKEHNlc3Npb25fcmVqZWN0ZWQYAiABKAsyHS5vcGVuc2hlbGwudjEuU2Vzc2lvblJlamVjdGVkSAASMwoJaGVhcnRiZWF0GAMgASgLMh4ub3BlbnNoZWxsLnYxLkdhdGV3YXlIZWFydGJlYXRIABItCgpyZWxheV9vcGVuGAQgASgLMhcub3BlbnNoZWxsLnYxLlJlbGF5T3BlbkgAEi8KC3JlbGF5X2Nsb3NlGAUgASgLMhgub3BlbnNoZWxsLnYxLlJlbGF5Q2xvc2VIAEIJCgdwYXlsb2FkIjoKD1N1cGVydmlzb3JIZWxsbxISCgpzYW5kYm94X2lkGAEgASgJEhMKC2luc3RhbmNlX2lkGAIgASgJIkYKD1Nlc3Npb25BY2NlcHRlZBISCgpzZXNzaW9uX2lkGAEgASgJEh8KF2hlYXJ0YmVhdF9pbnRlcnZhbF9zZWNzGAIgASgNIiEKD1Nlc3Npb25SZWplY3RlZBIOCgZyZWFzb24YASABKAkiFQoTU3VwZXJ2aXNvckhlYXJ0YmVhdCISChBHYXRld2F5SGVhcnRiZWF0IloKHFJlcG9ydE1haW5Qcm9jZXNzRXhpdFJlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRITCgtpbnN0YW5jZV9pZBgCIAEoCRIRCglleGl0X2NvZGUYAyABKAUiHwodUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVzcG9uc2UilwEKCVJlbGF5T3BlbhISCgpjaGFubmVsX2lkGAEgASgJEisKA3NzaBgCIAEoCzIcLm9wZW5zaGVsbC52MS5Tc2hSZWxheVRhcmdldEgAEisKA3RjcBgDIAEoCzIcLm9wZW5zaGVsbC52MS5UY3BSZWxheVRhcmdldEgAEhIKCnNlcnZpY2VfaWQYBSABKAlCCAoGdGFyZ2V0IhAKDlNzaFJlbGF5VGFyZ2V0IiwKDlRjcFJlbGF5VGFyZ2V0EgwKBGhvc3QYASABKAkSDAoEcG9ydBgCIAEoDSIfCglSZWxheUluaXQSEgoKY2hhbm5lbF9pZBgBIAEoCSJQCgpSZWxheUZyYW1lEicKBGluaXQYASABKAsyFy5vcGVuc2hlbGwudjEuUmVsYXlJbml0SAASDgoEZGF0YRgCIAEoDEgAQgkKB3BheWxvYWQiRQoPUmVsYXlPcGVuUmVzdWx0EhIKCmNoYW5uZWxfaWQYASABKAkSDwoHc3VjY2VzcxgCIAEoCBINCgVlcnJvchgDIAEoCSIwCgpSZWxheUNsb3NlEhIKCmNoYW5uZWxfaWQYASABKAkSDgoGcmVhc29uGAIgASgJIlAKD0w3UmVxdWVzdFNhbXBsZRIOCgZtZXRob2QYASABKAkSDAoEcGF0aBgCIAEoCRIQCghkZWNpc2lvbhgDIAEoCRINCgVjb3VudBgEIAEoDSKVAwoNRGVuaWFsU3VtbWFyeRISCgpzYW5kYm94X2lkGAEgASgJEgwKBGhvc3QYAiABKAkSDAoEcG9ydBgDIAEoDRIOCgZiaW5hcnkYBCABKAkSEQoJYW5jZXN0b3JzGAUgAygJEhMKC2RlbnlfcmVhc29uGAYgASgJEhUKDWZpcnN0X3NlZW5fbXMYByABKAMSFAoMbGFzdF9zZWVuX21zGAggASgDEg0KBWNvdW50GAkgASgNEhgKEHN1cHByZXNzZWRfY291bnQYCiABKA0SEwoLdG90YWxfY291bnQYCyABKA0SFwoPc2FtcGxlX2NtZGxpbmVzGAwgAygJEhUKDWJpbmFyeV9zaGEyNTYYDSABKAkSEgoKcGVyc2lzdGVudBgOIAEoCBIUCgxkZW5pYWxfc3RhZ2UYDyABKAkSOQoSbDdfcmVxdWVzdF9zYW1wbGVzGBAgAygLMh0ub3BlbnNoZWxsLnYxLkw3UmVxdWVzdFNhbXBsZRIcChRsN19pbnNwZWN0aW9uX2FjdGl2ZRgRIAEoCCI8ChBEZW5pYWxHcm91cENvdW50EhIKCmRlbnlfZ3JvdXAYASABKAkSFAoMZGVuaWVkX2NvdW50GAIgASgNIo8BChZOZXR3b3JrQWN0aXZpdHlTdW1tYXJ5Eh4KFm5ldHdvcmtfYWN0aXZpdHlfY291bnQYASABKA0SGwoTZGVuaWVkX2FjdGlvbl9jb3VudBgCIAEoDRI4ChBkZW5pYWxzX2J5X2dyb3VwGAMgAygLMh4ub3BlbnNoZWxsLnYxLkRlbmlhbEdyb3VwQ291bnQixwUKC1BvbGljeUNodW5rEgoKAmlkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIRCglydWxlX25hbWUYAyABKAkSPgoNcHJvcG9zZWRfcnVsZRgEIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlEhEKCXJhdGlvbmFsZRgFIAEoCRIWCg5zZWN1cml0eV9ub3RlcxgGIAEoCRISCgpjb25maWRlbmNlGAcgASgCEhoKEmRlbmlhbF9zdW1tYXJ5X2lkcxgIIAMoCRIVCg1jcmVhdGVkX2F0X21zGAkgASgDEhUKDWRlY2lkZWRfYXRfbXMYCiABKAMSDQoFc3RhZ2UYCyABKAkSGwoTc3VwZXJzZWRlc19jaHVua19pZBgMIAEoCRIRCgloaXRfY291bnQYDSABKAUSFQoNZmlyc3Rfc2Vlbl9tcxgOIAEoAxIUCgxsYXN0X3NlZW5fbXMYDyABKAMSDgoGYmluYXJ5GBAgASgJEhkKEXZhbGlkYXRpb25fcmVzdWx0GBEgASgJEhgKEHJlamVjdGlvbl9yZWFzb24YEiABKAkSGQoRYXBwbGljYXRpb25fZXJyb3IYEyABKAkSFAoMcmV2aWV3X3Rva2VuGBQgASgJEiUKHWN1cnJlbnRfZWZmZWN0aXZlX3BvbGljeV9oYXNoGBUgASgJEicKH2NhbmRpZGF0ZV9lZmZlY3RpdmVfcG9saWN5X2hhc2gYFiABKAkSRQoYY3VycmVudF9lZmZlY3RpdmVfcG9saWN5GBcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRJHChpjYW5kaWRhdGVfZWZmZWN0aXZlX3BvbGljeRgYIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kiZgoRRHJhZnRQb2xpY3lVcGRhdGUSFQoNZHJhZnRfdmVyc2lvbhgBIAEoBBISCgpuZXdfY2h1bmtzGAIgASgNEhUKDXRvdGFsX3BlbmRpbmcYAyABKA0SDwoHc3VtbWFyeRgEIAEoCSKDAgobU3VibWl0UG9saWN5QW5hbHlzaXNSZXF1ZXN0Ei4KCXN1bW1hcmllcxgBIAMoCzIbLm9wZW5zaGVsbC52MS5EZW5pYWxTdW1tYXJ5EjIKD3Byb3Bvc2VkX2NodW5rcxgCIAMoCzIZLm9wZW5zaGVsbC52MS5Qb2xpY3lDaHVuaxIVCg1hbmFseXNpc19tb2RlGAMgASgJEgwKBG5hbWUYBCABKAkSSAoabmV0d29ya19hY3Rpdml0eV9zdW1tYXJpZXMYBSADKAsyJC5vcGVuc2hlbGwudjEuTmV0d29ya0FjdGl2aXR5U3VtbWFyeRIRCgl3b3Jrc3BhY2UYBiABKAkihwEKHFN1Ym1pdFBvbGljeUFuYWx5c2lzUmVzcG9uc2USFwoPYWNjZXB0ZWRfY2h1bmtzGAEgASgNEhcKD3JlamVjdGVkX2NodW5rcxgCIAEoDRIZChFyZWplY3Rpb25fcmVhc29ucxgDIAMoCRIaChJhY2NlcHRlZF9jaHVua19pZHMYBCADKAkiTwoVR2V0RHJhZnRQb2xpY3lSZXF1ZXN0EgwKBG5hbWUYASABKAkSFQoNc3RhdHVzX2ZpbHRlchgCIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkikAEKFkdldERyYWZ0UG9saWN5UmVzcG9uc2USKQoGY2h1bmtzGAEgAygLMhkub3BlbnNoZWxsLnYxLlBvbGljeUNodW5rEhcKD3JvbGxpbmdfc3VtbWFyeRgCIAEoCRIVCg1kcmFmdF92ZXJzaW9uGAMgASgEEhsKE2xhc3RfYW5hbHl6ZWRfYXRfbXMYBCABKAMiYwoYQXBwcm92ZURyYWZ0Q2h1bmtSZXF1ZXN0EgwKBG5hbWUYASABKAkSEAoIY2h1bmtfaWQYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJEhQKDHJldmlld190b2tlbhgEIAEoCSJIChlBcHByb3ZlRHJhZnRDaHVua1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJIlwKF1JlamVjdERyYWZ0Q2h1bmtSZXF1ZXN0EgwKBG5hbWUYASABKAkSEAoIY2h1bmtfaWQYAiABKAkSDgoGcmVhc29uGAMgASgJEhEKCXdvcmtzcGFjZRgEIAEoCSIaChhSZWplY3REcmFmdENodW5rUmVzcG9uc2UiPAoSRHJhZnRDaHVua0FwcHJvdmFsEhAKCGNodW5rX2lkGAEgASgJEhQKDHJldmlld190b2tlbhgCIAEoCSKWAQocQXBwcm92ZUFsbERyYWZ0Q2h1bmtzUmVxdWVzdBIMCgRuYW1lGAEgASgJEiAKGGluY2x1ZGVfc2VjdXJpdHlfZmxhZ2dlZBgCIAEoCBIRCgl3b3Jrc3BhY2UYAyABKAkSMwoJYXBwcm92YWxzGAQgAygLMiAub3BlbnNoZWxsLnYxLkRyYWZ0Q2h1bmtBcHByb3ZhbCJ9Ch1BcHByb3ZlQWxsRHJhZnRDaHVua3NSZXNwb25zZRIWCg5wb2xpY3lfdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIXCg9jaHVua3NfYXBwcm92ZWQYAyABKA0SFgoOY2h1bmtzX3NraXBwZWQYBCABKA0iigEKFUVkaXREcmFmdENodW5rUmVxdWVzdBIMCgRuYW1lGAEgASgJEhAKCGNodW5rX2lkGAIgASgJEj4KDXByb3Bvc2VkX3J1bGUYAyABKAsyJy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrUG9saWN5UnVsZRIRCgl3b3Jrc3BhY2UYBCABKAkiGAoWRWRpdERyYWZ0Q2h1bmtSZXNwb25zZSJKChVVbmRvRHJhZnRDaHVua1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIQCghjaHVua19pZBgCIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkiRQoWVW5kb0RyYWZ0Q2h1bmtSZXNwb25zZRIWCg5wb2xpY3lfdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCSI6ChdDbGVhckRyYWZ0Q2h1bmtzUmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSIyChhDbGVhckRyYWZ0Q2h1bmtzUmVzcG9uc2USFgoOY2h1bmtzX2NsZWFyZWQYASABKA0iOQoWR2V0RHJhZnRIaXN0b3J5UmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJkChFEcmFmdEhpc3RvcnlFbnRyeRIUCgx0aW1lc3RhbXBfbXMYASABKAMSEgoKZXZlbnRfdHlwZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIQCghjaHVua19pZBgEIAEoCSJLChdHZXREcmFmdEhpc3RvcnlSZXNwb25zZRIwCgdlbnRyaWVzGAEgAygLMh8ub3BlbnNoZWxsLnYxLkRyYWZ0SGlzdG9yeUVudHJ5IoACChVQb2xpY3lSZXZpc2lvblBheWxvYWQSMwoGcG9saWN5GAEgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRIMCgRoYXNoGAIgASgJEhIKCmxvYWRfZXJyb3IYAyABKAkSFAoMbG9hZGVkX2F0X21zGAQgASgDEkcKCnByb3ZlbmFuY2UYBSADKAsyMy5vcGVuc2hlbGwudjEuUG9saWN5UmV2aXNpb25QYXlsb2FkLlByb3ZlbmFuY2VFbnRyeRoxCg9Qcm92ZW5hbmNlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASLFBAoRRHJhZnRDaHVua1BheWxvYWQSEQoJcnVsZV9uYW1lGAEgASgJEj4KDXByb3Bvc2VkX3J1bGUYAiABKAsyJy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrUG9saWN5UnVsZRIRCglyYXRpb25hbGUYAyABKAkSFgoOc2VjdXJpdHlfbm90ZXMYBCABKAkSEgoKY29uZmlkZW5jZRgFIAEoAhIVCg1kZWNpZGVkX2F0X21zGAYgASgDEgwKBGhvc3QYByABKAkSDAoEcG9ydBgIIAEoBRIOCgZiaW5hcnkYCSABKAkSFQoNZHJhZnRfdmVyc2lvbhgKIAEoAxIZChF2YWxpZGF0aW9uX3Jlc3VsdBgLIAEoCRIYChByZWplY3Rpb25fcmVhc29uGAwgASgJEhkKEWFwcGxpY2F0aW9uX2Vycm9yGA0gASgJEhQKDHJldmlld190b2tlbhgOIAEoCRIlCh1jdXJyZW50X2VmZmVjdGl2ZV9wb2xpY3lfaGFzaBgPIAEoCRInCh9jYW5kaWRhdGVfZWZmZWN0aXZlX3BvbGljeV9oYXNoGBAgASgJEkUKGGN1cnJlbnRfZWZmZWN0aXZlX3BvbGljeRgRIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSRwoaY2FuZGlkYXRlX2VmZmVjdGl2ZV9wb2xpY3kYEiABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5IuoCChRTdG9yZWRQb2xpY3lSZXZpc2lvbhIKCgJpZBgBIAEoCRISCgpzYW5kYm94X2lkGAIgASgJEg8KB3ZlcnNpb24YAyABKAMSFgoOcG9saWN5X3BheWxvYWQYBCABKAwSEwoLcG9saWN5X2hhc2gYBSABKAkSDgoGc3RhdHVzGAYgASgJEhcKCmxvYWRfZXJyb3IYByABKAlIAIgBARIVCg1jcmVhdGVkX2F0X21zGAggASgDEhkKDGxvYWRlZF9hdF9tcxgJIAEoA0gBiAEBEkYKCnByb3ZlbmFuY2UYCiADKAsyMi5vcGVuc2hlbGwudjEuU3RvcmVkUG9saWN5UmV2aXNpb24uUHJvdmVuYW5jZUVudHJ5GjEKD1Byb3ZlbmFuY2VFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19sb2FkX2Vycm9yQg8KDV9sb2FkZWRfYXRfbXMiuQUKEFN0b3JlZERyYWZ0Q2h1bmsSCgoCaWQYASABKAkSEgoKc2FuZGJveF9pZBgCIAEoCRIVCg1kcmFmdF92ZXJzaW9uGAMgASgDEg4KBnN0YXR1cxgEIAEoCRIRCglydWxlX25hbWUYBSABKAkSFQoNcHJvcG9zZWRfcnVsZRgGIAEoDBIRCglyYXRpb25hbGUYByABKAkSFgoOc2VjdXJpdHlfbm90ZXMYCCABKAkSEgoKY29uZmlkZW5jZRgJIAEoARIVCg1jcmVhdGVkX2F0X21zGAogASgDEhoKDWRlY2lkZWRfYXRfbXMYCyABKANIAIgBARIMCgRob3N0GAwgASgJEgwKBHBvcnQYDSABKAUSDgoGYmluYXJ5GA4gASgJEhEKCWhpdF9jb3VudBgPIAEoBRIVCg1maXJzdF9zZWVuX21zGBAgASgDEhQKDGxhc3Rfc2Vlbl9tcxgRIAEoAxIZChF2YWxpZGF0aW9uX3Jlc3VsdBgSIAEoCRIYChByZWplY3Rpb25fcmVhc29uGBMgASgJEhkKEWFwcGxpY2F0aW9uX2Vycm9yGBQgASgJEhQKDHJldmlld190b2tlbhgVIAEoCRIlCh1jdXJyZW50X2VmZmVjdGl2ZV9wb2xpY3lfaGFzaBgWIAEoCRInCh9jYW5kaWRhdGVfZWZmZWN0aXZlX3BvbGljeV9oYXNoGBcgASgJEkUKGGN1cnJlbnRfZWZmZWN0aXZlX3BvbGljeRgYIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSRwoaY2FuZGlkYXRlX2VmZmVjdGl2ZV9wb2xpY3kYGSABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5QhAKDl9kZWNpZGVkX2F0X21zIpcBChZDcmVhdGVXb3Jrc3BhY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkSQAoGbGFiZWxzGAIgAygLMjAub3BlbnNoZWxsLnYxLkNyZWF0ZVdvcmtzcGFjZVJlcXVlc3QuTGFiZWxzRW50cnkaLQoLTGFiZWxzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJPChdDcmVhdGVXb3Jrc3BhY2VSZXNwb25zZRI0Cgl3b3Jrc3BhY2UYASABKAsyIS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZSIjChNHZXRXb3Jrc3BhY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkiTAoUR2V0V29ya3NwYWNlUmVzcG9uc2USNAoJd29ya3NwYWNlGAEgASgLMiEub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2UiTgoVTGlzdFdvcmtzcGFjZXNSZXF1ZXN0Eg0KBWxpbWl0GAEgASgNEg4KBm9mZnNldBgCIAEoDRIWCg5sYWJlbF9zZWxlY3RvchgDIAEoCSJPChZMaXN0V29ya3NwYWNlc1Jlc3BvbnNlEjUKCndvcmtzcGFjZXMYASADKAsyIS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZSImChZEZWxldGVXb3Jrc3BhY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkiKgoXRGVsZXRlV29ya3NwYWNlUmVzcG9uc2USDwoHZGVsZXRlZBgBIAEoCCKNAQoPV29ya3NwYWNlTWVtYmVyEjQKCG1ldGFkYXRhGAEgASgLMiIub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5PYmplY3RNZXRhEhkKEXByaW5jaXBhbF9zdWJqZWN0GAIgASgJEikKBHJvbGUYAyABKA4yGy5vcGVuc2hlbGwudjEuV29ya3NwYWNlUm9sZSJ0ChlBZGRXb3Jrc3BhY2VNZW1iZXJSZXF1ZXN0EhEKCXdvcmtzcGFjZRgBIAEoCRIZChFwcmluY2lwYWxfc3ViamVjdBgCIAEoCRIpCgRyb2xlGAMgASgOMhsub3BlbnNoZWxsLnYxLldvcmtzcGFjZVJvbGUiSwoaQWRkV29ya3NwYWNlTWVtYmVyUmVzcG9uc2USLQoGbWVtYmVyGAEgASgLMh0ub3BlbnNoZWxsLnYxLldvcmtzcGFjZU1lbWJlciJMChxSZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXF1ZXN0EhEKCXdvcmtzcGFjZRgBIAEoCRIZChFwcmluY2lwYWxfc3ViamVjdBgCIAEoCSIwCh1SZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZRIPCgdyZW1vdmVkGAEgASgIIk8KG0xpc3RXb3Jrc3BhY2VNZW1iZXJzUmVxdWVzdBIRCgl3b3Jrc3BhY2UYASABKAkSDQoFbGltaXQYAiABKA0SDgoGb2Zmc2V0GAMgASgNIk4KHExpc3RXb3Jrc3BhY2VNZW1iZXJzUmVzcG9uc2USLgoHbWVtYmVycxgBIAMoCzIdLm9wZW5zaGVsbC52MS5Xb3Jrc3BhY2VNZW1iZXIiXgoaRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwSFAoMc2VydmljZV9uYW1lGAEgASgJEhMKBXRva2VuGAIgASgJQgSItRgBEhUKDWV4cGlyZXNfYXRfbXMYAyABKAMqiQIKDFNhbmRib3hQaGFzZRIdChlTQU5EQk9YX1BIQVNFX1VOU1BFQ0lGSUVEEAASHgoaU0FOREJPWF9QSEFTRV9QUk9WSVNJT05JTkcQARIXChNTQU5EQk9YX1BIQVNFX1JFQURZEAISFwoTU0FOREJPWF9QSEFTRV9FUlJPUhADEhoKFlNBTkRCT1hfUEhBU0VfREVMRVRJTkcQBBIZChVTQU5EQk9YX1BIQVNFX1VOS05PV04QBRIaChZTQU5EQk9YX1BIQVNFX1NUT1BQSU5HEAYSGQoVU0FOREJPWF9QSEFTRV9TVE9QUEVEEAcSGgoWU0FOREJPWF9QSEFTRV9TVEFSVElORxAIKs4BCiBQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50VHlwZRI0CjBQUk9WSURFUl9DUkVERU5USUFMX1RPS0VOX0dSQU5UX1RZUEVfVU5TUEVDSUZJRUQQABI7CjdQUk9WSURFUl9DUkVERU5USUFMX1RPS0VOX0dSQU5UX1RZUEVfQ0xJRU5UX0NSRURFTlRJQUxTEAESNwozUFJPVklERVJfQ1JFREVOVElBTF9UT0tFTl9HUkFOVF9UWVBFX1RPS0VOX0VYQ0hBTkdFEAIqwwMKIVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRI0CjBQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfVU5TUEVDSUZJRUQQABIvCitQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfU1RBVElDEAESMQotUFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX0VYVEVSTkFMEAISPQo5UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX09BVVRIMl9SRUZSRVNIX1RPS0VOEAMSQgo+UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX09BVVRIMl9DTElFTlRfQ1JFREVOVElBTFMQBBJDCj9QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfR09PR0xFX1NFUlZJQ0VfQUNDT1VOVF9KV1QQBRI8CjhQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfQVdTX1NUU19BU1NVTUVfUk9MRRAGKtsCChdQcm92aWRlclByb2ZpbGVDYXRlZ29yeRIpCiVQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASIwofUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9PVEhFUhABEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfSU5GRVJFTkNFEAISIwofUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9BR0VOVBADEiwKKFBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfU09VUkNFX0NPTlRST0wQBBInCiNQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX01FU1NBR0lORxAFEiIKHlBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfREFUQRAGEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfS05PV0xFREdFEAcqmgEKDFBvbGljeVN0YXR1cxIdChlQT0xJQ1lfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGQoVUE9MSUNZX1NUQVRVU19QRU5ESU5HEAESGAoUUE9MSUNZX1NUQVRVU19MT0FERUQQAhIYChRQT0xJQ1lfU1RBVFVTX0ZBSUxFRBADEhwKGFBPTElDWV9TVEFUVVNfU1VQRVJTRURFRBAEKoYBCg1TZXJ2aWNlU3RhdHVzEh4KGlNFUlZJQ0VfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGgoWU0VSVklDRV9TVEFUVVNfSEVBTFRIWRABEhsKF1NFUlZJQ0VfU1RBVFVTX0RFR1JBREVEEAISHAoYU0VSVklDRV9TVEFUVVNfVU5IRUFMVEhZEAMqYgoNV29ya3NwYWNlUm9sZRIeChpXT1JLU1BBQ0VfUk9MRV9VTlNQRUNJRklFRBAAEhcKE1dPUktTUEFDRV9ST0xFX1VTRVIQARIYChRXT1JLU1BBQ0VfUk9MRV9BRE1JThACMqxGCglPcGVuU2hlbGwSWgoGSGVhbHRoEhsub3BlbnNoZWxsLnYxLkhlYWx0aFJlcXVlc3QaHC5vcGVuc2hlbGwudjEuSGVhbHRoUmVzcG9uc2UiFYK1GBEKD3VuYXV0aGVudGljYXRlZBJpCg5HZXRDdXJyZW50VXNlchIjLm9wZW5zaGVsbC52MS5HZXRDdXJyZW50VXNlclJlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0Q3VycmVudFVzZXJSZXNwb25zZSIMgrUYCAoGYmVhcmVyEoYBCg5HZXRHYXRld2F5SW5mbxIjLm9wZW5zaGVsbC52MS5HZXRHYXRld2F5SW5mb1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0R2F0ZXdheUluZm9SZXNwb25zZSIpgrUYJQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiILY29uZmlnOnJlYWQSdQoNQ3JlYXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJuCgpHZXRTYW5kYm94Eh8ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hSZXF1ZXN0Gh0ub3BlbnNoZWxsLnYxLlNhbmRib3hSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSegoNTGlzdFNhbmRib3hlcxIiLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveGVzUmVxdWVzdBojLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveGVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEo8BChRMaXN0U2FuZGJveFByb3ZpZGVycxIpLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFByb3ZpZGVyc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQcm92aWRlcnNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSkwEKFUF0dGFjaFNhbmRib3hQcm92aWRlchIqLm9wZW5zaGVsbC52MS5BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkF0dGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSkwEKFURldGFjaFNhbmRib3hQcm92aWRlchIqLm9wZW5zaGVsbC52MS5EZXRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRldGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSewoNRGVsZXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVxdWVzdBojLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJxCgtTdG9wU2FuZGJveBIgLm9wZW5zaGVsbC52MS5TdG9wU2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUScwoMU3RhcnRTYW5kYm94EiEub3BlbnNoZWxsLnYxLlN0YXJ0U2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUShAEKEENyZWF0ZVNzaFNlc3Npb24SJS5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlcXVlc3QaJi5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSfQoNRXhwb3NlU2VydmljZRIiLm9wZW5zaGVsbC52MS5FeHBvc2VTZXJ2aWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnRSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnYKCkdldFNlcnZpY2USHy5vcGVuc2hlbGwudjEuR2V0U2VydmljZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuU2VydmljZUVuZHBvaW50UmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEncKDExpc3RTZXJ2aWNlcxIhLm9wZW5zaGVsbC52MS5MaXN0U2VydmljZXNSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLkxpc3RTZXJ2aWNlc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ7Cg1EZWxldGVTZXJ2aWNlEiIub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEoQBChBSZXZva2VTc2hTZXNzaW9uEiUub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXF1ZXN0GiYub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnQKC0V4ZWNTYW5kYm94EiAub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94UmVxdWVzdBoeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV2ZW50IiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUwARJxCgpGb3J3YXJkVGNwEh0ub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRGcmFtZRodLm9wZW5zaGVsbC52MS5UY3BGb3J3YXJkRnJhbWUiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESfwoWRXhlY1NhbmRib3hJbnRlcmFjdGl2ZRIeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveElucHV0Gh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94RXZlbnQiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESegoOQ3JlYXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuQ3JlYXRlUHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEnIKC0dldFByb3ZpZGVyEiAub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUmVxdWVzdBoeLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSewoNTGlzdFByb3ZpZGVycxIiLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJzUmVxdWVzdBojLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKQAQoUTGlzdFByb3ZpZGVyUHJvZmlsZXMSKS5vcGVuc2hlbGwudjEuTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKHAQoSR2V0UHJvdmlkZXJQcm9maWxlEicub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUHJvZmlsZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKYAQoWSW1wb3J0UHJvdmlkZXJQcm9maWxlcxIrLm9wZW5zaGVsbC52MS5JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBosLm9wZW5zaGVsbC52MS5JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpgBChZVcGRhdGVQcm92aWRlclByb2ZpbGVzEisub3BlbnNoZWxsLnYxLlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSkAEKFExpbnRQcm92aWRlclByb2ZpbGVzEikub3BlbnNoZWxsLnYxLkxpbnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5MaW50UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSegoOVXBkYXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpwBChhHZXRQcm92aWRlclJlZnJlc2hTdGF0dXMSLS5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJSZWZyZXNoU3RhdHVzUmVxdWVzdBouLm9wZW5zaGVsbC52MS5HZXRQcm92aWRlclJlZnJlc2hTdGF0dXNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEp4BChhDb25maWd1cmVQcm92aWRlclJlZnJlc2gSLS5vcGVuc2hlbGwudjEuQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBouLm9wZW5zaGVsbC52MS5Db25maWd1cmVQcm92aWRlclJlZnJlc2hSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSngEKGFJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbBItLm9wZW5zaGVsbC52MS5Sb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLlJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKVAQoVRGVsZXRlUHJvdmlkZXJSZWZyZXNoEioub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QaKy5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZWZyZXNoUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEoABCg5EZWxldGVQcm92aWRlchIjLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlcXVlc3QaJC5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSlQEKFURlbGV0ZVByb3ZpZGVyUHJvZmlsZRIqLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclByb2ZpbGVSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKQAQoQR2V0U2FuZGJveENvbmZpZxItLm9wZW5zaGVsbC5zYW5kYm94LnYxLkdldFNhbmRib3hDb25maWdSZXF1ZXN0Gi4ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0U2FuZGJveENvbmZpZ1Jlc3BvbnNlIh2CtRgZCgRkdWFsEgR1c2VyIgtjb25maWc6cmVhZBKMAQoQR2V0R2F0ZXdheUNvbmZpZxItLm9wZW5zaGVsbC5zYW5kYm94LnYxLkdldEdhdGV3YXlDb25maWdSZXF1ZXN0Gi4ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0R2F0ZXdheUNvbmZpZ1Jlc3BvbnNlIhmCtRgVCgZiZWFyZXIiC2NvbmZpZzpyZWFkEnYKDFVwZGF0ZUNvbmZpZxIhLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1Jlc3BvbnNlIh+CtRgbCgRkdWFsEgVhZG1pbiIMY29uZmlnOndyaXRlEpUBChZHZXRTYW5kYm94UG9saWN5U3RhdHVzEisub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSjAEKE0xpc3RTYW5kYm94UG9saWNpZXMSKC5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQb2xpY2llc1JlcXVlc3QaKS5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQb2xpY2llc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ2ChJSZXBvcnRQb2xpY3lTdGF0dXMSJy5vcGVuc2hlbGwudjEuUmVwb3J0UG9saWN5U3RhdHVzUmVxdWVzdBooLm9wZW5zaGVsbC52MS5SZXBvcnRQb2xpY3lTdGF0dXNSZXNwb25zZSINgrUYCQoHc2FuZGJveBKXAQodR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnQSMi5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXF1ZXN0GjMub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSlAEKHEV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW4SMS5vcGVuc2hlbGwudjEuRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlcXVlc3QaMi5vcGVuc2hlbGwudjEuRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94En0KDkdldFNhbmRib3hMb2dzEiMub3BlbnNoZWxsLnYxLkdldFNhbmRib3hMb2dzUmVxdWVzdBokLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94TG9nc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJvCg9QdXNoU2FuZGJveExvZ3MSJC5vcGVuc2hlbGwudjEuUHVzaFNhbmRib3hMb2dzUmVxdWVzdBolLm9wZW5zaGVsbC52MS5QdXNoU2FuZGJveExvZ3NSZXNwb25zZSINgrUYCQoHc2FuZGJveCgBEmUKEUNvbm5lY3RTdXBlcnZpc29yEh8ub3BlbnNoZWxsLnYxLlN1cGVydmlzb3JNZXNzYWdlGhwub3BlbnNoZWxsLnYxLkdhdGV3YXlNZXNzYWdlIg2CtRgJCgdzYW5kYm94KAEwARJ/ChVSZXBvcnRNYWluUHJvY2Vzc0V4aXQSKi5vcGVuc2hlbGwudjEuUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVxdWVzdBorLm9wZW5zaGVsbC52MS5SZXBvcnRNYWluUHJvY2Vzc0V4aXRSZXNwb25zZSINgrUYCQoHc2FuZGJveBJUCgtSZWxheVN0cmVhbRIYLm9wZW5zaGVsbC52MS5SZWxheUZyYW1lGhgub3BlbnNoZWxsLnYxLlJlbGF5RnJhbWUiDYK1GAkKB3NhbmRib3goATABEncKDFdhdGNoU2FuZGJveBIhLm9wZW5zaGVsbC52MS5XYXRjaFNhbmRib3hSZXF1ZXN0GiAub3BlbnNoZWxsLnYxLlNhbmRib3hTdHJlYW1FdmVudCIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQwARJ8ChRTdWJtaXRQb2xpY3lBbmFseXNpcxIpLm9wZW5zaGVsbC52MS5TdWJtaXRQb2xpY3lBbmFseXNpc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuU3VibWl0UG9saWN5QW5hbHlzaXNSZXNwb25zZSINgrUYCQoHc2FuZGJveBJ6Cg5HZXREcmFmdFBvbGljeRIjLm9wZW5zaGVsbC52MS5HZXREcmFmdFBvbGljeVJlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0RHJhZnRQb2xpY3lSZXNwb25zZSIdgrUYGQoEZHVhbBIEdXNlciILY29uZmlnOnJlYWQShwEKEUFwcHJvdmVEcmFmdENodW5rEiYub3BlbnNoZWxsLnYxLkFwcHJvdmVEcmFmdENodW5rUmVxdWVzdBonLm9wZW5zaGVsbC52MS5BcHByb3ZlRHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUShAEKEFJlamVjdERyYWZ0Q2h1bmsSJS5vcGVuc2hlbGwudjEuUmVqZWN0RHJhZnRDaHVua1JlcXVlc3QaJi5vcGVuc2hlbGwudjEuUmVqZWN0RHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSkwEKFUFwcHJvdmVBbGxEcmFmdENodW5rcxIqLm9wZW5zaGVsbC52MS5BcHByb3ZlQWxsRHJhZnRDaHVua3NSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkFwcHJvdmVBbGxEcmFmdENodW5rc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSfgoORWRpdERyYWZ0Q2h1bmsSIy5vcGVuc2hlbGwudjEuRWRpdERyYWZ0Q2h1bmtSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkVkaXREcmFmdENodW5rUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRJ+Cg5VbmRvRHJhZnRDaHVuaxIjLm9wZW5zaGVsbC52MS5VbmRvRHJhZnRDaHVua1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuVW5kb0RyYWZ0Q2h1bmtSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEoQBChBDbGVhckRyYWZ0Q2h1bmtzEiUub3BlbnNoZWxsLnYxLkNsZWFyRHJhZnRDaHVua3NSZXF1ZXN0GiYub3BlbnNoZWxsLnYxLkNsZWFyRHJhZnRDaHVua3NSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEn8KD0dldERyYWZ0SGlzdG9yeRIkLm9wZW5zaGVsbC52MS5HZXREcmFmdEhpc3RvcnlSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLkdldERyYWZ0SGlzdG9yeVJlc3BvbnNlIh+CtRgbCgZiZWFyZXISBHVzZXIiC2NvbmZpZzpyZWFkEnMKEUlzc3VlU2FuZGJveFRva2VuEiYub3BlbnNoZWxsLnYxLklzc3VlU2FuZGJveFRva2VuUmVxdWVzdBonLm9wZW5zaGVsbC52MS5Jc3N1ZVNhbmRib3hUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94EnkKE1JlZnJlc2hTYW5kYm94VG9rZW4SKC5vcGVuc2hlbGwudjEuUmVmcmVzaFNhbmRib3hUb2tlblJlcXVlc3QaKS5vcGVuc2hlbGwudjEuUmVmcmVzaFNhbmRib3hUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94Eo0BCg9DcmVhdGVXb3Jrc3BhY2USJC5vcGVuc2hlbGwudjEuQ3JlYXRlV29ya3NwYWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5DcmVhdGVXb3Jrc3BhY2VSZXNwb25zZSItgrUYKQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiIPd29ya3NwYWNlOndyaXRlEnkKDEdldFdvcmtzcGFjZRIhLm9wZW5zaGVsbC52MS5HZXRXb3Jrc3BhY2VSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLkdldFdvcmtzcGFjZVJlc3BvbnNlIiKCtRgeCgZiZWFyZXISBHVzZXIiDndvcmtzcGFjZTpyZWFkEn8KDkxpc3RXb3Jrc3BhY2VzEiMub3BlbnNoZWxsLnYxLkxpc3RXb3Jrc3BhY2VzUmVxdWVzdBokLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlc1Jlc3BvbnNlIiKCtRgeCgZiZWFyZXISBHVzZXIiDndvcmtzcGFjZTpyZWFkEo0BCg9EZWxldGVXb3Jrc3BhY2USJC5vcGVuc2hlbGwudjEuRGVsZXRlV29ya3NwYWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5EZWxldGVXb3Jrc3BhY2VSZXNwb25zZSItgrUYKQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiIPd29ya3NwYWNlOndyaXRlEo0BChJBZGRXb3Jrc3BhY2VNZW1iZXISJy5vcGVuc2hlbGwudjEuQWRkV29ya3NwYWNlTWVtYmVyUmVxdWVzdBooLm9wZW5zaGVsbC52MS5BZGRXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZSIkgrUYIAoGYmVhcmVyEgVhZG1pbiIPd29ya3NwYWNlOndyaXRlEpYBChVSZW1vdmVXb3Jrc3BhY2VNZW1iZXISKi5vcGVuc2hlbGwudjEuUmVtb3ZlV29ya3NwYWNlTWVtYmVyUmVxdWVzdBorLm9wZW5zaGVsbC52MS5SZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZSIkgrUYIAoGYmVhcmVyEgVhZG1pbiIPd29ya3NwYWNlOndyaXRlEpEBChRMaXN0V29ya3NwYWNlTWVtYmVycxIpLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlTWVtYmVyc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXNwb25zZSIigrUYHgoGYmVhcmVyEgR1c2VyIg53b3Jrc3BhY2U6cmVhZGIGcHJvdG8z", [file_datamodel, file_google_protobuf_struct, file_options, file_sandbox]);
12
12
  /**
13
13
  * Describes the message openshell.v1.IssueSandboxTokenRequest.
14
14
  * Use `create(IssueSandboxTokenRequestSchema)` to create a new message.
@@ -374,581 +374,601 @@ export const ProviderProfileDiagnosticSchema = /*@__PURE__*/ messageDesc(file_op
374
374
  * Use `create(ProviderCredentialTokenGrantAudienceOverrideSchema)` to create a new message.
375
375
  */
376
376
  export const ProviderCredentialTokenGrantAudienceOverrideSchema = /*@__PURE__*/ messageDesc(file_openshell, 72);
377
+ /**
378
+ * Describes the message openshell.v1.ProviderCredentialTokenGrantSubjectToken.
379
+ * Use `create(ProviderCredentialTokenGrantSubjectTokenSchema)` to create a new message.
380
+ */
381
+ export const ProviderCredentialTokenGrantSubjectTokenSchema = /*@__PURE__*/ messageDesc(file_openshell, 73);
377
382
  /**
378
383
  * Describes the message openshell.v1.ProviderCredentialTokenGrant.
379
384
  * Use `create(ProviderCredentialTokenGrantSchema)` to create a new message.
380
385
  */
381
- export const ProviderCredentialTokenGrantSchema = /*@__PURE__*/ messageDesc(file_openshell, 73);
386
+ export const ProviderCredentialTokenGrantSchema = /*@__PURE__*/ messageDesc(file_openshell, 74);
382
387
  /**
383
388
  * Describes the message openshell.v1.ProviderProfileCredential.
384
389
  * Use `create(ProviderProfileCredentialSchema)` to create a new message.
385
390
  */
386
- export const ProviderProfileCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 74);
391
+ export const ProviderProfileCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 75);
387
392
  /**
388
393
  * Describes the message openshell.v1.ProviderCredentialRefreshMaterial.
389
394
  * Use `create(ProviderCredentialRefreshMaterialSchema)` to create a new message.
390
395
  */
391
- export const ProviderCredentialRefreshMaterialSchema = /*@__PURE__*/ messageDesc(file_openshell, 75);
396
+ export const ProviderCredentialRefreshMaterialSchema = /*@__PURE__*/ messageDesc(file_openshell, 76);
392
397
  /**
393
398
  * Describes the message openshell.v1.ProviderCredentialRefreshOutput.
394
399
  * Use `create(ProviderCredentialRefreshOutputSchema)` to create a new message.
395
400
  */
396
- export const ProviderCredentialRefreshOutputSchema = /*@__PURE__*/ messageDesc(file_openshell, 76);
401
+ export const ProviderCredentialRefreshOutputSchema = /*@__PURE__*/ messageDesc(file_openshell, 77);
397
402
  /**
398
403
  * Describes the message openshell.v1.ProviderCredentialRefresh.
399
404
  * Use `create(ProviderCredentialRefreshSchema)` to create a new message.
400
405
  */
401
- export const ProviderCredentialRefreshSchema = /*@__PURE__*/ messageDesc(file_openshell, 77);
406
+ export const ProviderCredentialRefreshSchema = /*@__PURE__*/ messageDesc(file_openshell, 78);
402
407
  /**
403
408
  * Describes the message openshell.v1.ProviderCredentialRefreshStatus.
404
409
  * Use `create(ProviderCredentialRefreshStatusSchema)` to create a new message.
405
410
  */
406
- export const ProviderCredentialRefreshStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 78);
411
+ export const ProviderCredentialRefreshStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 79);
407
412
  /**
408
413
  * Describes the message openshell.v1.ProviderProfileDiscovery.
409
414
  * Use `create(ProviderProfileDiscoverySchema)` to create a new message.
410
415
  */
411
- export const ProviderProfileDiscoverySchema = /*@__PURE__*/ messageDesc(file_openshell, 79);
416
+ export const ProviderProfileDiscoverySchema = /*@__PURE__*/ messageDesc(file_openshell, 80);
412
417
  /**
413
418
  * Describes the message openshell.v1.StoredProviderCredentialRefreshState.
414
419
  * Use `create(StoredProviderCredentialRefreshStateSchema)` to create a new message.
415
420
  */
416
- export const StoredProviderCredentialRefreshStateSchema = /*@__PURE__*/ messageDesc(file_openshell, 80);
421
+ export const StoredProviderCredentialRefreshStateSchema = /*@__PURE__*/ messageDesc(file_openshell, 81);
417
422
  /**
418
423
  * Describes the message openshell.v1.StoredRefreshMaterialDeletion.
419
424
  * Use `create(StoredRefreshMaterialDeletionSchema)` to create a new message.
420
425
  */
421
- export const StoredRefreshMaterialDeletionSchema = /*@__PURE__*/ messageDesc(file_openshell, 81);
426
+ export const StoredRefreshMaterialDeletionSchema = /*@__PURE__*/ messageDesc(file_openshell, 82);
422
427
  /**
423
428
  * Describes the message openshell.v1.GetProviderRefreshStatusRequest.
424
429
  * Use `create(GetProviderRefreshStatusRequestSchema)` to create a new message.
425
430
  */
426
- export const GetProviderRefreshStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 82);
431
+ export const GetProviderRefreshStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 83);
427
432
  /**
428
433
  * Describes the message openshell.v1.GetProviderRefreshStatusResponse.
429
434
  * Use `create(GetProviderRefreshStatusResponseSchema)` to create a new message.
430
435
  */
431
- export const GetProviderRefreshStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 83);
436
+ export const GetProviderRefreshStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 84);
432
437
  /**
433
438
  * Describes the message openshell.v1.ConfigureProviderRefreshRequest.
434
439
  * Use `create(ConfigureProviderRefreshRequestSchema)` to create a new message.
435
440
  */
436
- export const ConfigureProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 84);
441
+ export const ConfigureProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 85);
437
442
  /**
438
443
  * Describes the message openshell.v1.ConfigureProviderRefreshResponse.
439
444
  * Use `create(ConfigureProviderRefreshResponseSchema)` to create a new message.
440
445
  */
441
- export const ConfigureProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 85);
446
+ export const ConfigureProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 86);
442
447
  /**
443
448
  * Describes the message openshell.v1.RotateProviderCredentialRequest.
444
449
  * Use `create(RotateProviderCredentialRequestSchema)` to create a new message.
445
450
  */
446
- export const RotateProviderCredentialRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 86);
451
+ export const RotateProviderCredentialRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 87);
447
452
  /**
448
453
  * Describes the message openshell.v1.RotateProviderCredentialResponse.
449
454
  * Use `create(RotateProviderCredentialResponseSchema)` to create a new message.
450
455
  */
451
- export const RotateProviderCredentialResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 87);
456
+ export const RotateProviderCredentialResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 88);
452
457
  /**
453
458
  * Describes the message openshell.v1.DeleteProviderRefreshRequest.
454
459
  * Use `create(DeleteProviderRefreshRequestSchema)` to create a new message.
455
460
  */
456
- export const DeleteProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 88);
461
+ export const DeleteProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 89);
457
462
  /**
458
463
  * Describes the message openshell.v1.DeleteProviderRefreshResponse.
459
464
  * Use `create(DeleteProviderRefreshResponseSchema)` to create a new message.
460
465
  */
461
- export const DeleteProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 89);
466
+ export const DeleteProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 90);
462
467
  /**
463
468
  * Describes the message openshell.v1.ProviderProfile.
464
469
  * Use `create(ProviderProfileSchema)` to create a new message.
465
470
  */
466
- export const ProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 90);
471
+ export const ProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 91);
467
472
  /**
468
473
  * Describes the message openshell.v1.StoredProviderProfile.
469
474
  * Use `create(StoredProviderProfileSchema)` to create a new message.
470
475
  */
471
- export const StoredProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 91);
476
+ export const StoredProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 92);
472
477
  /**
473
478
  * Describes the message openshell.v1.ProviderProfileResponse.
474
479
  * Use `create(ProviderProfileResponseSchema)` to create a new message.
475
480
  */
476
- export const ProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 92);
481
+ export const ProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 93);
477
482
  /**
478
483
  * Describes the message openshell.v1.ListProviderProfilesResponse.
479
484
  * Use `create(ListProviderProfilesResponseSchema)` to create a new message.
480
485
  */
481
- export const ListProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 93);
486
+ export const ListProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 94);
482
487
  /**
483
488
  * Describes the message openshell.v1.ImportProviderProfilesRequest.
484
489
  * Use `create(ImportProviderProfilesRequestSchema)` to create a new message.
485
490
  */
486
- export const ImportProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 94);
491
+ export const ImportProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 95);
487
492
  /**
488
493
  * Describes the message openshell.v1.ImportProviderProfilesResponse.
489
494
  * Use `create(ImportProviderProfilesResponseSchema)` to create a new message.
490
495
  */
491
- export const ImportProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 95);
496
+ export const ImportProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 96);
492
497
  /**
493
498
  * Describes the message openshell.v1.UpdateProviderProfilesRequest.
494
499
  * Use `create(UpdateProviderProfilesRequestSchema)` to create a new message.
495
500
  */
496
- export const UpdateProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 96);
501
+ export const UpdateProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 97);
497
502
  /**
498
503
  * Describes the message openshell.v1.UpdateProviderProfilesResponse.
499
504
  * Use `create(UpdateProviderProfilesResponseSchema)` to create a new message.
500
505
  */
501
- export const UpdateProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 97);
506
+ export const UpdateProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 98);
502
507
  /**
503
508
  * Describes the message openshell.v1.LintProviderProfilesRequest.
504
509
  * Use `create(LintProviderProfilesRequestSchema)` to create a new message.
505
510
  */
506
- export const LintProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 98);
511
+ export const LintProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 99);
507
512
  /**
508
513
  * Describes the message openshell.v1.LintProviderProfilesResponse.
509
514
  * Use `create(LintProviderProfilesResponseSchema)` to create a new message.
510
515
  */
511
- export const LintProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 99);
516
+ export const LintProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 100);
512
517
  /**
513
518
  * Describes the message openshell.v1.DeleteProviderResponse.
514
519
  * Use `create(DeleteProviderResponseSchema)` to create a new message.
515
520
  */
516
- export const DeleteProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 100);
521
+ export const DeleteProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 101);
517
522
  /**
518
523
  * Describes the message openshell.v1.DeleteProviderProfileRequest.
519
524
  * Use `create(DeleteProviderProfileRequestSchema)` to create a new message.
520
525
  */
521
- export const DeleteProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 101);
526
+ export const DeleteProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 102);
522
527
  /**
523
528
  * Describes the message openshell.v1.DeleteProviderProfileResponse.
524
529
  * Use `create(DeleteProviderProfileResponseSchema)` to create a new message.
525
530
  */
526
- export const DeleteProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 102);
531
+ export const DeleteProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 103);
527
532
  /**
528
533
  * Describes the message openshell.v1.GetSandboxProviderEnvironmentRequest.
529
534
  * Use `create(GetSandboxProviderEnvironmentRequestSchema)` to create a new message.
530
535
  */
531
- export const GetSandboxProviderEnvironmentRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 103);
536
+ export const GetSandboxProviderEnvironmentRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 104);
532
537
  /**
533
538
  * Describes the message openshell.v1.StaticCredentialEndpointBinding.
534
539
  * Use `create(StaticCredentialEndpointBindingSchema)` to create a new message.
535
540
  */
536
- export const StaticCredentialEndpointBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 104);
541
+ export const StaticCredentialEndpointBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 105);
537
542
  /**
538
543
  * Describes the message openshell.v1.StaticCredentialBinding.
539
544
  * Use `create(StaticCredentialBindingSchema)` to create a new message.
540
545
  */
541
- export const StaticCredentialBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 105);
546
+ export const StaticCredentialBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 106);
542
547
  /**
543
548
  * Describes the message openshell.v1.GetSandboxProviderEnvironmentResponse.
544
549
  * Use `create(GetSandboxProviderEnvironmentResponseSchema)` to create a new message.
545
550
  */
546
- export const GetSandboxProviderEnvironmentResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 106);
551
+ export const GetSandboxProviderEnvironmentResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 107);
552
+ /**
553
+ * Describes the message openshell.v1.ExchangeProviderSubjectTokenRequest.
554
+ * Use `create(ExchangeProviderSubjectTokenRequestSchema)` to create a new message.
555
+ */
556
+ export const ExchangeProviderSubjectTokenRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 108);
557
+ /**
558
+ * Describes the message openshell.v1.ExchangeProviderSubjectTokenResponse.
559
+ * Use `create(ExchangeProviderSubjectTokenResponseSchema)` to create a new message.
560
+ */
561
+ export const ExchangeProviderSubjectTokenResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 109);
547
562
  /**
548
563
  * Describes the message openshell.v1.UpdateConfigRequest.
549
564
  * Use `create(UpdateConfigRequestSchema)` to create a new message.
550
565
  */
551
- export const UpdateConfigRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 107);
566
+ export const UpdateConfigRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 110);
552
567
  /**
553
568
  * Describes the message openshell.v1.PolicyMergeOperation.
554
569
  * Use `create(PolicyMergeOperationSchema)` to create a new message.
555
570
  */
556
- export const PolicyMergeOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 108);
571
+ export const PolicyMergeOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 111);
557
572
  /**
558
573
  * Describes the message openshell.v1.AddNetworkRule.
559
574
  * Use `create(AddNetworkRuleSchema)` to create a new message.
560
575
  */
561
- export const AddNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 109);
576
+ export const AddNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 112);
562
577
  /**
563
578
  * Describes the message openshell.v1.RemoveNetworkEndpoint.
564
579
  * Use `create(RemoveNetworkEndpointSchema)` to create a new message.
565
580
  */
566
- export const RemoveNetworkEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 110);
581
+ export const RemoveNetworkEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 113);
567
582
  /**
568
583
  * Describes the message openshell.v1.RemoveNetworkRule.
569
584
  * Use `create(RemoveNetworkRuleSchema)` to create a new message.
570
585
  */
571
- export const RemoveNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 111);
586
+ export const RemoveNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 114);
572
587
  /**
573
588
  * Describes the message openshell.v1.AddDenyRules.
574
589
  * Use `create(AddDenyRulesSchema)` to create a new message.
575
590
  */
576
- export const AddDenyRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 112);
591
+ export const AddDenyRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 115);
577
592
  /**
578
593
  * Describes the message openshell.v1.AddAllowRules.
579
594
  * Use `create(AddAllowRulesSchema)` to create a new message.
580
595
  */
581
- export const AddAllowRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 113);
596
+ export const AddAllowRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 116);
582
597
  /**
583
598
  * Describes the message openshell.v1.RemoveNetworkBinary.
584
599
  * Use `create(RemoveNetworkBinarySchema)` to create a new message.
585
600
  */
586
- export const RemoveNetworkBinarySchema = /*@__PURE__*/ messageDesc(file_openshell, 114);
601
+ export const RemoveNetworkBinarySchema = /*@__PURE__*/ messageDesc(file_openshell, 117);
587
602
  /**
588
603
  * Describes the message openshell.v1.UpdateConfigResponse.
589
604
  * Use `create(UpdateConfigResponseSchema)` to create a new message.
590
605
  */
591
- export const UpdateConfigResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 115);
606
+ export const UpdateConfigResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 118);
592
607
  /**
593
608
  * Describes the message openshell.v1.GetSandboxPolicyStatusRequest.
594
609
  * Use `create(GetSandboxPolicyStatusRequestSchema)` to create a new message.
595
610
  */
596
- export const GetSandboxPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 116);
611
+ export const GetSandboxPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 119);
597
612
  /**
598
613
  * Describes the message openshell.v1.GetSandboxPolicyStatusResponse.
599
614
  * Use `create(GetSandboxPolicyStatusResponseSchema)` to create a new message.
600
615
  */
601
- export const GetSandboxPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 117);
616
+ export const GetSandboxPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 120);
602
617
  /**
603
618
  * Describes the message openshell.v1.ListSandboxPoliciesRequest.
604
619
  * Use `create(ListSandboxPoliciesRequestSchema)` to create a new message.
605
620
  */
606
- export const ListSandboxPoliciesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 118);
621
+ export const ListSandboxPoliciesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 121);
607
622
  /**
608
623
  * Describes the message openshell.v1.ListSandboxPoliciesResponse.
609
624
  * Use `create(ListSandboxPoliciesResponseSchema)` to create a new message.
610
625
  */
611
- export const ListSandboxPoliciesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 119);
626
+ export const ListSandboxPoliciesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 122);
612
627
  /**
613
628
  * Describes the message openshell.v1.ReportPolicyStatusRequest.
614
629
  * Use `create(ReportPolicyStatusRequestSchema)` to create a new message.
615
630
  */
616
- export const ReportPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 120);
631
+ export const ReportPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 123);
617
632
  /**
618
633
  * Describes the message openshell.v1.ReportPolicyStatusResponse.
619
634
  * Use `create(ReportPolicyStatusResponseSchema)` to create a new message.
620
635
  */
621
- export const ReportPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 121);
636
+ export const ReportPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 124);
622
637
  /**
623
638
  * Describes the message openshell.v1.SandboxPolicyRevision.
624
639
  * Use `create(SandboxPolicyRevisionSchema)` to create a new message.
625
640
  */
626
- export const SandboxPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 122);
641
+ export const SandboxPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 125);
627
642
  /**
628
643
  * Describes the message openshell.v1.GetSandboxLogsRequest.
629
644
  * Use `create(GetSandboxLogsRequestSchema)` to create a new message.
630
645
  */
631
- export const GetSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 123);
646
+ export const GetSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 126);
632
647
  /**
633
648
  * Describes the message openshell.v1.PushSandboxLogsRequest.
634
649
  * Use `create(PushSandboxLogsRequestSchema)` to create a new message.
635
650
  */
636
- export const PushSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 124);
651
+ export const PushSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 127);
637
652
  /**
638
653
  * Describes the message openshell.v1.PushSandboxLogsResponse.
639
654
  * Use `create(PushSandboxLogsResponseSchema)` to create a new message.
640
655
  */
641
- export const PushSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 125);
656
+ export const PushSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 128);
642
657
  /**
643
658
  * Describes the message openshell.v1.GetSandboxLogsResponse.
644
659
  * Use `create(GetSandboxLogsResponseSchema)` to create a new message.
645
660
  */
646
- export const GetSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 126);
661
+ export const GetSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 129);
647
662
  /**
648
663
  * Describes the message openshell.v1.SupervisorMessage.
649
664
  * Use `create(SupervisorMessageSchema)` to create a new message.
650
665
  */
651
- export const SupervisorMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 127);
666
+ export const SupervisorMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 130);
652
667
  /**
653
668
  * Describes the message openshell.v1.GatewayMessage.
654
669
  * Use `create(GatewayMessageSchema)` to create a new message.
655
670
  */
656
- export const GatewayMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 128);
671
+ export const GatewayMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 131);
657
672
  /**
658
673
  * Describes the message openshell.v1.SupervisorHello.
659
674
  * Use `create(SupervisorHelloSchema)` to create a new message.
660
675
  */
661
- export const SupervisorHelloSchema = /*@__PURE__*/ messageDesc(file_openshell, 129);
676
+ export const SupervisorHelloSchema = /*@__PURE__*/ messageDesc(file_openshell, 132);
662
677
  /**
663
678
  * Describes the message openshell.v1.SessionAccepted.
664
679
  * Use `create(SessionAcceptedSchema)` to create a new message.
665
680
  */
666
- export const SessionAcceptedSchema = /*@__PURE__*/ messageDesc(file_openshell, 130);
681
+ export const SessionAcceptedSchema = /*@__PURE__*/ messageDesc(file_openshell, 133);
667
682
  /**
668
683
  * Describes the message openshell.v1.SessionRejected.
669
684
  * Use `create(SessionRejectedSchema)` to create a new message.
670
685
  */
671
- export const SessionRejectedSchema = /*@__PURE__*/ messageDesc(file_openshell, 131);
686
+ export const SessionRejectedSchema = /*@__PURE__*/ messageDesc(file_openshell, 134);
672
687
  /**
673
688
  * Describes the message openshell.v1.SupervisorHeartbeat.
674
689
  * Use `create(SupervisorHeartbeatSchema)` to create a new message.
675
690
  */
676
- export const SupervisorHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 132);
691
+ export const SupervisorHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 135);
677
692
  /**
678
693
  * Describes the message openshell.v1.GatewayHeartbeat.
679
694
  * Use `create(GatewayHeartbeatSchema)` to create a new message.
680
695
  */
681
- export const GatewayHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 133);
696
+ export const GatewayHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 136);
682
697
  /**
683
698
  * Describes the message openshell.v1.ReportMainProcessExitRequest.
684
699
  * Use `create(ReportMainProcessExitRequestSchema)` to create a new message.
685
700
  */
686
- export const ReportMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 134);
701
+ export const ReportMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 137);
687
702
  /**
688
703
  * Describes the message openshell.v1.ReportMainProcessExitResponse.
689
704
  * Use `create(ReportMainProcessExitResponseSchema)` to create a new message.
690
705
  */
691
- export const ReportMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 135);
706
+ export const ReportMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 138);
692
707
  /**
693
708
  * Describes the message openshell.v1.RelayOpen.
694
709
  * Use `create(RelayOpenSchema)` to create a new message.
695
710
  */
696
- export const RelayOpenSchema = /*@__PURE__*/ messageDesc(file_openshell, 136);
711
+ export const RelayOpenSchema = /*@__PURE__*/ messageDesc(file_openshell, 139);
697
712
  /**
698
713
  * Describes the message openshell.v1.SshRelayTarget.
699
714
  * Use `create(SshRelayTargetSchema)` to create a new message.
700
715
  */
701
- export const SshRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 137);
716
+ export const SshRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 140);
702
717
  /**
703
718
  * Describes the message openshell.v1.TcpRelayTarget.
704
719
  * Use `create(TcpRelayTargetSchema)` to create a new message.
705
720
  */
706
- export const TcpRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 138);
721
+ export const TcpRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 141);
707
722
  /**
708
723
  * Describes the message openshell.v1.RelayInit.
709
724
  * Use `create(RelayInitSchema)` to create a new message.
710
725
  */
711
- export const RelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 139);
726
+ export const RelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 142);
712
727
  /**
713
728
  * Describes the message openshell.v1.RelayFrame.
714
729
  * Use `create(RelayFrameSchema)` to create a new message.
715
730
  */
716
- export const RelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 140);
731
+ export const RelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 143);
717
732
  /**
718
733
  * Describes the message openshell.v1.RelayOpenResult.
719
734
  * Use `create(RelayOpenResultSchema)` to create a new message.
720
735
  */
721
- export const RelayOpenResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 141);
736
+ export const RelayOpenResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 144);
722
737
  /**
723
738
  * Describes the message openshell.v1.RelayClose.
724
739
  * Use `create(RelayCloseSchema)` to create a new message.
725
740
  */
726
- export const RelayCloseSchema = /*@__PURE__*/ messageDesc(file_openshell, 142);
741
+ export const RelayCloseSchema = /*@__PURE__*/ messageDesc(file_openshell, 145);
727
742
  /**
728
743
  * Describes the message openshell.v1.L7RequestSample.
729
744
  * Use `create(L7RequestSampleSchema)` to create a new message.
730
745
  */
731
- export const L7RequestSampleSchema = /*@__PURE__*/ messageDesc(file_openshell, 143);
746
+ export const L7RequestSampleSchema = /*@__PURE__*/ messageDesc(file_openshell, 146);
732
747
  /**
733
748
  * Describes the message openshell.v1.DenialSummary.
734
749
  * Use `create(DenialSummarySchema)` to create a new message.
735
750
  */
736
- export const DenialSummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 144);
751
+ export const DenialSummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 147);
737
752
  /**
738
753
  * Describes the message openshell.v1.DenialGroupCount.
739
754
  * Use `create(DenialGroupCountSchema)` to create a new message.
740
755
  */
741
- export const DenialGroupCountSchema = /*@__PURE__*/ messageDesc(file_openshell, 145);
756
+ export const DenialGroupCountSchema = /*@__PURE__*/ messageDesc(file_openshell, 148);
742
757
  /**
743
758
  * Describes the message openshell.v1.NetworkActivitySummary.
744
759
  * Use `create(NetworkActivitySummarySchema)` to create a new message.
745
760
  */
746
- export const NetworkActivitySummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 146);
761
+ export const NetworkActivitySummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 149);
747
762
  /**
748
763
  * Describes the message openshell.v1.PolicyChunk.
749
764
  * Use `create(PolicyChunkSchema)` to create a new message.
750
765
  */
751
- export const PolicyChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 147);
766
+ export const PolicyChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 150);
752
767
  /**
753
768
  * Describes the message openshell.v1.DraftPolicyUpdate.
754
769
  * Use `create(DraftPolicyUpdateSchema)` to create a new message.
755
770
  */
756
- export const DraftPolicyUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 148);
771
+ export const DraftPolicyUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 151);
757
772
  /**
758
773
  * Describes the message openshell.v1.SubmitPolicyAnalysisRequest.
759
774
  * Use `create(SubmitPolicyAnalysisRequestSchema)` to create a new message.
760
775
  */
761
- export const SubmitPolicyAnalysisRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 149);
776
+ export const SubmitPolicyAnalysisRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 152);
762
777
  /**
763
778
  * Describes the message openshell.v1.SubmitPolicyAnalysisResponse.
764
779
  * Use `create(SubmitPolicyAnalysisResponseSchema)` to create a new message.
765
780
  */
766
- export const SubmitPolicyAnalysisResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 150);
781
+ export const SubmitPolicyAnalysisResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 153);
767
782
  /**
768
783
  * Describes the message openshell.v1.GetDraftPolicyRequest.
769
784
  * Use `create(GetDraftPolicyRequestSchema)` to create a new message.
770
785
  */
771
- export const GetDraftPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 151);
786
+ export const GetDraftPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 154);
772
787
  /**
773
788
  * Describes the message openshell.v1.GetDraftPolicyResponse.
774
789
  * Use `create(GetDraftPolicyResponseSchema)` to create a new message.
775
790
  */
776
- export const GetDraftPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 152);
791
+ export const GetDraftPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 155);
777
792
  /**
778
793
  * Describes the message openshell.v1.ApproveDraftChunkRequest.
779
794
  * Use `create(ApproveDraftChunkRequestSchema)` to create a new message.
780
795
  */
781
- export const ApproveDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 153);
796
+ export const ApproveDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 156);
782
797
  /**
783
798
  * Describes the message openshell.v1.ApproveDraftChunkResponse.
784
799
  * Use `create(ApproveDraftChunkResponseSchema)` to create a new message.
785
800
  */
786
- export const ApproveDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 154);
801
+ export const ApproveDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 157);
787
802
  /**
788
803
  * Describes the message openshell.v1.RejectDraftChunkRequest.
789
804
  * Use `create(RejectDraftChunkRequestSchema)` to create a new message.
790
805
  */
791
- export const RejectDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 155);
806
+ export const RejectDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 158);
792
807
  /**
793
808
  * Describes the message openshell.v1.RejectDraftChunkResponse.
794
809
  * Use `create(RejectDraftChunkResponseSchema)` to create a new message.
795
810
  */
796
- export const RejectDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 156);
811
+ export const RejectDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 159);
812
+ /**
813
+ * Describes the message openshell.v1.DraftChunkApproval.
814
+ * Use `create(DraftChunkApprovalSchema)` to create a new message.
815
+ */
816
+ export const DraftChunkApprovalSchema = /*@__PURE__*/ messageDesc(file_openshell, 160);
797
817
  /**
798
818
  * Describes the message openshell.v1.ApproveAllDraftChunksRequest.
799
819
  * Use `create(ApproveAllDraftChunksRequestSchema)` to create a new message.
800
820
  */
801
- export const ApproveAllDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 157);
821
+ export const ApproveAllDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 161);
802
822
  /**
803
823
  * Describes the message openshell.v1.ApproveAllDraftChunksResponse.
804
824
  * Use `create(ApproveAllDraftChunksResponseSchema)` to create a new message.
805
825
  */
806
- export const ApproveAllDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 158);
826
+ export const ApproveAllDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 162);
807
827
  /**
808
828
  * Describes the message openshell.v1.EditDraftChunkRequest.
809
829
  * Use `create(EditDraftChunkRequestSchema)` to create a new message.
810
830
  */
811
- export const EditDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 159);
831
+ export const EditDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 163);
812
832
  /**
813
833
  * Describes the message openshell.v1.EditDraftChunkResponse.
814
834
  * Use `create(EditDraftChunkResponseSchema)` to create a new message.
815
835
  */
816
- export const EditDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 160);
836
+ export const EditDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 164);
817
837
  /**
818
838
  * Describes the message openshell.v1.UndoDraftChunkRequest.
819
839
  * Use `create(UndoDraftChunkRequestSchema)` to create a new message.
820
840
  */
821
- export const UndoDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 161);
841
+ export const UndoDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 165);
822
842
  /**
823
843
  * Describes the message openshell.v1.UndoDraftChunkResponse.
824
844
  * Use `create(UndoDraftChunkResponseSchema)` to create a new message.
825
845
  */
826
- export const UndoDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 162);
846
+ export const UndoDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 166);
827
847
  /**
828
848
  * Describes the message openshell.v1.ClearDraftChunksRequest.
829
849
  * Use `create(ClearDraftChunksRequestSchema)` to create a new message.
830
850
  */
831
- export const ClearDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 163);
851
+ export const ClearDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 167);
832
852
  /**
833
853
  * Describes the message openshell.v1.ClearDraftChunksResponse.
834
854
  * Use `create(ClearDraftChunksResponseSchema)` to create a new message.
835
855
  */
836
- export const ClearDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 164);
856
+ export const ClearDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 168);
837
857
  /**
838
858
  * Describes the message openshell.v1.GetDraftHistoryRequest.
839
859
  * Use `create(GetDraftHistoryRequestSchema)` to create a new message.
840
860
  */
841
- export const GetDraftHistoryRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 165);
861
+ export const GetDraftHistoryRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 169);
842
862
  /**
843
863
  * Describes the message openshell.v1.DraftHistoryEntry.
844
864
  * Use `create(DraftHistoryEntrySchema)` to create a new message.
845
865
  */
846
- export const DraftHistoryEntrySchema = /*@__PURE__*/ messageDesc(file_openshell, 166);
866
+ export const DraftHistoryEntrySchema = /*@__PURE__*/ messageDesc(file_openshell, 170);
847
867
  /**
848
868
  * Describes the message openshell.v1.GetDraftHistoryResponse.
849
869
  * Use `create(GetDraftHistoryResponseSchema)` to create a new message.
850
870
  */
851
- export const GetDraftHistoryResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 167);
871
+ export const GetDraftHistoryResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 171);
852
872
  /**
853
873
  * Describes the message openshell.v1.PolicyRevisionPayload.
854
874
  * Use `create(PolicyRevisionPayloadSchema)` to create a new message.
855
875
  */
856
- export const PolicyRevisionPayloadSchema = /*@__PURE__*/ messageDesc(file_openshell, 168);
876
+ export const PolicyRevisionPayloadSchema = /*@__PURE__*/ messageDesc(file_openshell, 172);
857
877
  /**
858
878
  * Describes the message openshell.v1.DraftChunkPayload.
859
879
  * Use `create(DraftChunkPayloadSchema)` to create a new message.
860
880
  */
861
- export const DraftChunkPayloadSchema = /*@__PURE__*/ messageDesc(file_openshell, 169);
881
+ export const DraftChunkPayloadSchema = /*@__PURE__*/ messageDesc(file_openshell, 173);
862
882
  /**
863
883
  * Describes the message openshell.v1.StoredPolicyRevision.
864
884
  * Use `create(StoredPolicyRevisionSchema)` to create a new message.
865
885
  */
866
- export const StoredPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 170);
886
+ export const StoredPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 174);
867
887
  /**
868
888
  * Describes the message openshell.v1.StoredDraftChunk.
869
889
  * Use `create(StoredDraftChunkSchema)` to create a new message.
870
890
  */
871
- export const StoredDraftChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 171);
891
+ export const StoredDraftChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 175);
872
892
  /**
873
893
  * Describes the message openshell.v1.CreateWorkspaceRequest.
874
894
  * Use `create(CreateWorkspaceRequestSchema)` to create a new message.
875
895
  */
876
- export const CreateWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 172);
896
+ export const CreateWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 176);
877
897
  /**
878
898
  * Describes the message openshell.v1.CreateWorkspaceResponse.
879
899
  * Use `create(CreateWorkspaceResponseSchema)` to create a new message.
880
900
  */
881
- export const CreateWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 173);
901
+ export const CreateWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 177);
882
902
  /**
883
903
  * Describes the message openshell.v1.GetWorkspaceRequest.
884
904
  * Use `create(GetWorkspaceRequestSchema)` to create a new message.
885
905
  */
886
- export const GetWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 174);
906
+ export const GetWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 178);
887
907
  /**
888
908
  * Describes the message openshell.v1.GetWorkspaceResponse.
889
909
  * Use `create(GetWorkspaceResponseSchema)` to create a new message.
890
910
  */
891
- export const GetWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 175);
911
+ export const GetWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 179);
892
912
  /**
893
913
  * Describes the message openshell.v1.ListWorkspacesRequest.
894
914
  * Use `create(ListWorkspacesRequestSchema)` to create a new message.
895
915
  */
896
- export const ListWorkspacesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 176);
916
+ export const ListWorkspacesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 180);
897
917
  /**
898
918
  * Describes the message openshell.v1.ListWorkspacesResponse.
899
919
  * Use `create(ListWorkspacesResponseSchema)` to create a new message.
900
920
  */
901
- export const ListWorkspacesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 177);
921
+ export const ListWorkspacesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 181);
902
922
  /**
903
923
  * Describes the message openshell.v1.DeleteWorkspaceRequest.
904
924
  * Use `create(DeleteWorkspaceRequestSchema)` to create a new message.
905
925
  */
906
- export const DeleteWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 178);
926
+ export const DeleteWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 182);
907
927
  /**
908
928
  * Describes the message openshell.v1.DeleteWorkspaceResponse.
909
929
  * Use `create(DeleteWorkspaceResponseSchema)` to create a new message.
910
930
  */
911
- export const DeleteWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 179);
931
+ export const DeleteWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 183);
912
932
  /**
913
933
  * Describes the message openshell.v1.WorkspaceMember.
914
934
  * Use `create(WorkspaceMemberSchema)` to create a new message.
915
935
  */
916
- export const WorkspaceMemberSchema = /*@__PURE__*/ messageDesc(file_openshell, 180);
936
+ export const WorkspaceMemberSchema = /*@__PURE__*/ messageDesc(file_openshell, 184);
917
937
  /**
918
938
  * Describes the message openshell.v1.AddWorkspaceMemberRequest.
919
939
  * Use `create(AddWorkspaceMemberRequestSchema)` to create a new message.
920
940
  */
921
- export const AddWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 181);
941
+ export const AddWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 185);
922
942
  /**
923
943
  * Describes the message openshell.v1.AddWorkspaceMemberResponse.
924
944
  * Use `create(AddWorkspaceMemberResponseSchema)` to create a new message.
925
945
  */
926
- export const AddWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 182);
946
+ export const AddWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 186);
927
947
  /**
928
948
  * Describes the message openshell.v1.RemoveWorkspaceMemberRequest.
929
949
  * Use `create(RemoveWorkspaceMemberRequestSchema)` to create a new message.
930
950
  */
931
- export const RemoveWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 183);
951
+ export const RemoveWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 187);
932
952
  /**
933
953
  * Describes the message openshell.v1.RemoveWorkspaceMemberResponse.
934
954
  * Use `create(RemoveWorkspaceMemberResponseSchema)` to create a new message.
935
955
  */
936
- export const RemoveWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 184);
956
+ export const RemoveWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 188);
937
957
  /**
938
958
  * Describes the message openshell.v1.ListWorkspaceMembersRequest.
939
959
  * Use `create(ListWorkspaceMembersRequestSchema)` to create a new message.
940
960
  */
941
- export const ListWorkspaceMembersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 185);
961
+ export const ListWorkspaceMembersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 189);
942
962
  /**
943
963
  * Describes the message openshell.v1.ListWorkspaceMembersResponse.
944
964
  * Use `create(ListWorkspaceMembersResponseSchema)` to create a new message.
945
965
  */
946
- export const ListWorkspaceMembersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 186);
966
+ export const ListWorkspaceMembersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 190);
947
967
  /**
948
968
  * Describes the message openshell.v1.ExtensionServiceCredential.
949
969
  * Use `create(ExtensionServiceCredentialSchema)` to create a new message.
950
970
  */
951
- export const ExtensionServiceCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 187);
971
+ export const ExtensionServiceCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 191);
952
972
  /**
953
973
  * High-level sandbox lifecycle phase derived by the gateway.
954
974
  *
@@ -1000,6 +1020,31 @@ export var SandboxPhase;
1000
1020
  * Describes the enum openshell.v1.SandboxPhase.
1001
1021
  */
1002
1022
  export const SandboxPhaseSchema = /*@__PURE__*/ enumDesc(file_openshell, 0);
1023
+ /**
1024
+ * Provider credential token grant configuration.
1025
+ * When present, the credential is obtained dynamically via OAuth2 grant when needed.
1026
+ *
1027
+ * @generated from enum openshell.v1.ProviderCredentialTokenGrantType
1028
+ */
1029
+ export var ProviderCredentialTokenGrantType;
1030
+ (function (ProviderCredentialTokenGrantType) {
1031
+ /**
1032
+ * @generated from enum value: PROVIDER_CREDENTIAL_TOKEN_GRANT_TYPE_UNSPECIFIED = 0;
1033
+ */
1034
+ ProviderCredentialTokenGrantType[ProviderCredentialTokenGrantType["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1035
+ /**
1036
+ * @generated from enum value: PROVIDER_CREDENTIAL_TOKEN_GRANT_TYPE_CLIENT_CREDENTIALS = 1;
1037
+ */
1038
+ ProviderCredentialTokenGrantType[ProviderCredentialTokenGrantType["CLIENT_CREDENTIALS"] = 1] = "CLIENT_CREDENTIALS";
1039
+ /**
1040
+ * @generated from enum value: PROVIDER_CREDENTIAL_TOKEN_GRANT_TYPE_TOKEN_EXCHANGE = 2;
1041
+ */
1042
+ ProviderCredentialTokenGrantType[ProviderCredentialTokenGrantType["TOKEN_EXCHANGE"] = 2] = "TOKEN_EXCHANGE";
1043
+ })(ProviderCredentialTokenGrantType || (ProviderCredentialTokenGrantType = {}));
1044
+ /**
1045
+ * Describes the enum openshell.v1.ProviderCredentialTokenGrantType.
1046
+ */
1047
+ export const ProviderCredentialTokenGrantTypeSchema = /*@__PURE__*/ enumDesc(file_openshell, 1);
1003
1048
  /**
1004
1049
  * @generated from enum openshell.v1.ProviderCredentialRefreshStrategy
1005
1050
  */
@@ -1037,7 +1082,7 @@ export var ProviderCredentialRefreshStrategy;
1037
1082
  /**
1038
1083
  * Describes the enum openshell.v1.ProviderCredentialRefreshStrategy.
1039
1084
  */
1040
- export const ProviderCredentialRefreshStrategySchema = /*@__PURE__*/ enumDesc(file_openshell, 1);
1085
+ export const ProviderCredentialRefreshStrategySchema = /*@__PURE__*/ enumDesc(file_openshell, 2);
1041
1086
  /**
1042
1087
  * Stable provider profile categories used by clients for grouping and filtering.
1043
1088
  *
@@ -1081,7 +1126,7 @@ export var ProviderProfileCategory;
1081
1126
  /**
1082
1127
  * Describes the enum openshell.v1.ProviderProfileCategory.
1083
1128
  */
1084
- export const ProviderProfileCategorySchema = /*@__PURE__*/ enumDesc(file_openshell, 2);
1129
+ export const ProviderProfileCategorySchema = /*@__PURE__*/ enumDesc(file_openshell, 3);
1085
1130
  /**
1086
1131
  * Policy load status.
1087
1132
  *
@@ -1121,7 +1166,7 @@ export var PolicyStatus;
1121
1166
  /**
1122
1167
  * Describes the enum openshell.v1.PolicyStatus.
1123
1168
  */
1124
- export const PolicyStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 3);
1169
+ export const PolicyStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 4);
1125
1170
  /**
1126
1171
  * Service status enum.
1127
1172
  *
@@ -1149,7 +1194,7 @@ export var ServiceStatus;
1149
1194
  /**
1150
1195
  * Describes the enum openshell.v1.ServiceStatus.
1151
1196
  */
1152
- export const ServiceStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 4);
1197
+ export const ServiceStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 5);
1153
1198
  /**
1154
1199
  * Workspace-scoped role for members.
1155
1200
  *
@@ -1173,7 +1218,7 @@ export var WorkspaceRole;
1173
1218
  /**
1174
1219
  * Describes the enum openshell.v1.WorkspaceRole.
1175
1220
  */
1176
- export const WorkspaceRoleSchema = /*@__PURE__*/ enumDesc(file_openshell, 5);
1221
+ export const WorkspaceRoleSchema = /*@__PURE__*/ enumDesc(file_openshell, 6);
1177
1222
  /**
1178
1223
  * OpenShell service provides sandbox, provider, and runtime management capabilities.
1179
1224
  *