@silvana-one/orderbook 1.1.18 → 1.1.19

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.
Files changed (31) hide show
  1. package/dist/node/index.cjs +81 -62
  2. package/dist/node/proto/silvana/news/v1/news_pb.js +1 -1
  3. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +180 -2
  4. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +67 -62
  5. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  6. package/dist/node/proto/silvana/pricing/v1/pricing_pb.js +1 -1
  7. package/dist/node/proto/silvana/settlement/v1/settlement_pb.d.ts +75 -0
  8. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js +12 -2
  9. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  10. package/dist/node/settlement.d.ts +12 -1
  11. package/dist/node/settlement.js +11 -1
  12. package/dist/node/settlement.js.map +1 -1
  13. package/dist/tsconfig.tsbuildinfo +1 -1
  14. package/dist/tsconfig.web.tsbuildinfo +1 -1
  15. package/dist/web/proto/silvana/news/v1/news_pb.js +1 -1
  16. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +180 -2
  17. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +67 -62
  18. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  19. package/dist/web/proto/silvana/pricing/v1/pricing_pb.js +1 -1
  20. package/dist/web/proto/silvana/settlement/v1/settlement_pb.d.ts +75 -0
  21. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js +12 -2
  22. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  23. package/dist/web/settlement.d.ts +12 -1
  24. package/dist/web/settlement.js +11 -1
  25. package/dist/web/settlement.js.map +1 -1
  26. package/package.json +4 -4
  27. package/src/proto/silvana/news/v1/news_pb.ts +1 -1
  28. package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +271 -64
  29. package/src/proto/silvana/pricing/v1/pricing_pb.ts +1 -1
  30. package/src/proto/silvana/settlement/v1/settlement_pb.ts +89 -2
  31. package/src/settlement.ts +19 -0
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.10.1 with parameter "target=ts,js_import_style=module"
1
+ // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,js_import_style=module"
2
2
  // @generated from file proto/silvana/orderbook/v1/orderbook.proto (package silvana.orderbook.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
 
@@ -12,16 +12,16 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
12
12
  * Describes the file proto/silvana/orderbook/v1/orderbook.proto.
13
13
  */
14
14
  export const file_proto_silvana_orderbook_v1_orderbook: GenFile = /*@__PURE__*/
15
- fileDesc("Cipwcm90by9zaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIhgKB0pXVEF1dGgSDQoFdG9rZW4YASABKAki+gIKCkluc3RydW1lbnQSFQoNaW5zdHJ1bWVudF9pZBgBIAEoCRIXCg9pbnN0cnVtZW50X3R5cGUYAiABKAkSDAoEbmFtZRgDIAEoCRIOCgZzeW1ib2wYBCABKAkSGAoLZGVzY3JpcHRpb24YBSABKAlIAIgBARITCgZpc3N1ZXIYBiABKAlIAYgBARIVCghyZWdpc3RyeRgHIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC25ld3Nfc3ltYm9sGAsgASgJQg4KDF9kZXNjcmlwdGlvbkIJCgdfaXNzdWVyQgsKCV9yZWdpc3RyeUILCglfbWV0YWRhdGEi3AUKBk1hcmtldBIRCgltYXJrZXRfaWQYASABKAkSNQoLbWFya2V0X3R5cGUYAiABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlEhcKD2Jhc2VfaW5zdHJ1bWVudBgDIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAQgASgJEhMKC3BhaXJfc3ltYm9sGAUgASgJEhEKCWlzX2FjdGl2ZRgGIAEoCBIWCg5taW5fb3JkZXJfc2l6ZRgHIAEoCRIbCg5tYXhfb3JkZXJfc2l6ZRgIIAEoCUgAiAEBEhEKCXRpY2tfc2l6ZRgJIAEoCRIRCgltYWtlcl9mZWUYCiABKAkSEQoJdGFrZXJfZmVlGAsgASgJEi4KCG1ldGFkYXRhGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKC3ByaWNlX2ZlZWRzGA8gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEhoKDWN1cnJlbnRfcHJpY2UYECABKAFIA4gBARIXCgpjaGFuZ2VfMjRoGBEgASgBSASIAQESFwoKdm9sdW1lXzI0aBgSIAEoAUgFiAEBEjkKEHByaWNlX3VwZGF0ZWRfYXQYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAaIAQFCEQoPX21heF9vcmRlcl9zaXplQgsKCV9tZXRhZGF0YUIOCgxfcHJpY2VfZmVlZHNCEAoOX2N1cnJlbnRfcHJpY2VCDQoLX2NoYW5nZV8yNGhCDQoLX3ZvbHVtZV8yNGhCEwoRX3ByaWNlX3VwZGF0ZWRfYXQi9wYKBU9yZGVyEhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoCRIzCgpvcmRlcl90eXBlGAMgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlEg4KBnRyYWRlchgEIAEoCRIdChB0cmFkZXJfb3JkZXJfcmVmGAUgASgJSACIAQESFwoPYmFzZV9pbnN0cnVtZW50GAYgASgJEhgKEHF1b3RlX2luc3RydW1lbnQYByABKAkSDQoFcHJpY2UYCCABKAkSEAoIcXVhbnRpdHkYCSABKAkSFwoPZmlsbGVkX3F1YW50aXR5GAogASgJEhgKEHBlbmRpbmdfcXVhbnRpdHkYCyABKAkSGgoScmVtYWluaW5nX3F1YW50aXR5GAwgASgJEjEKBnN0YXR1cxgNIAEoDjIhLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyU3RhdHVzEjgKDXRpbWVfaW5fZm9yY2UYDiABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5UaW1lSW5Gb3JjZRIzCgpleHBpcmVzX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEg8KB3ZlcnNpb24YECABKAQSMQoLY3JlZGVudGlhbHMYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESMgoMcmVxdWlyZW1lbnRzGBIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCG1ldGFkYXRhGBMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEi4KCmNyZWF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDGNhbmNlbGxlZF9hdBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBAUITChFfdHJhZGVyX29yZGVyX3JlZkINCgtfZXhwaXJlc19hdEIOCgxfY3JlZGVudGlhbHNCDwoNX3JlcXVpcmVtZW50c0ILCglfbWV0YWRhdGFCDwoNX2NhbmNlbGxlZF9hdCKCAQoOT3JkZXJib29rTGV2ZWwSDQoFcHJpY2UYASABKAkSFgoOdG90YWxfcXVhbnRpdHkYAiABKAkSEwoLb3JkZXJfY291bnQYAyABKA0SNAoQZmlyc3Rfb3JkZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi1QEKDk9yZGVyYm9va0RlcHRoEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIyCgRiaWRzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSNAoGb2ZmZXJzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSMQoNc25hcHNob3RfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAipREKElNldHRsZW1lbnRQcm9wb3NhbBITCgtwcm9wb3NhbF9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSDQoFYnV5ZXIYAyABKAkSDgoGc2VsbGVyGAQgASgJEhUKDWJhc2VfcXVhbnRpdHkYBSABKAkSFgoOcXVvdGVfcXVhbnRpdHkYBiABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgHIAEoCRI2CgZzdGF0dXMYCCABKA4yJi5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50U3RhdHVzEg8KB3ZlcnNpb24YCSABKAQSPQoXcHJlY29uZmlybWF0aW9uX3JlcXVlc3QYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESSAofcHJlY29uZmlybWF0aW9uX3JlcXVlc3Rfc2VudF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI7ChVidXllcl9wcmVjb25maXJtYXRpb24YDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESSgohYnV5ZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjwKFnNlbGxlcl9wcmVjb25maXJtYXRpb24YDiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESSwoic2VsbGVyX3ByZWNvbmZpcm1hdGlvbl9yZWNlaXZlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIdChBkdnBfcHJvcG9zYWxfY2lkGBAgASgJSAaIAQESIwoWZHZwX3Byb3Bvc2FsX3VwZGF0ZV9pZBgRIAEoCUgHiAEBEhQKB2R2cF9jaWQYEiABKAlICIgBARIaCg1kdnBfdXBkYXRlX2lkGBMgASgJSAmIAQESHgoRZHZwX3NldHRsZW1lbnRfaWQYFCABKAlICogBARIhChRhbGxvY2F0aW9uX2J1eWVyX2NpZBgVIAEoCUgLiAEBEicKGmFsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkGBYgASgJSAyIAQESIgoVYWxsb2NhdGlvbl9zZWxsZXJfY2lkGBcgASgJSA2IAQESKAobYWxsb2NhdGlvbl9zZWxsZXJfdXBkYXRlX2lkGBggASgJSA6IAQESHAoPc2V0dGxlZF9kdnBfY2lkGBkgASgJSA+IAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYGiABKAlIEIgBARIpChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GBsgASgJSBGIAQESLgoKY3JlYXRlZF9hdBgcIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoPcHJlY29uZmlybWVkX2F0GB0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgSiAEBEjcKDmR2cF9jcmVhdGVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgTiAEBEjgKD2R2cF9hY2NlcHRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFIgBARI1CgxhbGxvY2F0ZWRfYXQYICABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBWIAQESMwoKc2V0dGxlZF9hdBghIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFogBARI1CgxjYW5jZWxsZWRfYXQYIiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBeIAQESMgoJZmFpbGVkX2F0GCMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgYiAEBEhoKDWVycm9yX21lc3NhZ2UYJCABKAlIGYgBARIuCghtZXRhZGF0YRglIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIGogBAUIaChhfcHJlY29uZmlybWF0aW9uX3JlcXVlc3RCIgogX3ByZWNvbmZpcm1hdGlvbl9yZXF1ZXN0X3NlbnRfYXRCGAoWX2J1eWVyX3ByZWNvbmZpcm1hdGlvbkIkCiJfYnV5ZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0QhkKF19zZWxsZXJfcHJlY29uZmlybWF0aW9uQiUKI19zZWxsZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0QhMKEV9kdnBfcHJvcG9zYWxfY2lkQhkKF19kdnBfcHJvcG9zYWxfdXBkYXRlX2lkQgoKCF9kdnBfY2lkQhAKDl9kdnBfdXBkYXRlX2lkQhQKEl9kdnBfc2V0dGxlbWVudF9pZEIXChVfYWxsb2NhdGlvbl9idXllcl9jaWRCHQobX2FsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWRCHgocX2FsbG9jYXRpb25fc2VsbGVyX3VwZGF0ZV9pZEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZEIfCh1fc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldEISChBfcHJlY29uZmlybWVkX2F0QhEKD19kdnBfY3JlYXRlZF9hdEISChBfZHZwX2FjY2VwdGVkX2F0Qg8KDV9hbGxvY2F0ZWRfYXRCDQoLX3NldHRsZWRfYXRCDwoNX2NhbmNlbGxlZF9hdEIMCgpfZmFpbGVkX2F0QhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YSLNAQoKT3JkZXJNYXRjaBIQCghtYXRjaF9pZBgBIAEoBBIeChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAIgASgEEhQKDGJpZF9vcmRlcl9pZBgDIAEoBBIWCg5vZmZlcl9vcmRlcl9pZBgEIAEoBBIYChBtYXRjaGVkX3F1YW50aXR5GAUgASgJEhUKDW1hdGNoZWRfcHJpY2UYBiABKAkSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAihwMKClNldHRsZW1lbnQSFQoNc2V0dGxlbWVudF9pZBgBIAEoBBITCgtwcm9wb3NhbF9pZBgCIAEoBBIRCgltYXJrZXRfaWQYAyABKAkSDQoFYnV5ZXIYBCABKAkSDgoGc2VsbGVyGAUgASgJEhUKDWJhc2VfcXVhbnRpdHkYBiABKAkSFgoOcXVvdGVfcXVhbnRpdHkYByABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgIIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYCSABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYCiABKAkSLgoKc2V0dGxlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoIbWV0YWRhdGEYDSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCwoJX21ldGFkYXRhIpUCCgpNYXJrZXREYXRhEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIVCghiZXN0X2JpZBgDIAEoCUgAiAEBEhcKCmJlc3Rfb2ZmZXIYBCABKAlIAYgBARIXCgpsYXN0X3ByaWNlGAUgASgJSAKIAQESEgoKdm9sdW1lXzI0aBgGIAEoCRISCgp0cmFkZXNfMjRoGAcgASgNEhMKC29wZW5fb3JkZXJzGAggASgNEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9iZXN0X2JpZEINCgtfYmVzdF9vZmZlckINCgtfbGFzdF9wcmljZSKvAgoQR2V0T3JkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI2CgZzdGF0dXMYAyABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1c0gBiAEBEjgKCm9yZGVyX3R5cGUYBCABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGVIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCCQoHX3N0YXR1c0INCgtfb3JkZXJfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldCJxChFHZXRPcmRlcnNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGb3JkZXJzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISDQoFdG90YWwYBCABKA0ieAoYR2V0T3JkZXJib29rRGVwdGhSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRISCgVkZXB0aBgDIAEoDUgAiAEBQggKBl9kZXB0aCJ2ChlHZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI3CglvcmRlcmJvb2sYAyABKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tEZXB0aCL4AQodR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESOwoGc3RhdHVzGAMgASgOMiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFN0YXR1c0gBiAEBEhIKBWxpbWl0GAQgASgNSAKIAQESEwoGb2Zmc2V0GAUgASgNSAOIAQFCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQggKBl9saW1pdEIJCgdfb2Zmc2V0Io4BCh5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjsKCXByb3Bvc2FscxgDIAMoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBINCgV0b3RhbBgEIAEoDSJgChxHZXRTZXR0bGVtZW50UHJvcG9zYWxSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgEIo8BCh1HZXRTZXR0bGVtZW50UHJvcG9zYWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSPwoIcHJvcG9zYWwYAyABKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWxIAIgBAUILCglfcHJvcG9zYWwitAEKFUdldEluc3RydW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIcCg9pbnN0cnVtZW50X3R5cGUYAiABKAlIAIgBARISCgVsaW1pdBgDIAEoDUgBiAEBEhMKBm9mZnNldBgEIAEoDUgCiAEBQhIKEF9pbnN0cnVtZW50X3R5cGVCCAoGX2xpbWl0QgkKB19vZmZzZXQigAEKFkdldEluc3RydW1lbnRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC2luc3RydW1lbnRzGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuSW5zdHJ1bWVudBINCgV0b3RhbBgEIAEoDSLaAgoRR2V0TWFya2V0c1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSOgoLbWFya2V0X3R5cGUYAiABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlSACIAQESHAoPYmFzZV9pbnN0cnVtZW50GAMgASgJSAGIAQESHQoQcXVvdGVfaW5zdHJ1bWVudBgEIAEoCUgCiAEBEhgKC2FjdGl2ZV9vbmx5GAUgASgISAOIAQESEgoFbGltaXQYBiABKA1IBIgBARITCgZvZmZzZXQYByABKA1IBYgBAUIOCgxfbWFya2V0X3R5cGVCEgoQX2Jhc2VfaW5zdHJ1bWVudEITChFfcXVvdGVfaW5zdHJ1bWVudEIOCgxfYWN0aXZlX29ubHlCCAoGX2xpbWl0QgkKB19vZmZzZXQidAoSR2V0TWFya2V0c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRItCgdtYXJrZXRzGAMgAygLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0Eg0KBXRvdGFsGAQgASgNIqkCChZHZXRPcmRlckhpc3RvcnlSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjIKCWZyb21fdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIwCgd0b190aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhIKBWxpbWl0GAUgASgNSAOIAQESEwoGb2Zmc2V0GAYgASgNSASIAQFCDAoKX21hcmtldF9pZEIMCgpfZnJvbV90aW1lQgoKCF90b190aW1lQggKBl9saW1pdEIJCgdfb2Zmc2V0IncKF0dldE9yZGVySGlzdG9yeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIrCgZvcmRlcnMYAyADKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlchINCgV0b3RhbBgEIAEoDSJXChRHZXRNYXJrZXREYXRhUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBISCgptYXJrZXRfaWRzGAIgAygJInAKFUdldE1hcmtldERhdGFSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLbWFya2V0X2RhdGEYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXREYXRhIqgCChVHZXRTZXR0bGVtZW50c1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESMgoJZnJvbV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjAKB3RvX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBAUIMCgpfbWFya2V0X2lkQgwKCl9mcm9tX3RpbWVCCgoIX3RvX3RpbWVCCAoGX2xpbWl0QgkKB19vZmZzZXQigAEKFkdldFNldHRsZW1lbnRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC3NldHRsZW1lbnRzGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudBINCgV0b3RhbBgEIAEoDSJ5ChlTdWJzY3JpYmVPcmRlcmJvb2tSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRISCgVkZXB0aBgDIAEoDUgAiAEBQggKBl9kZXB0aCKHAwoPT3JkZXJib29rVXBkYXRlEhEKCW1hcmtldF9pZBgBIAEoCRJFCgt1cGRhdGVfdHlwZRgCIAEoDjIwLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va1VwZGF0ZS5VcGRhdGVUeXBlEjkKC2JpZF91cGRhdGVzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSOwoNb2ZmZXJfdXBkYXRlcxgEIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEi0KCXRpbWVzdGFtcBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoPc2VxdWVuY2VfbnVtYmVyGAYgASgEIloKClVwZGF0ZVR5cGUSGwoXVVBEQVRFX1RZUEVfVU5TUEVDSUZJRUQQABIYChRVUERBVEVfVFlQRV9TTkFQU0hPVBABEhUKEVVQREFURV9UWVBFX0RFTFRBEAIiawoWU3Vic2NyaWJlT3JkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBAUIMCgpfbWFya2V0X2lkIq0DCgtPcmRlclVwZGF0ZRI/CgpldmVudF90eXBlGAEgASgOMisuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJVcGRhdGUuRXZlbnRUeXBlEioKBW9yZGVyGAIgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISNAoFbWF0Y2gYAyABKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlck1hdGNoSACIAQESLQoJdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLBAQoJRXZlbnRUeXBlEhoKFkVWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIWChJFVkVOVF9UWVBFX0NSRUFURUQQARIWChJFVkVOVF9UWVBFX1VQREFURUQQAhIVChFFVkVOVF9UWVBFX0ZJTExFRBADEh8KG0VWRU5UX1RZUEVfUEFSVElBTExZX0ZJTExFRBAEEhgKFEVWRU5UX1RZUEVfQ0FOQ0VMTEVEEAUSFgoSRVZFTlRfVFlQRV9FWFBJUkVEEAZCCAoGX21hdGNoInAKG1N1YnNjcmliZVNldHRsZW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBAUIMCgpfbWFya2V0X2lkIokEChBTZXR0bGVtZW50VXBkYXRlEkQKCmV2ZW50X3R5cGUYASABKA4yMC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50VXBkYXRlLkV2ZW50VHlwZRI6Cghwcm9wb3NhbBgCIAEoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBItCgl0aW1lc3RhbXAYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsMCCglFdmVudFR5cGUSGgoWRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEh8KG0VWRU5UX1RZUEVfUFJPUE9TQUxfQ1JFQVRFRBABEigKJEVWRU5UX1RZUEVfUFJFQ09ORklSTUFUSU9OX1JFUVVFU1RFRBACEhsKF0VWRU5UX1RZUEVfUFJFQ09ORklSTUVEEAMSGgoWRVZFTlRfVFlQRV9EVlBfQ1JFQVRFRBAEEhsKF0VWRU5UX1RZUEVfRFZQX0FDQ0VQVEVEEAUSGAoURVZFTlRfVFlQRV9BTExPQ0FURUQQBhIWChJFVkVOVF9UWVBFX1NFVFRMRUQQBxIVChFFVkVOVF9UWVBFX0ZBSUxFRBAIEhgKFEVWRU5UX1RZUEVfQ0FOQ0VMTEVEEAkSFgoSRVZFTlRfVFlQRV9VUERBVEVEEAoioQQKElN1Ym1pdE9yZGVyUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRINCgVwcmljZRgEIAEoCRIQCghxdWFudGl0eRgFIAEoCRI4Cg10aW1lX2luX2ZvcmNlGAYgASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIdChB0cmFkZXJfb3JkZXJfcmVmGAggASgJSAGIAQESMQoLY3JlZGVudGlhbHMYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESMgoMcmVxdWlyZW1lbnRzGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQg0KC19leHBpcmVzX2F0QhMKEV90cmFkZXJfb3JkZXJfcmVmQg4KDF9jcmVkZW50aWFsc0IPCg1fcmVxdWlyZW1lbnRzQgsKCV9tZXRhZGF0YSJyChNTdWJtaXRPcmRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIvCgVvcmRlchgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVySACIAQFCCAoGX29yZGVyIlMKEkNhbmNlbE9yZGVyUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghvcmRlcl9pZBgCIAEoBCJyChNDYW5jZWxPcmRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIvCgVvcmRlchgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVySACIAQFCCAoGX29yZGVyIpYDChJDcmVhdGVQYXJ0eVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSEgoKcGFydHlfbmFtZRgDIAEoCRISCgpwYXJ0eV90eXBlGAQgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBSABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAYgASgJSAGIAQESLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESJQoYdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkGAggASgJSAOIAQESKgoJdXNlcl9kYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGFCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZCJjChNDcmVhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5IvEDChJVcGRhdGVQYXJ0eVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgDIAEoBBIXCgpwYXJ0eV9uYW1lGAQgASgJSACIAQESHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgBiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAogBARIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYByABKAlIA4gBARIvCgl1c2VyX2RhdGEYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESLgoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESGgoNY2hhbmdlX3JlYXNvbhgKIAEoCUgGiAEBQg0KC19wYXJ0eV9uYW1lQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQhsKGV91c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWRCDAoKX3VzZXJfZGF0YUILCglfbWV0YWRhdGFCEAoOX2NoYW5nZV9yZWFzb24iYwoTVXBkYXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSKIAQoWRGVhY3RpdmF0ZVBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRIYChBleHBlY3RlZF92ZXJzaW9uGAMgASgEEhUKDWNoYW5nZV9yZWFzb24YBCABKAkiZwoXRGVhY3RpdmF0ZVBhcnR5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEioKBXBhcnR5GAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHkilQEKFkdldFBhcnR5SGlzdG9yeVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSEgoFbGltaXQYAyABKA1IAIgBARITCgZvZmZzZXQYBCABKA1IAYgBAUIICgZfbGltaXRCCQoHX29mZnNldCKBAgoRUGFydHlIaXN0b3J5RW50cnkSEgoKaGlzdG9yeV9pZBgBIAEoBBIQCghwYXJ0eV9pZBgCIAEoCRIOCgZhY3Rpb24YAyABKAkSEgoKY2hhbmdlZF9ieRgEIAEoCRIaCg1jaGFuZ2VfcmVhc29uGAUgASgJSACIAQESDwoHdmVyc2lvbhgGIAEoBBIzCg5wYXJ0eV9zbmFwc2hvdBgHIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5Ei4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9jaGFuZ2VfcmVhc29uIoQBChdHZXRQYXJ0eUhpc3RvcnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSOAoHaGlzdG9yeRgDIAMoCzInLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5SGlzdG9yeUVudHJ5Eg0KBXRvdGFsGAQgASgNIlAKD0dldFBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCSJgChBHZXRQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5ItABChFHZXRQYXJ0aWVzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIXCgpwYXJ0eV90eXBlGAIgASgJSACIAQESGAoLYWN0aXZlX29ubHkYAyABKAhIAYgBARISCgVsaW1pdBgEIAEoDUgCiAEBEhMKBm9mZnNldBgFIAEoDUgDiAEBQg0KC19wYXJ0eV90eXBlQg4KDF9hY3RpdmVfb25seUIICgZfbGltaXRCCQoHX29mZnNldCJzChJHZXRQYXJ0aWVzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKB3BhcnRpZXMYAyADKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eRINCgV0b3RhbBgEIAEoDSLgAwoFUGFydHkSEAoIcGFydHlfaWQYASABKAkSEgoKcGFydHlfbmFtZRgCIAEoCRISCgpwYXJ0eV90eXBlGAMgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBCABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAUgASgJSAGIAQESEQoJaXNfYWN0aXZlGAYgASgIEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKGHVzZXJfc2VydmljZV9yZXF1ZXN0X2NpZBgKIAEoCUgDiAEBEioKCXVzZXJfZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHdmVyc2lvbhgMIAEoBEITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGFCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZCLUAgoXQ3JlYXRlSW5zdHJ1bWVudFJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFQoNaW5zdHJ1bWVudF9pZBgCIAEoCRIXCg9pbnN0cnVtZW50X3R5cGUYAyABKAkSDAoEbmFtZRgEIAEoCRIOCgZzeW1ib2wYBSABKAkSGAoLZGVzY3JpcHRpb24YBiABKAlIAIgBARITCgZpc3N1ZXIYByABKAlIAYgBARIVCghyZWdpc3RyeRgIIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhMKC25ld3Nfc3ltYm9sGAogASgJQg4KDF9kZXNjcmlwdGlvbkIJCgdfaXNzdWVyQgsKCV9yZWdpc3RyeUILCglfbWV0YWRhdGEicgoYQ3JlYXRlSW5zdHJ1bWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI0CgppbnN0cnVtZW50GAMgASgLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuSW5zdHJ1bWVudCLzAwoTQ3JlYXRlTWFya2V0UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSNQoLbWFya2V0X3R5cGUYAyABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlEhwKD2Jhc2VfaW5zdHJ1bWVudBgEIAEoCUgAiAEBEh0KEHF1b3RlX2luc3RydW1lbnQYBSABKAlIAYgBARIWCg5taW5fb3JkZXJfc2l6ZRgGIAEoCRIbCg5tYXhfb3JkZXJfc2l6ZRgHIAEoCUgCiAEBEhEKCXRpY2tfc2l6ZRgIIAEoCRIRCgltYWtlcl9mZWUYCSABKAkSEQoJdGFrZXJfZmVlGAogASgJEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEjEKC3ByaWNlX2ZlZWRzGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQhIKEF9iYXNlX2luc3RydW1lbnRCEwoRX3F1b3RlX2luc3RydW1lbnRCEQoPX21heF9vcmRlcl9zaXplQgsKCV9tZXRhZGF0YUIOCgxfcHJpY2VfZmVlZHMiZgoUQ3JlYXRlTWFya2V0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKBm1hcmtldBgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldCKNAQodVXBkYXRlTWFya2V0UHJpY2VGZWVkc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEiwKC3ByaWNlX2ZlZWRzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJwCh5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKBm1hcmtldBgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldCpRCglPcmRlclR5cGUSGgoWT1JERVJfVFlQRV9VTlNQRUNJRklFRBAAEhIKDk9SREVSX1RZUEVfQklEEAESFAoQT1JERVJfVFlQRV9PRkZFUhACKq0BCgtPcmRlclN0YXR1cxIcChhPUkRFUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIXChNPUkRFUl9TVEFUVVNfQUNUSVZFEAESGAoUT1JERVJfU1RBVFVTX1BBUlRJQUwQAhIXChNPUkRFUl9TVEFUVVNfRklMTEVEEAMSGgoWT1JERVJfU1RBVFVTX0NBTkNFTExFRBAEEhgKFE9SREVSX1NUQVRVU19FWFBJUkVEEAUqiAEKC1RpbWVJbkZvcmNlEh0KGVRJTUVfSU5fRk9SQ0VfVU5TUEVDSUZJRUQQABIVChFUSU1FX0lOX0ZPUkNFX0dUQxABEhUKEVRJTUVfSU5fRk9SQ0VfSU9DEAISFQoRVElNRV9JTl9GT1JDRV9GT0sQAxIVChFUSU1FX0lOX0ZPUkNFX0dURBAEKtoCChBTZXR0bGVtZW50U3RhdHVzEiEKHVNFVFRMRU1FTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHQoZU0VUVExFTUVOVF9TVEFUVVNfQ1JFQVRFRBABEiIKHlNFVFRMRU1FTlRfU1RBVFVTX1BSRUNPTkZJUk1FRBACEikKJVNFVFRMRU1FTlRfU1RBVFVTX0RWUF9SRVFVRVNUX0NSRUFURUQQAxIqCiZTRVRUTEVNRU5UX1NUQVRVU19EVlBfUkVRVUVTVF9BQ0NFUFRFRBAEEisKJ1NFVFRMRU1FTlRfU1RBVFVTX0lOU1RSVU1FTlRTX0FMTE9DQVRFRBAFEh0KGVNFVFRMRU1FTlRfU1RBVFVTX1NFVFRMRUQQBhIfChtTRVRUTEVNRU5UX1NUQVRVU19DQU5DRUxMRUQQBxIcChhTRVRUTEVNRU5UX1NUQVRVU19GQUlMRUQQCCp2CgpNYXJrZXRUeXBlEhsKF01BUktFVF9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTTUFSS0VUX1RZUEVfR0VORVJBTBABEh0KGU1BUktFVF9UWVBFX0lOU1RJVFVUSU9OQUwQAhITCg9NQVJLRVRfVFlQRV9PVEMQAzLbEwoQT3JkZXJib29rU2VydmljZRJcCglHZXRPcmRlcnMSJi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcnNSZXF1ZXN0Gicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJzUmVzcG9uc2USdAoRR2V0T3JkZXJib29rRGVwdGgSLi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcmJvb2tEZXB0aFJlcXVlc3QaLy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEoMBChZHZXRTZXR0bGVtZW50UHJvcG9zYWxzEjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QaNC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USgAEKFUdldFNldHRsZW1lbnRQcm9wb3NhbBIyLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbFJlcXVlc3QaMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxSZXNwb25zZRJrCg5HZXRJbnN0cnVtZW50cxIrLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEluc3RydW1lbnRzUmVxdWVzdBosLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEluc3RydW1lbnRzUmVzcG9uc2USXwoKR2V0TWFya2V0cxInLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldHNSZXF1ZXN0Giguc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0c1Jlc3BvbnNlEm4KD0dldE9yZGVySGlzdG9yeRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVySGlzdG9yeVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlckhpc3RvcnlSZXNwb25zZRJoCg1HZXRNYXJrZXREYXRhEiouc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0RGF0YVJlcXVlc3QaKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXREYXRhUmVzcG9uc2USawoOR2V0U2V0dGxlbWVudHMSKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50c1JlcXVlc3QaLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50c1Jlc3BvbnNlEmIKC1N1Ym1pdE9yZGVyEiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU3VibWl0T3JkZXJSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuU3VibWl0T3JkZXJSZXNwb25zZRJiCgtDYW5jZWxPcmRlchIoLnNpbHZhbmEub3JkZXJib29rLnYxLkNhbmNlbE9yZGVyUmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLkNhbmNlbE9yZGVyUmVzcG9uc2USWQoIR2V0UGFydHkSJS5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eVJlcXVlc3QaJi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eVJlc3BvbnNlEl8KCkdldFBhcnRpZXMSJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0aWVzUmVxdWVzdBooLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnRpZXNSZXNwb25zZRJiCgtDcmVhdGVQYXJ0eRIoLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZVBhcnR5UmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZVBhcnR5UmVzcG9uc2USYgoLVXBkYXRlUGFydHkSKC5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVQYXJ0eVJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVQYXJ0eVJlc3BvbnNlEm4KD0RlYWN0aXZhdGVQYXJ0eRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkRlYWN0aXZhdGVQYXJ0eVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5EZWFjdGl2YXRlUGFydHlSZXNwb25zZRJuCg9HZXRQYXJ0eUhpc3RvcnkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eUhpc3RvcnlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlIaXN0b3J5UmVzcG9uc2UScQoQQ3JlYXRlSW5zdHJ1bWVudBItLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZUluc3RydW1lbnRSZXF1ZXN0Gi4uc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlSW5zdHJ1bWVudFJlc3BvbnNlEmUKDENyZWF0ZU1hcmtldBIpLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZU1hcmtldFJlcXVlc3QaKi5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVNYXJrZXRSZXNwb25zZRKDAQoWVXBkYXRlTWFya2V0UHJpY2VGZWVkcxIzLnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXF1ZXN0GjQuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlTWFya2V0UHJpY2VGZWVkc1Jlc3BvbnNlEm4KElN1YnNjcmliZU9yZGVyYm9vaxIvLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZU9yZGVyYm9va1JlcXVlc3QaJS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tVcGRhdGUwARJkCg9TdWJzY3JpYmVPcmRlcnMSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVPcmRlcnNSZXF1ZXN0GiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJVcGRhdGUwARJzChRTdWJzY3JpYmVTZXR0bGVtZW50cxIxLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZVNldHRsZW1lbnRzUmVxdWVzdBomLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRVcGRhdGUwAUI0WjJnaXRodWIuY29tL1NpbHZhbmFPbmUvY2FudG9uLWFnZW50L3Byb3RvO29yZGVyYm9va2IGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
15
+ fileDesc("Cipwcm90by9zaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIhgKB0pXVEF1dGgSDQoFdG9rZW4YASABKAkiQQoMRXh0ZXJuYWxBdXRoEgsKA2p3dBgBIAEoCRIQCghwYXJ0eV9pZBgCIAEoCRISCgpwdWJsaWNfa2V5GAMgASgJIvoCCgpJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAIgASgJEgwKBG5hbWUYAyABKAkSDgoGc3ltYm9sGAQgASgJEhgKC2Rlc2NyaXB0aW9uGAUgASgJSACIAQESEwoGaXNzdWVyGAYgASgJSAGIAQESFQoIcmVnaXN0cnkYByABKAlIAogBARIuCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtuZXdzX3N5bWJvbBgLIAEoCUIOCgxfZGVzY3JpcHRpb25CCQoHX2lzc3VlckILCglfcmVnaXN0cnlCCwoJX21ldGFkYXRhItwFCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgJEjUKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZRIXCg9iYXNlX2luc3RydW1lbnQYAyABKAkSGAoQcXVvdGVfaW5zdHJ1bWVudBgEIAEoCRITCgtwYWlyX3N5bWJvbBgFIAEoCRIRCglpc19hY3RpdmUYBiABKAgSFgoObWluX29yZGVyX3NpemUYByABKAkSGwoObWF4X29yZGVyX3NpemUYCCABKAlIAIgBARIRCgl0aWNrX3NpemUYCSABKAkSEQoJbWFrZXJfZmVlGAogASgJEhEKCXRha2VyX2ZlZRgLIAEoCRIuCghtZXRhZGF0YRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIuCgpjcmVhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCgtwcmljZV9mZWVkcxgPIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIaCg1jdXJyZW50X3ByaWNlGBAgASgBSAOIAQESFwoKY2hhbmdlXzI0aBgRIAEoAUgEiAEBEhcKCnZvbHVtZV8yNGgYEiABKAFIBYgBARI5ChBwcmljZV91cGRhdGVkX2F0GBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBQhEKD19tYXhfb3JkZXJfc2l6ZUILCglfbWV0YWRhdGFCDgoMX3ByaWNlX2ZlZWRzQhAKDl9jdXJyZW50X3ByaWNlQg0KC19jaGFuZ2VfMjRoQg0KC192b2x1bWVfMjRoQhMKEV9wcmljZV91cGRhdGVkX2F0IvcGCgVPcmRlchIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRIOCgZ0cmFkZXIYBCABKAkSHQoQdHJhZGVyX29yZGVyX3JlZhgFIAEoCUgAiAEBEhcKD2Jhc2VfaW5zdHJ1bWVudBgGIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAcgASgJEg0KBXByaWNlGAggASgJEhAKCHF1YW50aXR5GAkgASgJEhcKD2ZpbGxlZF9xdWFudGl0eRgKIAEoCRIYChBwZW5kaW5nX3F1YW50aXR5GAsgASgJEhoKEnJlbWFpbmluZ19xdWFudGl0eRgMIAEoCRIxCgZzdGF0dXMYDSABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1cxI4Cg10aW1lX2luX2ZvcmNlGA4gASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIPCgd2ZXJzaW9uGBAgASgEEjEKC2NyZWRlbnRpYWxzGBEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDHJlcXVpcmVtZW50cxgSIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCghtZXRhZGF0YRgTIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIuCgpjcmVhdGVkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1CgxjYW5jZWxsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQFCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDQoLX2V4cGlyZXNfYXRCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhQg8KDV9jYW5jZWxsZWRfYXQiggEKDk9yZGVyYm9va0xldmVsEg0KBXByaWNlGAEgASgJEhYKDnRvdGFsX3F1YW50aXR5GAIgASgJEhMKC29yZGVyX2NvdW50GAMgASgNEjQKEGZpcnN0X29yZGVyX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItUBCg5PcmRlcmJvb2tEZXB0aBIRCgltYXJrZXRfaWQYASABKAkSEwoLcGFpcl9zeW1ib2wYAiABKAkSMgoEYmlkcxgDIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEjQKBm9mZmVycxgEIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEjEKDXNuYXBzaG90X3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIrsRChJTZXR0bGVtZW50UHJvcG9zYWwSEwoLcHJvcG9zYWxfaWQYASABKAQSFAoMcmVmZXJlbmNlX2lkGCYgASgJEhEKCW1hcmtldF9pZBgCIAEoCRINCgVidXllchgDIAEoCRIOCgZzZWxsZXIYBCABKAkSFQoNYmFzZV9xdWFudGl0eRgFIAEoCRIWCg5xdW90ZV9xdWFudGl0eRgGIAEoCRIYChBzZXR0bGVtZW50X3ByaWNlGAcgASgJEjYKBnN0YXR1cxgIIAEoDjImLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRTdGF0dXMSDwoHdmVyc2lvbhgJIAEoBBI9ChdwcmVjb25maXJtYXRpb25fcmVxdWVzdBgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARJICh9wcmVjb25maXJtYXRpb25fcmVxdWVzdF9zZW50X2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjsKFWJ1eWVyX3ByZWNvbmZpcm1hdGlvbhgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARJKCiFidXllcl9wcmVjb25maXJtYXRpb25fcmVjZWl2ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAOIAQESPAoWc2VsbGVyX3ByZWNvbmZpcm1hdGlvbhgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARJLCiJzZWxsZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEh0KEGR2cF9wcm9wb3NhbF9jaWQYECABKAlIBogBARIjChZkdnBfcHJvcG9zYWxfdXBkYXRlX2lkGBEgASgJSAeIAQESFAoHZHZwX2NpZBgSIAEoCUgIiAEBEhoKDWR2cF91cGRhdGVfaWQYEyABKAlICYgBARIeChFkdnBfc2V0dGxlbWVudF9pZBgUIAEoCUgKiAEBEiEKFGFsbG9jYXRpb25fYnV5ZXJfY2lkGBUgASgJSAuIAQESJwoaYWxsb2NhdGlvbl9idXllcl91cGRhdGVfaWQYFiABKAlIDIgBARIiChVhbGxvY2F0aW9uX3NlbGxlcl9jaWQYFyABKAlIDYgBARIoChthbGxvY2F0aW9uX3NlbGxlcl91cGRhdGVfaWQYGCABKAlIDogBARIcCg9zZXR0bGVkX2R2cF9jaWQYGSABKAlID4gBARIhChRzZXR0bGVtZW50X3VwZGF0ZV9pZBgaIAEoCUgQiAEBEikKHHNldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXQYGyABKAlIEYgBARIuCgpjcmVhdGVkX2F0GBwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI4Cg9wcmVjb25maXJtZWRfYXQYHSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBKIAQESNwoOZHZwX2NyZWF0ZWRfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBOIAQESOAoPZHZwX2FjY2VwdGVkX2F0GB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgUiAEBEjUKDGFsbG9jYXRlZF9hdBggIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFYgBARIzCgpzZXR0bGVkX2F0GCEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgWiAEBEjUKDGNhbmNlbGxlZF9hdBgiIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIF4gBARIyCglmYWlsZWRfYXQYIyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBiIAQESGgoNZXJyb3JfbWVzc2FnZRgkIAEoCUgZiAEBEi4KCG1ldGFkYXRhGCUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgaiAEBQhoKGF9wcmVjb25maXJtYXRpb25fcmVxdWVzdEIiCiBfcHJlY29uZmlybWF0aW9uX3JlcXVlc3Rfc2VudF9hdEIYChZfYnV5ZXJfcHJlY29uZmlybWF0aW9uQiQKIl9idXllcl9wcmVjb25maXJtYXRpb25fcmVjZWl2ZWRfYXRCGQoXX3NlbGxlcl9wcmVjb25maXJtYXRpb25CJQojX3NlbGxlcl9wcmVjb25maXJtYXRpb25fcmVjZWl2ZWRfYXRCEwoRX2R2cF9wcm9wb3NhbF9jaWRCGQoXX2R2cF9wcm9wb3NhbF91cGRhdGVfaWRCCgoIX2R2cF9jaWRCEAoOX2R2cF91cGRhdGVfaWRCFAoSX2R2cF9zZXR0bGVtZW50X2lkQhcKFV9hbGxvY2F0aW9uX2J1eWVyX2NpZEIdChtfYWxsb2NhdGlvbl9idXllcl91cGRhdGVfaWRCGAoWX2FsbG9jYXRpb25fc2VsbGVyX2NpZEIeChxfYWxsb2NhdGlvbl9zZWxsZXJfdXBkYXRlX2lkQhIKEF9zZXR0bGVkX2R2cF9jaWRCFwoVX3NldHRsZW1lbnRfdXBkYXRlX2lkQh8KHV9zZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0QhIKEF9wcmVjb25maXJtZWRfYXRCEQoPX2R2cF9jcmVhdGVkX2F0QhIKEF9kdnBfYWNjZXB0ZWRfYXRCDwoNX2FsbG9jYXRlZF9hdEINCgtfc2V0dGxlZF9hdEIPCg1fY2FuY2VsbGVkX2F0QgwKCl9mYWlsZWRfYXRCEAoOX2Vycm9yX21lc3NhZ2VCCwoJX21ldGFkYXRhIs0BCgpPcmRlck1hdGNoEhAKCG1hdGNoX2lkGAEgASgEEh4KFnNldHRsZW1lbnRfcHJvcG9zYWxfaWQYAiABKAQSFAoMYmlkX29yZGVyX2lkGAMgASgEEhYKDm9mZmVyX29yZGVyX2lkGAQgASgEEhgKEG1hdGNoZWRfcXVhbnRpdHkYBSABKAkSFQoNbWF0Y2hlZF9wcmljZRgGIAEoCRIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKHAwoKU2V0dGxlbWVudBIVCg1zZXR0bGVtZW50X2lkGAEgASgEEhMKC3Byb3Bvc2FsX2lkGAIgASgEEhEKCW1hcmtldF9pZBgDIAEoCRINCgVidXllchgEIAEoCRIOCgZzZWxsZXIYBSABKAkSFQoNYmFzZV9xdWFudGl0eRgGIAEoCRIWCg5xdW90ZV9xdWFudGl0eRgHIAEoCRIYChBzZXR0bGVtZW50X3ByaWNlGAggASgJEhcKD3NldHRsZWRfZHZwX2NpZBgJIAEoCRIcChRzZXR0bGVtZW50X3VwZGF0ZV9pZBgKIAEoCRIuCgpzZXR0bGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjcmVhdGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCghtZXRhZGF0YRgNIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUILCglfbWV0YWRhdGEilQIKCk1hcmtldERhdGESEQoJbWFya2V0X2lkGAEgASgJEhMKC3BhaXJfc3ltYm9sGAIgASgJEhUKCGJlc3RfYmlkGAMgASgJSACIAQESFwoKYmVzdF9vZmZlchgEIAEoCUgBiAEBEhcKCmxhc3RfcHJpY2UYBSABKAlIAogBARISCgp2b2x1bWVfMjRoGAYgASgJEhIKCnRyYWRlc18yNGgYByABKA0SEwoLb3Blbl9vcmRlcnMYCCABKA0SLgoKdXBkYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCwoJX2Jlc3RfYmlkQg0KC19iZXN0X29mZmVyQg0KC19sYXN0X3ByaWNlIoEDChBHZXRPcmRlcnNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjYKBnN0YXR1cxgDIAEoDjIhLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyU3RhdHVzSAGIAQESOAoKb3JkZXJfdHlwZRgEIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZUgCiAEBEhIKBWxpbWl0GAUgASgNSAOIAQESEwoGb2Zmc2V0GAYgASgNSASIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgFiAEBQgwKCl9tYXJrZXRfaWRCCQoHX3N0YXR1c0INCgtfb3JkZXJfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCJxChFHZXRPcmRlcnNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGb3JkZXJzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISDQoFdG90YWwYBCABKA0iygEKGEdldE9yZGVyYm9va0RlcHRoUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSEgoFZGVwdGgYAyABKA1IAIgBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAGIAQFCCAoGX2RlcHRoQhAKDl9leHRlcm5hbF9hdXRoInYKGUdldE9yZGVyYm9va0RlcHRoUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjcKCW9yZGVyYm9vaxgDIAEoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0RlcHRoIsoCCh1HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI7CgZzdGF0dXMYAyABKA4yJi5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50U3RhdHVzSAGIAQESEgoFbGltaXQYBCABKA1IAogBARITCgZvZmZzZXQYBSABKA1IA4gBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSASIAQFCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoIo4BCh5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjsKCXByb3Bvc2FscxgDIAMoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBINCgV0b3RhbBgEIAEoDSKyAQocR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBITCgtwcm9wb3NhbF9pZBgCIAEoBBI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSACIAQFCEAoOX2V4dGVybmFsX2F1dGgijwEKHUdldFNldHRsZW1lbnRQcm9wb3NhbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI/Cghwcm9wb3NhbBgDIAEoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbEgAiAEBQgsKCV9wcm9wb3NhbCKGAgoVR2V0SW5zdHJ1bWVudHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhwKD2luc3RydW1lbnRfdHlwZRgCIAEoCUgAiAEBEhIKBWxpbWl0GAMgASgNSAGIAQESEwoGb2Zmc2V0GAQgASgNSAKIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgDiAEBQhIKEF9pbnN0cnVtZW50X3R5cGVCCAoGX2xpbWl0QgkKB19vZmZzZXRCEAoOX2V4dGVybmFsX2F1dGgigAEKFkdldEluc3RydW1lbnRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC2luc3RydW1lbnRzGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuSW5zdHJ1bWVudBINCgV0b3RhbBgEIAEoDSKsAwoRR2V0TWFya2V0c1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSOgoLbWFya2V0X3R5cGUYAiABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlSACIAQESHAoPYmFzZV9pbnN0cnVtZW50GAMgASgJSAGIAQESHQoQcXVvdGVfaW5zdHJ1bWVudBgEIAEoCUgCiAEBEhgKC2FjdGl2ZV9vbmx5GAUgASgISAOIAQESEgoFbGltaXQYBiABKA1IBIgBARITCgZvZmZzZXQYByABKA1IBYgBARI+Cg1leHRlcm5hbF9hdXRoGAogASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAaIAQFCDgoMX21hcmtldF90eXBlQhIKEF9iYXNlX2luc3RydW1lbnRCEwoRX3F1b3RlX2luc3RydW1lbnRCDgoMX2FjdGl2ZV9vbmx5QggKBl9saW1pdEIJCgdfb2Zmc2V0QhAKDl9leHRlcm5hbF9hdXRoInQKEkdldE1hcmtldHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLQoHbWFya2V0cxgDIAMoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldBINCgV0b3RhbBgEIAEoDSL7AgoWR2V0T3JkZXJIaXN0b3J5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARIyCglmcm9tX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMAoHdG9fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIBYgBAUIMCgpfbWFya2V0X2lkQgwKCl9mcm9tX3RpbWVCCgoIX3RvX3RpbWVCCAoGX2xpbWl0QgkKB19vZmZzZXRCEAoOX2V4dGVybmFsX2F1dGgidwoXR2V0T3JkZXJIaXN0b3J5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBm9yZGVycxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEg0KBXRvdGFsGAQgASgNIqkBChRHZXRNYXJrZXREYXRhUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBISCgptYXJrZXRfaWRzGAIgAygJEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAIgBAUIQCg5fZXh0ZXJuYWxfYXV0aCJwChVHZXRNYXJrZXREYXRhUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC21hcmtldF9kYXRhGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0RGF0YSL6AgoVR2V0U2V0dGxlbWVudHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjIKCWZyb21fdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIwCgd0b190aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhIKBWxpbWl0GAUgASgNSAOIAQESEwoGb2Zmc2V0GAYgASgNSASIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgFiAEBQgwKCl9tYXJrZXRfaWRCDAoKX2Zyb21fdGltZUIKCghfdG9fdGltZUIICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCKAAQoWR2V0U2V0dGxlbWVudHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLc2V0dGxlbWVudHMYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50Eg0KBXRvdGFsGAQgASgNIssBChlTdWJzY3JpYmVPcmRlcmJvb2tSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRISCgVkZXB0aBgDIAEoDUgAiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAYgBAUIICgZfZGVwdGhCEAoOX2V4dGVybmFsX2F1dGgihwMKD09yZGVyYm9va1VwZGF0ZRIRCgltYXJrZXRfaWQYASABKAkSRQoLdXBkYXRlX3R5cGUYAiABKA4yMC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tVcGRhdGUuVXBkYXRlVHlwZRI5CgtiaWRfdXBkYXRlcxgDIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEjsKDW9mZmVyX3VwZGF0ZXMYBCADKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tMZXZlbBItCgl0aW1lc3RhbXAYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD3NlcXVlbmNlX251bWJlchgGIAEoBCJaCgpVcGRhdGVUeXBlEhsKF1VQREFURV9UWVBFX1VOU1BFQ0lGSUVEEAASGAoUVVBEQVRFX1RZUEVfU05BUFNIT1QQARIVChFVUERBVEVfVFlQRV9ERUxUQRACIr0BChZTdWJzY3JpYmVPcmRlcnNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAYgBAUIMCgpfbWFya2V0X2lkQhAKDl9leHRlcm5hbF9hdXRoIq0DCgtPcmRlclVwZGF0ZRI/CgpldmVudF90eXBlGAEgASgOMisuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJVcGRhdGUuRXZlbnRUeXBlEioKBW9yZGVyGAIgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISNAoFbWF0Y2gYAyABKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlck1hdGNoSACIAQESLQoJdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLBAQoJRXZlbnRUeXBlEhoKFkVWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIWChJFVkVOVF9UWVBFX0NSRUFURUQQARIWChJFVkVOVF9UWVBFX1VQREFURUQQAhIVChFFVkVOVF9UWVBFX0ZJTExFRBADEh8KG0VWRU5UX1RZUEVfUEFSVElBTExZX0ZJTExFRBAEEhgKFEVWRU5UX1RZUEVfQ0FOQ0VMTEVEEAUSFgoSRVZFTlRfVFlQRV9FWFBJUkVEEAZCCAoGX21hdGNoIsIBChtTdWJzY3JpYmVTZXR0bGVtZW50c1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgBiAEBQgwKCl9tYXJrZXRfaWRCEAoOX2V4dGVybmFsX2F1dGgiiQQKEFNldHRsZW1lbnRVcGRhdGUSRAoKZXZlbnRfdHlwZRgBIAEoDjIwLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRVcGRhdGUuRXZlbnRUeXBlEjoKCHByb3Bvc2FsGAIgASgLMiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFByb3Bvc2FsEi0KCXRpbWVzdGFtcBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiwwIKCUV2ZW50VHlwZRIaChZFVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASHwobRVZFTlRfVFlQRV9QUk9QT1NBTF9DUkVBVEVEEAESKAokRVZFTlRfVFlQRV9QUkVDT05GSVJNQVRJT05fUkVRVUVTVEVEEAISGwoXRVZFTlRfVFlQRV9QUkVDT05GSVJNRUQQAxIaChZFVkVOVF9UWVBFX0RWUF9DUkVBVEVEEAQSGwoXRVZFTlRfVFlQRV9EVlBfQUNDRVBURUQQBRIYChRFVkVOVF9UWVBFX0FMTE9DQVRFRBAGEhYKEkVWRU5UX1RZUEVfU0VUVExFRBAHEhUKEUVWRU5UX1RZUEVfRkFJTEVEEAgSGAoURVZFTlRfVFlQRV9DQU5DRUxMRUQQCRIWChJFVkVOVF9UWVBFX1VQREFURUQQCiLzBAoSU3VibWl0T3JkZXJSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRIzCgpvcmRlcl90eXBlGAMgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlEg0KBXByaWNlGAQgASgJEhAKCHF1YW50aXR5GAUgASgJEjgKDXRpbWVfaW5fZm9yY2UYBiABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5UaW1lSW5Gb3JjZRIzCgpleHBpcmVzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEh0KEHRyYWRlcl9vcmRlcl9yZWYYCCABKAlIAYgBARIxCgtjcmVkZW50aWFscxgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIyCgxyZXF1aXJlbWVudHMYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESLgoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESPgoNZXh0ZXJuYWxfYXV0aBgPIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgFiAEBQg0KC19leHBpcmVzX2F0QhMKEV90cmFkZXJfb3JkZXJfcmVmQg4KDF9jcmVkZW50aWFsc0IPCg1fcmVxdWlyZW1lbnRzQgsKCV9tZXRhZGF0YUIQCg5fZXh0ZXJuYWxfYXV0aCJyChNTdWJtaXRPcmRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIvCgVvcmRlchgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVySACIAQFCCAoGX29yZGVyIqUBChJDYW5jZWxPcmRlclJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIb3JkZXJfaWQYAiABKAQSPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgAiAEBQhAKDl9leHRlcm5hbF9hdXRoInIKE0NhbmNlbE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIi6AMKEkNyZWF0ZVBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRISCgpwYXJ0eV9uYW1lGAMgASgJEhIKCnBhcnR5X3R5cGUYBCABKAkSHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgAiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAYgBARIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYCCABKAlIA4gBARIqCgl1c2VyX2RhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ej4KDWV4dGVybmFsX2F1dGgYDyABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIBIgBAUITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGFCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZEIQCg5fZXh0ZXJuYWxfYXV0aCJjChNDcmVhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5IsMEChJVcGRhdGVQYXJ0eVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgDIAEoBBIXCgpwYXJ0eV9uYW1lGAQgASgJSACIAQESHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgBiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAogBARIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYByABKAlIA4gBARIvCgl1c2VyX2RhdGEYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESLgoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESGgoNY2hhbmdlX3JlYXNvbhgKIAEoCUgGiAEBEj4KDWV4dGVybmFsX2F1dGgYDyABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIB4gBAUINCgtfcGFydHlfbmFtZUITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEIbChlfdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkQgwKCl91c2VyX2RhdGFCCwoJX21ldGFkYXRhQhAKDl9jaGFuZ2VfcmVhc29uQhAKDl9leHRlcm5hbF9hdXRoImMKE1VwZGF0ZVBhcnR5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEioKBXBhcnR5GAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHki2gEKFkRlYWN0aXZhdGVQYXJ0eVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgDIAEoBBIVCg1jaGFuZ2VfcmVhc29uGAQgASgJEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAIgBAUIQCg5fZXh0ZXJuYWxfYXV0aCJnChdEZWFjdGl2YXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSLnAQoWR2V0UGFydHlIaXN0b3J5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRISCgVsaW1pdBgDIAEoDUgAiAEBEhMKBm9mZnNldBgEIAEoDUgBiAEBEj4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAogBAUIICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCKBAgoRUGFydHlIaXN0b3J5RW50cnkSEgoKaGlzdG9yeV9pZBgBIAEoBBIQCghwYXJ0eV9pZBgCIAEoCRIOCgZhY3Rpb24YAyABKAkSEgoKY2hhbmdlZF9ieRgEIAEoCRIaCg1jaGFuZ2VfcmVhc29uGAUgASgJSACIAQESDwoHdmVyc2lvbhgGIAEoBBIzCg5wYXJ0eV9zbmFwc2hvdBgHIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5Ei4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9jaGFuZ2VfcmVhc29uIoQBChdHZXRQYXJ0eUhpc3RvcnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSOAoHaGlzdG9yeRgDIAMoCzInLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5SGlzdG9yeUVudHJ5Eg0KBXRvdGFsGAQgASgNIqIBCg9HZXRQYXJ0eVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEAoIcGFydHlfaWQYAiABKAkSPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgAiAEBQhAKDl9leHRlcm5hbF9hdXRoImAKEEdldFBhcnR5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEioKBXBhcnR5GAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHkiogIKEUdldFBhcnRpZXNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhcKCnBhcnR5X3R5cGUYAiABKAlIAIgBARIYCgthY3RpdmVfb25seRgDIAEoCEgBiAEBEhIKBWxpbWl0GAQgASgNSAKIAQESEwoGb2Zmc2V0GAUgASgNSAOIAQESPgoNZXh0ZXJuYWxfYXV0aBgKIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLkV4dGVybmFsQXV0aEgEiAEBQg0KC19wYXJ0eV90eXBlQg4KDF9hY3RpdmVfb25seUIICgZfbGltaXRCCQoHX29mZnNldEIQCg5fZXh0ZXJuYWxfYXV0aCJzChJHZXRQYXJ0aWVzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKB3BhcnRpZXMYAyADKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eRINCgV0b3RhbBgEIAEoDSLgAwoFUGFydHkSEAoIcGFydHlfaWQYASABKAkSEgoKcGFydHlfbmFtZRgCIAEoCRISCgpwYXJ0eV90eXBlGAMgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBCABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAUgASgJSAGIAQESEQoJaXNfYWN0aXZlGAYgASgIEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKGHVzZXJfc2VydmljZV9yZXF1ZXN0X2NpZBgKIAEoCUgDiAEBEioKCXVzZXJfZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHdmVyc2lvbhgMIAEoBEITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGFCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZCKmAwoXQ3JlYXRlSW5zdHJ1bWVudFJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFQoNaW5zdHJ1bWVudF9pZBgCIAEoCRIXCg9pbnN0cnVtZW50X3R5cGUYAyABKAkSDAoEbmFtZRgEIAEoCRIOCgZzeW1ib2wYBSABKAkSGAoLZGVzY3JpcHRpb24YBiABKAlIAIgBARITCgZpc3N1ZXIYByABKAlIAYgBARIVCghyZWdpc3RyeRgIIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhMKC25ld3Nfc3ltYm9sGAogASgJEj4KDWV4dGVybmFsX2F1dGgYDyABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIBIgBAUIOCgxfZGVzY3JpcHRpb25CCQoHX2lzc3VlckILCglfcmVnaXN0cnlCCwoJX21ldGFkYXRhQhAKDl9leHRlcm5hbF9hdXRoInIKGENyZWF0ZUluc3RydW1lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNAoKaW5zdHJ1bWVudBgDIAEoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLkluc3RydW1lbnQixQQKE0NyZWF0ZU1hcmtldFJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEjUKC21hcmtldF90eXBlGAMgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZRIcCg9iYXNlX2luc3RydW1lbnQYBCABKAlIAIgBARIdChBxdW90ZV9pbnN0cnVtZW50GAUgASgJSAGIAQESFgoObWluX29yZGVyX3NpemUYBiABKAkSGwoObWF4X29yZGVyX3NpemUYByABKAlIAogBARIRCgl0aWNrX3NpemUYCCABKAkSEQoJbWFrZXJfZmVlGAkgASgJEhEKCXRha2VyX2ZlZRgKIAEoCRIuCghtZXRhZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIxCgtwcmljZV9mZWVkcxgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARI+Cg1leHRlcm5hbF9hdXRoGA8gASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXh0ZXJuYWxBdXRoSAWIAQFCEgoQX2Jhc2VfaW5zdHJ1bWVudEITChFfcXVvdGVfaW5zdHJ1bWVudEIRCg9fbWF4X29yZGVyX3NpemVCCwoJX21ldGFkYXRhQg4KDF9wcmljZV9mZWVkc0IQCg5fZXh0ZXJuYWxfYXV0aCJmChRDcmVhdGVNYXJrZXRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLAoGbWFya2V0GAMgASgLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0It8BCh1VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSLAoLcHJpY2VfZmVlZHMYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ej4KDWV4dGVybmFsX2F1dGgYCiABKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5FeHRlcm5hbEF1dGhIAIgBAUIQCg5fZXh0ZXJuYWxfYXV0aCJwCh5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKBm1hcmtldBgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldCpRCglPcmRlclR5cGUSGgoWT1JERVJfVFlQRV9VTlNQRUNJRklFRBAAEhIKDk9SREVSX1RZUEVfQklEEAESFAoQT1JERVJfVFlQRV9PRkZFUhACKq0BCgtPcmRlclN0YXR1cxIcChhPUkRFUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIXChNPUkRFUl9TVEFUVVNfQUNUSVZFEAESGAoUT1JERVJfU1RBVFVTX1BBUlRJQUwQAhIXChNPUkRFUl9TVEFUVVNfRklMTEVEEAMSGgoWT1JERVJfU1RBVFVTX0NBTkNFTExFRBAEEhgKFE9SREVSX1NUQVRVU19FWFBJUkVEEAUqiAEKC1RpbWVJbkZvcmNlEh0KGVRJTUVfSU5fRk9SQ0VfVU5TUEVDSUZJRUQQABIVChFUSU1FX0lOX0ZPUkNFX0dUQxABEhUKEVRJTUVfSU5fRk9SQ0VfSU9DEAISFQoRVElNRV9JTl9GT1JDRV9GT0sQAxIVChFUSU1FX0lOX0ZPUkNFX0dURBAEKtoCChBTZXR0bGVtZW50U3RhdHVzEiEKHVNFVFRMRU1FTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHQoZU0VUVExFTUVOVF9TVEFUVVNfQ1JFQVRFRBABEiIKHlNFVFRMRU1FTlRfU1RBVFVTX1BSRUNPTkZJUk1FRBACEikKJVNFVFRMRU1FTlRfU1RBVFVTX0RWUF9SRVFVRVNUX0NSRUFURUQQAxIqCiZTRVRUTEVNRU5UX1NUQVRVU19EVlBfUkVRVUVTVF9BQ0NFUFRFRBAEEisKJ1NFVFRMRU1FTlRfU1RBVFVTX0lOU1RSVU1FTlRTX0FMTE9DQVRFRBAFEh0KGVNFVFRMRU1FTlRfU1RBVFVTX1NFVFRMRUQQBhIfChtTRVRUTEVNRU5UX1NUQVRVU19DQU5DRUxMRUQQBxIcChhTRVRUTEVNRU5UX1NUQVRVU19GQUlMRUQQCCp2CgpNYXJrZXRUeXBlEhsKF01BUktFVF9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTTUFSS0VUX1RZUEVfR0VORVJBTBABEh0KGU1BUktFVF9UWVBFX0lOU1RJVFVUSU9OQUwQAhITCg9NQVJLRVRfVFlQRV9PVEMQAzLbEwoQT3JkZXJib29rU2VydmljZRJcCglHZXRPcmRlcnMSJi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcnNSZXF1ZXN0Gicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJzUmVzcG9uc2USdAoRR2V0T3JkZXJib29rRGVwdGgSLi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcmJvb2tEZXB0aFJlcXVlc3QaLy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEoMBChZHZXRTZXR0bGVtZW50UHJvcG9zYWxzEjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QaNC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USgAEKFUdldFNldHRsZW1lbnRQcm9wb3NhbBIyLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbFJlcXVlc3QaMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxSZXNwb25zZRJrCg5HZXRJbnN0cnVtZW50cxIrLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEluc3RydW1lbnRzUmVxdWVzdBosLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEluc3RydW1lbnRzUmVzcG9uc2USXwoKR2V0TWFya2V0cxInLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldHNSZXF1ZXN0Giguc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0c1Jlc3BvbnNlEm4KD0dldE9yZGVySGlzdG9yeRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVySGlzdG9yeVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlckhpc3RvcnlSZXNwb25zZRJoCg1HZXRNYXJrZXREYXRhEiouc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0RGF0YVJlcXVlc3QaKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXREYXRhUmVzcG9uc2USawoOR2V0U2V0dGxlbWVudHMSKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50c1JlcXVlc3QaLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50c1Jlc3BvbnNlEmIKC1N1Ym1pdE9yZGVyEiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU3VibWl0T3JkZXJSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuU3VibWl0T3JkZXJSZXNwb25zZRJiCgtDYW5jZWxPcmRlchIoLnNpbHZhbmEub3JkZXJib29rLnYxLkNhbmNlbE9yZGVyUmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLkNhbmNlbE9yZGVyUmVzcG9uc2USWQoIR2V0UGFydHkSJS5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eVJlcXVlc3QaJi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eVJlc3BvbnNlEl8KCkdldFBhcnRpZXMSJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0aWVzUmVxdWVzdBooLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnRpZXNSZXNwb25zZRJiCgtDcmVhdGVQYXJ0eRIoLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZVBhcnR5UmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZVBhcnR5UmVzcG9uc2USYgoLVXBkYXRlUGFydHkSKC5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVQYXJ0eVJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVQYXJ0eVJlc3BvbnNlEm4KD0RlYWN0aXZhdGVQYXJ0eRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkRlYWN0aXZhdGVQYXJ0eVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5EZWFjdGl2YXRlUGFydHlSZXNwb25zZRJuCg9HZXRQYXJ0eUhpc3RvcnkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eUhpc3RvcnlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlIaXN0b3J5UmVzcG9uc2UScQoQQ3JlYXRlSW5zdHJ1bWVudBItLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZUluc3RydW1lbnRSZXF1ZXN0Gi4uc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlSW5zdHJ1bWVudFJlc3BvbnNlEmUKDENyZWF0ZU1hcmtldBIpLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZU1hcmtldFJlcXVlc3QaKi5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVNYXJrZXRSZXNwb25zZRKDAQoWVXBkYXRlTWFya2V0UHJpY2VGZWVkcxIzLnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXF1ZXN0GjQuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlTWFya2V0UHJpY2VGZWVkc1Jlc3BvbnNlEm4KElN1YnNjcmliZU9yZGVyYm9vaxIvLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZU9yZGVyYm9va1JlcXVlc3QaJS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tVcGRhdGUwARJkCg9TdWJzY3JpYmVPcmRlcnMSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVPcmRlcnNSZXF1ZXN0GiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJVcGRhdGUwARJzChRTdWJzY3JpYmVTZXR0bGVtZW50cxIxLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZVNldHRsZW1lbnRzUmVxdWVzdBomLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRVcGRhdGUwAUI0WjJnaXRodWIuY29tL1NpbHZhbmFPbmUvY2FudG9uLWFnZW50L3Byb3RvO29yZGVyYm9va2IGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
16
16
 
17
17
  /**
18
- * JWT authentication token
18
+ * JWT authentication token (for server-signed tokens using JWT_PRIVATE_KEY)
19
19
  *
20
20
  * @generated from message silvana.orderbook.v1.JWTAuth
21
21
  */
22
22
  export type JWTAuth = Message<"silvana.orderbook.v1.JWTAuth"> & {
23
23
  /**
24
- * JWT signed with Ed25519 private key
24
+ * JWT signed with server's Ed25519 private key (JWT_PRIVATE_KEY)
25
25
  *
26
26
  * @generated from field: string token = 1;
27
27
  */
@@ -35,6 +35,45 @@ export type JWTAuth = Message<"silvana.orderbook.v1.JWTAuth"> & {
35
35
  export const JWTAuthSchema: GenMessage<JWTAuth> = /*@__PURE__*/
36
36
  messageDesc(file_proto_silvana_orderbook_v1_orderbook, 0);
37
37
 
38
+ /**
39
+ * External account authentication
40
+ * JWT is signed by the external account's Ed25519 private key
41
+ * The public_key is verified against the party_id fingerprint:
42
+ * fingerprint = SHA256(0x0000000C || public_key_bytes)
43
+ * party_id format: "identifier::1220{fingerprint}"
44
+ *
45
+ * @generated from message silvana.orderbook.v1.ExternalAuth
46
+ */
47
+ export type ExternalAuth = Message<"silvana.orderbook.v1.ExternalAuth"> & {
48
+ /**
49
+ * JWT signed with external account's Ed25519 private key
50
+ *
51
+ * @generated from field: string jwt = 1;
52
+ */
53
+ jwt: string;
54
+
55
+ /**
56
+ * Canton party ID of the external account
57
+ *
58
+ * @generated from field: string party_id = 2;
59
+ */
60
+ partyId: string;
61
+
62
+ /**
63
+ * Ed25519 public key (hex) - verified against party_id fingerprint
64
+ *
65
+ * @generated from field: string public_key = 3;
66
+ */
67
+ publicKey: string;
68
+ };
69
+
70
+ /**
71
+ * Describes the message silvana.orderbook.v1.ExternalAuth.
72
+ * Use `create(ExternalAuthSchema)` to create a new message.
73
+ */
74
+ export const ExternalAuthSchema: GenMessage<ExternalAuth> = /*@__PURE__*/
75
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 1);
76
+
38
77
  /**
39
78
  * Instrument message
40
79
  *
@@ -104,7 +143,7 @@ export type Instrument = Message<"silvana.orderbook.v1.Instrument"> & {
104
143
  * Use `create(InstrumentSchema)` to create a new message.
105
144
  */
106
145
  export const InstrumentSchema: GenMessage<Instrument> = /*@__PURE__*/
107
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 1);
146
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 2);
108
147
 
109
148
  /**
110
149
  * Market message
@@ -229,7 +268,7 @@ export type Market = Message<"silvana.orderbook.v1.Market"> & {
229
268
  * Use `create(MarketSchema)` to create a new message.
230
269
  */
231
270
  export const MarketSchema: GenMessage<Market> = /*@__PURE__*/
232
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 2);
271
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 3);
233
272
 
234
273
  /**
235
274
  * Order message
@@ -369,7 +408,7 @@ export type Order = Message<"silvana.orderbook.v1.Order"> & {
369
408
  * Use `create(OrderSchema)` to create a new message.
370
409
  */
371
410
  export const OrderSchema: GenMessage<Order> = /*@__PURE__*/
372
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 3);
411
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 4);
373
412
 
374
413
  /**
375
414
  * Orderbook depth level (aggregated view without user details)
@@ -407,7 +446,7 @@ export type OrderbookLevel = Message<"silvana.orderbook.v1.OrderbookLevel"> & {
407
446
  * Use `create(OrderbookLevelSchema)` to create a new message.
408
447
  */
409
448
  export const OrderbookLevelSchema: GenMessage<OrderbookLevel> = /*@__PURE__*/
410
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 4);
449
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 5);
411
450
 
412
451
  /**
413
452
  * Orderbook depth for a market
@@ -450,7 +489,7 @@ export type OrderbookDepth = Message<"silvana.orderbook.v1.OrderbookDepth"> & {
450
489
  * Use `create(OrderbookDepthSchema)` to create a new message.
451
490
  */
452
491
  export const OrderbookDepthSchema: GenMessage<OrderbookDepth> = /*@__PURE__*/
453
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 5);
492
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 6);
454
493
 
455
494
  /**
456
495
  * Settlement proposal message
@@ -465,6 +504,13 @@ export type SettlementProposal = Message<"silvana.orderbook.v1.SettlementProposa
465
504
  */
466
505
  proposalId: bigint;
467
506
 
507
+ /**
508
+ * UUID v7 for external reference
509
+ *
510
+ * @generated from field: string reference_id = 38;
511
+ */
512
+ referenceId: string;
513
+
468
514
  /**
469
515
  * @generated from field: string market_id = 2;
470
516
  */
@@ -665,7 +711,7 @@ export type SettlementProposal = Message<"silvana.orderbook.v1.SettlementProposa
665
711
  * Use `create(SettlementProposalSchema)` to create a new message.
666
712
  */
667
713
  export const SettlementProposalSchema: GenMessage<SettlementProposal> = /*@__PURE__*/
668
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 6);
714
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 7);
669
715
 
670
716
  /**
671
717
  * Order match message
@@ -720,7 +766,7 @@ export type OrderMatch = Message<"silvana.orderbook.v1.OrderMatch"> & {
720
766
  * Use `create(OrderMatchSchema)` to create a new message.
721
767
  */
722
768
  export const OrderMatchSchema: GenMessage<OrderMatch> = /*@__PURE__*/
723
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 7);
769
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 8);
724
770
 
725
771
  /**
726
772
  * Settlement (completed) message
@@ -807,7 +853,7 @@ export type Settlement = Message<"silvana.orderbook.v1.Settlement"> & {
807
853
  * Use `create(SettlementSchema)` to create a new message.
808
854
  */
809
855
  export const SettlementSchema: GenMessage<Settlement> = /*@__PURE__*/
810
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 8);
856
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 9);
811
857
 
812
858
  /**
813
859
  * Market data message
@@ -874,7 +920,7 @@ export type MarketData = Message<"silvana.orderbook.v1.MarketData"> & {
874
920
  * Use `create(MarketDataSchema)` to create a new message.
875
921
  */
876
922
  export const MarketDataSchema: GenMessage<MarketData> = /*@__PURE__*/
877
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 9);
923
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 10);
878
924
 
879
925
  /**
880
926
  * Get user's orders
@@ -911,6 +957,13 @@ export type GetOrdersRequest = Message<"silvana.orderbook.v1.GetOrdersRequest">
911
957
  * @generated from field: optional uint32 offset = 6;
912
958
  */
913
959
  offset?: number;
960
+
961
+ /**
962
+ * Alternative auth for external accounts
963
+ *
964
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
965
+ */
966
+ externalAuth?: ExternalAuth;
914
967
  };
915
968
 
916
969
  /**
@@ -918,7 +971,7 @@ export type GetOrdersRequest = Message<"silvana.orderbook.v1.GetOrdersRequest">
918
971
  * Use `create(GetOrdersRequestSchema)` to create a new message.
919
972
  */
920
973
  export const GetOrdersRequestSchema: GenMessage<GetOrdersRequest> = /*@__PURE__*/
921
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 10);
974
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 11);
922
975
 
923
976
  /**
924
977
  * @generated from message silvana.orderbook.v1.GetOrdersResponse
@@ -950,7 +1003,7 @@ export type GetOrdersResponse = Message<"silvana.orderbook.v1.GetOrdersResponse"
950
1003
  * Use `create(GetOrdersResponseSchema)` to create a new message.
951
1004
  */
952
1005
  export const GetOrdersResponseSchema: GenMessage<GetOrdersResponse> = /*@__PURE__*/
953
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 11);
1006
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 12);
954
1007
 
955
1008
  /**
956
1009
  * Get orderbook depth (aggregated, no user details)
@@ -974,6 +1027,13 @@ export type GetOrderbookDepthRequest = Message<"silvana.orderbook.v1.GetOrderboo
974
1027
  * @generated from field: optional uint32 depth = 3;
975
1028
  */
976
1029
  depth?: number;
1030
+
1031
+ /**
1032
+ * Alternative auth for external accounts
1033
+ *
1034
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1035
+ */
1036
+ externalAuth?: ExternalAuth;
977
1037
  };
978
1038
 
979
1039
  /**
@@ -981,7 +1041,7 @@ export type GetOrderbookDepthRequest = Message<"silvana.orderbook.v1.GetOrderboo
981
1041
  * Use `create(GetOrderbookDepthRequestSchema)` to create a new message.
982
1042
  */
983
1043
  export const GetOrderbookDepthRequestSchema: GenMessage<GetOrderbookDepthRequest> = /*@__PURE__*/
984
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 12);
1044
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 13);
985
1045
 
986
1046
  /**
987
1047
  * @generated from message silvana.orderbook.v1.GetOrderbookDepthResponse
@@ -1008,7 +1068,7 @@ export type GetOrderbookDepthResponse = Message<"silvana.orderbook.v1.GetOrderbo
1008
1068
  * Use `create(GetOrderbookDepthResponseSchema)` to create a new message.
1009
1069
  */
1010
1070
  export const GetOrderbookDepthResponseSchema: GenMessage<GetOrderbookDepthResponse> = /*@__PURE__*/
1011
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 13);
1071
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 14);
1012
1072
 
1013
1073
  /**
1014
1074
  * Get user's settlement proposals
@@ -1040,6 +1100,13 @@ export type GetSettlementProposalsRequest = Message<"silvana.orderbook.v1.GetSet
1040
1100
  * @generated from field: optional uint32 offset = 5;
1041
1101
  */
1042
1102
  offset?: number;
1103
+
1104
+ /**
1105
+ * Alternative auth for external accounts
1106
+ *
1107
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1108
+ */
1109
+ externalAuth?: ExternalAuth;
1043
1110
  };
1044
1111
 
1045
1112
  /**
@@ -1047,7 +1114,7 @@ export type GetSettlementProposalsRequest = Message<"silvana.orderbook.v1.GetSet
1047
1114
  * Use `create(GetSettlementProposalsRequestSchema)` to create a new message.
1048
1115
  */
1049
1116
  export const GetSettlementProposalsRequestSchema: GenMessage<GetSettlementProposalsRequest> = /*@__PURE__*/
1050
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 14);
1117
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 15);
1051
1118
 
1052
1119
  /**
1053
1120
  * @generated from message silvana.orderbook.v1.GetSettlementProposalsResponse
@@ -1079,7 +1146,7 @@ export type GetSettlementProposalsResponse = Message<"silvana.orderbook.v1.GetSe
1079
1146
  * Use `create(GetSettlementProposalsResponseSchema)` to create a new message.
1080
1147
  */
1081
1148
  export const GetSettlementProposalsResponseSchema: GenMessage<GetSettlementProposalsResponse> = /*@__PURE__*/
1082
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 15);
1149
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 16);
1083
1150
 
1084
1151
  /**
1085
1152
  * Get a single settlement proposal by ID
@@ -1096,6 +1163,13 @@ export type GetSettlementProposalRequest = Message<"silvana.orderbook.v1.GetSett
1096
1163
  * @generated from field: uint64 proposal_id = 2;
1097
1164
  */
1098
1165
  proposalId: bigint;
1166
+
1167
+ /**
1168
+ * Alternative auth for external accounts
1169
+ *
1170
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1171
+ */
1172
+ externalAuth?: ExternalAuth;
1099
1173
  };
1100
1174
 
1101
1175
  /**
@@ -1103,7 +1177,7 @@ export type GetSettlementProposalRequest = Message<"silvana.orderbook.v1.GetSett
1103
1177
  * Use `create(GetSettlementProposalRequestSchema)` to create a new message.
1104
1178
  */
1105
1179
  export const GetSettlementProposalRequestSchema: GenMessage<GetSettlementProposalRequest> = /*@__PURE__*/
1106
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 16);
1180
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 17);
1107
1181
 
1108
1182
  /**
1109
1183
  * @generated from message silvana.orderbook.v1.GetSettlementProposalResponse
@@ -1130,7 +1204,7 @@ export type GetSettlementProposalResponse = Message<"silvana.orderbook.v1.GetSet
1130
1204
  * Use `create(GetSettlementProposalResponseSchema)` to create a new message.
1131
1205
  */
1132
1206
  export const GetSettlementProposalResponseSchema: GenMessage<GetSettlementProposalResponse> = /*@__PURE__*/
1133
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 17);
1207
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 18);
1134
1208
 
1135
1209
  /**
1136
1210
  * Get available instruments (filtered by JWT permissions)
@@ -1157,6 +1231,13 @@ export type GetInstrumentsRequest = Message<"silvana.orderbook.v1.GetInstruments
1157
1231
  * @generated from field: optional uint32 offset = 4;
1158
1232
  */
1159
1233
  offset?: number;
1234
+
1235
+ /**
1236
+ * Alternative auth for external accounts
1237
+ *
1238
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1239
+ */
1240
+ externalAuth?: ExternalAuth;
1160
1241
  };
1161
1242
 
1162
1243
  /**
@@ -1164,7 +1245,7 @@ export type GetInstrumentsRequest = Message<"silvana.orderbook.v1.GetInstruments
1164
1245
  * Use `create(GetInstrumentsRequestSchema)` to create a new message.
1165
1246
  */
1166
1247
  export const GetInstrumentsRequestSchema: GenMessage<GetInstrumentsRequest> = /*@__PURE__*/
1167
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 18);
1248
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 19);
1168
1249
 
1169
1250
  /**
1170
1251
  * @generated from message silvana.orderbook.v1.GetInstrumentsResponse
@@ -1196,7 +1277,7 @@ export type GetInstrumentsResponse = Message<"silvana.orderbook.v1.GetInstrument
1196
1277
  * Use `create(GetInstrumentsResponseSchema)` to create a new message.
1197
1278
  */
1198
1279
  export const GetInstrumentsResponseSchema: GenMessage<GetInstrumentsResponse> = /*@__PURE__*/
1199
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 19);
1280
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 20);
1200
1281
 
1201
1282
  /**
1202
1283
  * Get available markets (filtered by JWT permissions)
@@ -1238,6 +1319,13 @@ export type GetMarketsRequest = Message<"silvana.orderbook.v1.GetMarketsRequest"
1238
1319
  * @generated from field: optional uint32 offset = 7;
1239
1320
  */
1240
1321
  offset?: number;
1322
+
1323
+ /**
1324
+ * Alternative auth for external accounts
1325
+ *
1326
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1327
+ */
1328
+ externalAuth?: ExternalAuth;
1241
1329
  };
1242
1330
 
1243
1331
  /**
@@ -1245,7 +1333,7 @@ export type GetMarketsRequest = Message<"silvana.orderbook.v1.GetMarketsRequest"
1245
1333
  * Use `create(GetMarketsRequestSchema)` to create a new message.
1246
1334
  */
1247
1335
  export const GetMarketsRequestSchema: GenMessage<GetMarketsRequest> = /*@__PURE__*/
1248
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 20);
1336
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 21);
1249
1337
 
1250
1338
  /**
1251
1339
  * @generated from message silvana.orderbook.v1.GetMarketsResponse
@@ -1277,7 +1365,7 @@ export type GetMarketsResponse = Message<"silvana.orderbook.v1.GetMarketsRespons
1277
1365
  * Use `create(GetMarketsResponseSchema)` to create a new message.
1278
1366
  */
1279
1367
  export const GetMarketsResponseSchema: GenMessage<GetMarketsResponse> = /*@__PURE__*/
1280
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 21);
1368
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 22);
1281
1369
 
1282
1370
  /**
1283
1371
  * Get user's order history
@@ -1314,6 +1402,13 @@ export type GetOrderHistoryRequest = Message<"silvana.orderbook.v1.GetOrderHisto
1314
1402
  * @generated from field: optional uint32 offset = 6;
1315
1403
  */
1316
1404
  offset?: number;
1405
+
1406
+ /**
1407
+ * Alternative auth for external accounts
1408
+ *
1409
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1410
+ */
1411
+ externalAuth?: ExternalAuth;
1317
1412
  };
1318
1413
 
1319
1414
  /**
@@ -1321,7 +1416,7 @@ export type GetOrderHistoryRequest = Message<"silvana.orderbook.v1.GetOrderHisto
1321
1416
  * Use `create(GetOrderHistoryRequestSchema)` to create a new message.
1322
1417
  */
1323
1418
  export const GetOrderHistoryRequestSchema: GenMessage<GetOrderHistoryRequest> = /*@__PURE__*/
1324
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 22);
1419
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 23);
1325
1420
 
1326
1421
  /**
1327
1422
  * @generated from message silvana.orderbook.v1.GetOrderHistoryResponse
@@ -1353,7 +1448,7 @@ export type GetOrderHistoryResponse = Message<"silvana.orderbook.v1.GetOrderHist
1353
1448
  * Use `create(GetOrderHistoryResponseSchema)` to create a new message.
1354
1449
  */
1355
1450
  export const GetOrderHistoryResponseSchema: GenMessage<GetOrderHistoryResponse> = /*@__PURE__*/
1356
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 23);
1451
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 24);
1357
1452
 
1358
1453
  /**
1359
1454
  * Get market data (filtered by JWT permissions)
@@ -1372,6 +1467,13 @@ export type GetMarketDataRequest = Message<"silvana.orderbook.v1.GetMarketDataRe
1372
1467
  * @generated from field: repeated string market_ids = 2;
1373
1468
  */
1374
1469
  marketIds: string[];
1470
+
1471
+ /**
1472
+ * Alternative auth for external accounts
1473
+ *
1474
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1475
+ */
1476
+ externalAuth?: ExternalAuth;
1375
1477
  };
1376
1478
 
1377
1479
  /**
@@ -1379,7 +1481,7 @@ export type GetMarketDataRequest = Message<"silvana.orderbook.v1.GetMarketDataRe
1379
1481
  * Use `create(GetMarketDataRequestSchema)` to create a new message.
1380
1482
  */
1381
1483
  export const GetMarketDataRequestSchema: GenMessage<GetMarketDataRequest> = /*@__PURE__*/
1382
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 24);
1484
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 25);
1383
1485
 
1384
1486
  /**
1385
1487
  * @generated from message silvana.orderbook.v1.GetMarketDataResponse
@@ -1406,7 +1508,7 @@ export type GetMarketDataResponse = Message<"silvana.orderbook.v1.GetMarketDataR
1406
1508
  * Use `create(GetMarketDataResponseSchema)` to create a new message.
1407
1509
  */
1408
1510
  export const GetMarketDataResponseSchema: GenMessage<GetMarketDataResponse> = /*@__PURE__*/
1409
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 25);
1511
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 26);
1410
1512
 
1411
1513
  /**
1412
1514
  * Get user's settlements (completed)
@@ -1443,6 +1545,13 @@ export type GetSettlementsRequest = Message<"silvana.orderbook.v1.GetSettlements
1443
1545
  * @generated from field: optional uint32 offset = 6;
1444
1546
  */
1445
1547
  offset?: number;
1548
+
1549
+ /**
1550
+ * Alternative auth for external accounts
1551
+ *
1552
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1553
+ */
1554
+ externalAuth?: ExternalAuth;
1446
1555
  };
1447
1556
 
1448
1557
  /**
@@ -1450,7 +1559,7 @@ export type GetSettlementsRequest = Message<"silvana.orderbook.v1.GetSettlements
1450
1559
  * Use `create(GetSettlementsRequestSchema)` to create a new message.
1451
1560
  */
1452
1561
  export const GetSettlementsRequestSchema: GenMessage<GetSettlementsRequest> = /*@__PURE__*/
1453
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 26);
1562
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 27);
1454
1563
 
1455
1564
  /**
1456
1565
  * @generated from message silvana.orderbook.v1.GetSettlementsResponse
@@ -1482,7 +1591,7 @@ export type GetSettlementsResponse = Message<"silvana.orderbook.v1.GetSettlement
1482
1591
  * Use `create(GetSettlementsResponseSchema)` to create a new message.
1483
1592
  */
1484
1593
  export const GetSettlementsResponseSchema: GenMessage<GetSettlementsResponse> = /*@__PURE__*/
1485
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 27);
1594
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 28);
1486
1595
 
1487
1596
  /**
1488
1597
  * Subscribe to orderbook updates (streaming)
@@ -1506,6 +1615,13 @@ export type SubscribeOrderbookRequest = Message<"silvana.orderbook.v1.SubscribeO
1506
1615
  * @generated from field: optional uint32 depth = 3;
1507
1616
  */
1508
1617
  depth?: number;
1618
+
1619
+ /**
1620
+ * Alternative auth for external accounts
1621
+ *
1622
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1623
+ */
1624
+ externalAuth?: ExternalAuth;
1509
1625
  };
1510
1626
 
1511
1627
  /**
@@ -1513,7 +1629,7 @@ export type SubscribeOrderbookRequest = Message<"silvana.orderbook.v1.SubscribeO
1513
1629
  * Use `create(SubscribeOrderbookRequestSchema)` to create a new message.
1514
1630
  */
1515
1631
  export const SubscribeOrderbookRequestSchema: GenMessage<SubscribeOrderbookRequest> = /*@__PURE__*/
1516
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 28);
1632
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 29);
1517
1633
 
1518
1634
  /**
1519
1635
  * Orderbook update event
@@ -1559,7 +1675,7 @@ export type OrderbookUpdate = Message<"silvana.orderbook.v1.OrderbookUpdate"> &
1559
1675
  * Use `create(OrderbookUpdateSchema)` to create a new message.
1560
1676
  */
1561
1677
  export const OrderbookUpdateSchema: GenMessage<OrderbookUpdate> = /*@__PURE__*/
1562
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 29);
1678
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 30);
1563
1679
 
1564
1680
  /**
1565
1681
  * @generated from enum silvana.orderbook.v1.OrderbookUpdate.UpdateType
@@ -1585,7 +1701,7 @@ export enum OrderbookUpdate_UpdateType {
1585
1701
  * Describes the enum silvana.orderbook.v1.OrderbookUpdate.UpdateType.
1586
1702
  */
1587
1703
  export const OrderbookUpdate_UpdateTypeSchema: GenEnum<OrderbookUpdate_UpdateType> = /*@__PURE__*/
1588
- enumDesc(file_proto_silvana_orderbook_v1_orderbook, 29, 0);
1704
+ enumDesc(file_proto_silvana_orderbook_v1_orderbook, 30, 0);
1589
1705
 
1590
1706
  /**
1591
1707
  * Subscribe to user's order updates (streaming)
@@ -1602,6 +1718,13 @@ export type SubscribeOrdersRequest = Message<"silvana.orderbook.v1.SubscribeOrde
1602
1718
  * @generated from field: optional string market_id = 2;
1603
1719
  */
1604
1720
  marketId?: string;
1721
+
1722
+ /**
1723
+ * Alternative auth for external accounts
1724
+ *
1725
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1726
+ */
1727
+ externalAuth?: ExternalAuth;
1605
1728
  };
1606
1729
 
1607
1730
  /**
@@ -1609,7 +1732,7 @@ export type SubscribeOrdersRequest = Message<"silvana.orderbook.v1.SubscribeOrde
1609
1732
  * Use `create(SubscribeOrdersRequestSchema)` to create a new message.
1610
1733
  */
1611
1734
  export const SubscribeOrdersRequestSchema: GenMessage<SubscribeOrdersRequest> = /*@__PURE__*/
1612
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 30);
1735
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 31);
1613
1736
 
1614
1737
  /**
1615
1738
  * Order update event
@@ -1645,7 +1768,7 @@ export type OrderUpdate = Message<"silvana.orderbook.v1.OrderUpdate"> & {
1645
1768
  * Use `create(OrderUpdateSchema)` to create a new message.
1646
1769
  */
1647
1770
  export const OrderUpdateSchema: GenMessage<OrderUpdate> = /*@__PURE__*/
1648
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 31);
1771
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 32);
1649
1772
 
1650
1773
  /**
1651
1774
  * @generated from enum silvana.orderbook.v1.OrderUpdate.EventType
@@ -1691,7 +1814,7 @@ export enum OrderUpdate_EventType {
1691
1814
  * Describes the enum silvana.orderbook.v1.OrderUpdate.EventType.
1692
1815
  */
1693
1816
  export const OrderUpdate_EventTypeSchema: GenEnum<OrderUpdate_EventType> = /*@__PURE__*/
1694
- enumDesc(file_proto_silvana_orderbook_v1_orderbook, 31, 0);
1817
+ enumDesc(file_proto_silvana_orderbook_v1_orderbook, 32, 0);
1695
1818
 
1696
1819
  /**
1697
1820
  * Subscribe to user's settlement updates (streaming)
@@ -1708,6 +1831,13 @@ export type SubscribeSettlementsRequest = Message<"silvana.orderbook.v1.Subscrib
1708
1831
  * @generated from field: optional string market_id = 2;
1709
1832
  */
1710
1833
  marketId?: string;
1834
+
1835
+ /**
1836
+ * Alternative auth for external accounts
1837
+ *
1838
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
1839
+ */
1840
+ externalAuth?: ExternalAuth;
1711
1841
  };
1712
1842
 
1713
1843
  /**
@@ -1715,7 +1845,7 @@ export type SubscribeSettlementsRequest = Message<"silvana.orderbook.v1.Subscrib
1715
1845
  * Use `create(SubscribeSettlementsRequestSchema)` to create a new message.
1716
1846
  */
1717
1847
  export const SubscribeSettlementsRequestSchema: GenMessage<SubscribeSettlementsRequest> = /*@__PURE__*/
1718
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 32);
1848
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 33);
1719
1849
 
1720
1850
  /**
1721
1851
  * Settlement update event
@@ -1744,7 +1874,7 @@ export type SettlementUpdate = Message<"silvana.orderbook.v1.SettlementUpdate">
1744
1874
  * Use `create(SettlementUpdateSchema)` to create a new message.
1745
1875
  */
1746
1876
  export const SettlementUpdateSchema: GenMessage<SettlementUpdate> = /*@__PURE__*/
1747
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 33);
1877
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 34);
1748
1878
 
1749
1879
  /**
1750
1880
  * @generated from enum silvana.orderbook.v1.SettlementUpdate.EventType
@@ -1812,7 +1942,7 @@ export enum SettlementUpdate_EventType {
1812
1942
  * Describes the enum silvana.orderbook.v1.SettlementUpdate.EventType.
1813
1943
  */
1814
1944
  export const SettlementUpdate_EventTypeSchema: GenEnum<SettlementUpdate_EventType> = /*@__PURE__*/
1815
- enumDesc(file_proto_silvana_orderbook_v1_orderbook, 33, 0);
1945
+ enumDesc(file_proto_silvana_orderbook_v1_orderbook, 34, 0);
1816
1946
 
1817
1947
  /**
1818
1948
  * Submit a new order
@@ -1878,6 +2008,13 @@ export type SubmitOrderRequest = Message<"silvana.orderbook.v1.SubmitOrderReques
1878
2008
  * @generated from field: optional google.protobuf.Struct metadata = 11;
1879
2009
  */
1880
2010
  metadata?: JsonObject;
2011
+
2012
+ /**
2013
+ * Alternative auth for external accounts
2014
+ *
2015
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 15;
2016
+ */
2017
+ externalAuth?: ExternalAuth;
1881
2018
  };
1882
2019
 
1883
2020
  /**
@@ -1885,7 +2022,7 @@ export type SubmitOrderRequest = Message<"silvana.orderbook.v1.SubmitOrderReques
1885
2022
  * Use `create(SubmitOrderRequestSchema)` to create a new message.
1886
2023
  */
1887
2024
  export const SubmitOrderRequestSchema: GenMessage<SubmitOrderRequest> = /*@__PURE__*/
1888
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 34);
2025
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 35);
1889
2026
 
1890
2027
  /**
1891
2028
  * @generated from message silvana.orderbook.v1.SubmitOrderResponse
@@ -1912,7 +2049,7 @@ export type SubmitOrderResponse = Message<"silvana.orderbook.v1.SubmitOrderRespo
1912
2049
  * Use `create(SubmitOrderResponseSchema)` to create a new message.
1913
2050
  */
1914
2051
  export const SubmitOrderResponseSchema: GenMessage<SubmitOrderResponse> = /*@__PURE__*/
1915
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 35);
2052
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 36);
1916
2053
 
1917
2054
  /**
1918
2055
  * Cancel an existing order
@@ -1929,6 +2066,13 @@ export type CancelOrderRequest = Message<"silvana.orderbook.v1.CancelOrderReques
1929
2066
  * @generated from field: uint64 order_id = 2;
1930
2067
  */
1931
2068
  orderId: bigint;
2069
+
2070
+ /**
2071
+ * Alternative auth for external accounts
2072
+ *
2073
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
2074
+ */
2075
+ externalAuth?: ExternalAuth;
1932
2076
  };
1933
2077
 
1934
2078
  /**
@@ -1936,7 +2080,7 @@ export type CancelOrderRequest = Message<"silvana.orderbook.v1.CancelOrderReques
1936
2080
  * Use `create(CancelOrderRequestSchema)` to create a new message.
1937
2081
  */
1938
2082
  export const CancelOrderRequestSchema: GenMessage<CancelOrderRequest> = /*@__PURE__*/
1939
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 36);
2083
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 37);
1940
2084
 
1941
2085
  /**
1942
2086
  * @generated from message silvana.orderbook.v1.CancelOrderResponse
@@ -1963,7 +2107,7 @@ export type CancelOrderResponse = Message<"silvana.orderbook.v1.CancelOrderRespo
1963
2107
  * Use `create(CancelOrderResponseSchema)` to create a new message.
1964
2108
  */
1965
2109
  export const CancelOrderResponseSchema: GenMessage<CancelOrderResponse> = /*@__PURE__*/
1966
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 37);
2110
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 38);
1967
2111
 
1968
2112
  /**
1969
2113
  * Create a new party (operator, registry, or trader)
@@ -2025,6 +2169,13 @@ export type CreatePartyRequest = Message<"silvana.orderbook.v1.CreatePartyReques
2025
2169
  * @generated from field: google.protobuf.Struct user_data = 9;
2026
2170
  */
2027
2171
  userData?: JsonObject;
2172
+
2173
+ /**
2174
+ * Alternative auth for external accounts
2175
+ *
2176
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 15;
2177
+ */
2178
+ externalAuth?: ExternalAuth;
2028
2179
  };
2029
2180
 
2030
2181
  /**
@@ -2032,7 +2183,7 @@ export type CreatePartyRequest = Message<"silvana.orderbook.v1.CreatePartyReques
2032
2183
  * Use `create(CreatePartyRequestSchema)` to create a new message.
2033
2184
  */
2034
2185
  export const CreatePartyRequestSchema: GenMessage<CreatePartyRequest> = /*@__PURE__*/
2035
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 38);
2186
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 39);
2036
2187
 
2037
2188
  /**
2038
2189
  * @generated from message silvana.orderbook.v1.CreatePartyResponse
@@ -2059,7 +2210,7 @@ export type CreatePartyResponse = Message<"silvana.orderbook.v1.CreatePartyRespo
2059
2210
  * Use `create(CreatePartyResponseSchema)` to create a new message.
2060
2211
  */
2061
2212
  export const CreatePartyResponseSchema: GenMessage<CreatePartyResponse> = /*@__PURE__*/
2062
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 39);
2213
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 40);
2063
2214
 
2064
2215
  /**
2065
2216
  * Update an existing party (admin operation)
@@ -2122,6 +2273,13 @@ export type UpdatePartyRequest = Message<"silvana.orderbook.v1.UpdatePartyReques
2122
2273
  * @generated from field: optional string change_reason = 10;
2123
2274
  */
2124
2275
  changeReason?: string;
2276
+
2277
+ /**
2278
+ * Alternative auth for external accounts
2279
+ *
2280
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 15;
2281
+ */
2282
+ externalAuth?: ExternalAuth;
2125
2283
  };
2126
2284
 
2127
2285
  /**
@@ -2129,7 +2287,7 @@ export type UpdatePartyRequest = Message<"silvana.orderbook.v1.UpdatePartyReques
2129
2287
  * Use `create(UpdatePartyRequestSchema)` to create a new message.
2130
2288
  */
2131
2289
  export const UpdatePartyRequestSchema: GenMessage<UpdatePartyRequest> = /*@__PURE__*/
2132
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 40);
2290
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 41);
2133
2291
 
2134
2292
  /**
2135
2293
  * @generated from message silvana.orderbook.v1.UpdatePartyResponse
@@ -2156,7 +2314,7 @@ export type UpdatePartyResponse = Message<"silvana.orderbook.v1.UpdatePartyRespo
2156
2314
  * Use `create(UpdatePartyResponseSchema)` to create a new message.
2157
2315
  */
2158
2316
  export const UpdatePartyResponseSchema: GenMessage<UpdatePartyResponse> = /*@__PURE__*/
2159
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 41);
2317
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 42);
2160
2318
 
2161
2319
  /**
2162
2320
  * Deactivate a party (soft delete - admin operation)
@@ -2185,6 +2343,13 @@ export type DeactivatePartyRequest = Message<"silvana.orderbook.v1.DeactivatePar
2185
2343
  * @generated from field: string change_reason = 4;
2186
2344
  */
2187
2345
  changeReason: string;
2346
+
2347
+ /**
2348
+ * Alternative auth for external accounts
2349
+ *
2350
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
2351
+ */
2352
+ externalAuth?: ExternalAuth;
2188
2353
  };
2189
2354
 
2190
2355
  /**
@@ -2192,7 +2357,7 @@ export type DeactivatePartyRequest = Message<"silvana.orderbook.v1.DeactivatePar
2192
2357
  * Use `create(DeactivatePartyRequestSchema)` to create a new message.
2193
2358
  */
2194
2359
  export const DeactivatePartyRequestSchema: GenMessage<DeactivatePartyRequest> = /*@__PURE__*/
2195
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 42);
2360
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 43);
2196
2361
 
2197
2362
  /**
2198
2363
  * @generated from message silvana.orderbook.v1.DeactivatePartyResponse
@@ -2219,7 +2384,7 @@ export type DeactivatePartyResponse = Message<"silvana.orderbook.v1.DeactivatePa
2219
2384
  * Use `create(DeactivatePartyResponseSchema)` to create a new message.
2220
2385
  */
2221
2386
  export const DeactivatePartyResponseSchema: GenMessage<DeactivatePartyResponse> = /*@__PURE__*/
2222
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 43);
2387
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 44);
2223
2388
 
2224
2389
  /**
2225
2390
  * Get party change history (audit trail)
@@ -2246,6 +2411,13 @@ export type GetPartyHistoryRequest = Message<"silvana.orderbook.v1.GetPartyHisto
2246
2411
  * @generated from field: optional uint32 offset = 4;
2247
2412
  */
2248
2413
  offset?: number;
2414
+
2415
+ /**
2416
+ * Alternative auth for external accounts
2417
+ *
2418
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
2419
+ */
2420
+ externalAuth?: ExternalAuth;
2249
2421
  };
2250
2422
 
2251
2423
  /**
@@ -2253,7 +2425,7 @@ export type GetPartyHistoryRequest = Message<"silvana.orderbook.v1.GetPartyHisto
2253
2425
  * Use `create(GetPartyHistoryRequestSchema)` to create a new message.
2254
2426
  */
2255
2427
  export const GetPartyHistoryRequestSchema: GenMessage<GetPartyHistoryRequest> = /*@__PURE__*/
2256
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 44);
2428
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 45);
2257
2429
 
2258
2430
  /**
2259
2431
  * Single entry in party history
@@ -2311,7 +2483,7 @@ export type PartyHistoryEntry = Message<"silvana.orderbook.v1.PartyHistoryEntry"
2311
2483
  * Use `create(PartyHistoryEntrySchema)` to create a new message.
2312
2484
  */
2313
2485
  export const PartyHistoryEntrySchema: GenMessage<PartyHistoryEntry> = /*@__PURE__*/
2314
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 45);
2486
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 46);
2315
2487
 
2316
2488
  /**
2317
2489
  * @generated from message silvana.orderbook.v1.GetPartyHistoryResponse
@@ -2343,7 +2515,7 @@ export type GetPartyHistoryResponse = Message<"silvana.orderbook.v1.GetPartyHist
2343
2515
  * Use `create(GetPartyHistoryResponseSchema)` to create a new message.
2344
2516
  */
2345
2517
  export const GetPartyHistoryResponseSchema: GenMessage<GetPartyHistoryResponse> = /*@__PURE__*/
2346
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 46);
2518
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 47);
2347
2519
 
2348
2520
  /**
2349
2521
  * Get a single party by ID
@@ -2360,6 +2532,13 @@ export type GetPartyRequest = Message<"silvana.orderbook.v1.GetPartyRequest"> &
2360
2532
  * @generated from field: string party_id = 2;
2361
2533
  */
2362
2534
  partyId: string;
2535
+
2536
+ /**
2537
+ * Alternative auth for external accounts
2538
+ *
2539
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
2540
+ */
2541
+ externalAuth?: ExternalAuth;
2363
2542
  };
2364
2543
 
2365
2544
  /**
@@ -2367,7 +2546,7 @@ export type GetPartyRequest = Message<"silvana.orderbook.v1.GetPartyRequest"> &
2367
2546
  * Use `create(GetPartyRequestSchema)` to create a new message.
2368
2547
  */
2369
2548
  export const GetPartyRequestSchema: GenMessage<GetPartyRequest> = /*@__PURE__*/
2370
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 47);
2549
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 48);
2371
2550
 
2372
2551
  /**
2373
2552
  * @generated from message silvana.orderbook.v1.GetPartyResponse
@@ -2394,7 +2573,7 @@ export type GetPartyResponse = Message<"silvana.orderbook.v1.GetPartyResponse">
2394
2573
  * Use `create(GetPartyResponseSchema)` to create a new message.
2395
2574
  */
2396
2575
  export const GetPartyResponseSchema: GenMessage<GetPartyResponse> = /*@__PURE__*/
2397
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 48);
2576
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 49);
2398
2577
 
2399
2578
  /**
2400
2579
  * List parties with filters and pagination
@@ -2434,6 +2613,13 @@ export type GetPartiesRequest = Message<"silvana.orderbook.v1.GetPartiesRequest"
2434
2613
  * @generated from field: optional uint32 offset = 5;
2435
2614
  */
2436
2615
  offset?: number;
2616
+
2617
+ /**
2618
+ * Alternative auth for external accounts
2619
+ *
2620
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
2621
+ */
2622
+ externalAuth?: ExternalAuth;
2437
2623
  };
2438
2624
 
2439
2625
  /**
@@ -2441,7 +2627,7 @@ export type GetPartiesRequest = Message<"silvana.orderbook.v1.GetPartiesRequest"
2441
2627
  * Use `create(GetPartiesRequestSchema)` to create a new message.
2442
2628
  */
2443
2629
  export const GetPartiesRequestSchema: GenMessage<GetPartiesRequest> = /*@__PURE__*/
2444
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 49);
2630
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 50);
2445
2631
 
2446
2632
  /**
2447
2633
  * @generated from message silvana.orderbook.v1.GetPartiesResponse
@@ -2473,7 +2659,7 @@ export type GetPartiesResponse = Message<"silvana.orderbook.v1.GetPartiesRespons
2473
2659
  * Use `create(GetPartiesResponseSchema)` to create a new message.
2474
2660
  */
2475
2661
  export const GetPartiesResponseSchema: GenMessage<GetPartiesResponse> = /*@__PURE__*/
2476
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 50);
2662
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 51);
2477
2663
 
2478
2664
  /**
2479
2665
  * Party information
@@ -2553,7 +2739,7 @@ export type Party = Message<"silvana.orderbook.v1.Party"> & {
2553
2739
  * Use `create(PartySchema)` to create a new message.
2554
2740
  */
2555
2741
  export const PartySchema: GenMessage<Party> = /*@__PURE__*/
2556
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 51);
2742
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 52);
2557
2743
 
2558
2744
  /**
2559
2745
  * Create a new instrument
@@ -2618,6 +2804,13 @@ export type CreateInstrumentRequest = Message<"silvana.orderbook.v1.CreateInstru
2618
2804
  * @generated from field: string news_symbol = 10;
2619
2805
  */
2620
2806
  newsSymbol: string;
2807
+
2808
+ /**
2809
+ * Alternative auth for external accounts
2810
+ *
2811
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 15;
2812
+ */
2813
+ externalAuth?: ExternalAuth;
2621
2814
  };
2622
2815
 
2623
2816
  /**
@@ -2625,7 +2818,7 @@ export type CreateInstrumentRequest = Message<"silvana.orderbook.v1.CreateInstru
2625
2818
  * Use `create(CreateInstrumentRequestSchema)` to create a new message.
2626
2819
  */
2627
2820
  export const CreateInstrumentRequestSchema: GenMessage<CreateInstrumentRequest> = /*@__PURE__*/
2628
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 52);
2821
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 53);
2629
2822
 
2630
2823
  /**
2631
2824
  * @generated from message silvana.orderbook.v1.CreateInstrumentResponse
@@ -2652,7 +2845,7 @@ export type CreateInstrumentResponse = Message<"silvana.orderbook.v1.CreateInstr
2652
2845
  * Use `create(CreateInstrumentResponseSchema)` to create a new message.
2653
2846
  */
2654
2847
  export const CreateInstrumentResponseSchema: GenMessage<CreateInstrumentResponse> = /*@__PURE__*/
2655
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 53);
2848
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 54);
2656
2849
 
2657
2850
  /**
2658
2851
  * Create a new market
@@ -2735,6 +2928,13 @@ export type CreateMarketRequest = Message<"silvana.orderbook.v1.CreateMarketRequ
2735
2928
  * @generated from field: optional google.protobuf.Struct price_feeds = 12;
2736
2929
  */
2737
2930
  priceFeeds?: JsonObject;
2931
+
2932
+ /**
2933
+ * Alternative auth for external accounts
2934
+ *
2935
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 15;
2936
+ */
2937
+ externalAuth?: ExternalAuth;
2738
2938
  };
2739
2939
 
2740
2940
  /**
@@ -2742,7 +2942,7 @@ export type CreateMarketRequest = Message<"silvana.orderbook.v1.CreateMarketRequ
2742
2942
  * Use `create(CreateMarketRequestSchema)` to create a new message.
2743
2943
  */
2744
2944
  export const CreateMarketRequestSchema: GenMessage<CreateMarketRequest> = /*@__PURE__*/
2745
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 54);
2945
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 55);
2746
2946
 
2747
2947
  /**
2748
2948
  * @generated from message silvana.orderbook.v1.CreateMarketResponse
@@ -2769,7 +2969,7 @@ export type CreateMarketResponse = Message<"silvana.orderbook.v1.CreateMarketRes
2769
2969
  * Use `create(CreateMarketResponseSchema)` to create a new message.
2770
2970
  */
2771
2971
  export const CreateMarketResponseSchema: GenMessage<CreateMarketResponse> = /*@__PURE__*/
2772
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 55);
2972
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 56);
2773
2973
 
2774
2974
  /**
2775
2975
  * Update price feeds for an existing market
@@ -2793,6 +2993,13 @@ export type UpdateMarketPriceFeedsRequest = Message<"silvana.orderbook.v1.Update
2793
2993
  * @generated from field: google.protobuf.Struct price_feeds = 3;
2794
2994
  */
2795
2995
  priceFeeds?: JsonObject;
2996
+
2997
+ /**
2998
+ * Alternative auth for external accounts
2999
+ *
3000
+ * @generated from field: optional silvana.orderbook.v1.ExternalAuth external_auth = 10;
3001
+ */
3002
+ externalAuth?: ExternalAuth;
2796
3003
  };
2797
3004
 
2798
3005
  /**
@@ -2800,7 +3007,7 @@ export type UpdateMarketPriceFeedsRequest = Message<"silvana.orderbook.v1.Update
2800
3007
  * Use `create(UpdateMarketPriceFeedsRequestSchema)` to create a new message.
2801
3008
  */
2802
3009
  export const UpdateMarketPriceFeedsRequestSchema: GenMessage<UpdateMarketPriceFeedsRequest> = /*@__PURE__*/
2803
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 56);
3010
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 57);
2804
3011
 
2805
3012
  /**
2806
3013
  * @generated from message silvana.orderbook.v1.UpdateMarketPriceFeedsResponse
@@ -2829,7 +3036,7 @@ export type UpdateMarketPriceFeedsResponse = Message<"silvana.orderbook.v1.Updat
2829
3036
  * Use `create(UpdateMarketPriceFeedsResponseSchema)` to create a new message.
2830
3037
  */
2831
3038
  export const UpdateMarketPriceFeedsResponseSchema: GenMessage<UpdateMarketPriceFeedsResponse> = /*@__PURE__*/
2832
- messageDesc(file_proto_silvana_orderbook_v1_orderbook, 57);
3039
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 58);
2833
3040
 
2834
3041
  /**
2835
3042
  * Order type enumeration