@silvana-one/orderbook 1.1.27 → 1.1.28

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 (36) hide show
  1. package/dist/node/index.cjs +181 -253
  2. package/dist/node/orderbook.d.ts +7 -4
  3. package/dist/node/orderbook.js +52 -119
  4. package/dist/node/orderbook.js.map +1 -1
  5. package/dist/node/proto/silvana/news/v1/news_pb.js +1 -1
  6. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +72 -298
  7. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +77 -87
  8. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  9. package/dist/node/proto/silvana/pricing/v1/pricing_pb.js +1 -1
  10. package/dist/node/proto/silvana/settlement/v1/settlement_pb.d.ts +12 -70
  11. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js +61 -62
  12. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  13. package/dist/node/settlement.js +1 -1
  14. package/dist/node/settlement.js.map +1 -1
  15. package/dist/tsconfig.tsbuildinfo +1 -1
  16. package/dist/tsconfig.web.tsbuildinfo +1 -1
  17. package/dist/web/orderbook.d.ts +7 -4
  18. package/dist/web/orderbook.js +52 -119
  19. package/dist/web/orderbook.js.map +1 -1
  20. package/dist/web/proto/silvana/news/v1/news_pb.js +1 -1
  21. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +72 -298
  22. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +77 -87
  23. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  24. package/dist/web/proto/silvana/pricing/v1/pricing_pb.js +1 -1
  25. package/dist/web/proto/silvana/settlement/v1/settlement_pb.d.ts +12 -70
  26. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js +61 -62
  27. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  28. package/dist/web/settlement.js +1 -1
  29. package/dist/web/settlement.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/orderbook.ts +56 -121
  32. package/src/proto/silvana/news/v1/news_pb.ts +1 -1
  33. package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +150 -431
  34. package/src/proto/silvana/pricing/v1/pricing_pb.ts +1 -1
  35. package/src/proto/silvana/settlement/v1/settlement_pb.ts +69 -131
  36. package/src/settlement.ts +1 -1
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,js_import_style=module"
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=ts,js_import_style=module"
2
2
  // @generated from file proto/silvana/settlement/v1/settlement.proto (package silvana.settlement.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
 
@@ -12,7 +12,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
12
12
  * Describes the file proto/silvana/settlement/v1/settlement.proto.
13
13
  */
14
14
  export const file_proto_silvana_settlement_v1_settlement: GenFile = /*@__PURE__*/
15
- fileDesc("Cixwcm90by9zaWx2YW5hL3NldHRsZW1lbnQvdjEvc2V0dGxlbWVudC5wcm90bxIVc2lsdmFuYS5zZXR0bGVtZW50LnYxIn4KDkNhbnRvbk5vZGVBdXRoEhAKCHBhcnR5X2lkGAEgASgJEhEKCWp3dF90b2tlbhgCIAEoCRIVCg1ub2RlX2luc3RhbmNlGAMgASgJEjAKDGNvbm5lY3RlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiQQoMRXh0ZXJuYWxBdXRoEgsKA2p3dBgBIAEoCRIQCghwYXJ0eV9pZBgCIAEoCRISCgpwdWJsaWNfa2V5GAMgASgJIp4BChRTZXR0bGVtZW50SW5zdHJ1bWVudBIVCg1pbnN0cnVtZW50X2lkGAEgASgJEg4KBnN5bWJvbBgCIAEoCRIQCghyZWdpc3RyeRgDIAEoCRIQCghxdWFudGl0eRgEIAEoCRIuCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUILCglfbWV0YWRhdGEimQUKGVNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2USEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIRCgltYXJrZXRfaWQYAyABKAkSEwoLYnV5ZXJfcGFydHkYBCABKAkSFAoMc2VsbGVyX3BhcnR5GAUgASgJEkQKD2Jhc2VfaW5zdHJ1bWVudBgGIAEoCzIrLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50SW5zdHJ1bWVudBJFChBxdW90ZV9pbnN0cnVtZW50GAcgASgLMisuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRJbnN0cnVtZW50EhgKEHNldHRsZW1lbnRfcHJpY2UYCCABKAkSMwoPYWxsb2NhdGVfYmVmb3JlGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCg1zZXR0bGVfYmVmb3JlGAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCghtZXRhZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIuCgpjcmVhdGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIgChhkdnBfcHJvY2Vzc2luZ19mZWVfYnV5ZXIYDSABKAkSIQoZZHZwX3Byb2Nlc3NpbmdfZmVlX3NlbGxlchgOIAEoCRInCh9hbGxvY2F0aW9uX3Byb2Nlc3NpbmdfZmVlX2J1eWVyGA8gASgJEigKIGFsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfc2VsbGVyGBAgASgJQgsKCV9tZXRhZGF0YSKJAgoWUHJlY29uZmlybWF0aW9uUmVxdWVzdBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEkIKCHByb3Bvc2FsGAMgASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2USGAoQcmVxdWVzdGluZ19wYXJ0eRgEIAEoCRIuCgpyZXNwb25kX2J5GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgV0ZXJtcxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIICgZfdGVybXMivwIKF1ByZWNvbmZpcm1hdGlvbkRlY2lzaW9uEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSQAoIcmVzcG9uc2UYAyABKA4yLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uUmVzcG9uc2USHQoQcmVqZWN0aW9uX3JlYXNvbhgEIAEoCUgAiAEBEjAKCmNvbmRpdGlvbnMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESEQoJc2lnbmVkX2J5GAYgASgJEi4KCmRlY2lkZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9yZWplY3Rpb25fcmVhc29uQg0KC19jb25kaXRpb25zItgBChJEdnBDb250cmFjdENyZWF0ZWQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIYChBkdnBfcHJvcG9zYWxfY2lkGAMgASgJEh4KFmR2cF9wcm9wb3NhbF91cGRhdGVfaWQYBCABKAkSFgoOcHJvcG9zZXJfcGFydHkYBSABKAkSFAoMY291bnRlcnBhcnR5GAYgASgJEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIq8BChNEdnBDb250cmFjdEFjY2VwdGVkEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHZHZwX2NpZBgDIAEoCRIVCg1kdnBfdXBkYXRlX2lkGAQgASgJEhMKC2FjY2VwdGVkX2J5GAUgASgJEi8KC2FjY2VwdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLbAgoQQWxsb2NhdGlvblN0YXR1cxITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEjQKCnBhcnR5X3JvbGUYAyABKA4yIC5zaWx2YW5hLnNldHRsZW1lbnQudjEuUGFydHlSb2xlEhAKCHBhcnR5X2lkGAQgASgJEhYKDmFsbG9jYXRpb25fY2lkGAUgASgJEhwKFGFsbG9jYXRpb25fdXBkYXRlX2lkGAYgASgJEhUKDWluc3RydW1lbnRfaWQYByABKAkSEAoIcXVhbnRpdHkYCCABKAkSFAoMaXNfYWxsb2NhdGVkGAkgASgIEhoKDWVycm9yX21lc3NhZ2UYCiABKAlIAIgBARIwCgxhbGxvY2F0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9lcnJvcl9tZXNzYWdlIqoCChlTZXR0bGVtZW50RXhlY3V0aW9uU3RhdHVzEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHZHZwX2NpZBgDIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYBCABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYBSABKAkSJAocc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldBgGIAEoCRIVCg1pc19zdWNjZXNzZnVsGAcgASgIEhoKDWVycm9yX21lc3NhZ2UYCCABKAlIAIgBARIuCgpzZXR0bGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIQCg5fZXJyb3JfbWVzc2FnZSKKAQoPVXNlclNlcnZpY2VJbmZvEhAKCHBhcnR5X2lkGAEgASgJEhgKEHVzZXJfc2VydmljZV9jaWQYAiABKAkSGwoTb3BlcmF0b3JfY29uZmlnX2NpZBgDIAEoCRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL5AQoTU2V0dGxlbWVudEhhbmRzaGFrZRIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhEKCXBhcnR5X2lkcxgCIAMoCRI9Cg11c2VyX3NlcnZpY2VzGAMgAygLMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlVzZXJTZXJ2aWNlSW5mbxIWCg5vcGVyYXRvcl9wYXJ0eRgEIAEoCRIyCgxjYXBhYmlsaXRpZXMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCDwoNX2NhcGFiaWxpdGllcyK4AQoMSGFuZHNoYWtlQWNrEhAKCGFjY2VwdGVkGAEgASgIEh0KEHJlamVjdGlvbl9yZWFzb24YAiABKAlIAIgBARISCgpzZXNzaW9uX2lkGAMgASgJEh0KFXN1cHBvcnRlZF9pbnN0cnVtZW50cxgEIAMoCRIvCgtzZXJ2ZXJfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEwoRX3JlamVjdGlvbl9yZWFzb24iZwoJSGVhcnRiZWF0EhIKCnNlc3Npb25faWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zZXF1ZW5jZV9udW1iZXIYAyABKAQiZwoVTGlxdWlkaXR5UHJvdmlkZXJQaW5nEh8KF2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lGAEgASgJEi0KCXRpbWVzdGFtcBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiqAEKFUxpcXVpZGl0eVByb3ZpZGVyUG9uZxIfChdsaXF1aWRpdHlfcHJvdmlkZXJfbmFtZRgBIAEoCRIPCgdzdWNjZXNzGAIgASgIEhoKDWVycm9yX21lc3NhZ2UYAyABKAlIAIgBARIvCgtzZXJ2ZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX2Vycm9yX21lc3NhZ2Ui2wYKFVNlcnZlclRvQ2FudG9uTWVzc2FnZRISCgpzZXNzaW9uX2lkGAEgASgJEhcKD3NlcXVlbmNlX251bWJlchgCIAEoBBI8Cg1oYW5kc2hha2VfYWNrGAMgASgLMiMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkhhbmRzaGFrZUFja0gAEjUKCWhlYXJ0YmVhdBgEIAEoCzIgLnNpbHZhbmEuc2V0dGxlbWVudC52MS5IZWFydGJlYXRIABJECghwcm9wb3NhbBgFIAEoCzIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UHJvcG9zYWxNZXNzYWdlSAASUAoXcHJlY29uZmlybWF0aW9uX3JlcXVlc3QYBiABKAsyLS5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uUmVxdWVzdEgAEkAKC2R2cF9jcmVhdGVkGAcgASgLMikuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cENvbnRyYWN0Q3JlYXRlZEgAEkIKDGR2cF9hY2NlcHRlZBgIIAEoCzIqLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBDb250cmFjdEFjY2VwdGVkSAASRAoRYWxsb2NhdGlvbl9zdGF0dXMYCSABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuQWxsb2NhdGlvblN0YXR1c0gAEk0KEXNldHRsZW1lbnRfc3RhdHVzGAogASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRFeGVjdXRpb25TdGF0dXNIABI7Cgdjb21tYW5kGAsgASgLMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRDb21tYW5kSAASNwoFcXVlcnkYDCABKAsyJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFF1ZXJ5SAASPwoHbHBfcG9uZxgOIAEoCzIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5MaXF1aWRpdHlQcm92aWRlclBvbmdIABIrCgdzZW50X2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIJCgdtZXNzYWdlIrEGChVDYW50b25Ub1NlcnZlck1lc3NhZ2USEgoKc2Vzc2lvbl9pZBgBIAEoCRIXCg9zZXF1ZW5jZV9udW1iZXIYAiABKAQSPwoJaGFuZHNoYWtlGAMgASgLMiouc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRIYW5kc2hha2VIABI1CgloZWFydGJlYXQYBCABKAsyIC5zaWx2YW5hLnNldHRsZW1lbnQudjEuSGVhcnRiZWF0SAASSQoPcHJlY29uZmlybWF0aW9uGAUgASgLMi4uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlByZWNvbmZpcm1hdGlvbkRlY2lzaW9uSAASQAoMZHZwX2NyZWF0aW9uGAYgASgLMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cENyZWF0aW9uUmVwb3J0SAASRAoOZHZwX2FjY2VwdGFuY2UYByABKAsyKi5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwQWNjZXB0YW5jZVJlcG9ydEgAEj0KCmFsbG9jYXRpb24YCCABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuQWxsb2NhdGlvblJlcG9ydEgAEj0KCnNldHRsZW1lbnQYCSABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFJlcG9ydEgAEj0KCHJlc3BvbnNlGAogASgLMikuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRSZXNwb25zZUgAEjMKBWVycm9yGAsgASgLMiIuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkVycm9yUmVwb3J0SAASNQoGc3RhdHVzGAwgASgLMiMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlN0YXR1c1VwZGF0ZUgAEj8KB2xwX3BpbmcYDiABKAsyLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuTGlxdWlkaXR5UHJvdmlkZXJQaW5nSAASKwoHc2VudF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCQoHbWVzc2FnZSKiAgoRRHZwQ3JlYXRpb25SZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIPCgdzdWNjZXNzGAMgASgIEh0KEGR2cF9wcm9wb3NhbF9jaWQYBCABKAlIAIgBARIjChZkdnBfcHJvcG9zYWxfdXBkYXRlX2lkGAUgASgJSAGIAQESGgoNZXJyb3JfbWVzc2FnZRgGIAEoCUgCiAEBEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9kdnBfcHJvcG9zYWxfY2lkQhkKF19kdnBfcHJvcG9zYWxfdXBkYXRlX2lkQhAKDl9lcnJvcl9tZXNzYWdlIoECChNEdnBBY2NlcHRhbmNlUmVwb3J0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHc3VjY2VzcxgDIAEoCBIUCgdkdnBfY2lkGAQgASgJSACIAQESGgoNZHZwX3VwZGF0ZV9pZBgFIAEoCUgBiAEBEhoKDWVycm9yX21lc3NhZ2UYBiABKAlIAogBARIvCgthY2NlcHRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2R2cF9jaWRCEAoOX2R2cF91cGRhdGVfaWRCEAoOX2Vycm9yX21lc3NhZ2Ui5wIKEEFsbG9jYXRpb25SZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI0CgpwYXJ0eV9yb2xlGAMgASgOMiAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlBhcnR5Um9sZRIPCgdzdWNjZXNzGAQgASgIEhsKDmFsbG9jYXRpb25fY2lkGAUgASgJSACIAQESIQoUYWxsb2NhdGlvbl91cGRhdGVfaWQYBiABKAlIAYgBARIUCgxob2xkaW5nX2NpZHMYByADKAkSGgoNZXJyb3JfbWVzc2FnZRgIIAEoCUgCiAEBEjAKDGFsbG9jYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEQoPX2FsbG9jYXRpb25fY2lkQhcKFV9hbGxvY2F0aW9uX3VwZGF0ZV9pZEIQCg5fZXJyb3JfbWVzc2FnZSL+AgoQU2V0dGxlbWVudFJlcG9ydBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEg8KB3N1Y2Nlc3MYAyABKAgSHAoPc2V0dGxlZF9kdnBfY2lkGAQgASgJSACIAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYBSABKAlIAYgBARIpChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GAYgASgJSAKIAQESFQoNYXJjaGl2ZWRfY2lkcxgHIAMoCRIaCg1lcnJvcl9tZXNzYWdlGAggASgJSAOIAQESLgoKc2V0dGxlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEgoQX3NldHRsZWRfZHZwX2NpZEIXChVfc2V0dGxlbWVudF91cGRhdGVfaWRCHwodX3NldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXRCEAoOX2Vycm9yX21lc3NhZ2UihwIKC0Vycm9yUmVwb3J0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSNQoFc3RhZ2UYAyABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFN0YWdlEhIKCmVycm9yX2NvZGUYBCABKAkSFQoNZXJyb3JfbWVzc2FnZRgFIAEoCRItCgdkZXRhaWxzGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEi8KC29jY3VycmVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfZGV0YWlscyKGAgoMU3RhdHVzVXBkYXRlEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSPQoNY3VycmVudF9zdGFnZRgDIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2USFAoHbWVzc2FnZRgEIAEoCUgAiAEBEi0KB21ldHJpY3MYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCCgoIX21ldHJpY3Mi0gMKEVNldHRsZW1lbnRDb21tYW5kEkoKDGNvbW1hbmRfdHlwZRgBIAEoDjI0LnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50Q29tbWFuZC5Db21tYW5kVHlwZRITCgtwcm9wb3NhbF9pZBgCIAEoCRIVCg1zZXR0bGVtZW50X2lkGAMgASgJEjAKCnBhcmFtZXRlcnMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLgoKZXhlY3V0ZV9ieRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi0wEKC0NvbW1hbmRUeXBlEhwKGENPTU1BTkRfVFlQRV9VTlNQRUNJRklFRBAAEiQKIENPTU1BTkRfVFlQRV9DUkVBVEVfRFZQX1BST1BPU0FMEAESGwoXQ09NTUFORF9UWVBFX0FDQ0VQVF9EVlAQAhIZChVDT01NQU5EX1RZUEVfQUxMT0NBVEUQAxIXChNDT01NQU5EX1RZUEVfU0VUVExFEAQSFwoTQ09NTUFORF9UWVBFX0NBTkNFTBAFEhYKEkNPTU1BTkRfVFlQRV9SRVRSWRAGQg0KC19wYXJhbWV0ZXJzIt8DCg9TZXR0bGVtZW50UXVlcnkSRAoKcXVlcnlfdHlwZRgBIAEoDjIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UXVlcnkuUXVlcnlUeXBlEhUKCHBhcnR5X2lkGAIgASgJSACIAQESGAoLY29udHJhY3RfaWQYAyABKAlIAYgBARIaCg1pbnN0cnVtZW50X2lkGAQgASgJSAKIAQESMAoKcGFyYW1ldGVycxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBASLIAQoJUXVlcnlUeXBlEhoKFlFVRVJZX1RZUEVfVU5TUEVDSUZJRUQQABIbChdRVUVSWV9UWVBFX0dFVF9IT0xESU5HUxABEh8KG1FVRVJZX1RZUEVfR0VUX1VTRVJfU0VSVklDRRACEhsKF1FVRVJZX1RZUEVfR0VUX0NPTlRSQUNUEAMSJAogUVVFUllfVFlQRV9HRVRfQUxMT0NBVElPTl9TVEFUVVMQBBIeChpRVUVSWV9UWVBFX0NIRUNLX0xJUVVJRElUWRAFQgsKCV9wYXJ0eV9pZEIOCgxfY29udHJhY3RfaWRCEAoOX2luc3RydW1lbnRfaWRCDQoLX3BhcmFtZXRlcnMirgEKElNldHRsZW1lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhQKB21lc3NhZ2UYAiABKAlIAIgBARIqCgRkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEjAKDHJlc3BvbmRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCBwoFX2RhdGEigQEKGkdldFBlbmRpbmdQcm9wb3NhbHNSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEAoIcGFydHlfaWQYAiABKAkSEgoFbGltaXQYAyABKA1IAIgBAUIICgZfbGltaXQicQobR2V0UGVuZGluZ1Byb3Bvc2Fsc1Jlc3BvbnNlEkMKCXByb3Bvc2FscxgBIAMoCzIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UHJvcG9zYWxNZXNzYWdlEg0KBXRvdGFsGAIgASgNImgKGkdldFNldHRsZW1lbnRTdGF0dXNSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSFQoNc2V0dGxlbWVudF9pZBgCIAEoCSKnAwoNRHZwU3RlcFN0YXR1cxIRCglzdGVwX25hbWUYASABKAkSOAoGc3RhdHVzGAIgASgOMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXNFbnVtEhgKC2NvbnRyYWN0X2lkGAMgASgJSACIAQESFgoJdXBkYXRlX2lkGAQgASgJSAGIAQESMwoKdXBkYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIaCg1lcnJvcl9tZXNzYWdlGAYgASgJSAOIAQESGQoMY29uZmlybWVkX2J5GAcgASgJSASIAQESRQoRY29uZmlybWVkX2J5X3JvbGUYCCABKA4yJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkZWRCeVJvbGVIBYgBAUIOCgxfY29udHJhY3RfaWRCDAoKX3VwZGF0ZV9pZEINCgtfdXBkYXRlZF9hdEIQCg5fZXJyb3JfbWVzc2FnZUIPCg1fY29uZmlybWVkX2J5QhQKEl9jb25maXJtZWRfYnlfcm9sZSKSCAobR2V0U2V0dGxlbWVudFN0YXR1c1Jlc3BvbnNlEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSNQoFc3RhZ2UYAyABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFN0YWdlEhoKDWVycm9yX21lc3NhZ2UYBCABKAlIAIgBARIuCgp1cGRhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJGChhkdnBfcHJvY2Vzc2luZ19mZWVfYnV5ZXIYCiABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxJHChlkdnBfcHJvY2Vzc2luZ19mZWVfc2VsbGVyGAsgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSTQofYWxsb2NhdGlvbl9wcm9jZXNzaW5nX2ZlZV9idXllchgMIAEoCzIkLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBTdGVwU3RhdHVzEk4KIGFsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfc2VsbGVyGA0gASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSOQoLZHZwX3JlcXVlc3QYDiABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxI4CgpkdnBfYWNjZXB0GA8gASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSPgoQYWxsb2NhdGlvbl9idXllchgQIAEoCzIkLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBTdGVwU3RhdHVzEj8KEWFsbG9jYXRpb25fc2VsbGVyGBEgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSOAoKc2V0dGxlbWVudBgSIAEoCzIkLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBTdGVwU3RhdHVzEkgKGnRyYWZmaWNfY29tcGVuc2F0aW9uX2J1eWVyGBMgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSSQobdHJhZmZpY19jb21wZW5zYXRpb25fc2VsbGVyGBQgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSPQoPcHJlY29uZmlybWF0aW9uGBUgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXNCEAoOX2Vycm9yX21lc3NhZ2UilQEKHFN1Ym1pdFByZWNvbmZpcm1hdGlvblJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBJACghkZWNpc2lvbhgCIAEoCzIuLnNpbHZhbmEuc2V0dGxlbWVudC52MS5QcmVjb25maXJtYXRpb25EZWNpc2lvbiJ5ChhEaXNjbG9zZWRDb250cmFjdE1lc3NhZ2USEwoLY29udHJhY3RfaWQYASABKAkSEwoLdGVtcGxhdGVfaWQYAiABKAkSGgoSY3JlYXRlZF9ldmVudF9ibG9iGAMgASgJEhcKD3N5bmNocm9uaXplcl9pZBgEIAEoCSL+AQocU2F2ZURpc2Nsb3NlZENvbnRyYWN0UmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJEkEKCGNvbnRyYWN0GAMgASgLMi8uc2lsdmFuYS5zZXR0bGVtZW50LnYxLkRpc2Nsb3NlZENvbnRyYWN0TWVzc2FnZRI/Cg1leHRlcm5hbF9hdXRoGAogASgLMiMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkV4dGVybmFsQXV0aEgAiAEBQhAKDl9leHRlcm5hbF9hdXRoIkEKHVNhdmVEaXNjbG9zZWRDb250cmFjdFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCSKGAQocR2V0RGlzY2xvc2VkQ29udHJhY3RzUmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhIKBW93bmVyGAMgASgJSACIAQFCCAoGX293bmVyImMKHUdldERpc2Nsb3NlZENvbnRyYWN0c1Jlc3BvbnNlEkIKCWNvbnRyYWN0cxgBIAMoCzIvLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EaXNjbG9zZWRDb250cmFjdE1lc3NhZ2Ui3AIKF1JlY29yZFNldHRsZW1lbnRSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSFwoPc2V0dGxlZF9kdnBfY2lkGAMgASgJEhwKFHNldHRsZW1lbnRfdXBkYXRlX2lkGAQgASgJEiQKHHNldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXQYBSABKAkSFAoHZHZwX2NpZBgGIAEoCUgAiAEBEiEKFGFsbG9jYXRpb25fYnV5ZXJfY2lkGAcgASgJSAGIAQESIgoVYWxsb2NhdGlvbl9zZWxsZXJfY2lkGAggASgJSAKIAQFCCgoIX2R2cF9jaWRCFwoVX2FsbG9jYXRpb25fYnV5ZXJfY2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWQiUwoYUmVjb3JkU2V0dGxlbWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIVCg1zZXR0bGVtZW50X2lkGAMgASgJIokKChhSZWNvcmRUcmFuc2FjdGlvblJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBI3Cgd0eF90eXBlGAIgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uVHlwZRIUCgxzZW5kZXJfcGFydHkYAyABKAkSNgoLc2VuZGVyX3R5cGUYBCABKA4yIS5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2VuZGVyVHlwZRIWCgl1cGRhdGVfaWQYBSABKAlIAIgBARIaCg1zdWJtaXNzaW9uX2lkGAYgASgJSAGIAQESIwoWc2V0dGxlbWVudF9wcm9wb3NhbF9pZBgHIAEoCUgCiAEBEhYKCW1hcmtldF9pZBgIIAEoCUgDiAEBEhkKDGNvdW50ZXJwYXJ0eRgJIAEoCUgEiAEBEhgKC2NvbnRyYWN0X2lkGAogASgJSAWIAQESGAoLY2hvaWNlX25hbWUYCyABKAlIBogBARITCgZhbW91bnQYDCABKAlIB4gBARIbCg5yZXdhcmRzX2Ftb3VudBgNIAEoCUgIiAEBEhoKDXJld2FyZHNfcm91bmQYDiABKARICYgBARIcCg90cmFmZmljX3JlcXVlc3QYDyABKARICogBARIdChB0cmFmZmljX3Jlc3BvbnNlGBAgASgESAuIAQESGgoNdHJhZmZpY190b3RhbBgRIAEoBEgMiAEBEiQKF2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkGBIgASgESA2IAQESOAoGcmVzdWx0GBMgASgOMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uUmVzdWx0EhoKDWVycm9yX21lc3NhZ2UYFCABKAlIDogBARIuCghtZXRhZGF0YRgVIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RID4gBARIsCgZ1cGRhdGUYFiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBCIAQESGAoQZGFtbF90ZW1wbGF0ZV9pZBgXIAEoCRITCgtkYW1sX2Nob2ljZRgYIAEoCRIyCgxkYW1sX2Nob2ljZXMYGSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBGIAQESPwoNZXh0ZXJuYWxfYXV0aBgeIAEoCzIjLnNpbHZhbmEuc2V0dGxlbWVudC52MS5FeHRlcm5hbEF1dGhIEogBAUIMCgpfdXBkYXRlX2lkQhAKDl9zdWJtaXNzaW9uX2lkQhkKF19zZXR0bGVtZW50X3Byb3Bvc2FsX2lkQgwKCl9tYXJrZXRfaWRCDwoNX2NvdW50ZXJwYXJ0eUIOCgxfY29udHJhY3RfaWRCDgoMX2Nob2ljZV9uYW1lQgkKB19hbW91bnRCEQoPX3Jld2FyZHNfYW1vdW50QhAKDl9yZXdhcmRzX3JvdW5kQhIKEF90cmFmZmljX3JlcXVlc3RCEwoRX3RyYWZmaWNfcmVzcG9uc2VCEAoOX3RyYWZmaWNfdG90YWxCGgoYX2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YUIJCgdfdXBkYXRlQg8KDV9kYW1sX2Nob2ljZXNCEAoOX2V4dGVybmFsX2F1dGgiVQoZUmVjb3JkVHJhbnNhY3Rpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSFgoOdHJhbnNhY3Rpb25faWQYAyABKAQikQMKHEdldFRyYW5zYWN0aW9uSGlzdG9yeVJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBIZCgxzZW5kZXJfcGFydHkYAiABKAlIAIgBARI8Cgd0eF90eXBlGAMgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uVHlwZUgBiAEBEiMKFnNldHRsZW1lbnRfcHJvcG9zYWxfaWQYBCABKAlIAogBARI9CgZyZXN1bHQYBSABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25SZXN1bHRIA4gBARISCgVsaW1pdBgGIAEoDUgEiAEBEhMKBm9mZnNldBgHIAEoDUgFiAEBQg8KDV9zZW5kZXJfcGFydHlCCgoIX3R4X3R5cGVCGQoXX3NldHRsZW1lbnRfcHJvcG9zYWxfaWRCCQoHX3Jlc3VsdEIICgZfbGltaXRCCQoHX29mZnNldCJ0Ch1HZXRUcmFuc2FjdGlvbkhpc3RvcnlSZXNwb25zZRJECgx0cmFuc2FjdGlvbnMYASADKAsyLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25IaXN0b3J5RW50cnkSDQoFdG90YWwYAiABKA0ivAkKF1RyYW5zYWN0aW9uSGlzdG9yeUVudHJ5EgoKAmlkGAEgASgEEjcKB3R4X3R5cGUYAiABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25UeXBlEhQKDHNlbmRlcl9wYXJ0eRgDIAEoCRI2CgtzZW5kZXJfdHlwZRgEIAEoDjIhLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZW5kZXJUeXBlEhYKCXVwZGF0ZV9pZBgFIAEoCUgAiAEBEhoKDXN1Ym1pc3Npb25faWQYBiABKAlIAYgBARIjChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAcgASgJSAKIAQESFgoJbWFya2V0X2lkGAggASgJSAOIAQESGQoMY291bnRlcnBhcnR5GAkgASgJSASIAQESGAoLY29udHJhY3RfaWQYCiABKAlIBYgBARIYCgtjaG9pY2VfbmFtZRgLIAEoCUgGiAEBEhMKBmFtb3VudBgMIAEoCUgHiAEBEhsKDnJld2FyZHNfYW1vdW50GA0gASgJSAiIAQESGgoNcmV3YXJkc19yb3VuZBgOIAEoBEgJiAEBEhwKD3RyYWZmaWNfcmVxdWVzdBgPIAEoBEgKiAEBEh0KEHRyYWZmaWNfcmVzcG9uc2UYECABKARIC4gBARIaCg10cmFmZmljX3RvdGFsGBEgASgESAyIAQESJAoXYWN0aXZpdHlfbWFya2VyX2NyZWF0ZWQYEiABKARIDYgBARI4CgZyZXN1bHQYEyABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25SZXN1bHQSGgoNZXJyb3JfbWVzc2FnZRgUIAEoCUgOiAEBEi4KCG1ldGFkYXRhGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgPiAEBEi4KCmNyZWF0ZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKBnVwZGF0ZRgXIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEIgBARIYChBkYW1sX3RlbXBsYXRlX2lkGBggASgJEhMKC2RhbWxfY2hvaWNlGBkgASgJEjIKDGRhbWxfY2hvaWNlcxgaIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEYgBAUIMCgpfdXBkYXRlX2lkQhAKDl9zdWJtaXNzaW9uX2lkQhkKF19zZXR0bGVtZW50X3Byb3Bvc2FsX2lkQgwKCl9tYXJrZXRfaWRCDwoNX2NvdW50ZXJwYXJ0eUIOCgxfY29udHJhY3RfaWRCDgoMX2Nob2ljZV9uYW1lQgkKB19hbW91bnRCEQoPX3Jld2FyZHNfYW1vdW50QhAKDl9yZXdhcmRzX3JvdW5kQhIKEF90cmFmZmljX3JlcXVlc3RCEwoRX3RyYWZmaWNfcmVzcG9uc2VCEAoOX3RyYWZmaWNfdG90YWxCGgoYX2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YUIJCgdfdXBkYXRlQg8KDV9kYW1sX2Nob2ljZXMiogUKHFJlY29yZFNldHRsZW1lbnRFdmVudFJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBITCgtwcm9wb3NhbF9pZBgCIAEoCRITCgtyZWNvcmRlZF9ieRgDIAEoCRI/ChByZWNvcmRlZF9ieV9yb2xlGAQgASgOMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZGVkQnlSb2xlEj4KCmV2ZW50X3R5cGUYBSABKA4yKi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEV2ZW50VHlwZRIaCg1zdWJtaXNzaW9uX2lkGAYgASgJSACIAQESFgoJdXBkYXRlX2lkGAcgASgJSAGIAQESGAoLY29udHJhY3RfaWQYCCABKAlIAogBARIYCgt0ZW1wbGF0ZV9pZBgJIAEoCUgDiAEBEjwKBnJlc3VsdBgKIAEoDjIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50RXZlbnRSZXN1bHQSGgoNZXJyb3JfbWVzc2FnZRgLIAEoCUgEiAEBEi4KCG1ldGFkYXRhGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEj8KDWV4dGVybmFsX2F1dGgYFCABKAsyIy5zaWx2YW5hLnNldHRsZW1lbnQudjEuRXh0ZXJuYWxBdXRoSAaIAQFCEAoOX3N1Ym1pc3Npb25faWRCDAoKX3VwZGF0ZV9pZEIOCgxfY29udHJhY3RfaWRCDgoMX3RlbXBsYXRlX2lkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YUIQCg5fZXh0ZXJuYWxfYXV0aCJTCh1SZWNvcmRTZXR0bGVtZW50RXZlbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSEAoIZXZlbnRfaWQYAyABKAQixwIKG0dldFNldHRsZW1lbnRIaXN0b3J5UmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJEkMKCmV2ZW50X3R5cGUYAyABKA4yKi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEV2ZW50VHlwZUgAiAEBEkEKBnJlc3VsdBgEIAEoDjIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50RXZlbnRSZXN1bHRIAYgBARISCgVsaW1pdBgFIAEoDUgCiAEBEhMKBm9mZnNldBgGIAEoDUgDiAEBQg0KC19ldmVudF90eXBlQgkKB19yZXN1bHRCCAoGX2xpbWl0QgkKB19vZmZzZXQibAocR2V0U2V0dGxlbWVudEhpc3RvcnlSZXNwb25zZRI9CgZldmVudHMYASADKAsyLS5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEhpc3RvcnlFbnRyeRINCgV0b3RhbBgCIAEoDSLQBAoWU2V0dGxlbWVudEhpc3RvcnlFbnRyeRIKCgJpZBgBIAEoBBITCgtwcm9wb3NhbF9pZBgCIAEoCRITCgtyZWNvcmRlZF9ieRgDIAEoCRI/ChByZWNvcmRlZF9ieV9yb2xlGAQgASgOMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZGVkQnlSb2xlEj4KCmV2ZW50X3R5cGUYBSABKA4yKi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEV2ZW50VHlwZRIaCg1zdWJtaXNzaW9uX2lkGAYgASgJSACIAQESFgoJdXBkYXRlX2lkGAcgASgJSAGIAQESGAoLY29udHJhY3RfaWQYCCABKAlIAogBARIYCgt0ZW1wbGF0ZV9pZBgJIAEoCUgDiAEBEjwKBnJlc3VsdBgKIAEoDjIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50RXZlbnRSZXN1bHQSGgoNZXJyb3JfbWVzc2FnZRgLIAEoCUgEiAEBEi4KCG1ldGFkYXRhGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9zdWJtaXNzaW9uX2lkQgwKCl91cGRhdGVfaWRCDgoMX2NvbnRyYWN0X2lkQg4KDF90ZW1wbGF0ZV9pZEIQCg5fZXJyb3JfbWVzc2FnZUILCglfbWV0YWRhdGEi2QIKG1VwZGF0ZVByb3Bvc2FsU3RhdHVzUmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJElAKCm5ld19zdGF0dXMYAyABKA4yPC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVXBkYXRlUHJvcG9zYWxTdGF0dXNSZXF1ZXN0Lk5ld1N0YXR1cxIaCg1lcnJvcl9tZXNzYWdlGAQgASgJSACIAQEicAoJTmV3U3RhdHVzEhoKFk5FV19TVEFUVVNfVU5TUEVDSUZJRUQQABIWChJORVdfU1RBVFVTX1NFVFRMRUQQARIYChRORVdfU1RBVFVTX0NBTkNFTExFRBACEhUKEU5FV19TVEFUVVNfRkFJTEVEEANCEAoOX2Vycm9yX21lc3NhZ2UiQAocVXBkYXRlUHJvcG9zYWxTdGF0dXNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkiuwEKIEdldFNldHRsZW1lbnRQcm9wb3NhbEJ5SWRSZXF1ZXN0EjwKC2NhbnRvbl9hdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoSAASPAoNZXh0ZXJuYWxfYXV0aBgCIAEoCzIjLnNpbHZhbmEuc2V0dGxlbWVudC52MS5FeHRlcm5hbEF1dGhIABITCgtwcm9wb3NhbF9pZBgDIAEoCUIGCgRhdXRoInYKIUdldFNldHRsZW1lbnRQcm9wb3NhbEJ5SWRSZXNwb25zZRINCgVmb3VuZBgBIAEoCBJCCghwcm9wb3NhbBgCIAEoCzIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UHJvcG9zYWxNZXNzYWdlKoUECg9TZXR0bGVtZW50U3RhZ2USIAocU0VUVExFTUVOVF9TVEFHRV9VTlNQRUNJRklFRBAAEiYKIlNFVFRMRU1FTlRfU1RBR0VfUFJPUE9TQUxfUkVDRUlWRUQQARIsCihTRVRUTEVNRU5UX1NUQUdFX1BSRUNPTkZJUk1BVElPTl9QRU5ESU5HEAISIQodU0VUVExFTUVOVF9TVEFHRV9QUkVDT05GSVJNRUQQAxIqCiZTRVRUTEVNRU5UX1NUQUdFX0RWUF9QUk9QT1NBTF9DUkVBVElORxAEEikKJVNFVFRMRU1FTlRfU1RBR0VfRFZQX1BST1BPU0FMX0NSRUFURUQQBRIiCh5TRVRUTEVNRU5UX1NUQUdFX0RWUF9BQ0NFUFRJTkcQBhIhCh1TRVRUTEVNRU5UX1NUQUdFX0RWUF9BQ0NFUFRFRBAHEh8KG1NFVFRMRU1FTlRfU1RBR0VfQUxMT0NBVElORxAIEh4KGlNFVFRMRU1FTlRfU1RBR0VfQUxMT0NBVEVEEAkSHQoZU0VUVExFTUVOVF9TVEFHRV9TRVRUTElORxAKEhwKGFNFVFRMRU1FTlRfU1RBR0VfU0VUVExFRBALEhsKF1NFVFRMRU1FTlRfU1RBR0VfRkFJTEVEEAwSHgoaU0VUVExFTUVOVF9TVEFHRV9DQU5DRUxMRUQQDSqNAQoXUHJlY29uZmlybWF0aW9uUmVzcG9uc2USKAokUFJFQ09ORklSTUFUSU9OX1JFU1BPTlNFX1VOU1BFQ0lGSUVEEAASIwofUFJFQ09ORklSTUFUSU9OX1JFU1BPTlNFX0FDQ0VQVBABEiMKH1BSRUNPTkZJUk1BVElPTl9SRVNQT05TRV9SRUpFQ1QQAiptCglQYXJ0eVJvbGUSGgoWUEFSVFlfUk9MRV9VTlNQRUNJRklFRBAAEhQKEFBBUlRZX1JPTEVfQlVZRVIQARIVChFQQVJUWV9ST0xFX1NFTExFUhACEhcKE1BBUlRZX1JPTEVfT1BFUkFUT1IQAyr8AwoPVHJhbnNhY3Rpb25UeXBlEiAKHFRSQU5TQUNUSU9OX1RZUEVfVU5TUEVDSUZJRUQQABIpCiVUUkFOU0FDVElPTl9UWVBFX1VTRVJfU0VSVklDRV9SRVFVRVNUEAESMAosVFJBTlNBQ1RJT05fVFlQRV9VU0VSX1NFUlZJQ0VfUkVRVUVTVF9BQ0NFUFQQAhIoCiRUUkFOU0FDVElPTl9UWVBFX1VTRVJfU0VSVklDRV9DQU5DRUwQAxIgChxUUkFOU0FDVElPTl9UWVBFX0RWUF9QUk9QT1NFEAQSHwobVFJBTlNBQ1RJT05fVFlQRV9EVlBfQUNDRVBUEAUSHwobVFJBTlNBQ1RJT05fVFlQRV9EVlBfQ0FOQ0VMEAYSHwobVFJBTlNBQ1RJT05fVFlQRV9EVlBfU0VUVExFEAcSHQoZVFJBTlNBQ1RJT05fVFlQRV9BTExPQ0FURRAIEiQKIFRSQU5TQUNUSU9OX1RZUEVfQUxMT0NBVEVfQ0FOQ0VMEAkSIQodVFJBTlNBQ1RJT05fVFlQRV9GRUVfVFJBTlNGRVIQChIaChZUUkFOU0FDVElPTl9UWVBFX01FUkdFEAsSGwoXVFJBTlNBQ1RJT05fVFlQRV9VTkxPQ0sQDBIaChZUUkFOU0FDVElPTl9UWVBFX09USEVSEA0qiAEKClNlbmRlclR5cGUSGwoXU0VOREVSX1RZUEVfVU5TUEVDSUZJRUQQABIYChRTRU5ERVJfVFlQRV9PUEVSQVRPUhABEhQKEFNFTkRFUl9UWVBFX1VTRVIQAhIVChFTRU5ERVJfVFlQRV9CVVlFUhADEhYKElNFTkRFUl9UWVBFX1NFTExFUhAEKpYBChFUcmFuc2FjdGlvblJlc3VsdBIiCh5UUkFOU0FDVElPTl9SRVNVTFRfVU5TUEVDSUZJRUQQABIeChpUUkFOU0FDVElPTl9SRVNVTFRfUEVORElORxABEh4KGlRSQU5TQUNUSU9OX1JFU1VMVF9TVUNDRVNTEAISHQoZVFJBTlNBQ1RJT05fUkVTVUxUX0ZBSUxFRBADKvMTChNTZXR0bGVtZW50RXZlbnRUeXBlEiUKIVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEjwKOFNFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUFJPQ0VTU0lOR19GRUVfQlVZRVJfU1VCTUlUVEVEEAESPAo4U0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9QUk9DRVNTSU5HX0ZFRV9CVVlFUl9DT01QTEVURUQQAhI7CjdTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1BST0NFU1NJTkdfRkVFX0JVWUVSX1JFQ0VJVkVEEAMSLworU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9SRVFVRVNUX1NVQk1JVFRFRBAEEi8KK1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUkVRVUVTVF9DT01QTEVURUQQBRIvCitTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1JFUVVFU1RfV0lUTkVTU0VEEAYSLgoqU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9SRVFVRVNUX1JFSkVDVEVEEAcSLworU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9SRVFVRVNUX0NBTkNFTExFRBAIEj0KOVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUFJPQ0VTU0lOR19GRUVfU0VMTEVSX1NVQk1JVFRFRBAJEj0KOVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUFJPQ0VTU0lOR19GRUVfU0VMTEVSX0NPTVBMRVRFRBAKEjwKOFNFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUFJPQ0VTU0lOR19GRUVfU0VMTEVSX1JFQ0VJVkVEEAsSLgoqU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9BQ0NFUFRfU1VCTUlUVEVEEAwSLgoqU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9BQ0NFUFRfQ09NUExFVEVEEA0SMAosU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9BQ0NFUFRFRF9XSVRORVNTRUQQDhImCiJTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1JFSkVDVEVEEA8SJwojU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9XSVRIRFJBV04QEBInCiNTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX0NBTkNFTExFRBAREkMKP1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1BST0NFU1NJTkdfRkVFX0JVWUVSX1NVQk1JVFRFRBASEkMKP1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1BST0NFU1NJTkdfRkVFX0JVWUVSX0NPTVBMRVRFRBATEkIKPlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1BST0NFU1NJTkdfRkVFX0JVWUVSX1JFQ0VJVkVEEBQSNAowU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fQlVZRVJfU1VCTUlUVEVEEBUSNAowU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fQlVZRVJfQ09NUExFVEVEEBYSNAowU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fQlVZRVJfV0lUTkVTU0VEEBcSNAowU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fQlVZRVJfV0lUSERSQVdOEBgSNAowU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fQlVZRVJfQ0FOQ0VMTEVEEBkSRApAU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fUFJPQ0VTU0lOR19GRUVfU0VMTEVSX1NVQk1JVFRFRBAaEkQKQFNFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1BST0NFU1NJTkdfRkVFX1NFTExFUl9DT01QTEVURUQQGxJDCj9TRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9QUk9DRVNTSU5HX0ZFRV9TRUxMRVJfUkVDRUlWRUQQHBI1CjFTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9TRUxMRVJfU1VCTUlUVEVEEB0SNQoxU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fU0VMTEVSX0NPTVBMRVRFRBAeEjUKMVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1NFTExFUl9XSVRORVNTRUQQHxI1CjFTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9TRUxMRVJfV0lUSERSQVdOECASNQoxU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fU0VMTEVSX0NBTkNFTExFRBAhEi4KKlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9TRVRUTEVNRU5UX1NVQk1JVFRFRBAiEi4KKlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9TRVRUTEVNRU5UX0NPTVBMRVRFRBAjEi4KKlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9TRVRUTEVNRU5UX1dJVE5FU1NFRBAkEj4KOlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9UUkFGRklDX0NPTVBFTlNBVElPTl9CVVlFUl9TVUJNSVRURUQQJRI+CjpTRVRUTEVNRU5UX0VWRU5UX1RZUEVfVFJBRkZJQ19DT01QRU5TQVRJT05fQlVZRVJfQ09NUExFVEVEECYSPwo7U0VUVExFTUVOVF9FVkVOVF9UWVBFX1RSQUZGSUNfQ09NUEVOU0FUSU9OX1NFTExFUl9TVUJNSVRURUQQJxI/CjtTRVRUTEVNRU5UX0VWRU5UX1RZUEVfVFJBRkZJQ19DT01QRU5TQVRJT05fU0VMTEVSX0NPTVBMRVRFRBAoEjMKL1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9QUkVDT05GSVJNQVRJT05fUkVRVUVTVEVEECkSLworU0VUVExFTUVOVF9FVkVOVF9UWVBFX1BSRUNPTkZJUk1BVElPTl9CVVlFUhAqEjAKLFNFVFRMRU1FTlRfRVZFTlRfVFlQRV9QUkVDT05GSVJNQVRJT05fU0VMTEVSECsSMwovU0VUVExFTUVOVF9FVkVOVF9UWVBFX1BSRUNPTkZJUk1BVElPTl9DQU5DRUxMRUQQLBIhCh1TRVRUTEVNRU5UX0VWRU5UX1RZUEVfVElNRU9VVBAtKqcBCg5SZWNvcmRlZEJ5Um9sZRIgChxSRUNPUkRFRF9CWV9ST0xFX1VOU1BFQ0lGSUVEEAASGgoWUkVDT1JERURfQllfUk9MRV9CVVlFUhABEhsKF1JFQ09SREVEX0JZX1JPTEVfU0VMTEVSEAISHQoZUkVDT1JERURfQllfUk9MRV9PUEVSQVRPUhADEhsKF1JFQ09SREVEX0JZX1JPTEVfU1lTVEVNEAQq0wEKFVNldHRsZW1lbnRFdmVudFJlc3VsdBInCiNTRVRUTEVNRU5UX0VWRU5UX1JFU1VMVF9VTlNQRUNJRklFRBAAEiMKH1NFVFRMRU1FTlRfRVZFTlRfUkVTVUxUX1BFTkRJTkcQARIjCh9TRVRUTEVNRU5UX0VWRU5UX1JFU1VMVF9TVUNDRVNTEAISIgoeU0VUVExFTUVOVF9FVkVOVF9SRVNVTFRfRkFJTEVEEAMSIwofU0VUVExFTUVOVF9FVkVOVF9SRVNVTFRfVElNRU9VVBAEKsMCChFEdnBTdGVwU3RhdHVzRW51bRIfChtEVlBfU1RFUF9TVEFUVVNfVU5TUEVDSUZJRUQQABIbChdEVlBfU1RFUF9TVEFUVVNfUEVORElORxABEh0KGURWUF9TVEVQX1NUQVRVU19TVUJNSVRURUQQAhIdChlEVlBfU1RFUF9TVEFUVVNfQ09NUExFVEVEEAMSHQoZRFZQX1NURVBfU1RBVFVTX0NPTkZJUk1FRBAEEhoKFkRWUF9TVEVQX1NUQVRVU19GQUlMRUQQBRIcChhEVlBfU1RFUF9TVEFUVVNfUkVKRUNURUQQBhIdChlEVlBfU1RFUF9TVEFUVVNfV0lUSERSQVdOEAcSHQoZRFZQX1NURVBfU1RBVFVTX0NBTkNFTExFRBAIEhsKF0RWUF9TVEVQX1NUQVRVU19USU1FT1VUEAky/QwKEVNldHRsZW1lbnRTZXJ2aWNlEnIKEFNldHRsZW1lbnRTdHJlYW0SLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uVG9TZXJ2ZXJNZXNzYWdlGiwuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNlcnZlclRvQ2FudG9uTWVzc2FnZSgBMAESfAoTR2V0UGVuZGluZ1Byb3Bvc2FscxIxLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRQZW5kaW5nUHJvcG9zYWxzUmVxdWVzdBoyLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRQZW5kaW5nUHJvcG9zYWxzUmVzcG9uc2USfAoTR2V0U2V0dGxlbWVudFN0YXR1cxIxLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRTZXR0bGVtZW50U3RhdHVzUmVxdWVzdBoyLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRTZXR0bGVtZW50U3RhdHVzUmVzcG9uc2USZAoVU3VibWl0UHJlY29uZmlybWF0aW9uEjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlN1Ym1pdFByZWNvbmZpcm1hdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSggEKFVNhdmVEaXNjbG9zZWRDb250cmFjdBIzLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TYXZlRGlzY2xvc2VkQ29udHJhY3RSZXF1ZXN0GjQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNhdmVEaXNjbG9zZWRDb250cmFjdFJlc3BvbnNlEoIBChVHZXREaXNjbG9zZWRDb250cmFjdHMSMy5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0RGlzY2xvc2VkQ29udHJhY3RzUmVxdWVzdBo0LnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXREaXNjbG9zZWRDb250cmFjdHNSZXNwb25zZRJzChBSZWNvcmRTZXR0bGVtZW50Ei4uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFNldHRsZW1lbnRSZXF1ZXN0Gi8uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFNldHRsZW1lbnRSZXNwb25zZRJ2ChFSZWNvcmRUcmFuc2FjdGlvbhIvLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRUcmFuc2FjdGlvblJlcXVlc3QaMC5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkVHJhbnNhY3Rpb25SZXNwb25zZRKCAQoVR2V0VHJhbnNhY3Rpb25IaXN0b3J5EjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFRyYW5zYWN0aW9uSGlzdG9yeVJlcXVlc3QaNC5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0VHJhbnNhY3Rpb25IaXN0b3J5UmVzcG9uc2USggEKFVJlY29yZFNldHRsZW1lbnRFdmVudBIzLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRTZXR0bGVtZW50RXZlbnRSZXF1ZXN0GjQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFNldHRsZW1lbnRFdmVudFJlc3BvbnNlEn8KFEdldFNldHRsZW1lbnRIaXN0b3J5EjIuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFNldHRsZW1lbnRIaXN0b3J5UmVxdWVzdBozLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRTZXR0bGVtZW50SGlzdG9yeVJlc3BvbnNlEn8KFFVwZGF0ZVByb3Bvc2FsU3RhdHVzEjIuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlVwZGF0ZVByb3Bvc2FsU3RhdHVzUmVxdWVzdBozLnNpbHZhbmEuc2V0dGxlbWVudC52MS5VcGRhdGVQcm9wb3NhbFN0YXR1c1Jlc3BvbnNlEo4BChlHZXRTZXR0bGVtZW50UHJvcG9zYWxCeUlkEjcuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbEJ5SWRSZXF1ZXN0Gjguc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbEJ5SWRSZXNwb25zZUI1WjNnaXRodWIuY29tL1NpbHZhbmFPbmUvY2FudG9uLWFnZW50L3Byb3RvO3NldHRsZW1lbnRiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
15
+ fileDesc("Cixwcm90by9zaWx2YW5hL3NldHRsZW1lbnQvdjEvc2V0dGxlbWVudC5wcm90bxIVc2lsdmFuYS5zZXR0bGVtZW50LnYxIn4KDkNhbnRvbk5vZGVBdXRoEhAKCHBhcnR5X2lkGAEgASgJEhEKCWp3dF90b2tlbhgCIAEoCRIVCg1ub2RlX2luc3RhbmNlGAMgASgJEjAKDGNvbm5lY3RlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAingEKFFNldHRsZW1lbnRJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSDgoGc3ltYm9sGAIgASgJEhAKCHJlZ2lzdHJ5GAMgASgJEhAKCHF1YW50aXR5GAQgASgJEi4KCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgsKCV9tZXRhZGF0YSKZBQoZU2V0dGxlbWVudFByb3Bvc2FsTWVzc2FnZRITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEhEKCW1hcmtldF9pZBgDIAEoCRITCgtidXllcl9wYXJ0eRgEIAEoCRIUCgxzZWxsZXJfcGFydHkYBSABKAkSRAoPYmFzZV9pbnN0cnVtZW50GAYgASgLMisuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRJbnN0cnVtZW50EkUKEHF1b3RlX2luc3RydW1lbnQYByABKAsyKy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEluc3RydW1lbnQSGAoQc2V0dGxlbWVudF9wcmljZRgIIAEoCRIzCg9hbGxvY2F0ZV9iZWZvcmUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDXNldHRsZV9iZWZvcmUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiAKGGR2cF9wcm9jZXNzaW5nX2ZlZV9idXllchgNIAEoCRIhChlkdnBfcHJvY2Vzc2luZ19mZWVfc2VsbGVyGA4gASgJEicKH2FsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfYnV5ZXIYDyABKAkSKAogYWxsb2NhdGlvbl9wcm9jZXNzaW5nX2ZlZV9zZWxsZXIYECABKAlCCwoJX21ldGFkYXRhIokCChZQcmVjb25maXJtYXRpb25SZXF1ZXN0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSQgoIcHJvcG9zYWwYAyABKAsyMC5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFByb3Bvc2FsTWVzc2FnZRIYChByZXF1ZXN0aW5nX3BhcnR5GAQgASgJEi4KCnJlc3BvbmRfYnkYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKBXRlcm1zGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQggKBl90ZXJtcyK/AgoXUHJlY29uZmlybWF0aW9uRGVjaXNpb24SEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRJACghyZXNwb25zZRgDIAEoDjIuLnNpbHZhbmEuc2V0dGxlbWVudC52MS5QcmVjb25maXJtYXRpb25SZXNwb25zZRIdChByZWplY3Rpb25fcmVhc29uGAQgASgJSACIAQESMAoKY29uZGl0aW9ucxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIRCglzaWduZWRfYnkYBiABKAkSLgoKZGVjaWRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEwoRX3JlamVjdGlvbl9yZWFzb25CDQoLX2NvbmRpdGlvbnMi2AEKEkR2cENvbnRyYWN0Q3JlYXRlZBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEhgKEGR2cF9wcm9wb3NhbF9jaWQYAyABKAkSHgoWZHZwX3Byb3Bvc2FsX3VwZGF0ZV9pZBgEIAEoCRIWCg5wcm9wb3Nlcl9wYXJ0eRgFIAEoCRIUCgxjb3VudGVycGFydHkYBiABKAkSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAirwEKE0R2cENvbnRyYWN0QWNjZXB0ZWQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIPCgdkdnBfY2lkGAMgASgJEhUKDWR2cF91cGRhdGVfaWQYBCABKAkSEwoLYWNjZXB0ZWRfYnkYBSABKAkSLwoLYWNjZXB0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItsCChBBbGxvY2F0aW9uU3RhdHVzEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSNAoKcGFydHlfcm9sZRgDIAEoDjIgLnNpbHZhbmEuc2V0dGxlbWVudC52MS5QYXJ0eVJvbGUSEAoIcGFydHlfaWQYBCABKAkSFgoOYWxsb2NhdGlvbl9jaWQYBSABKAkSHAoUYWxsb2NhdGlvbl91cGRhdGVfaWQYBiABKAkSFQoNaW5zdHJ1bWVudF9pZBgHIAEoCRIQCghxdWFudGl0eRgIIAEoCRIUCgxpc19hbGxvY2F0ZWQYCSABKAgSGgoNZXJyb3JfbWVzc2FnZRgKIAEoCUgAiAEBEjAKDGFsbG9jYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX2Vycm9yX21lc3NhZ2UiqgIKGVNldHRsZW1lbnRFeGVjdXRpb25TdGF0dXMSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIPCgdkdnBfY2lkGAMgASgJEhcKD3NldHRsZWRfZHZwX2NpZBgEIAEoCRIcChRzZXR0bGVtZW50X3VwZGF0ZV9pZBgFIAEoCRIkChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GAYgASgJEhUKDWlzX3N1Y2Nlc3NmdWwYByABKAgSGgoNZXJyb3JfbWVzc2FnZRgIIAEoCUgAiAEBEi4KCnNldHRsZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9lcnJvcl9tZXNzYWdlIooBCg9Vc2VyU2VydmljZUluZm8SEAoIcGFydHlfaWQYASABKAkSGAoQdXNlcl9zZXJ2aWNlX2NpZBgCIAEoCRIbChNvcGVyYXRvcl9jb25maWdfY2lkGAMgASgJEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIvkBChNTZXR0bGVtZW50SGFuZHNoYWtlEjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEQoJcGFydHlfaWRzGAIgAygJEj0KDXVzZXJfc2VydmljZXMYAyADKAsyJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVXNlclNlcnZpY2VJbmZvEhYKDm9wZXJhdG9yX3BhcnR5GAQgASgJEjIKDGNhcGFiaWxpdGllcxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIPCg1fY2FwYWJpbGl0aWVzIrgBCgxIYW5kc2hha2VBY2sSEAoIYWNjZXB0ZWQYASABKAgSHQoQcmVqZWN0aW9uX3JlYXNvbhgCIAEoCUgAiAEBEhIKCnNlc3Npb25faWQYAyABKAkSHQoVc3VwcG9ydGVkX2luc3RydW1lbnRzGAQgAygJEi8KC3NlcnZlcl90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEITChFfcmVqZWN0aW9uX3JlYXNvbiJnCglIZWFydGJlYXQSEgoKc2Vzc2lvbl9pZBgBIAEoCRItCgl0aW1lc3RhbXAYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD3NlcXVlbmNlX251bWJlchgDIAEoBCJnChVMaXF1aWRpdHlQcm92aWRlclBpbmcSHwoXbGlxdWlkaXR5X3Byb3ZpZGVyX25hbWUYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKoAQoVTGlxdWlkaXR5UHJvdmlkZXJQb25nEh8KF2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lGAEgASgJEg8KB3N1Y2Nlc3MYAiABKAgSGgoNZXJyb3JfbWVzc2FnZRgDIAEoCUgAiAEBEi8KC3NlcnZlcl90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIQCg5fZXJyb3JfbWVzc2FnZSLbBgoVU2VydmVyVG9DYW50b25NZXNzYWdlEhIKCnNlc3Npb25faWQYASABKAkSFwoPc2VxdWVuY2VfbnVtYmVyGAIgASgEEjwKDWhhbmRzaGFrZV9hY2sYAyABKAsyIy5zaWx2YW5hLnNldHRsZW1lbnQudjEuSGFuZHNoYWtlQWNrSAASNQoJaGVhcnRiZWF0GAQgASgLMiAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkhlYXJ0YmVhdEgAEkQKCHByb3Bvc2FsGAUgASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2VIABJQChdwcmVjb25maXJtYXRpb25fcmVxdWVzdBgGIAEoCzItLnNpbHZhbmEuc2V0dGxlbWVudC52MS5QcmVjb25maXJtYXRpb25SZXF1ZXN0SAASQAoLZHZwX2NyZWF0ZWQYByABKAsyKS5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwQ29udHJhY3RDcmVhdGVkSAASQgoMZHZwX2FjY2VwdGVkGAggASgLMiouc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cENvbnRyYWN0QWNjZXB0ZWRIABJEChFhbGxvY2F0aW9uX3N0YXR1cxgJIAEoCzInLnNpbHZhbmEuc2V0dGxlbWVudC52MS5BbGxvY2F0aW9uU3RhdHVzSAASTQoRc2V0dGxlbWVudF9zdGF0dXMYCiABKAsyMC5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEV4ZWN1dGlvblN0YXR1c0gAEjsKB2NvbW1hbmQYCyABKAsyKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudENvbW1hbmRIABI3CgVxdWVyeRgMIAEoCzImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UXVlcnlIABI/CgdscF9wb25nGA4gASgLMiwuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkxpcXVpZGl0eVByb3ZpZGVyUG9uZ0gAEisKB3NlbnRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgkKB21lc3NhZ2UisQYKFUNhbnRvblRvU2VydmVyTWVzc2FnZRISCgpzZXNzaW9uX2lkGAEgASgJEhcKD3NlcXVlbmNlX251bWJlchgCIAEoBBI/CgloYW5kc2hha2UYAyABKAsyKi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEhhbmRzaGFrZUgAEjUKCWhlYXJ0YmVhdBgEIAEoCzIgLnNpbHZhbmEuc2V0dGxlbWVudC52MS5IZWFydGJlYXRIABJJCg9wcmVjb25maXJtYXRpb24YBSABKAsyLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uRGVjaXNpb25IABJACgxkdnBfY3JlYXRpb24YBiABKAsyKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwQ3JlYXRpb25SZXBvcnRIABJECg5kdnBfYWNjZXB0YW5jZRgHIAEoCzIqLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBBY2NlcHRhbmNlUmVwb3J0SAASPQoKYWxsb2NhdGlvbhgIIAEoCzInLnNpbHZhbmEuc2V0dGxlbWVudC52MS5BbGxvY2F0aW9uUmVwb3J0SAASPQoKc2V0dGxlbWVudBgJIAEoCzInLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UmVwb3J0SAASPQoIcmVzcG9uc2UYCiABKAsyKS5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFJlc3BvbnNlSAASMwoFZXJyb3IYCyABKAsyIi5zaWx2YW5hLnNldHRsZW1lbnQudjEuRXJyb3JSZXBvcnRIABI1CgZzdGF0dXMYDCABKAsyIy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU3RhdHVzVXBkYXRlSAASPwoHbHBfcGluZxgOIAEoCzIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5MaXF1aWRpdHlQcm92aWRlclBpbmdIABIrCgdzZW50X2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIJCgdtZXNzYWdlIqICChFEdnBDcmVhdGlvblJlcG9ydBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEg8KB3N1Y2Nlc3MYAyABKAgSHQoQZHZwX3Byb3Bvc2FsX2NpZBgEIAEoCUgAiAEBEiMKFmR2cF9wcm9wb3NhbF91cGRhdGVfaWQYBSABKAlIAYgBARIaCg1lcnJvcl9tZXNzYWdlGAYgASgJSAKIAQESLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEwoRX2R2cF9wcm9wb3NhbF9jaWRCGQoXX2R2cF9wcm9wb3NhbF91cGRhdGVfaWRCEAoOX2Vycm9yX21lc3NhZ2UigQIKE0R2cEFjY2VwdGFuY2VSZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIPCgdzdWNjZXNzGAMgASgIEhQKB2R2cF9jaWQYBCABKAlIAIgBARIaCg1kdnBfdXBkYXRlX2lkGAUgASgJSAGIAQESGgoNZXJyb3JfbWVzc2FnZRgGIAEoCUgCiAEBEi8KC2FjY2VwdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfZHZwX2NpZEIQCg5fZHZwX3VwZGF0ZV9pZEIQCg5fZXJyb3JfbWVzc2FnZSLnAgoQQWxsb2NhdGlvblJlcG9ydBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEjQKCnBhcnR5X3JvbGUYAyABKA4yIC5zaWx2YW5hLnNldHRsZW1lbnQudjEuUGFydHlSb2xlEg8KB3N1Y2Nlc3MYBCABKAgSGwoOYWxsb2NhdGlvbl9jaWQYBSABKAlIAIgBARIhChRhbGxvY2F0aW9uX3VwZGF0ZV9pZBgGIAEoCUgBiAEBEhQKDGhvbGRpbmdfY2lkcxgHIAMoCRIaCg1lcnJvcl9tZXNzYWdlGAggASgJSAKIAQESMAoMYWxsb2NhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIRCg9fYWxsb2NhdGlvbl9jaWRCFwoVX2FsbG9jYXRpb25fdXBkYXRlX2lkQhAKDl9lcnJvcl9tZXNzYWdlIv4CChBTZXR0bGVtZW50UmVwb3J0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHc3VjY2VzcxgDIAEoCBIcCg9zZXR0bGVkX2R2cF9jaWQYBCABKAlIAIgBARIhChRzZXR0bGVtZW50X3VwZGF0ZV9pZBgFIAEoCUgBiAEBEikKHHNldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXQYBiABKAlIAogBARIVCg1hcmNoaXZlZF9jaWRzGAcgAygJEhoKDWVycm9yX21lc3NhZ2UYCCABKAlIA4gBARIuCgpzZXR0bGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZEIfCh1fc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldEIQCg5fZXJyb3JfbWVzc2FnZSKHAgoLRXJyb3JSZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI1CgVzdGFnZRgDIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2USEgoKZXJyb3JfY29kZRgEIAEoCRIVCg1lcnJvcl9tZXNzYWdlGAUgASgJEi0KB2RldGFpbHMYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLwoLb2NjdXJyZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9kZXRhaWxzIoYCCgxTdGF0dXNVcGRhdGUSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI9Cg1jdXJyZW50X3N0YWdlGAMgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRTdGFnZRIUCgdtZXNzYWdlGAQgASgJSACIAQESLQoHbWV0cmljcxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfbWVzc2FnZUIKCghfbWV0cmljcyLSAwoRU2V0dGxlbWVudENvbW1hbmQSSgoMY29tbWFuZF90eXBlGAEgASgOMjQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRDb21tYW5kLkNvbW1hbmRUeXBlEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhUKDXNldHRsZW1lbnRfaWQYAyABKAkSMAoKcGFyYW1ldGVycxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIuCgpleGVjdXRlX2J5GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLTAQoLQ29tbWFuZFR5cGUSHAoYQ09NTUFORF9UWVBFX1VOU1BFQ0lGSUVEEAASJAogQ09NTUFORF9UWVBFX0NSRUFURV9EVlBfUFJPUE9TQUwQARIbChdDT01NQU5EX1RZUEVfQUNDRVBUX0RWUBACEhkKFUNPTU1BTkRfVFlQRV9BTExPQ0FURRADEhcKE0NPTU1BTkRfVFlQRV9TRVRUTEUQBBIXChNDT01NQU5EX1RZUEVfQ0FOQ0VMEAUSFgoSQ09NTUFORF9UWVBFX1JFVFJZEAZCDQoLX3BhcmFtZXRlcnMi3wMKD1NldHRsZW1lbnRRdWVyeRJECgpxdWVyeV90eXBlGAEgASgOMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRRdWVyeS5RdWVyeVR5cGUSFQoIcGFydHlfaWQYAiABKAlIAIgBARIYCgtjb250cmFjdF9pZBgDIAEoCUgBiAEBEhoKDWluc3RydW1lbnRfaWQYBCABKAlIAogBARIwCgpwYXJhbWV0ZXJzGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBIsgBCglRdWVyeVR5cGUSGgoWUVVFUllfVFlQRV9VTlNQRUNJRklFRBAAEhsKF1FVRVJZX1RZUEVfR0VUX0hPTERJTkdTEAESHwobUVVFUllfVFlQRV9HRVRfVVNFUl9TRVJWSUNFEAISGwoXUVVFUllfVFlQRV9HRVRfQ09OVFJBQ1QQAxIkCiBRVUVSWV9UWVBFX0dFVF9BTExPQ0FUSU9OX1NUQVRVUxAEEh4KGlFVRVJZX1RZUEVfQ0hFQ0tfTElRVUlESVRZEAVCCwoJX3BhcnR5X2lkQg4KDF9jb250cmFjdF9pZEIQCg5faW5zdHJ1bWVudF9pZEINCgtfcGFyYW1ldGVycyKuAQoSU2V0dGxlbWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSFAoHbWVzc2FnZRgCIAEoCUgAiAEBEioKBGRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESMAoMcmVzcG9uZGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfbWVzc2FnZUIHCgVfZGF0YSKBAQoaR2V0UGVuZGluZ1Byb3Bvc2Fsc1JlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRISCgVsaW1pdBgDIAEoDUgAiAEBQggKBl9saW1pdCJxChtHZXRQZW5kaW5nUHJvcG9zYWxzUmVzcG9uc2USQwoJcHJvcG9zYWxzGAEgAygLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2USDQoFdG90YWwYAiABKA0iaAoaR2V0U2V0dGxlbWVudFN0YXR1c1JlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBIVCg1zZXR0bGVtZW50X2lkGAIgASgJIqcDCg1EdnBTdGVwU3RhdHVzEhEKCXN0ZXBfbmFtZRgBIAEoCRI4CgZzdGF0dXMYAiABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1c0VudW0SGAoLY29udHJhY3RfaWQYAyABKAlIAIgBARIWCgl1cGRhdGVfaWQYBCABKAlIAYgBARIzCgp1cGRhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhoKDWVycm9yX21lc3NhZ2UYBiABKAlIA4gBARIZCgxjb25maXJtZWRfYnkYByABKAlIBIgBARJFChFjb25maXJtZWRfYnlfcm9sZRgIIAEoDjIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRlZEJ5Um9sZUgFiAEBQg4KDF9jb250cmFjdF9pZEIMCgpfdXBkYXRlX2lkQg0KC191cGRhdGVkX2F0QhAKDl9lcnJvcl9tZXNzYWdlQg8KDV9jb25maXJtZWRfYnlCFAoSX2NvbmZpcm1lZF9ieV9yb2xlIpIIChtHZXRTZXR0bGVtZW50U3RhdHVzUmVzcG9uc2USEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI1CgVzdGFnZRgDIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2USGgoNZXJyb3JfbWVzc2FnZRgEIAEoCUgAiAEBEi4KCnVwZGF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkYKGGR2cF9wcm9jZXNzaW5nX2ZlZV9idXllchgKIAEoCzIkLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBTdGVwU3RhdHVzEkcKGWR2cF9wcm9jZXNzaW5nX2ZlZV9zZWxsZXIYCyABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxJNCh9hbGxvY2F0aW9uX3Byb2Nlc3NpbmdfZmVlX2J1eWVyGAwgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSTgogYWxsb2NhdGlvbl9wcm9jZXNzaW5nX2ZlZV9zZWxsZXIYDSABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxI5CgtkdnBfcmVxdWVzdBgOIAEoCzIkLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBTdGVwU3RhdHVzEjgKCmR2cF9hY2NlcHQYDyABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxI+ChBhbGxvY2F0aW9uX2J1eWVyGBAgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSPwoRYWxsb2NhdGlvbl9zZWxsZXIYESABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxI4CgpzZXR0bGVtZW50GBIgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSSAoadHJhZmZpY19jb21wZW5zYXRpb25fYnV5ZXIYEyABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxJJCht0cmFmZmljX2NvbXBlbnNhdGlvbl9zZWxsZXIYFCABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxI9Cg9wcmVjb25maXJtYXRpb24YFSABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1c0IQCg5fZXJyb3JfbWVzc2FnZSKVAQocU3VibWl0UHJlY29uZmlybWF0aW9uUmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEkAKCGRlY2lzaW9uGAIgASgLMi4uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlByZWNvbmZpcm1hdGlvbkRlY2lzaW9uInkKGERpc2Nsb3NlZENvbnRyYWN0TWVzc2FnZRITCgtjb250cmFjdF9pZBgBIAEoCRITCgt0ZW1wbGF0ZV9pZBgCIAEoCRIaChJjcmVhdGVkX2V2ZW50X2Jsb2IYAyABKAkSFwoPc3luY2hyb25pemVyX2lkGAQgASgJIqsBChxTYXZlRGlzY2xvc2VkQ29udHJhY3RSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSQQoIY29udHJhY3QYAyABKAsyLy5zaWx2YW5hLnNldHRsZW1lbnQudjEuRGlzY2xvc2VkQ29udHJhY3RNZXNzYWdlIkEKHVNhdmVEaXNjbG9zZWRDb250cmFjdFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCSKGAQocR2V0RGlzY2xvc2VkQ29udHJhY3RzUmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhIKBW93bmVyGAMgASgJSACIAQFCCAoGX293bmVyImMKHUdldERpc2Nsb3NlZENvbnRyYWN0c1Jlc3BvbnNlEkIKCWNvbnRyYWN0cxgBIAMoCzIvLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EaXNjbG9zZWRDb250cmFjdE1lc3NhZ2Ui3AIKF1JlY29yZFNldHRsZW1lbnRSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSFwoPc2V0dGxlZF9kdnBfY2lkGAMgASgJEhwKFHNldHRsZW1lbnRfdXBkYXRlX2lkGAQgASgJEiQKHHNldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXQYBSABKAkSFAoHZHZwX2NpZBgGIAEoCUgAiAEBEiEKFGFsbG9jYXRpb25fYnV5ZXJfY2lkGAcgASgJSAGIAQESIgoVYWxsb2NhdGlvbl9zZWxsZXJfY2lkGAggASgJSAKIAQFCCgoIX2R2cF9jaWRCFwoVX2FsbG9jYXRpb25fYnV5ZXJfY2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWQiUwoYUmVjb3JkU2V0dGxlbWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIVCg1zZXR0bGVtZW50X2lkGAMgASgJIrYJChhSZWNvcmRUcmFuc2FjdGlvblJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBI3Cgd0eF90eXBlGAIgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uVHlwZRIUCgxzZW5kZXJfcGFydHkYAyABKAkSNgoLc2VuZGVyX3R5cGUYBCABKA4yIS5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2VuZGVyVHlwZRIWCgl1cGRhdGVfaWQYBSABKAlIAIgBARIaCg1zdWJtaXNzaW9uX2lkGAYgASgJSAGIAQESIwoWc2V0dGxlbWVudF9wcm9wb3NhbF9pZBgHIAEoCUgCiAEBEhYKCW1hcmtldF9pZBgIIAEoCUgDiAEBEhkKDGNvdW50ZXJwYXJ0eRgJIAEoCUgEiAEBEhgKC2NvbnRyYWN0X2lkGAogASgJSAWIAQESGAoLY2hvaWNlX25hbWUYCyABKAlIBogBARITCgZhbW91bnQYDCABKAlIB4gBARIbCg5yZXdhcmRzX2Ftb3VudBgNIAEoCUgIiAEBEhoKDXJld2FyZHNfcm91bmQYDiABKARICYgBARIcCg90cmFmZmljX3JlcXVlc3QYDyABKARICogBARIdChB0cmFmZmljX3Jlc3BvbnNlGBAgASgESAuIAQESGgoNdHJhZmZpY190b3RhbBgRIAEoBEgMiAEBEiQKF2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkGBIgASgESA2IAQESOAoGcmVzdWx0GBMgASgOMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uUmVzdWx0EhoKDWVycm9yX21lc3NhZ2UYFCABKAlIDogBARIuCghtZXRhZGF0YRgVIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RID4gBARIsCgZ1cGRhdGUYFiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBCIAQESGAoQZGFtbF90ZW1wbGF0ZV9pZBgXIAEoCRITCgtkYW1sX2Nob2ljZRgYIAEoCRIyCgxkYW1sX2Nob2ljZXMYGSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBGIAQFCDAoKX3VwZGF0ZV9pZEIQCg5fc3VibWlzc2lvbl9pZEIZChdfc2V0dGxlbWVudF9wcm9wb3NhbF9pZEIMCgpfbWFya2V0X2lkQg8KDV9jb3VudGVycGFydHlCDgoMX2NvbnRyYWN0X2lkQg4KDF9jaG9pY2VfbmFtZUIJCgdfYW1vdW50QhEKD19yZXdhcmRzX2Ftb3VudEIQCg5fcmV3YXJkc19yb3VuZEISChBfdHJhZmZpY19yZXF1ZXN0QhMKEV90cmFmZmljX3Jlc3BvbnNlQhAKDl90cmFmZmljX3RvdGFsQhoKGF9hY3Rpdml0eV9tYXJrZXJfY3JlYXRlZEIQCg5fZXJyb3JfbWVzc2FnZUILCglfbWV0YWRhdGFCCQoHX3VwZGF0ZUIPCg1fZGFtbF9jaG9pY2VzIlUKGVJlY29yZFRyYW5zYWN0aW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEhYKDnRyYW5zYWN0aW9uX2lkGAMgASgEIpEDChxHZXRUcmFuc2FjdGlvbkhpc3RvcnlSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSGQoMc2VuZGVyX3BhcnR5GAIgASgJSACIAQESPAoHdHhfdHlwZRgDIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5UcmFuc2FjdGlvblR5cGVIAYgBARIjChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAQgASgJSAKIAQESPQoGcmVzdWx0GAUgASgOMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uUmVzdWx0SAOIAQESEgoFbGltaXQYBiABKA1IBIgBARITCgZvZmZzZXQYByABKA1IBYgBAUIPCg1fc2VuZGVyX3BhcnR5QgoKCF90eF90eXBlQhkKF19zZXR0bGVtZW50X3Byb3Bvc2FsX2lkQgkKB19yZXN1bHRCCAoGX2xpbWl0QgkKB19vZmZzZXQidAodR2V0VHJhbnNhY3Rpb25IaXN0b3J5UmVzcG9uc2USRAoMdHJhbnNhY3Rpb25zGAEgAygLMi4uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uSGlzdG9yeUVudHJ5Eg0KBXRvdGFsGAIgASgNIrwJChdUcmFuc2FjdGlvbkhpc3RvcnlFbnRyeRIKCgJpZBgBIAEoBBI3Cgd0eF90eXBlGAIgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uVHlwZRIUCgxzZW5kZXJfcGFydHkYAyABKAkSNgoLc2VuZGVyX3R5cGUYBCABKA4yIS5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2VuZGVyVHlwZRIWCgl1cGRhdGVfaWQYBSABKAlIAIgBARIaCg1zdWJtaXNzaW9uX2lkGAYgASgJSAGIAQESIwoWc2V0dGxlbWVudF9wcm9wb3NhbF9pZBgHIAEoCUgCiAEBEhYKCW1hcmtldF9pZBgIIAEoCUgDiAEBEhkKDGNvdW50ZXJwYXJ0eRgJIAEoCUgEiAEBEhgKC2NvbnRyYWN0X2lkGAogASgJSAWIAQESGAoLY2hvaWNlX25hbWUYCyABKAlIBogBARITCgZhbW91bnQYDCABKAlIB4gBARIbCg5yZXdhcmRzX2Ftb3VudBgNIAEoCUgIiAEBEhoKDXJld2FyZHNfcm91bmQYDiABKARICYgBARIcCg90cmFmZmljX3JlcXVlc3QYDyABKARICogBARIdChB0cmFmZmljX3Jlc3BvbnNlGBAgASgESAuIAQESGgoNdHJhZmZpY190b3RhbBgRIAEoBEgMiAEBEiQKF2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkGBIgASgESA2IAQESOAoGcmVzdWx0GBMgASgOMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uUmVzdWx0EhoKDWVycm9yX21lc3NhZ2UYFCABKAlIDogBARIuCghtZXRhZGF0YRgVIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RID4gBARIuCgpjcmVhdGVkX2F0GBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCgZ1cGRhdGUYFyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBCIAQESGAoQZGFtbF90ZW1wbGF0ZV9pZBgYIAEoCRITCgtkYW1sX2Nob2ljZRgZIAEoCRIyCgxkYW1sX2Nob2ljZXMYGiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBGIAQFCDAoKX3VwZGF0ZV9pZEIQCg5fc3VibWlzc2lvbl9pZEIZChdfc2V0dGxlbWVudF9wcm9wb3NhbF9pZEIMCgpfbWFya2V0X2lkQg8KDV9jb3VudGVycGFydHlCDgoMX2NvbnRyYWN0X2lkQg4KDF9jaG9pY2VfbmFtZUIJCgdfYW1vdW50QhEKD19yZXdhcmRzX2Ftb3VudEIQCg5fcmV3YXJkc19yb3VuZEISChBfdHJhZmZpY19yZXF1ZXN0QhMKEV90cmFmZmljX3Jlc3BvbnNlQhAKDl90cmFmZmljX3RvdGFsQhoKGF9hY3Rpdml0eV9tYXJrZXJfY3JlYXRlZEIQCg5fZXJyb3JfbWVzc2FnZUILCglfbWV0YWRhdGFCCQoHX3VwZGF0ZUIPCg1fZGFtbF9jaG9pY2VzIs8EChxSZWNvcmRTZXR0bGVtZW50RXZlbnRSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSEwoLcmVjb3JkZWRfYnkYAyABKAkSPwoQcmVjb3JkZWRfYnlfcm9sZRgEIAEoDjIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRlZEJ5Um9sZRI+CgpldmVudF90eXBlGAUgASgOMiouc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRFdmVudFR5cGUSGgoNc3VibWlzc2lvbl9pZBgGIAEoCUgAiAEBEhYKCXVwZGF0ZV9pZBgHIAEoCUgBiAEBEhgKC2NvbnRyYWN0X2lkGAggASgJSAKIAQESGAoLdGVtcGxhdGVfaWQYCSABKAlIA4gBARI8CgZyZXN1bHQYCiABKA4yLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEV2ZW50UmVzdWx0EhoKDWVycm9yX21lc3NhZ2UYCyABKAlIBIgBARIuCghtZXRhZGF0YRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBAUIQCg5fc3VibWlzc2lvbl9pZEIMCgpfdXBkYXRlX2lkQg4KDF9jb250cmFjdF9pZEIOCgxfdGVtcGxhdGVfaWRCEAoOX2Vycm9yX21lc3NhZ2VCCwoJX21ldGFkYXRhIlMKHVJlY29yZFNldHRsZW1lbnRFdmVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIQCghldmVudF9pZBgDIAEoBCLHAgobR2V0U2V0dGxlbWVudEhpc3RvcnlSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSQwoKZXZlbnRfdHlwZRgDIAEoDjIqLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50RXZlbnRUeXBlSACIAQESQQoGcmVzdWx0GAQgASgOMiwuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRFdmVudFJlc3VsdEgBiAEBEhIKBWxpbWl0GAUgASgNSAKIAQESEwoGb2Zmc2V0GAYgASgNSAOIAQFCDQoLX2V2ZW50X3R5cGVCCQoHX3Jlc3VsdEIICgZfbGltaXRCCQoHX29mZnNldCJsChxHZXRTZXR0bGVtZW50SGlzdG9yeVJlc3BvbnNlEj0KBmV2ZW50cxgBIAMoCzItLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50SGlzdG9yeUVudHJ5Eg0KBXRvdGFsGAIgASgNItAEChZTZXR0bGVtZW50SGlzdG9yeUVudHJ5EgoKAmlkGAEgASgEEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhMKC3JlY29yZGVkX2J5GAMgASgJEj8KEHJlY29yZGVkX2J5X3JvbGUYBCABKA4yJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkZWRCeVJvbGUSPgoKZXZlbnRfdHlwZRgFIAEoDjIqLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50RXZlbnRUeXBlEhoKDXN1Ym1pc3Npb25faWQYBiABKAlIAIgBARIWCgl1cGRhdGVfaWQYByABKAlIAYgBARIYCgtjb250cmFjdF9pZBgIIAEoCUgCiAEBEhgKC3RlbXBsYXRlX2lkGAkgASgJSAOIAQESPAoGcmVzdWx0GAogASgOMiwuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRFdmVudFJlc3VsdBIaCg1lcnJvcl9tZXNzYWdlGAsgASgJSASIAQESLgoIbWV0YWRhdGEYDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESLgoKY3JlYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3N1Ym1pc3Npb25faWRCDAoKX3VwZGF0ZV9pZEIOCgxfY29udHJhY3RfaWRCDgoMX3RlbXBsYXRlX2lkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YSLZAgobVXBkYXRlUHJvcG9zYWxTdGF0dXNSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSUAoKbmV3X3N0YXR1cxgDIAEoDjI8LnNpbHZhbmEuc2V0dGxlbWVudC52MS5VcGRhdGVQcm9wb3NhbFN0YXR1c1JlcXVlc3QuTmV3U3RhdHVzEhoKDWVycm9yX21lc3NhZ2UYBCABKAlIAIgBASJwCglOZXdTdGF0dXMSGgoWTkVXX1NUQVRVU19VTlNQRUNJRklFRBAAEhYKEk5FV19TVEFUVVNfU0VUVExFRBABEhgKFE5FV19TVEFUVVNfQ0FOQ0VMTEVEEAISFQoRTkVXX1NUQVRVU19GQUlMRUQQA0IQCg5fZXJyb3JfbWVzc2FnZSJAChxVcGRhdGVQcm9wb3NhbFN0YXR1c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCSKIAQogR2V0U2V0dGxlbWVudFByb3Bvc2FsQnlJZFJlcXVlc3QSPwoLY2FudG9uX2F1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGhIAIgBARITCgtwcm9wb3NhbF9pZBgDIAEoCUIOCgxfY2FudG9uX2F1dGgidgohR2V0U2V0dGxlbWVudFByb3Bvc2FsQnlJZFJlc3BvbnNlEg0KBWZvdW5kGAEgASgIEkIKCHByb3Bvc2FsGAIgASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2UqhQQKD1NldHRsZW1lbnRTdGFnZRIgChxTRVRUTEVNRU5UX1NUQUdFX1VOU1BFQ0lGSUVEEAASJgoiU0VUVExFTUVOVF9TVEFHRV9QUk9QT1NBTF9SRUNFSVZFRBABEiwKKFNFVFRMRU1FTlRfU1RBR0VfUFJFQ09ORklSTUFUSU9OX1BFTkRJTkcQAhIhCh1TRVRUTEVNRU5UX1NUQUdFX1BSRUNPTkZJUk1FRBADEioKJlNFVFRMRU1FTlRfU1RBR0VfRFZQX1BST1BPU0FMX0NSRUFUSU5HEAQSKQolU0VUVExFTUVOVF9TVEFHRV9EVlBfUFJPUE9TQUxfQ1JFQVRFRBAFEiIKHlNFVFRMRU1FTlRfU1RBR0VfRFZQX0FDQ0VQVElORxAGEiEKHVNFVFRMRU1FTlRfU1RBR0VfRFZQX0FDQ0VQVEVEEAcSHwobU0VUVExFTUVOVF9TVEFHRV9BTExPQ0FUSU5HEAgSHgoaU0VUVExFTUVOVF9TVEFHRV9BTExPQ0FURUQQCRIdChlTRVRUTEVNRU5UX1NUQUdFX1NFVFRMSU5HEAoSHAoYU0VUVExFTUVOVF9TVEFHRV9TRVRUTEVEEAsSGwoXU0VUVExFTUVOVF9TVEFHRV9GQUlMRUQQDBIeChpTRVRUTEVNRU5UX1NUQUdFX0NBTkNFTExFRBANKo0BChdQcmVjb25maXJtYXRpb25SZXNwb25zZRIoCiRQUkVDT05GSVJNQVRJT05fUkVTUE9OU0VfVU5TUEVDSUZJRUQQABIjCh9QUkVDT05GSVJNQVRJT05fUkVTUE9OU0VfQUNDRVBUEAESIwofUFJFQ09ORklSTUFUSU9OX1JFU1BPTlNFX1JFSkVDVBACKm0KCVBhcnR5Um9sZRIaChZQQVJUWV9ST0xFX1VOU1BFQ0lGSUVEEAASFAoQUEFSVFlfUk9MRV9CVVlFUhABEhUKEVBBUlRZX1JPTEVfU0VMTEVSEAISFwoTUEFSVFlfUk9MRV9PUEVSQVRPUhADKvwDCg9UcmFuc2FjdGlvblR5cGUSIAocVFJBTlNBQ1RJT05fVFlQRV9VTlNQRUNJRklFRBAAEikKJVRSQU5TQUNUSU9OX1RZUEVfVVNFUl9TRVJWSUNFX1JFUVVFU1QQARIwCixUUkFOU0FDVElPTl9UWVBFX1VTRVJfU0VSVklDRV9SRVFVRVNUX0FDQ0VQVBACEigKJFRSQU5TQUNUSU9OX1RZUEVfVVNFUl9TRVJWSUNFX0NBTkNFTBADEiAKHFRSQU5TQUNUSU9OX1RZUEVfRFZQX1BST1BPU0UQBBIfChtUUkFOU0FDVElPTl9UWVBFX0RWUF9BQ0NFUFQQBRIfChtUUkFOU0FDVElPTl9UWVBFX0RWUF9DQU5DRUwQBhIfChtUUkFOU0FDVElPTl9UWVBFX0RWUF9TRVRUTEUQBxIdChlUUkFOU0FDVElPTl9UWVBFX0FMTE9DQVRFEAgSJAogVFJBTlNBQ1RJT05fVFlQRV9BTExPQ0FURV9DQU5DRUwQCRIhCh1UUkFOU0FDVElPTl9UWVBFX0ZFRV9UUkFOU0ZFUhAKEhoKFlRSQU5TQUNUSU9OX1RZUEVfTUVSR0UQCxIbChdUUkFOU0FDVElPTl9UWVBFX1VOTE9DSxAMEhoKFlRSQU5TQUNUSU9OX1RZUEVfT1RIRVIQDSqdAQoKU2VuZGVyVHlwZRIbChdTRU5ERVJfVFlQRV9VTlNQRUNJRklFRBAAEhgKFFNFTkRFUl9UWVBFX09QRVJBVE9SEAESFAoQU0VOREVSX1RZUEVfVVNFUhACEhUKEVNFTkRFUl9UWVBFX0JVWUVSEAMSFgoSU0VOREVSX1RZUEVfU0VMTEVSEAQSEwoPU0VOREVSX1RZUEVfQVBQEAUqlgEKEVRyYW5zYWN0aW9uUmVzdWx0EiIKHlRSQU5TQUNUSU9OX1JFU1VMVF9VTlNQRUNJRklFRBAAEh4KGlRSQU5TQUNUSU9OX1JFU1VMVF9QRU5ESU5HEAESHgoaVFJBTlNBQ1RJT05fUkVTVUxUX1NVQ0NFU1MQAhIdChlUUkFOU0FDVElPTl9SRVNVTFRfRkFJTEVEEAMq8xMKE1NldHRsZW1lbnRFdmVudFR5cGUSJQohU0VUVExFTUVOVF9FVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASPAo4U0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9QUk9DRVNTSU5HX0ZFRV9CVVlFUl9TVUJNSVRURUQQARI8CjhTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1BST0NFU1NJTkdfRkVFX0JVWUVSX0NPTVBMRVRFRBACEjsKN1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUFJPQ0VTU0lOR19GRUVfQlVZRVJfUkVDRUlWRUQQAxIvCitTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1JFUVVFU1RfU1VCTUlUVEVEEAQSLworU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9SRVFVRVNUX0NPTVBMRVRFRBAFEi8KK1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUkVRVUVTVF9XSVRORVNTRUQQBhIuCipTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1JFUVVFU1RfUkVKRUNURUQQBxIvCitTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1JFUVVFU1RfQ0FOQ0VMTEVEEAgSPQo5U0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9QUk9DRVNTSU5HX0ZFRV9TRUxMRVJfU1VCTUlUVEVEEAkSPQo5U0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9QUk9DRVNTSU5HX0ZFRV9TRUxMRVJfQ09NUExFVEVEEAoSPAo4U0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9QUk9DRVNTSU5HX0ZFRV9TRUxMRVJfUkVDRUlWRUQQCxIuCipTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX0FDQ0VQVF9TVUJNSVRURUQQDBIuCipTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX0FDQ0VQVF9DT01QTEVURUQQDRIwCixTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX0FDQ0VQVEVEX1dJVE5FU1NFRBAOEiYKIlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUkVKRUNURUQQDxInCiNTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1dJVEhEUkFXThAQEicKI1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfQ0FOQ0VMTEVEEBESQwo/U0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fUFJPQ0VTU0lOR19GRUVfQlVZRVJfU1VCTUlUVEVEEBISQwo/U0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fUFJPQ0VTU0lOR19GRUVfQlVZRVJfQ09NUExFVEVEEBMSQgo+U0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fUFJPQ0VTU0lOR19GRUVfQlVZRVJfUkVDRUlWRUQQFBI0CjBTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9CVVlFUl9TVUJNSVRURUQQFRI0CjBTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9CVVlFUl9DT01QTEVURUQQFhI0CjBTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9CVVlFUl9XSVRORVNTRUQQFxI0CjBTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9CVVlFUl9XSVRIRFJBV04QGBI0CjBTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9CVVlFUl9DQU5DRUxMRUQQGRJECkBTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9QUk9DRVNTSU5HX0ZFRV9TRUxMRVJfU1VCTUlUVEVEEBoSRApAU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fUFJPQ0VTU0lOR19GRUVfU0VMTEVSX0NPTVBMRVRFRBAbEkMKP1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1BST0NFU1NJTkdfRkVFX1NFTExFUl9SRUNFSVZFRBAcEjUKMVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1NFTExFUl9TVUJNSVRURUQQHRI1CjFTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9TRUxMRVJfQ09NUExFVEVEEB4SNQoxU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fU0VMTEVSX1dJVE5FU1NFRBAfEjUKMVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1NFTExFUl9XSVRIRFJBV04QIBI1CjFTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9TRUxMRVJfQ0FOQ0VMTEVEECESLgoqU0VUVExFTUVOVF9FVkVOVF9UWVBFX1NFVFRMRU1FTlRfU1VCTUlUVEVEECISLgoqU0VUVExFTUVOVF9FVkVOVF9UWVBFX1NFVFRMRU1FTlRfQ09NUExFVEVEECMSLgoqU0VUVExFTUVOVF9FVkVOVF9UWVBFX1NFVFRMRU1FTlRfV0lUTkVTU0VEECQSPgo6U0VUVExFTUVOVF9FVkVOVF9UWVBFX1RSQUZGSUNfQ09NUEVOU0FUSU9OX0JVWUVSX1NVQk1JVFRFRBAlEj4KOlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9UUkFGRklDX0NPTVBFTlNBVElPTl9CVVlFUl9DT01QTEVURUQQJhI/CjtTRVRUTEVNRU5UX0VWRU5UX1RZUEVfVFJBRkZJQ19DT01QRU5TQVRJT05fU0VMTEVSX1NVQk1JVFRFRBAnEj8KO1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9UUkFGRklDX0NPTVBFTlNBVElPTl9TRUxMRVJfQ09NUExFVEVEECgSMwovU0VUVExFTUVOVF9FVkVOVF9UWVBFX1BSRUNPTkZJUk1BVElPTl9SRVFVRVNURUQQKRIvCitTRVRUTEVNRU5UX0VWRU5UX1RZUEVfUFJFQ09ORklSTUFUSU9OX0JVWUVSECoSMAosU0VUVExFTUVOVF9FVkVOVF9UWVBFX1BSRUNPTkZJUk1BVElPTl9TRUxMRVIQKxIzCi9TRVRUTEVNRU5UX0VWRU5UX1RZUEVfUFJFQ09ORklSTUFUSU9OX0NBTkNFTExFRBAsEiEKHVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9USU1FT1VUEC0qpwEKDlJlY29yZGVkQnlSb2xlEiAKHFJFQ09SREVEX0JZX1JPTEVfVU5TUEVDSUZJRUQQABIaChZSRUNPUkRFRF9CWV9ST0xFX0JVWUVSEAESGwoXUkVDT1JERURfQllfUk9MRV9TRUxMRVIQAhIdChlSRUNPUkRFRF9CWV9ST0xFX09QRVJBVE9SEAMSGwoXUkVDT1JERURfQllfUk9MRV9TWVNURU0QBCrTAQoVU2V0dGxlbWVudEV2ZW50UmVzdWx0EicKI1NFVFRMRU1FTlRfRVZFTlRfUkVTVUxUX1VOU1BFQ0lGSUVEEAASIwofU0VUVExFTUVOVF9FVkVOVF9SRVNVTFRfUEVORElORxABEiMKH1NFVFRMRU1FTlRfRVZFTlRfUkVTVUxUX1NVQ0NFU1MQAhIiCh5TRVRUTEVNRU5UX0VWRU5UX1JFU1VMVF9GQUlMRUQQAxIjCh9TRVRUTEVNRU5UX0VWRU5UX1JFU1VMVF9USU1FT1VUEAQqwwIKEUR2cFN0ZXBTdGF0dXNFbnVtEh8KG0RWUF9TVEVQX1NUQVRVU19VTlNQRUNJRklFRBAAEhsKF0RWUF9TVEVQX1NUQVRVU19QRU5ESU5HEAESHQoZRFZQX1NURVBfU1RBVFVTX1NVQk1JVFRFRBACEh0KGURWUF9TVEVQX1NUQVRVU19DT01QTEVURUQQAxIdChlEVlBfU1RFUF9TVEFUVVNfQ09ORklSTUVEEAQSGgoWRFZQX1NURVBfU1RBVFVTX0ZBSUxFRBAFEhwKGERWUF9TVEVQX1NUQVRVU19SRUpFQ1RFRBAGEh0KGURWUF9TVEVQX1NUQVRVU19XSVRIRFJBV04QBxIdChlEVlBfU1RFUF9TVEFUVVNfQ0FOQ0VMTEVEEAgSGwoXRFZQX1NURVBfU1RBVFVTX1RJTUVPVVQQCTL9DAoRU2V0dGxlbWVudFNlcnZpY2UScgoQU2V0dGxlbWVudFN0cmVhbRIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ub1NlcnZlck1lc3NhZ2UaLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2VydmVyVG9DYW50b25NZXNzYWdlKAEwARJ8ChNHZXRQZW5kaW5nUHJvcG9zYWxzEjEuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFBlbmRpbmdQcm9wb3NhbHNSZXF1ZXN0GjIuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFBlbmRpbmdQcm9wb3NhbHNSZXNwb25zZRJ8ChNHZXRTZXR0bGVtZW50U3RhdHVzEjEuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFNldHRsZW1lbnRTdGF0dXNSZXF1ZXN0GjIuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFNldHRsZW1lbnRTdGF0dXNSZXNwb25zZRJkChVTdWJtaXRQcmVjb25maXJtYXRpb24SMy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU3VibWl0UHJlY29uZmlybWF0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRKCAQoVU2F2ZURpc2Nsb3NlZENvbnRyYWN0EjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNhdmVEaXNjbG9zZWRDb250cmFjdFJlcXVlc3QaNC5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2F2ZURpc2Nsb3NlZENvbnRyYWN0UmVzcG9uc2USggEKFUdldERpc2Nsb3NlZENvbnRyYWN0cxIzLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXREaXNjbG9zZWRDb250cmFjdHNSZXF1ZXN0GjQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldERpc2Nsb3NlZENvbnRyYWN0c1Jlc3BvbnNlEnMKEFJlY29yZFNldHRsZW1lbnQSLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkU2V0dGxlbWVudFJlcXVlc3QaLy5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkU2V0dGxlbWVudFJlc3BvbnNlEnYKEVJlY29yZFRyYW5zYWN0aW9uEi8uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFRyYW5zYWN0aW9uUmVxdWVzdBowLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRUcmFuc2FjdGlvblJlc3BvbnNlEoIBChVHZXRUcmFuc2FjdGlvbkhpc3RvcnkSMy5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0VHJhbnNhY3Rpb25IaXN0b3J5UmVxdWVzdBo0LnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRUcmFuc2FjdGlvbkhpc3RvcnlSZXNwb25zZRKCAQoVUmVjb3JkU2V0dGxlbWVudEV2ZW50EjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFNldHRsZW1lbnRFdmVudFJlcXVlc3QaNC5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkU2V0dGxlbWVudEV2ZW50UmVzcG9uc2USfwoUR2V0U2V0dGxlbWVudEhpc3RvcnkSMi5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0U2V0dGxlbWVudEhpc3RvcnlSZXF1ZXN0GjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFNldHRsZW1lbnRIaXN0b3J5UmVzcG9uc2USfwoUVXBkYXRlUHJvcG9zYWxTdGF0dXMSMi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVXBkYXRlUHJvcG9zYWxTdGF0dXNSZXF1ZXN0GjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlVwZGF0ZVByb3Bvc2FsU3RhdHVzUmVzcG9uc2USjgEKGUdldFNldHRsZW1lbnRQcm9wb3NhbEJ5SWQSNy5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0U2V0dGxlbWVudFByb3Bvc2FsQnlJZFJlcXVlc3QaOC5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0U2V0dGxlbWVudFByb3Bvc2FsQnlJZFJlc3BvbnNlQjVaM2dpdGh1Yi5jb20vU2lsdmFuYU9uZS9jYW50b24tYWdlbnQvcHJvdG87c2V0dGxlbWVudGIGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
16
16
 
17
17
  /**
18
18
  * Canton node authentication (using Canton party JWT)
@@ -54,45 +54,6 @@ export type CantonNodeAuth = Message<"silvana.settlement.v1.CantonNodeAuth"> & {
54
54
  export const CantonNodeAuthSchema: GenMessage<CantonNodeAuth> = /*@__PURE__*/
55
55
  messageDesc(file_proto_silvana_settlement_v1_settlement, 0);
56
56
 
57
- /**
58
- * External account authentication (using Ed25519 signed JWT)
59
- * For external parties that sign JWTs with their own private keys
60
- * Public key is verified against party_id fingerprint:
61
- * fingerprint = SHA256(0x0000000C || public_key_bytes)
62
- * party_id format: "identifier::1220{fingerprint}"
63
- *
64
- * @generated from message silvana.settlement.v1.ExternalAuth
65
- */
66
- export type ExternalAuth = Message<"silvana.settlement.v1.ExternalAuth"> & {
67
- /**
68
- * JWT signed with external account's Ed25519 private key
69
- *
70
- * @generated from field: string jwt = 1;
71
- */
72
- jwt: string;
73
-
74
- /**
75
- * Canton party ID of the external account
76
- *
77
- * @generated from field: string party_id = 2;
78
- */
79
- partyId: string;
80
-
81
- /**
82
- * Ed25519 public key (hex) - verified against party_id fingerprint
83
- *
84
- * @generated from field: string public_key = 3;
85
- */
86
- publicKey: string;
87
- };
88
-
89
- /**
90
- * Describes the message silvana.settlement.v1.ExternalAuth.
91
- * Use `create(ExternalAuthSchema)` to create a new message.
92
- */
93
- export const ExternalAuthSchema: GenMessage<ExternalAuth> = /*@__PURE__*/
94
- messageDesc(file_proto_silvana_settlement_v1_settlement, 1);
95
-
96
57
  /**
97
58
  * Instrument details for settlement
98
59
  *
@@ -134,7 +95,7 @@ export type SettlementInstrument = Message<"silvana.settlement.v1.SettlementInst
134
95
  * Use `create(SettlementInstrumentSchema)` to create a new message.
135
96
  */
136
97
  export const SettlementInstrumentSchema: GenMessage<SettlementInstrument> = /*@__PURE__*/
137
- messageDesc(file_proto_silvana_settlement_v1_settlement, 2);
98
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 1);
138
99
 
139
100
  /**
140
101
  * Settlement proposal from orderbook
@@ -244,7 +205,7 @@ export type SettlementProposalMessage = Message<"silvana.settlement.v1.Settlemen
244
205
  * Use `create(SettlementProposalMessageSchema)` to create a new message.
245
206
  */
246
207
  export const SettlementProposalMessageSchema: GenMessage<SettlementProposalMessage> = /*@__PURE__*/
247
- messageDesc(file_proto_silvana_settlement_v1_settlement, 3);
208
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 2);
248
209
 
249
210
  /**
250
211
  * Preconfirmation request
@@ -296,7 +257,7 @@ export type PreconfirmationRequest = Message<"silvana.settlement.v1.Preconfirmat
296
257
  * Use `create(PreconfirmationRequestSchema)` to create a new message.
297
258
  */
298
259
  export const PreconfirmationRequestSchema: GenMessage<PreconfirmationRequest> = /*@__PURE__*/
299
- messageDesc(file_proto_silvana_settlement_v1_settlement, 4);
260
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 3);
300
261
 
301
262
  /**
302
263
  * Preconfirmation decision from Canton node
@@ -351,7 +312,7 @@ export type PreconfirmationDecision = Message<"silvana.settlement.v1.Preconfirma
351
312
  * Use `create(PreconfirmationDecisionSchema)` to create a new message.
352
313
  */
353
314
  export const PreconfirmationDecisionSchema: GenMessage<PreconfirmationDecision> = /*@__PURE__*/
354
- messageDesc(file_proto_silvana_settlement_v1_settlement, 5);
315
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 4);
355
316
 
356
317
  /**
357
318
  * DVP contract creation notification
@@ -410,7 +371,7 @@ export type DvpContractCreated = Message<"silvana.settlement.v1.DvpContractCreat
410
371
  * Use `create(DvpContractCreatedSchema)` to create a new message.
411
372
  */
412
373
  export const DvpContractCreatedSchema: GenMessage<DvpContractCreated> = /*@__PURE__*/
413
- messageDesc(file_proto_silvana_settlement_v1_settlement, 6);
374
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 5);
414
375
 
415
376
  /**
416
377
  * DVP acceptance notification
@@ -462,7 +423,7 @@ export type DvpContractAccepted = Message<"silvana.settlement.v1.DvpContractAcce
462
423
  * Use `create(DvpContractAcceptedSchema)` to create a new message.
463
424
  */
464
425
  export const DvpContractAcceptedSchema: GenMessage<DvpContractAccepted> = /*@__PURE__*/
465
- messageDesc(file_proto_silvana_settlement_v1_settlement, 7);
426
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 6);
466
427
 
467
428
  /**
468
429
  * Allocation status update
@@ -539,7 +500,7 @@ export type AllocationStatus = Message<"silvana.settlement.v1.AllocationStatus">
539
500
  * Use `create(AllocationStatusSchema)` to create a new message.
540
501
  */
541
502
  export const AllocationStatusSchema: GenMessage<AllocationStatus> = /*@__PURE__*/
542
- messageDesc(file_proto_silvana_settlement_v1_settlement, 8);
503
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 7);
543
504
 
544
505
  /**
545
506
  * Settlement execution status
@@ -606,7 +567,7 @@ export type SettlementExecutionStatus = Message<"silvana.settlement.v1.Settlemen
606
567
  * Use `create(SettlementExecutionStatusSchema)` to create a new message.
607
568
  */
608
569
  export const SettlementExecutionStatusSchema: GenMessage<SettlementExecutionStatus> = /*@__PURE__*/
609
- messageDesc(file_proto_silvana_settlement_v1_settlement, 9);
570
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 8);
610
571
 
611
572
  /**
612
573
  * User service contract info (for DVP operations)
@@ -644,7 +605,7 @@ export type UserServiceInfo = Message<"silvana.settlement.v1.UserServiceInfo"> &
644
605
  * Use `create(UserServiceInfoSchema)` to create a new message.
645
606
  */
646
607
  export const UserServiceInfoSchema: GenMessage<UserServiceInfo> = /*@__PURE__*/
647
- messageDesc(file_proto_silvana_settlement_v1_settlement, 10);
608
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 9);
648
609
 
649
610
  /**
650
611
  * Initial handshake from Canton node to server
@@ -691,7 +652,7 @@ export type SettlementHandshake = Message<"silvana.settlement.v1.SettlementHands
691
652
  * Use `create(SettlementHandshakeSchema)` to create a new message.
692
653
  */
693
654
  export const SettlementHandshakeSchema: GenMessage<SettlementHandshake> = /*@__PURE__*/
694
- messageDesc(file_proto_silvana_settlement_v1_settlement, 11);
655
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 10);
695
656
 
696
657
  /**
697
658
  * Handshake acknowledgment from server
@@ -732,7 +693,7 @@ export type HandshakeAck = Message<"silvana.settlement.v1.HandshakeAck"> & {
732
693
  * Use `create(HandshakeAckSchema)` to create a new message.
733
694
  */
734
695
  export const HandshakeAckSchema: GenMessage<HandshakeAck> = /*@__PURE__*/
735
- messageDesc(file_proto_silvana_settlement_v1_settlement, 12);
696
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 11);
736
697
 
737
698
  /**
738
699
  * Heartbeat message (bidirectional)
@@ -761,7 +722,7 @@ export type Heartbeat = Message<"silvana.settlement.v1.Heartbeat"> & {
761
722
  * Use `create(HeartbeatSchema)` to create a new message.
762
723
  */
763
724
  export const HeartbeatSchema: GenMessage<Heartbeat> = /*@__PURE__*/
764
- messageDesc(file_proto_silvana_settlement_v1_settlement, 13);
725
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 12);
765
726
 
766
727
  /**
767
728
  * Liquidity provider ping message (Canton node to server)
@@ -788,7 +749,7 @@ export type LiquidityProviderPing = Message<"silvana.settlement.v1.LiquidityProv
788
749
  * Use `create(LiquidityProviderPingSchema)` to create a new message.
789
750
  */
790
751
  export const LiquidityProviderPingSchema: GenMessage<LiquidityProviderPing> = /*@__PURE__*/
791
- messageDesc(file_proto_silvana_settlement_v1_settlement, 14);
752
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 13);
792
753
 
793
754
  /**
794
755
  * Liquidity provider pong message (server to Canton node)
@@ -829,7 +790,7 @@ export type LiquidityProviderPong = Message<"silvana.settlement.v1.LiquidityProv
829
790
  * Use `create(LiquidityProviderPongSchema)` to create a new message.
830
791
  */
831
792
  export const LiquidityProviderPongSchema: GenMessage<LiquidityProviderPong> = /*@__PURE__*/
832
- messageDesc(file_proto_silvana_settlement_v1_settlement, 15);
793
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 14);
833
794
 
834
795
  /**
835
796
  * Stream message from server to Canton node
@@ -931,7 +892,7 @@ export type ServerToCantonMessage = Message<"silvana.settlement.v1.ServerToCanto
931
892
  * Use `create(ServerToCantonMessageSchema)` to create a new message.
932
893
  */
933
894
  export const ServerToCantonMessageSchema: GenMessage<ServerToCantonMessage> = /*@__PURE__*/
934
- messageDesc(file_proto_silvana_settlement_v1_settlement, 16);
895
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 15);
935
896
 
936
897
  /**
937
898
  * Stream message from Canton node to server
@@ -1033,7 +994,7 @@ export type CantonToServerMessage = Message<"silvana.settlement.v1.CantonToServe
1033
994
  * Use `create(CantonToServerMessageSchema)` to create a new message.
1034
995
  */
1035
996
  export const CantonToServerMessageSchema: GenMessage<CantonToServerMessage> = /*@__PURE__*/
1036
- messageDesc(file_proto_silvana_settlement_v1_settlement, 17);
997
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 16);
1037
998
 
1038
999
  /**
1039
1000
  * Report DVP proposal creation
@@ -1084,7 +1045,7 @@ export type DvpCreationReport = Message<"silvana.settlement.v1.DvpCreationReport
1084
1045
  * Use `create(DvpCreationReportSchema)` to create a new message.
1085
1046
  */
1086
1047
  export const DvpCreationReportSchema: GenMessage<DvpCreationReport> = /*@__PURE__*/
1087
- messageDesc(file_proto_silvana_settlement_v1_settlement, 18);
1048
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 17);
1088
1049
 
1089
1050
  /**
1090
1051
  * Report DVP acceptance
@@ -1135,7 +1096,7 @@ export type DvpAcceptanceReport = Message<"silvana.settlement.v1.DvpAcceptanceRe
1135
1096
  * Use `create(DvpAcceptanceReportSchema)` to create a new message.
1136
1097
  */
1137
1098
  export const DvpAcceptanceReportSchema: GenMessage<DvpAcceptanceReport> = /*@__PURE__*/
1138
- messageDesc(file_proto_silvana_settlement_v1_settlement, 19);
1099
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 18);
1139
1100
 
1140
1101
  /**
1141
1102
  * Report allocation completion
@@ -1198,7 +1159,7 @@ export type AllocationReport = Message<"silvana.settlement.v1.AllocationReport">
1198
1159
  * Use `create(AllocationReportSchema)` to create a new message.
1199
1160
  */
1200
1161
  export const AllocationReportSchema: GenMessage<AllocationReport> = /*@__PURE__*/
1201
- messageDesc(file_proto_silvana_settlement_v1_settlement, 20);
1162
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 19);
1202
1163
 
1203
1164
  /**
1204
1165
  * Report settlement completion
@@ -1261,7 +1222,7 @@ export type SettlementReport = Message<"silvana.settlement.v1.SettlementReport">
1261
1222
  * Use `create(SettlementReportSchema)` to create a new message.
1262
1223
  */
1263
1224
  export const SettlementReportSchema: GenMessage<SettlementReport> = /*@__PURE__*/
1264
- messageDesc(file_proto_silvana_settlement_v1_settlement, 21);
1225
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 20);
1265
1226
 
1266
1227
  /**
1267
1228
  * Error report
@@ -1312,7 +1273,7 @@ export type ErrorReport = Message<"silvana.settlement.v1.ErrorReport"> & {
1312
1273
  * Use `create(ErrorReportSchema)` to create a new message.
1313
1274
  */
1314
1275
  export const ErrorReportSchema: GenMessage<ErrorReport> = /*@__PURE__*/
1315
- messageDesc(file_proto_silvana_settlement_v1_settlement, 22);
1276
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 21);
1316
1277
 
1317
1278
  /**
1318
1279
  * Status update
@@ -1360,7 +1321,7 @@ export type StatusUpdate = Message<"silvana.settlement.v1.StatusUpdate"> & {
1360
1321
  * Use `create(StatusUpdateSchema)` to create a new message.
1361
1322
  */
1362
1323
  export const StatusUpdateSchema: GenMessage<StatusUpdate> = /*@__PURE__*/
1363
- messageDesc(file_proto_silvana_settlement_v1_settlement, 23);
1324
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 22);
1364
1325
 
1365
1326
  /**
1366
1327
  * Command to Canton node
@@ -1403,7 +1364,7 @@ export type SettlementCommand = Message<"silvana.settlement.v1.SettlementCommand
1403
1364
  * Use `create(SettlementCommandSchema)` to create a new message.
1404
1365
  */
1405
1366
  export const SettlementCommandSchema: GenMessage<SettlementCommand> = /*@__PURE__*/
1406
- messageDesc(file_proto_silvana_settlement_v1_settlement, 24);
1367
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 23);
1407
1368
 
1408
1369
  /**
1409
1370
  * @generated from enum silvana.settlement.v1.SettlementCommand.CommandType
@@ -1449,7 +1410,7 @@ export enum SettlementCommand_CommandType {
1449
1410
  * Describes the enum silvana.settlement.v1.SettlementCommand.CommandType.
1450
1411
  */
1451
1412
  export const SettlementCommand_CommandTypeSchema: GenEnum<SettlementCommand_CommandType> = /*@__PURE__*/
1452
- enumDesc(file_proto_silvana_settlement_v1_settlement, 24, 0);
1413
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 23, 0);
1453
1414
 
1454
1415
  /**
1455
1416
  * Query to Canton node
@@ -1488,7 +1449,7 @@ export type SettlementQuery = Message<"silvana.settlement.v1.SettlementQuery"> &
1488
1449
  * Use `create(SettlementQuerySchema)` to create a new message.
1489
1450
  */
1490
1451
  export const SettlementQuerySchema: GenMessage<SettlementQuery> = /*@__PURE__*/
1491
- messageDesc(file_proto_silvana_settlement_v1_settlement, 25);
1452
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 24);
1492
1453
 
1493
1454
  /**
1494
1455
  * @generated from enum silvana.settlement.v1.SettlementQuery.QueryType
@@ -1529,7 +1490,7 @@ export enum SettlementQuery_QueryType {
1529
1490
  * Describes the enum silvana.settlement.v1.SettlementQuery.QueryType.
1530
1491
  */
1531
1492
  export const SettlementQuery_QueryTypeSchema: GenEnum<SettlementQuery_QueryType> = /*@__PURE__*/
1532
- enumDesc(file_proto_silvana_settlement_v1_settlement, 25, 0);
1493
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 24, 0);
1533
1494
 
1534
1495
  /**
1535
1496
  * Response to command or query
@@ -1563,7 +1524,7 @@ export type SettlementResponse = Message<"silvana.settlement.v1.SettlementRespon
1563
1524
  * Use `create(SettlementResponseSchema)` to create a new message.
1564
1525
  */
1565
1526
  export const SettlementResponseSchema: GenMessage<SettlementResponse> = /*@__PURE__*/
1566
- messageDesc(file_proto_silvana_settlement_v1_settlement, 26);
1527
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 25);
1567
1528
 
1568
1529
  /**
1569
1530
  * @generated from message silvana.settlement.v1.GetPendingProposalsRequest
@@ -1590,7 +1551,7 @@ export type GetPendingProposalsRequest = Message<"silvana.settlement.v1.GetPendi
1590
1551
  * Use `create(GetPendingProposalsRequestSchema)` to create a new message.
1591
1552
  */
1592
1553
  export const GetPendingProposalsRequestSchema: GenMessage<GetPendingProposalsRequest> = /*@__PURE__*/
1593
- messageDesc(file_proto_silvana_settlement_v1_settlement, 27);
1554
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 26);
1594
1555
 
1595
1556
  /**
1596
1557
  * @generated from message silvana.settlement.v1.GetPendingProposalsResponse
@@ -1612,7 +1573,7 @@ export type GetPendingProposalsResponse = Message<"silvana.settlement.v1.GetPend
1612
1573
  * Use `create(GetPendingProposalsResponseSchema)` to create a new message.
1613
1574
  */
1614
1575
  export const GetPendingProposalsResponseSchema: GenMessage<GetPendingProposalsResponse> = /*@__PURE__*/
1615
- messageDesc(file_proto_silvana_settlement_v1_settlement, 28);
1576
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 27);
1616
1577
 
1617
1578
  /**
1618
1579
  * @generated from message silvana.settlement.v1.GetSettlementStatusRequest
@@ -1634,7 +1595,7 @@ export type GetSettlementStatusRequest = Message<"silvana.settlement.v1.GetSettl
1634
1595
  * Use `create(GetSettlementStatusRequestSchema)` to create a new message.
1635
1596
  */
1636
1597
  export const GetSettlementStatusRequestSchema: GenMessage<GetSettlementStatusRequest> = /*@__PURE__*/
1637
- messageDesc(file_proto_silvana_settlement_v1_settlement, 29);
1598
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 28);
1638
1599
 
1639
1600
  /**
1640
1601
  * Status of a single step in the DVP flow with details
@@ -1704,7 +1665,7 @@ export type DvpStepStatus = Message<"silvana.settlement.v1.DvpStepStatus"> & {
1704
1665
  * Use `create(DvpStepStatusSchema)` to create a new message.
1705
1666
  */
1706
1667
  export const DvpStepStatusSchema: GenMessage<DvpStepStatus> = /*@__PURE__*/
1707
- messageDesc(file_proto_silvana_settlement_v1_settlement, 30);
1668
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 29);
1708
1669
 
1709
1670
  /**
1710
1671
  * Enhanced GetSettlementStatusResponse with detailed DVP flow progress
@@ -1823,7 +1784,7 @@ export type GetSettlementStatusResponse = Message<"silvana.settlement.v1.GetSett
1823
1784
  * Use `create(GetSettlementStatusResponseSchema)` to create a new message.
1824
1785
  */
1825
1786
  export const GetSettlementStatusResponseSchema: GenMessage<GetSettlementStatusResponse> = /*@__PURE__*/
1826
- messageDesc(file_proto_silvana_settlement_v1_settlement, 31);
1787
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 30);
1827
1788
 
1828
1789
  /**
1829
1790
  * @generated from message silvana.settlement.v1.SubmitPreconfirmationRequest
@@ -1845,7 +1806,7 @@ export type SubmitPreconfirmationRequest = Message<"silvana.settlement.v1.Submit
1845
1806
  * Use `create(SubmitPreconfirmationRequestSchema)` to create a new message.
1846
1807
  */
1847
1808
  export const SubmitPreconfirmationRequestSchema: GenMessage<SubmitPreconfirmationRequest> = /*@__PURE__*/
1848
- messageDesc(file_proto_silvana_settlement_v1_settlement, 32);
1809
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 31);
1849
1810
 
1850
1811
  /**
1851
1812
  * A disclosed contract for settlement
@@ -1888,7 +1849,7 @@ export type DisclosedContractMessage = Message<"silvana.settlement.v1.DisclosedC
1888
1849
  * Use `create(DisclosedContractMessageSchema)` to create a new message.
1889
1850
  */
1890
1851
  export const DisclosedContractMessageSchema: GenMessage<DisclosedContractMessage> = /*@__PURE__*/
1891
- messageDesc(file_proto_silvana_settlement_v1_settlement, 33);
1852
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 32);
1892
1853
 
1893
1854
  /**
1894
1855
  * Save disclosed contract request (buyer/seller saves their contracts during allocation)
@@ -1909,16 +1870,11 @@ export type SaveDisclosedContractRequest = Message<"silvana.settlement.v1.SaveDi
1909
1870
  proposalId: string;
1910
1871
 
1911
1872
  /**
1873
+ * Auth for external parties via gRPC metadata: authorization: Bearer <token>
1874
+ *
1912
1875
  * @generated from field: silvana.settlement.v1.DisclosedContractMessage contract = 3;
1913
1876
  */
1914
1877
  contract?: DisclosedContractMessage;
1915
-
1916
- /**
1917
- * Alternative auth for external parties
1918
- *
1919
- * @generated from field: optional silvana.settlement.v1.ExternalAuth external_auth = 10;
1920
- */
1921
- externalAuth?: ExternalAuth;
1922
1878
  };
1923
1879
 
1924
1880
  /**
@@ -1926,7 +1882,7 @@ export type SaveDisclosedContractRequest = Message<"silvana.settlement.v1.SaveDi
1926
1882
  * Use `create(SaveDisclosedContractRequestSchema)` to create a new message.
1927
1883
  */
1928
1884
  export const SaveDisclosedContractRequestSchema: GenMessage<SaveDisclosedContractRequest> = /*@__PURE__*/
1929
- messageDesc(file_proto_silvana_settlement_v1_settlement, 34);
1885
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 33);
1930
1886
 
1931
1887
  /**
1932
1888
  * Save disclosed contract response
@@ -1950,7 +1906,7 @@ export type SaveDisclosedContractResponse = Message<"silvana.settlement.v1.SaveD
1950
1906
  * Use `create(SaveDisclosedContractResponseSchema)` to create a new message.
1951
1907
  */
1952
1908
  export const SaveDisclosedContractResponseSchema: GenMessage<SaveDisclosedContractResponse> = /*@__PURE__*/
1953
- messageDesc(file_proto_silvana_settlement_v1_settlement, 35);
1909
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 34);
1954
1910
 
1955
1911
  /**
1956
1912
  * Get disclosed contracts request
@@ -1983,7 +1939,7 @@ export type GetDisclosedContractsRequest = Message<"silvana.settlement.v1.GetDis
1983
1939
  * Use `create(GetDisclosedContractsRequestSchema)` to create a new message.
1984
1940
  */
1985
1941
  export const GetDisclosedContractsRequestSchema: GenMessage<GetDisclosedContractsRequest> = /*@__PURE__*/
1986
- messageDesc(file_proto_silvana_settlement_v1_settlement, 36);
1942
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 35);
1987
1943
 
1988
1944
  /**
1989
1945
  * Get disclosed contracts response
@@ -2002,7 +1958,7 @@ export type GetDisclosedContractsResponse = Message<"silvana.settlement.v1.GetDi
2002
1958
  * Use `create(GetDisclosedContractsResponseSchema)` to create a new message.
2003
1959
  */
2004
1960
  export const GetDisclosedContractsResponseSchema: GenMessage<GetDisclosedContractsResponse> = /*@__PURE__*/
2005
- messageDesc(file_proto_silvana_settlement_v1_settlement, 37);
1961
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 36);
2006
1962
 
2007
1963
  /**
2008
1964
  * Record a completed settlement request
@@ -2073,7 +2029,7 @@ export type RecordSettlementRequest = Message<"silvana.settlement.v1.RecordSettl
2073
2029
  * Use `create(RecordSettlementRequestSchema)` to create a new message.
2074
2030
  */
2075
2031
  export const RecordSettlementRequestSchema: GenMessage<RecordSettlementRequest> = /*@__PURE__*/
2076
- messageDesc(file_proto_silvana_settlement_v1_settlement, 38);
2032
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 37);
2077
2033
 
2078
2034
  /**
2079
2035
  * Record settlement response
@@ -2104,7 +2060,7 @@ export type RecordSettlementResponse = Message<"silvana.settlement.v1.RecordSett
2104
2060
  * Use `create(RecordSettlementResponseSchema)` to create a new message.
2105
2061
  */
2106
2062
  export const RecordSettlementResponseSchema: GenMessage<RecordSettlementResponse> = /*@__PURE__*/
2107
- messageDesc(file_proto_silvana_settlement_v1_settlement, 39);
2063
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 38);
2108
2064
 
2109
2065
  /**
2110
2066
  * Record a transaction in history
@@ -2258,13 +2214,6 @@ export type RecordTransactionRequest = Message<"silvana.settlement.v1.RecordTran
2258
2214
  * @generated from field: optional google.protobuf.Struct daml_choices = 25;
2259
2215
  */
2260
2216
  damlChoices?: JsonObject;
2261
-
2262
- /**
2263
- * Alternative auth for external parties
2264
- *
2265
- * @generated from field: optional silvana.settlement.v1.ExternalAuth external_auth = 30;
2266
- */
2267
- externalAuth?: ExternalAuth;
2268
2217
  };
2269
2218
 
2270
2219
  /**
@@ -2272,7 +2221,7 @@ export type RecordTransactionRequest = Message<"silvana.settlement.v1.RecordTran
2272
2221
  * Use `create(RecordTransactionRequestSchema)` to create a new message.
2273
2222
  */
2274
2223
  export const RecordTransactionRequestSchema: GenMessage<RecordTransactionRequest> = /*@__PURE__*/
2275
- messageDesc(file_proto_silvana_settlement_v1_settlement, 40);
2224
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 39);
2276
2225
 
2277
2226
  /**
2278
2227
  * @generated from message silvana.settlement.v1.RecordTransactionResponse
@@ -2301,7 +2250,7 @@ export type RecordTransactionResponse = Message<"silvana.settlement.v1.RecordTra
2301
2250
  * Use `create(RecordTransactionResponseSchema)` to create a new message.
2302
2251
  */
2303
2252
  export const RecordTransactionResponseSchema: GenMessage<RecordTransactionResponse> = /*@__PURE__*/
2304
- messageDesc(file_proto_silvana_settlement_v1_settlement, 41);
2253
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 40);
2305
2254
 
2306
2255
  /**
2307
2256
  * Get transaction history
@@ -2350,7 +2299,7 @@ export type GetTransactionHistoryRequest = Message<"silvana.settlement.v1.GetTra
2350
2299
  * Use `create(GetTransactionHistoryRequestSchema)` to create a new message.
2351
2300
  */
2352
2301
  export const GetTransactionHistoryRequestSchema: GenMessage<GetTransactionHistoryRequest> = /*@__PURE__*/
2353
- messageDesc(file_proto_silvana_settlement_v1_settlement, 42);
2302
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 41);
2354
2303
 
2355
2304
  /**
2356
2305
  * @generated from message silvana.settlement.v1.GetTransactionHistoryResponse
@@ -2372,7 +2321,7 @@ export type GetTransactionHistoryResponse = Message<"silvana.settlement.v1.GetTr
2372
2321
  * Use `create(GetTransactionHistoryResponseSchema)` to create a new message.
2373
2322
  */
2374
2323
  export const GetTransactionHistoryResponseSchema: GenMessage<GetTransactionHistoryResponse> = /*@__PURE__*/
2375
- messageDesc(file_proto_silvana_settlement_v1_settlement, 43);
2324
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 42);
2376
2325
 
2377
2326
  /**
2378
2327
  * @generated from message silvana.settlement.v1.TransactionHistoryEntry
@@ -2524,7 +2473,7 @@ export type TransactionHistoryEntry = Message<"silvana.settlement.v1.Transaction
2524
2473
  * Use `create(TransactionHistoryEntrySchema)` to create a new message.
2525
2474
  */
2526
2475
  export const TransactionHistoryEntrySchema: GenMessage<TransactionHistoryEntry> = /*@__PURE__*/
2527
- messageDesc(file_proto_silvana_settlement_v1_settlement, 44);
2476
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 43);
2528
2477
 
2529
2478
  /**
2530
2479
  * Record a settlement event (any party can record for their settlements)
@@ -2607,13 +2556,6 @@ export type RecordSettlementEventRequest = Message<"silvana.settlement.v1.Record
2607
2556
  * @generated from field: optional google.protobuf.Struct metadata = 12;
2608
2557
  */
2609
2558
  metadata?: JsonObject;
2610
-
2611
- /**
2612
- * Alternative auth for external parties
2613
- *
2614
- * @generated from field: optional silvana.settlement.v1.ExternalAuth external_auth = 20;
2615
- */
2616
- externalAuth?: ExternalAuth;
2617
2559
  };
2618
2560
 
2619
2561
  /**
@@ -2621,7 +2563,7 @@ export type RecordSettlementEventRequest = Message<"silvana.settlement.v1.Record
2621
2563
  * Use `create(RecordSettlementEventRequestSchema)` to create a new message.
2622
2564
  */
2623
2565
  export const RecordSettlementEventRequestSchema: GenMessage<RecordSettlementEventRequest> = /*@__PURE__*/
2624
- messageDesc(file_proto_silvana_settlement_v1_settlement, 45);
2566
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 44);
2625
2567
 
2626
2568
  /**
2627
2569
  * @generated from message silvana.settlement.v1.RecordSettlementEventResponse
@@ -2650,7 +2592,7 @@ export type RecordSettlementEventResponse = Message<"silvana.settlement.v1.Recor
2650
2592
  * Use `create(RecordSettlementEventResponseSchema)` to create a new message.
2651
2593
  */
2652
2594
  export const RecordSettlementEventResponseSchema: GenMessage<RecordSettlementEventResponse> = /*@__PURE__*/
2653
- messageDesc(file_proto_silvana_settlement_v1_settlement, 46);
2595
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 45);
2654
2596
 
2655
2597
  /**
2656
2598
  * Get settlement history (parties can only see their own settlements)
@@ -2700,7 +2642,7 @@ export type GetSettlementHistoryRequest = Message<"silvana.settlement.v1.GetSett
2700
2642
  * Use `create(GetSettlementHistoryRequestSchema)` to create a new message.
2701
2643
  */
2702
2644
  export const GetSettlementHistoryRequestSchema: GenMessage<GetSettlementHistoryRequest> = /*@__PURE__*/
2703
- messageDesc(file_proto_silvana_settlement_v1_settlement, 47);
2645
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 46);
2704
2646
 
2705
2647
  /**
2706
2648
  * @generated from message silvana.settlement.v1.GetSettlementHistoryResponse
@@ -2722,7 +2664,7 @@ export type GetSettlementHistoryResponse = Message<"silvana.settlement.v1.GetSet
2722
2664
  * Use `create(GetSettlementHistoryResponseSchema)` to create a new message.
2723
2665
  */
2724
2666
  export const GetSettlementHistoryResponseSchema: GenMessage<GetSettlementHistoryResponse> = /*@__PURE__*/
2725
- messageDesc(file_proto_silvana_settlement_v1_settlement, 48);
2667
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 47);
2726
2668
 
2727
2669
  /**
2728
2670
  * Settlement history entry (matches settlement_proposal_history table)
@@ -2805,7 +2747,7 @@ export type SettlementHistoryEntry = Message<"silvana.settlement.v1.SettlementHi
2805
2747
  * Use `create(SettlementHistoryEntrySchema)` to create a new message.
2806
2748
  */
2807
2749
  export const SettlementHistoryEntrySchema: GenMessage<SettlementHistoryEntry> = /*@__PURE__*/
2808
- messageDesc(file_proto_silvana_settlement_v1_settlement, 49);
2750
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 48);
2809
2751
 
2810
2752
  /**
2811
2753
  * Update proposal status (operator only)
@@ -2845,7 +2787,7 @@ export type UpdateProposalStatusRequest = Message<"silvana.settlement.v1.UpdateP
2845
2787
  * Use `create(UpdateProposalStatusRequestSchema)` to create a new message.
2846
2788
  */
2847
2789
  export const UpdateProposalStatusRequestSchema: GenMessage<UpdateProposalStatusRequest> = /*@__PURE__*/
2848
- messageDesc(file_proto_silvana_settlement_v1_settlement, 50);
2790
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 49);
2849
2791
 
2850
2792
  /**
2851
2793
  * @generated from enum silvana.settlement.v1.UpdateProposalStatusRequest.NewStatus
@@ -2876,7 +2818,7 @@ export enum UpdateProposalStatusRequest_NewStatus {
2876
2818
  * Describes the enum silvana.settlement.v1.UpdateProposalStatusRequest.NewStatus.
2877
2819
  */
2878
2820
  export const UpdateProposalStatusRequest_NewStatusSchema: GenEnum<UpdateProposalStatusRequest_NewStatus> = /*@__PURE__*/
2879
- enumDesc(file_proto_silvana_settlement_v1_settlement, 50, 0);
2821
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 49, 0);
2880
2822
 
2881
2823
  /**
2882
2824
  * @generated from message silvana.settlement.v1.UpdateProposalStatusResponse
@@ -2898,7 +2840,7 @@ export type UpdateProposalStatusResponse = Message<"silvana.settlement.v1.Update
2898
2840
  * Use `create(UpdateProposalStatusResponseSchema)` to create a new message.
2899
2841
  */
2900
2842
  export const UpdateProposalStatusResponseSchema: GenMessage<UpdateProposalStatusResponse> = /*@__PURE__*/
2901
- messageDesc(file_proto_silvana_settlement_v1_settlement, 51);
2843
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 50);
2902
2844
 
2903
2845
  /**
2904
2846
  * Get settlement proposal by ID request
@@ -2907,21 +2849,12 @@ export const UpdateProposalStatusResponseSchema: GenMessage<UpdateProposalStatus
2907
2849
  */
2908
2850
  export type GetSettlementProposalByIdRequest = Message<"silvana.settlement.v1.GetSettlementProposalByIdRequest"> & {
2909
2851
  /**
2910
- * @generated from oneof silvana.settlement.v1.GetSettlementProposalByIdRequest.auth
2852
+ * Auth for external parties via gRPC metadata: authorization: Bearer <token>
2853
+ * For internal Canton agents, use canton_auth field
2854
+ *
2855
+ * @generated from field: optional silvana.settlement.v1.CantonNodeAuth canton_auth = 1;
2911
2856
  */
2912
- auth: {
2913
- /**
2914
- * @generated from field: silvana.settlement.v1.CantonNodeAuth canton_auth = 1;
2915
- */
2916
- value: CantonNodeAuth;
2917
- case: "cantonAuth";
2918
- } | {
2919
- /**
2920
- * @generated from field: silvana.settlement.v1.ExternalAuth external_auth = 2;
2921
- */
2922
- value: ExternalAuth;
2923
- case: "externalAuth";
2924
- } | { case: undefined; value?: undefined };
2857
+ cantonAuth?: CantonNodeAuth;
2925
2858
 
2926
2859
  /**
2927
2860
  * UUID v7
@@ -2936,7 +2869,7 @@ export type GetSettlementProposalByIdRequest = Message<"silvana.settlement.v1.Ge
2936
2869
  * Use `create(GetSettlementProposalByIdRequestSchema)` to create a new message.
2937
2870
  */
2938
2871
  export const GetSettlementProposalByIdRequestSchema: GenMessage<GetSettlementProposalByIdRequest> = /*@__PURE__*/
2939
- messageDesc(file_proto_silvana_settlement_v1_settlement, 52);
2872
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 51);
2940
2873
 
2941
2874
  /**
2942
2875
  * Get settlement proposal by ID response
@@ -2960,7 +2893,7 @@ export type GetSettlementProposalByIdResponse = Message<"silvana.settlement.v1.G
2960
2893
  * Use `create(GetSettlementProposalByIdResponseSchema)` to create a new message.
2961
2894
  */
2962
2895
  export const GetSettlementProposalByIdResponseSchema: GenMessage<GetSettlementProposalByIdResponse> = /*@__PURE__*/
2963
- messageDesc(file_proto_silvana_settlement_v1_settlement, 53);
2896
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 52);
2964
2897
 
2965
2898
  /**
2966
2899
  * DVP settlement stage enumeration
@@ -3219,6 +3152,11 @@ export enum SenderType {
3219
3152
  * @generated from enum value: SENDER_TYPE_SELLER = 4;
3220
3153
  */
3221
3154
  SELLER = 4,
3155
+
3156
+ /**
3157
+ * @generated from enum value: SENDER_TYPE_APP = 5;
3158
+ */
3159
+ APP = 5,
3222
3160
  }
3223
3161
 
3224
3162
  /**