@silvana-one/orderbook 1.1.30 → 1.1.32

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 (54) hide show
  1. package/README.md +150 -54
  2. package/dist/node/index.cjs +641 -41
  3. package/dist/node/index.d.ts +1 -0
  4. package/dist/node/index.js +1 -0
  5. package/dist/node/index.js.map +1 -1
  6. package/dist/node/ledger.d.ts +95 -0
  7. package/dist/node/ledger.js +170 -0
  8. package/dist/node/ledger.js.map +1 -0
  9. package/dist/node/orderbook.d.ts +58 -2
  10. package/dist/node/orderbook.js +74 -2
  11. package/dist/node/orderbook.js.map +1 -1
  12. package/dist/node/proto/silvana/ledger/v1/ledger_pb.d.ts +2171 -0
  13. package/dist/node/proto/silvana/ledger/v1/ledger_pb.js +559 -0
  14. package/dist/node/proto/silvana/ledger/v1/ledger_pb.js.map +1 -0
  15. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +513 -3
  16. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +95 -1
  17. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  18. package/dist/node/proto/silvana/settlement/v1/settlement_pb.d.ts +387 -4
  19. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js +191 -44
  20. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  21. package/dist/node/settlement.d.ts +1 -1
  22. package/dist/node/settlement.js +1 -1
  23. package/dist/node/settlement.js.map +1 -1
  24. package/dist/tsconfig.tsbuildinfo +1 -1
  25. package/dist/tsconfig.web.tsbuildinfo +1 -1
  26. package/dist/web/index.d.ts +1 -0
  27. package/dist/web/index.js +1 -0
  28. package/dist/web/index.js.map +1 -1
  29. package/dist/web/ledger.d.ts +95 -0
  30. package/dist/web/ledger.js +170 -0
  31. package/dist/web/ledger.js.map +1 -0
  32. package/dist/web/orderbook.d.ts +58 -2
  33. package/dist/web/orderbook.js +74 -2
  34. package/dist/web/orderbook.js.map +1 -1
  35. package/dist/web/proto/silvana/ledger/v1/ledger_pb.d.ts +2171 -0
  36. package/dist/web/proto/silvana/ledger/v1/ledger_pb.js +559 -0
  37. package/dist/web/proto/silvana/ledger/v1/ledger_pb.js.map +1 -0
  38. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +513 -3
  39. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +95 -1
  40. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  41. package/dist/web/proto/silvana/settlement/v1/settlement_pb.d.ts +387 -4
  42. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js +191 -44
  43. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  44. package/dist/web/settlement.d.ts +1 -1
  45. package/dist/web/settlement.js +1 -1
  46. package/dist/web/settlement.js.map +1 -1
  47. package/package.json +7 -6
  48. package/src/index.ts +1 -0
  49. package/src/ledger.ts +267 -0
  50. package/src/orderbook.ts +123 -1
  51. package/src/proto/silvana/ledger/v1/ledger_pb.ts +2531 -0
  52. package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +611 -4
  53. package/src/proto/silvana/settlement/v1/settlement_pb.ts +496 -47
  54. package/src/settlement.ts +12 -0
@@ -12,7 +12,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
12
12
  * Describes the file proto/silvana/orderbook/v1/orderbook.proto.
13
13
  */
14
14
  export const file_proto_silvana_orderbook_v1_orderbook: GenFile = /*@__PURE__*/
15
- fileDesc("Cipwcm90by9zaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIvoCCgpJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAIgASgJEgwKBG5hbWUYAyABKAkSDgoGc3ltYm9sGAQgASgJEhgKC2Rlc2NyaXB0aW9uGAUgASgJSACIAQESEwoGaXNzdWVyGAYgASgJSAGIAQESFQoIcmVnaXN0cnkYByABKAlIAogBARIuCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtuZXdzX3N5bWJvbBgLIAEoCUIOCgxfZGVzY3JpcHRpb25CCQoHX2lzc3VlckILCglfcmVnaXN0cnlCCwoJX21ldGFkYXRhItwFCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgJEjUKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZRIXCg9iYXNlX2luc3RydW1lbnQYAyABKAkSGAoQcXVvdGVfaW5zdHJ1bWVudBgEIAEoCRITCgtwYWlyX3N5bWJvbBgFIAEoCRIRCglpc19hY3RpdmUYBiABKAgSFgoObWluX29yZGVyX3NpemUYByABKAkSGwoObWF4X29yZGVyX3NpemUYCCABKAlIAIgBARIRCgl0aWNrX3NpemUYCSABKAkSEQoJbWFrZXJfZmVlGAogASgJEhEKCXRha2VyX2ZlZRgLIAEoCRIuCghtZXRhZGF0YRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIuCgpjcmVhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCgtwcmljZV9mZWVkcxgPIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIaCg1jdXJyZW50X3ByaWNlGBAgASgBSAOIAQESFwoKY2hhbmdlXzI0aBgRIAEoAUgEiAEBEhcKCnZvbHVtZV8yNGgYEiABKAFIBYgBARI5ChBwcmljZV91cGRhdGVkX2F0GBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBQhEKD19tYXhfb3JkZXJfc2l6ZUILCglfbWV0YWRhdGFCDgoMX3ByaWNlX2ZlZWRzQhAKDl9jdXJyZW50X3ByaWNlQg0KC19jaGFuZ2VfMjRoQg0KC192b2x1bWVfMjRoQhMKEV9wcmljZV91cGRhdGVkX2F0IsEHCgVPcmRlchIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRIOCgZ0cmFkZXIYBCABKAkSHQoQdHJhZGVyX29yZGVyX3JlZhgFIAEoCUgAiAEBEhcKD2Jhc2VfaW5zdHJ1bWVudBgGIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAcgASgJEg0KBXByaWNlGAggASgJEhAKCHF1YW50aXR5GAkgASgJEhcKD2ZpbGxlZF9xdWFudGl0eRgKIAEoCRIYChBwZW5kaW5nX3F1YW50aXR5GAsgASgJEhoKEnJlbWFpbmluZ19xdWFudGl0eRgMIAEoCRIxCgZzdGF0dXMYDSABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1cxI4Cg10aW1lX2luX2ZvcmNlGA4gASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIPCgd2ZXJzaW9uGBAgASgEEjEKC2NyZWRlbnRpYWxzGBEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDHJlcXVpcmVtZW50cxgSIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCghtZXRhZGF0YRgTIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIuCgpjcmVhdGVkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1CgxjYW5jZWxsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESFgoJc2lnbmF0dXJlGBcgASgJSAaIAQESEwoLc2lnbmVkX2RhdGEYGCABKAwSDQoFbm9uY2UYGSABKARCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDQoLX2V4cGlyZXNfYXRCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhQg8KDV9jYW5jZWxsZWRfYXRCDAoKX3NpZ25hdHVyZSKCAQoOT3JkZXJib29rTGV2ZWwSDQoFcHJpY2UYASABKAkSFgoOdG90YWxfcXVhbnRpdHkYAiABKAkSEwoLb3JkZXJfY291bnQYAyABKA0SNAoQZmlyc3Rfb3JkZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi1QEKDk9yZGVyYm9va0RlcHRoEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIyCgRiaWRzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSNAoGb2ZmZXJzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSMQoNc25hcHNob3RfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi0wUKElNldHRsZW1lbnRQcm9wb3NhbBITCgtwcm9wb3NhbF9pZBgBIAEoCRIRCgltYXJrZXRfaWQYAiABKAkSDQoFYnV5ZXIYAyABKAkSDgoGc2VsbGVyGAQgASgJEhcKD2Jhc2VfaW5zdHJ1bWVudBgFIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAYgASgJEhUKDWJhc2VfcXVhbnRpdHkYByABKAkSFgoOcXVvdGVfcXVhbnRpdHkYCCABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgJIAEoCRIgChhkdnBfcHJvY2Vzc2luZ19mZWVfYnV5ZXIYCiABKAkSIQoZZHZwX3Byb2Nlc3NpbmdfZmVlX3NlbGxlchgLIAEoCRInCh9hbGxvY2F0aW9uX3Byb2Nlc3NpbmdfZmVlX2J1eWVyGAwgASgJEigKIGFsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfc2VsbGVyGA0gASgJEjYKBnN0YXR1cxgOIAEoDjImLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRTdGF0dXMSGgoNZXJyb3JfbWVzc2FnZRgPIAEoCUgAiAEBEi4KCmNyZWF0ZWRfYXQYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCnNldHRsZWRfYXQYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESNQoMY2FuY2VsbGVkX2F0GBIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEjIKCWZhaWxlZF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBAUIQCg5fZXJyb3JfbWVzc2FnZUINCgtfc2V0dGxlZF9hdEIPCg1fY2FuY2VsbGVkX2F0QgwKCl9mYWlsZWRfYXQiuwEKCk9yZGVyTWF0Y2gSHgoWc2V0dGxlbWVudF9wcm9wb3NhbF9pZBgBIAEoCRIUCgxiaWRfb3JkZXJfaWQYAiABKAQSFgoOb2ZmZXJfb3JkZXJfaWQYAyABKAQSGAoQbWF0Y2hlZF9xdWFudGl0eRgEIAEoCRIVCg1tYXRjaGVkX3ByaWNlGAUgASgJEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIpwECgpTZXR0bGVtZW50EhUKDXNldHRsZW1lbnRfaWQYASABKAQSEwoLcHJvcG9zYWxfaWQYAiABKAkSEQoJbWFya2V0X2lkGAMgASgJEg0KBWJ1eWVyGAQgASgJEg4KBnNlbGxlchgFIAEoCRIXCg9iYXNlX2luc3RydW1lbnQYBiABKAkSGAoQcXVvdGVfaW5zdHJ1bWVudBgHIAEoCRIVCg1iYXNlX3F1YW50aXR5GAggASgJEhYKDnF1b3RlX3F1YW50aXR5GAkgASgJEhgKEHNldHRsZW1lbnRfcHJpY2UYCiABKAkSIAoYZHZwX3Byb2Nlc3NpbmdfZmVlX2J1eWVyGAsgASgJEiEKGWR2cF9wcm9jZXNzaW5nX2ZlZV9zZWxsZXIYDCABKAkSJwofYWxsb2NhdGlvbl9wcm9jZXNzaW5nX2ZlZV9idXllchgNIAEoCRIoCiBhbGxvY2F0aW9uX3Byb2Nlc3NpbmdfZmVlX3NlbGxlchgOIAEoCRIcCg9zZXR0bGVkX2R2cF9jaWQYDyABKAlIAIgBARIhChRzZXR0bGVtZW50X3VwZGF0ZV9pZBgQIAEoCUgBiAEBEi4KCnNldHRsZWRfYXQYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhIKEF9zZXR0bGVkX2R2cF9jaWRCFwoVX3NldHRsZW1lbnRfdXBkYXRlX2lkIpUCCgpNYXJrZXREYXRhEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIVCghiZXN0X2JpZBgDIAEoCUgAiAEBEhcKCmJlc3Rfb2ZmZXIYBCABKAlIAYgBARIXCgpsYXN0X3ByaWNlGAUgASgJSAKIAQESEgoKdm9sdW1lXzI0aBgGIAEoCRISCgp0cmFkZXNfMjRoGAcgASgNEhMKC29wZW5fb3JkZXJzGAggASgNEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9iZXN0X2JpZEINCgtfYmVzdF9vZmZlckINCgtfbGFzdF9wcmljZSL6AgoQR2V0T3JkZXJzUmVxdWVzdBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI2CgZzdGF0dXMYAyABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1c0gBiAEBEjgKCm9yZGVyX3R5cGUYBCABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGVIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBEi4KIWxpcXVpZGl0eV9wcm92aWRlcl9hY3RpdmVfc2Vjb25kcxgLIAEoDUgFiAEBEiAKGGxpcXVpZGl0eV9wcm92aWRlcl9uYW1lcxgMIAMoCUIMCgpfbWFya2V0X2lkQgkKB19zdGF0dXNCDQoLX29yZGVyX3R5cGVCCAoGX2xpbWl0QgkKB19vZmZzZXRCJAoiX2xpcXVpZGl0eV9wcm92aWRlcl9hY3RpdmVfc2Vjb25kcyJxChFHZXRPcmRlcnNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGb3JkZXJzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISDQoFdG90YWwYBCABKA0iSwoYR2V0T3JkZXJib29rRGVwdGhSZXF1ZXN0EhEKCW1hcmtldF9pZBgCIAEoCRISCgVkZXB0aBgDIAEoDUgAiAEBQggKBl9kZXB0aCJ2ChlHZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI3CglvcmRlcmJvb2sYAyABKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tEZXB0aCLLAQodR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QSFgoJbWFya2V0X2lkGAIgASgJSACIAQESOwoGc3RhdHVzGAMgASgOMiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFN0YXR1c0gBiAEBEhIKBWxpbWl0GAQgASgNSAKIAQESEwoGb2Zmc2V0GAUgASgNSAOIAQFCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQggKBl9saW1pdEIJCgdfb2Zmc2V0Io4BCh5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjsKCXByb3Bvc2FscxgDIAMoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBINCgV0b3RhbBgEIAEoDSIzChxHZXRTZXR0bGVtZW50UHJvcG9zYWxSZXF1ZXN0EhMKC3Byb3Bvc2FsX2lkGAIgASgJIo8BCh1HZXRTZXR0bGVtZW50UHJvcG9zYWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSPwoIcHJvcG9zYWwYAyABKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWxIAIgBAUILCglfcHJvcG9zYWwihwEKFUdldEluc3RydW1lbnRzUmVxdWVzdBIcCg9pbnN0cnVtZW50X3R5cGUYAiABKAlIAIgBARISCgVsaW1pdBgDIAEoDUgBiAEBEhMKBm9mZnNldBgEIAEoDUgCiAEBQhIKEF9pbnN0cnVtZW50X3R5cGVCCAoGX2xpbWl0QgkKB19vZmZzZXQigAEKFkdldEluc3RydW1lbnRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC2luc3RydW1lbnRzGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuSW5zdHJ1bWVudBINCgV0b3RhbBgEIAEoDSKtAgoRR2V0TWFya2V0c1JlcXVlc3QSOgoLbWFya2V0X3R5cGUYAiABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlSACIAQESHAoPYmFzZV9pbnN0cnVtZW50GAMgASgJSAGIAQESHQoQcXVvdGVfaW5zdHJ1bWVudBgEIAEoCUgCiAEBEhgKC2FjdGl2ZV9vbmx5GAUgASgISAOIAQESEgoFbGltaXQYBiABKA1IBIgBARITCgZvZmZzZXQYByABKA1IBYgBAUIOCgxfbWFya2V0X3R5cGVCEgoQX2Jhc2VfaW5zdHJ1bWVudEITChFfcXVvdGVfaW5zdHJ1bWVudEIOCgxfYWN0aXZlX29ubHlCCAoGX2xpbWl0QgkKB19vZmZzZXQidAoSR2V0TWFya2V0c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRItCgdtYXJrZXRzGAMgAygLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0Eg0KBXRvdGFsGAQgASgNIvwBChZHZXRPcmRlckhpc3RvcnlSZXF1ZXN0EhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjIKCWZyb21fdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIwCgd0b190aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhIKBWxpbWl0GAUgASgNSAOIAQESEwoGb2Zmc2V0GAYgASgNSASIAQFCDAoKX21hcmtldF9pZEIMCgpfZnJvbV90aW1lQgoKCF90b190aW1lQggKBl9saW1pdEIJCgdfb2Zmc2V0IncKF0dldE9yZGVySGlzdG9yeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIrCgZvcmRlcnMYAyADKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlchINCgV0b3RhbBgEIAEoDSIqChRHZXRNYXJrZXREYXRhUmVxdWVzdBISCgptYXJrZXRfaWRzGAIgAygJInAKFUdldE1hcmtldERhdGFSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLbWFya2V0X2RhdGEYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXREYXRhIvsBChVHZXRTZXR0bGVtZW50c1JlcXVlc3QSFgoJbWFya2V0X2lkGAIgASgJSACIAQESMgoJZnJvbV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjAKB3RvX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBAUIMCgpfbWFya2V0X2lkQgwKCl9mcm9tX3RpbWVCCgoIX3RvX3RpbWVCCAoGX2xpbWl0QgkKB19vZmZzZXQigAEKFkdldFNldHRsZW1lbnRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC3NldHRsZW1lbnRzGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudBINCgV0b3RhbBgEIAEoDSJMChlTdWJzY3JpYmVPcmRlcmJvb2tSZXF1ZXN0EhEKCW1hcmtldF9pZBgCIAEoCRISCgVkZXB0aBgDIAEoDUgAiAEBQggKBl9kZXB0aCKHAwoPT3JkZXJib29rVXBkYXRlEhEKCW1hcmtldF9pZBgBIAEoCRJFCgt1cGRhdGVfdHlwZRgCIAEoDjIwLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va1VwZGF0ZS5VcGRhdGVUeXBlEjkKC2JpZF91cGRhdGVzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSOwoNb2ZmZXJfdXBkYXRlcxgEIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEi0KCXRpbWVzdGFtcBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoPc2VxdWVuY2VfbnVtYmVyGAYgASgEIloKClVwZGF0ZVR5cGUSGwoXVVBEQVRFX1RZUEVfVU5TUEVDSUZJRUQQABIYChRVUERBVEVfVFlQRV9TTkFQU0hPVBABEhUKEVVQREFURV9UWVBFX0RFTFRBEAIiPgoWU3Vic2NyaWJlT3JkZXJzUmVxdWVzdBIWCgltYXJrZXRfaWQYAiABKAlIAIgBAUIMCgpfbWFya2V0X2lkIq0DCgtPcmRlclVwZGF0ZRI/CgpldmVudF90eXBlGAEgASgOMisuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJVcGRhdGUuRXZlbnRUeXBlEioKBW9yZGVyGAIgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISNAoFbWF0Y2gYAyABKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlck1hdGNoSACIAQESLQoJdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLBAQoJRXZlbnRUeXBlEhoKFkVWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIWChJFVkVOVF9UWVBFX0NSRUFURUQQARIWChJFVkVOVF9UWVBFX1VQREFURUQQAhIVChFFVkVOVF9UWVBFX0ZJTExFRBADEh8KG0VWRU5UX1RZUEVfUEFSVElBTExZX0ZJTExFRBAEEhgKFEVWRU5UX1RZUEVfQ0FOQ0VMTEVEEAUSFgoSRVZFTlRfVFlQRV9FWFBJUkVEEAZCCAoGX21hdGNoIkMKG1N1YnNjcmliZVNldHRsZW1lbnRzUmVxdWVzdBIWCgltYXJrZXRfaWQYAiABKAlIAIgBAUIMCgpfbWFya2V0X2lkIvYCChBTZXR0bGVtZW50VXBkYXRlEkQKCmV2ZW50X3R5cGUYASABKA4yMC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50VXBkYXRlLkV2ZW50VHlwZRI6Cghwcm9wb3NhbBgCIAEoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBItCgl0aW1lc3RhbXAYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIrABCglFdmVudFR5cGUSGgoWRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEh8KG0VWRU5UX1RZUEVfUFJPUE9TQUxfQ1JFQVRFRBABEh0KGUVWRU5UX1RZUEVfU1RBVFVTX0NIQU5HRUQQAhIWChJFVkVOVF9UWVBFX1NFVFRMRUQQAxIVChFFVkVOVF9UWVBFX0ZBSUxFRBAEEhgKFEVWRU5UX1RZUEVfQ0FOQ0VMTEVEEAUivgQKElN1Ym1pdE9yZGVyUmVxdWVzdBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRINCgVwcmljZRgEIAEoCRIQCghxdWFudGl0eRgFIAEoCRI4Cg10aW1lX2luX2ZvcmNlGAYgASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIdChB0cmFkZXJfb3JkZXJfcmVmGAggASgJSAGIAQESMQoLY3JlZGVudGlhbHMYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESMgoMcmVxdWlyZW1lbnRzGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEhYKCXNpZ25hdHVyZRgMIAEoCUgFiAEBEhMKC3NpZ25lZF9kYXRhGA0gASgMEg0KBW5vbmNlGA4gASgEQg0KC19leHBpcmVzX2F0QhMKEV90cmFkZXJfb3JkZXJfcmVmQg4KDF9jcmVkZW50aWFsc0IPCg1fcmVxdWlyZW1lbnRzQgsKCV9tZXRhZGF0YUIMCgpfc2lnbmF0dXJlInIKE1N1Ym1pdE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIiJgoSQ2FuY2VsT3JkZXJSZXF1ZXN0EhAKCG9yZGVyX2lkGAIgASgEInIKE0NhbmNlbE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIiyQUKEkNyZWF0ZVBhcnR5UmVxdWVzdBIQCghwYXJ0eV9pZBgCIAEoCRISCgpwYXJ0eV9uYW1lGAMgASgJEhIKCnBhcnR5X3R5cGUYBCABKAkSHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgAiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAYgBARIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYCCABKAlIA4gBARIqCgl1c2VyX2RhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhIKBWVtYWlsGAogASgJSASIAQESFwoKcHVibGljX2tleRgLIAEoCUgFiAEBEhgKC2ludml0ZV9jb2RlGAwgASgJSAaIAQESEwoGc291cmNlGA0gASgJSAeIAQESIgoVZW5jcnlwdGVkX3ByaXZhdGVfa2V5GA4gASgJSAiIAQESJAoXbGlxdWlkaXR5X3Byb3ZpZGVyX25hbWUYECABKAlICYgBARIrCh5saXF1aWRpdHlfcHJvdmlkZXJfZGVzY3JpcHRpb24YESABKAlICogBAUITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGFCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZEIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCDgoMX2ludml0ZV9jb2RlQgkKB19zb3VyY2VCGAoWX2VuY3J5cHRlZF9wcml2YXRlX2tleUIaChhfbGlxdWlkaXR5X3Byb3ZpZGVyX25hbWVCIQofX2xpcXVpZGl0eV9wcm92aWRlcl9kZXNjcmlwdGlvbiJjChNDcmVhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5IpIFChJVcGRhdGVQYXJ0eVJlcXVlc3QSEAoIcGFydHlfaWQYAiABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgDIAEoBBIXCgpwYXJ0eV9uYW1lGAQgASgJSACIAQESHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgBiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAogBARIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYByABKAlIA4gBARIvCgl1c2VyX2RhdGEYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESLgoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESGgoNY2hhbmdlX3JlYXNvbhgKIAEoCUgGiAEBEhIKBWVtYWlsGAsgASgJSAeIAQESFwoKcHVibGljX2tleRgMIAEoCUgIiAEBEhgKC2ludml0ZV9jb2RlGA0gASgJSAmIAQESEwoGc291cmNlGA4gASgJSAqIAQESIgoVZW5jcnlwdGVkX3ByaXZhdGVfa2V5GA8gASgJSAuIAQFCDQoLX3BhcnR5X25hbWVCEwoRX3VzZXJfc2VydmljZV9jaWRCFgoUX29wZXJhdG9yX2NvbmZpZ19jaWRCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZEIMCgpfdXNlcl9kYXRhQgsKCV9tZXRhZGF0YUIQCg5fY2hhbmdlX3JlYXNvbkIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCDgoMX2ludml0ZV9jb2RlQgkKB19zb3VyY2VCGAoWX2VuY3J5cHRlZF9wcml2YXRlX2tleSJjChNVcGRhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5IlsKFkRlYWN0aXZhdGVQYXJ0eVJlcXVlc3QSEAoIcGFydHlfaWQYAiABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgDIAEoBBIVCg1jaGFuZ2VfcmVhc29uGAQgASgJImcKF0RlYWN0aXZhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5ImgKFkdldFBhcnR5SGlzdG9yeVJlcXVlc3QSEAoIcGFydHlfaWQYAiABKAkSEgoFbGltaXQYAyABKA1IAIgBARITCgZvZmZzZXQYBCABKA1IAYgBAUIICgZfbGltaXRCCQoHX29mZnNldCKBAgoRUGFydHlIaXN0b3J5RW50cnkSEgoKaGlzdG9yeV9pZBgBIAEoBBIQCghwYXJ0eV9pZBgCIAEoCRIOCgZhY3Rpb24YAyABKAkSEgoKY2hhbmdlZF9ieRgEIAEoCRIaCg1jaGFuZ2VfcmVhc29uGAUgASgJSACIAQESDwoHdmVyc2lvbhgGIAEoBBIzCg5wYXJ0eV9zbmFwc2hvdBgHIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5Ei4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9jaGFuZ2VfcmVhc29uIoQBChdHZXRQYXJ0eUhpc3RvcnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSOAoHaGlzdG9yeRgDIAMoCzInLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5SGlzdG9yeUVudHJ5Eg0KBXRvdGFsGAQgASgNIiMKD0dldFBhcnR5UmVxdWVzdBIQCghwYXJ0eV9pZBgCIAEoCSJgChBHZXRQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5IqMBChFHZXRQYXJ0aWVzUmVxdWVzdBIXCgpwYXJ0eV90eXBlGAIgASgJSACIAQESGAoLYWN0aXZlX29ubHkYAyABKAhIAYgBARISCgVsaW1pdBgEIAEoDUgCiAEBEhMKBm9mZnNldBgFIAEoDUgDiAEBQg0KC19wYXJ0eV90eXBlQg4KDF9hY3RpdmVfb25seUIICgZfbGltaXRCCQoHX29mZnNldCJzChJHZXRQYXJ0aWVzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKB3BhcnRpZXMYAyADKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eRINCgV0b3RhbBgEIAEoDSLgBAoFUGFydHkSEAoIcGFydHlfaWQYASABKAkSEgoKcGFydHlfbmFtZRgCIAEoCRISCgpwYXJ0eV90eXBlGAMgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBCABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAUgASgJSAGIAQESEQoJaXNfYWN0aXZlGAYgASgIEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKGHVzZXJfc2VydmljZV9yZXF1ZXN0X2NpZBgKIAEoCUgDiAEBEioKCXVzZXJfZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHdmVyc2lvbhgMIAEoBBISCgVlbWFpbBgNIAEoCUgEiAEBEhcKCnB1YmxpY19rZXkYDiABKAlIBYgBARIYCgtpbnZpdGVfY29kZRgPIAEoCUgGiAEBEg4KBnNvdXJjZRgQIAEoCUITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGFCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZEIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCDgoMX2ludml0ZV9jb2RlIo0CChFMaXF1aWRpdHlQcm92aWRlchIMCgRuYW1lGAEgASgJEhAKCHBhcnR5X2lkGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESOQoQbGFzdF9hY3RpdmVfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CEwoRX2xhc3RfYWN0aXZlX3RpbWUijAEKHEdldExpcXVpZGl0eVByb3ZpZGVyc1JlcXVlc3QSGwoOYWN0aXZlX3NlY29uZHMYAiABKA1IAIgBARISCgVsaW1pdBgDIAEoDUgBiAEBEhMKBm9mZnNldBgEIAEoDUgCiAEBQhEKD19hY3RpdmVfc2Vjb25kc0IICgZfbGltaXRCCQoHX29mZnNldCKWAQodR2V0TGlxdWlkaXR5UHJvdmlkZXJzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEkQKE2xpcXVpZGl0eV9wcm92aWRlcnMYAyADKAsyJy5zaWx2YW5hLm9yZGVyYm9vay52MS5MaXF1aWRpdHlQcm92aWRlchINCgV0b3RhbBgEIAEoDSKIAwoQV2FpdGluZ0xpc3RFbnRyeRIKCgJpZBgBIAEoBBIVCghwYXJ0eV9pZBgCIAEoCUgAiAEBEioKCXVzZXJfZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDgoGc291cmNlGAQgASgJEhIKBWVtYWlsGAUgASgJSAGIAQESFwoKcHVibGljX2tleRgGIAEoCUgCiAEBEhQKDGlzX29uYm9hcmRlZBgHIAEoCBIPCgd2ZXJzaW9uGAggASgEEi4KCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9wYXJ0eV9pZEIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCCwoJX21ldGFkYXRhItsBChpBZGRXYWl0aW5nTGlzdEVudHJ5UmVxdWVzdBIqCgl1c2VyX2RhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg4KBnNvdXJjZRgDIAEoCRISCgVlbWFpbBgEIAEoCUgAiAEBEhcKCnB1YmxpY19rZXkYBSABKAlIAYgBARIuCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCCwoJX21ldGFkYXRhIksKG0FkZFdhaXRpbmdMaXN0RW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSCgoCaWQYAyABKAQisQMKBVJvdW5kEhQKDHJvdW5kX251bWJlchgBIAEoBBI0Cidpc3N1YW5jZV9wZXJfZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb24YAiABKAlIAIgBARI2Cilpc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbhgDIAEoCUgBiAEBEhgKC2NjX3VzZF9yYXRlGAQgASgJSAKIAQESJAoXdHJhZmZpY19jb3N0X3VzZF9wZXJfbWIYBSABKAlIA4gBARIuCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIqCihfaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uQiwKKl9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIOCgxfY2NfdXNkX3JhdGVCGgoYX3RyYWZmaWNfY29zdF91c2RfcGVyX21iIqwFChJMYXRlc3RDb2VmZmljaWVudHMSNAonaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uGAEgASgJSACIAQESOgotaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uX3JvdW5kGAIgASgESAGIAQESNgopaXNzdWFuY2VfcGVyX3VuZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb24YAyABKAlIAogBARI8Ci9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbl9yb3VuZBgEIAEoBEgDiAEBEhgKC2NjX3VzZF9yYXRlGAUgASgJSASIAQESHgoRY2NfdXNkX3JhdGVfcm91bmQYBiABKARIBYgBARIkChd0cmFmZmljX2Nvc3RfdXNkX3Blcl9tYhgHIAEoCUgGiAEBEioKHXRyYWZmaWNfY29zdF91c2RfcGVyX21iX3JvdW5kGAggASgESAeIAQFCKgooX2lzc3VhbmNlX3Blcl9mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIwCi5faXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uX3JvdW5kQiwKKl9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIyCjBfaXNzdWFuY2VfcGVyX3VuZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb25fcm91bmRCDgoMX2NjX3VzZF9yYXRlQhQKEl9jY191c2RfcmF0ZV9yb3VuZEIaChhfdHJhZmZpY19jb3N0X3VzZF9wZXJfbWJCIAoeX3RyYWZmaWNfY29zdF91c2RfcGVyX21iX3JvdW5kIjQKFEdldFJvdW5kc0RhdGFSZXF1ZXN0EhIKBWxpbWl0GAIgASgNSACIAQFCCAoGX2xpbWl0IrYBChVHZXRSb3VuZHNEYXRhUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBnJvdW5kcxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlJvdW5kEjgKBmxhdGVzdBgEIAEoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLkxhdGVzdENvZWZmaWNpZW50cxIUCgx0b3RhbF9yb3VuZHMYBSABKA0i7wIKBkludml0ZRITCgtpbnZpdGVfY29kZRgBIAEoCRIPCgdjaGFubmVsGAIgASgJEhQKB3Jld2FyZHMYAyABKAlIAIgBARIuCghtZXRhZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIyCgZzdGF0dXMYBSABKA4yIi5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnZpdGVTdGF0dXMSEgoKY291bnRfdXNlZBgGIAEoDRIWCgltYXhfY291bnQYByABKA1IAogBARISCgpjcmVhdGVkX2J5GAggASgJEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9yZXdhcmRzQgsKCV9tZXRhZGF0YUIMCgpfbWF4X2NvdW50IicKEEdldEludml0ZVJlcXVlc3QSEwoLaW52aXRlX2NvZGUYASABKAkiYAoRR2V0SW52aXRlUmVzcG9uc2USDQoFZm91bmQYASABKAgSMQoGaW52aXRlGAIgASgLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuSW52aXRlSACIAQFCCQoHX2ludml0ZSJLChBVc2VJbnZpdGVSZXF1ZXN0EhMKC2ludml0ZV9jb2RlGAEgASgJEhUKCHBhcnR5X2lkGAIgASgJSACIAQFCCwoJX3BhcnR5X2lkInMKEVVzZUludml0ZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIxCgZpbnZpdGUYAyABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnZpdGVIAIgBAUIJCgdfaW52aXRlIqcCChdDcmVhdGVJbnN0cnVtZW50UmVxdWVzdBIVCg1pbnN0cnVtZW50X2lkGAIgASgJEhcKD2luc3RydW1lbnRfdHlwZRgDIAEoCRIMCgRuYW1lGAQgASgJEg4KBnN5bWJvbBgFIAEoCRIYCgtkZXNjcmlwdGlvbhgGIAEoCUgAiAEBEhMKBmlzc3VlchgHIAEoCUgBiAEBEhUKCHJlZ2lzdHJ5GAggASgJSAKIAQESLgoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESEwoLbmV3c19zeW1ib2wYCiABKAlCDgoMX2Rlc2NyaXB0aW9uQgkKB19pc3N1ZXJCCwoJX3JlZ2lzdHJ5QgsKCV9tZXRhZGF0YSJyChhDcmVhdGVJbnN0cnVtZW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjQKCmluc3RydW1lbnQYAyABKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnN0cnVtZW50IsYDChNDcmVhdGVNYXJrZXRSZXF1ZXN0EhEKCW1hcmtldF9pZBgCIAEoCRI1CgttYXJrZXRfdHlwZRgDIAEoDjIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldFR5cGUSHAoPYmFzZV9pbnN0cnVtZW50GAQgASgJSACIAQESHQoQcXVvdGVfaW5zdHJ1bWVudBgFIAEoCUgBiAEBEhYKDm1pbl9vcmRlcl9zaXplGAYgASgJEhsKDm1heF9vcmRlcl9zaXplGAcgASgJSAKIAQESEQoJdGlja19zaXplGAggASgJEhEKCW1ha2VyX2ZlZRgJIAEoCRIRCgl0YWtlcl9mZWUYCiABKAkSLgoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESMQoLcHJpY2VfZmVlZHMYDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCEgoQX2Jhc2VfaW5zdHJ1bWVudEITChFfcXVvdGVfaW5zdHJ1bWVudEIRCg9fbWF4X29yZGVyX3NpemVCCwoJX21ldGFkYXRhQg4KDF9wcmljZV9mZWVkcyJmChRDcmVhdGVNYXJrZXRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLAoGbWFya2V0GAMgASgLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0ImAKHVVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXF1ZXN0EhEKCW1hcmtldF9pZBgCIAEoCRIsCgtwcmljZV9mZWVkcxgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QicAoeVXBkYXRlTWFya2V0UHJpY2VGZWVkc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIsCgZtYXJrZXQYAyABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQqUQoJT3JkZXJUeXBlEhoKFk9SREVSX1RZUEVfVU5TUEVDSUZJRUQQABISCg5PUkRFUl9UWVBFX0JJRBABEhQKEE9SREVSX1RZUEVfT0ZGRVIQAiqtAQoLT3JkZXJTdGF0dXMSHAoYT1JERVJfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFwoTT1JERVJfU1RBVFVTX0FDVElWRRABEhgKFE9SREVSX1NUQVRVU19QQVJUSUFMEAISFwoTT1JERVJfU1RBVFVTX0ZJTExFRBADEhoKFk9SREVSX1NUQVRVU19DQU5DRUxMRUQQBBIYChRPUkRFUl9TVEFUVVNfRVhQSVJFRBAFKogBCgtUaW1lSW5Gb3JjZRIdChlUSU1FX0lOX0ZPUkNFX1VOU1BFQ0lGSUVEEAASFQoRVElNRV9JTl9GT1JDRV9HVEMQARIVChFUSU1FX0lOX0ZPUkNFX0lPQxACEhUKEVRJTUVfSU5fRk9SQ0VfRk9LEAMSFQoRVElNRV9JTl9GT1JDRV9HVEQQBCqyAQoQU2V0dGxlbWVudFN0YXR1cxIhCh1TRVRUTEVNRU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEh0KGVNFVFRMRU1FTlRfU1RBVFVTX1BFTkRJTkcQARIdChlTRVRUTEVNRU5UX1NUQVRVU19TRVRUTEVEEAISHwobU0VUVExFTUVOVF9TVEFUVVNfQ0FOQ0VMTEVEEAMSHAoYU0VUVExFTUVOVF9TVEFUVVNfRkFJTEVEEAQqdgoKTWFya2V0VHlwZRIbChdNQVJLRVRfVFlQRV9VTlNQRUNJRklFRBAAEhcKE01BUktFVF9UWVBFX0dFTkVSQUwQARIdChlNQVJLRVRfVFlQRV9JTlNUSVRVVElPTkFMEAISEwoPTUFSS0VUX1RZUEVfT1RDEAMqlgEKDEludml0ZVN0YXR1cxIdChlJTlZJVEVfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFwoTSU5WSVRFX1NUQVRVU19WQUxJRBABEhkKFUlOVklURV9TVEFUVVNfRVhQSVJFRBACEhYKEklOVklURV9TVEFUVVNfVVNFRBADEhsKF0lOVklURV9TVEFUVVNfQ0FOQ0VMTEVEEAQygBgKEE9yZGVyYm9va1NlcnZpY2USXAoJR2V0T3JkZXJzEiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJzUmVxdWVzdBonLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyc1Jlc3BvbnNlEnQKEUdldE9yZGVyYm9va0RlcHRoEi4uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJib29rRGVwdGhSZXF1ZXN0Gi8uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJib29rRGVwdGhSZXNwb25zZRKDAQoWR2V0U2V0dGxlbWVudFByb3Bvc2FscxIzLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXF1ZXN0GjQuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1Jlc3BvbnNlEoABChVHZXRTZXR0bGVtZW50UHJvcG9zYWwSMi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxSZXF1ZXN0GjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVzcG9uc2USawoOR2V0SW5zdHJ1bWVudHMSKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRJbnN0cnVtZW50c1JlcXVlc3QaLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRJbnN0cnVtZW50c1Jlc3BvbnNlEl8KCkdldE1hcmtldHMSJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXRzUmVxdWVzdBooLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldHNSZXNwb25zZRJuCg9HZXRPcmRlckhpc3RvcnkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlckhpc3RvcnlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJIaXN0b3J5UmVzcG9uc2USaAoNR2V0TWFya2V0RGF0YRIqLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldERhdGFSZXF1ZXN0Gisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0RGF0YVJlc3BvbnNlEmsKDkdldFNldHRsZW1lbnRzEisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudHNSZXF1ZXN0Giwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudHNSZXNwb25zZRJiCgtTdWJtaXRPcmRlchIoLnNpbHZhbmEub3JkZXJib29rLnYxLlN1Ym1pdE9yZGVyUmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLlN1Ym1pdE9yZGVyUmVzcG9uc2USYgoLQ2FuY2VsT3JkZXISKC5zaWx2YW5hLm9yZGVyYm9vay52MS5DYW5jZWxPcmRlclJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5DYW5jZWxPcmRlclJlc3BvbnNlElkKCEdldFBhcnR5EiUuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlSZXF1ZXN0GiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlSZXNwb25zZRJfCgpHZXRQYXJ0aWVzEicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydGllc1JlcXVlc3QaKC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0aWVzUmVzcG9uc2USgAEKFUdldExpcXVpZGl0eVByb3ZpZGVycxIyLnNpbHZhbmEub3JkZXJib29rLnYxLkdldExpcXVpZGl0eVByb3ZpZGVyc1JlcXVlc3QaMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRMaXF1aWRpdHlQcm92aWRlcnNSZXNwb25zZRJ6ChNBZGRXYWl0aW5nTGlzdEVudHJ5EjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuQWRkV2FpdGluZ0xpc3RFbnRyeVJlcXVlc3QaMS5zaWx2YW5hLm9yZGVyYm9vay52MS5BZGRXYWl0aW5nTGlzdEVudHJ5UmVzcG9uc2USXAoJR2V0SW52aXRlEiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW52aXRlUmVxdWVzdBonLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEludml0ZVJlc3BvbnNlElwKCVVzZUludml0ZRImLnNpbHZhbmEub3JkZXJib29rLnYxLlVzZUludml0ZVJlcXVlc3QaJy5zaWx2YW5hLm9yZGVyYm9vay52MS5Vc2VJbnZpdGVSZXNwb25zZRJoCg1HZXRSb3VuZHNEYXRhEiouc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0Um91bmRzRGF0YVJlcXVlc3QaKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRSb3VuZHNEYXRhUmVzcG9uc2USYgoLQ3JlYXRlUGFydHkSKC5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVQYXJ0eVJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVQYXJ0eVJlc3BvbnNlEmIKC1VwZGF0ZVBhcnR5Eiguc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlUGFydHlSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlUGFydHlSZXNwb25zZRJuCg9EZWFjdGl2YXRlUGFydHkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5EZWFjdGl2YXRlUGFydHlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuRGVhY3RpdmF0ZVBhcnR5UmVzcG9uc2USbgoPR2V0UGFydHlIaXN0b3J5Eiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlIaXN0b3J5UmVxdWVzdBotLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnR5SGlzdG9yeVJlc3BvbnNlEnEKEENyZWF0ZUluc3RydW1lbnQSLS5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVJbnN0cnVtZW50UmVxdWVzdBouLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZUluc3RydW1lbnRSZXNwb25zZRJlCgxDcmVhdGVNYXJrZXQSKS5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVNYXJrZXRSZXF1ZXN0Giouc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlTWFya2V0UmVzcG9uc2USgwEKFlVwZGF0ZU1hcmtldFByaWNlRmVlZHMSMy5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVxdWVzdBo0LnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXNwb25zZRJuChJTdWJzY3JpYmVPcmRlcmJvb2sSLy5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVPcmRlcmJvb2tSZXF1ZXN0GiUuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rVXBkYXRlMAESZAoPU3Vic2NyaWJlT3JkZXJzEiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuU3Vic2NyaWJlT3JkZXJzUmVxdWVzdBohLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVXBkYXRlMAEScwoUU3Vic2NyaWJlU2V0dGxlbWVudHMSMS5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVTZXR0bGVtZW50c1JlcXVlc3QaJi5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50VXBkYXRlMAFCNFoyZ2l0aHViLmNvbS9TaWx2YW5hT25lL2NhbnRvbi1hZ2VudC9wcm90bztvcmRlcmJvb2tiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
15
+ fileDesc("Cipwcm90by9zaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIvoCCgpJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAIgASgJEgwKBG5hbWUYAyABKAkSDgoGc3ltYm9sGAQgASgJEhgKC2Rlc2NyaXB0aW9uGAUgASgJSACIAQESEwoGaXNzdWVyGAYgASgJSAGIAQESFQoIcmVnaXN0cnkYByABKAlIAogBARIuCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtuZXdzX3N5bWJvbBgLIAEoCUIOCgxfZGVzY3JpcHRpb25CCQoHX2lzc3VlckILCglfcmVnaXN0cnlCCwoJX21ldGFkYXRhItwFCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgJEjUKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZRIXCg9iYXNlX2luc3RydW1lbnQYAyABKAkSGAoQcXVvdGVfaW5zdHJ1bWVudBgEIAEoCRITCgtwYWlyX3N5bWJvbBgFIAEoCRIRCglpc19hY3RpdmUYBiABKAgSFgoObWluX29yZGVyX3NpemUYByABKAkSGwoObWF4X29yZGVyX3NpemUYCCABKAlIAIgBARIRCgl0aWNrX3NpemUYCSABKAkSEQoJbWFrZXJfZmVlGAogASgJEhEKCXRha2VyX2ZlZRgLIAEoCRIuCghtZXRhZGF0YRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIuCgpjcmVhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCgtwcmljZV9mZWVkcxgPIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIaCg1jdXJyZW50X3ByaWNlGBAgASgBSAOIAQESFwoKY2hhbmdlXzI0aBgRIAEoAUgEiAEBEhcKCnZvbHVtZV8yNGgYEiABKAFIBYgBARI5ChBwcmljZV91cGRhdGVkX2F0GBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBQhEKD19tYXhfb3JkZXJfc2l6ZUILCglfbWV0YWRhdGFCDgoMX3ByaWNlX2ZlZWRzQhAKDl9jdXJyZW50X3ByaWNlQg0KC19jaGFuZ2VfMjRoQg0KC192b2x1bWVfMjRoQhMKEV9wcmljZV91cGRhdGVkX2F0IsEHCgVPcmRlchIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRIOCgZ0cmFkZXIYBCABKAkSHQoQdHJhZGVyX29yZGVyX3JlZhgFIAEoCUgAiAEBEhcKD2Jhc2VfaW5zdHJ1bWVudBgGIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAcgASgJEg0KBXByaWNlGAggASgJEhAKCHF1YW50aXR5GAkgASgJEhcKD2ZpbGxlZF9xdWFudGl0eRgKIAEoCRIYChBwZW5kaW5nX3F1YW50aXR5GAsgASgJEhoKEnJlbWFpbmluZ19xdWFudGl0eRgMIAEoCRIxCgZzdGF0dXMYDSABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1cxI4Cg10aW1lX2luX2ZvcmNlGA4gASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIPCgd2ZXJzaW9uGBAgASgEEjEKC2NyZWRlbnRpYWxzGBEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDHJlcXVpcmVtZW50cxgSIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCghtZXRhZGF0YRgTIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIuCgpjcmVhdGVkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1CgxjYW5jZWxsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESFgoJc2lnbmF0dXJlGBcgASgJSAaIAQESEwoLc2lnbmVkX2RhdGEYGCABKAwSDQoFbm9uY2UYGSABKARCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDQoLX2V4cGlyZXNfYXRCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhQg8KDV9jYW5jZWxsZWRfYXRCDAoKX3NpZ25hdHVyZSKCAQoOT3JkZXJib29rTGV2ZWwSDQoFcHJpY2UYASABKAkSFgoOdG90YWxfcXVhbnRpdHkYAiABKAkSEwoLb3JkZXJfY291bnQYAyABKA0SNAoQZmlyc3Rfb3JkZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi1QEKDk9yZGVyYm9va0RlcHRoEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIyCgRiaWRzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSNAoGb2ZmZXJzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSMQoNc25hcHNob3RfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiigYKElNldHRsZW1lbnRQcm9wb3NhbBITCgtwcm9wb3NhbF9pZBgBIAEoCRIRCgltYXJrZXRfaWQYAiABKAkSDQoFYnV5ZXIYAyABKAkSDgoGc2VsbGVyGAQgASgJEhcKD2Jhc2VfaW5zdHJ1bWVudBgFIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAYgASgJEhUKDWJhc2VfcXVhbnRpdHkYByABKAkSFgoOcXVvdGVfcXVhbnRpdHkYCCABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgJIAEoCRIgChhkdnBfcHJvY2Vzc2luZ19mZWVfYnV5ZXIYCiABKAkSIQoZZHZwX3Byb2Nlc3NpbmdfZmVlX3NlbGxlchgLIAEoCRInCh9hbGxvY2F0aW9uX3Byb2Nlc3NpbmdfZmVlX2J1eWVyGAwgASgJEigKIGFsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfc2VsbGVyGA0gASgJEjYKBnN0YXR1cxgOIAEoDjImLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRTdGF0dXMSGgoNZXJyb3JfbWVzc2FnZRgPIAEoCUgAiAEBEi4KCmNyZWF0ZWRfYXQYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCnNldHRsZWRfYXQYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESNQoMY2FuY2VsbGVkX2F0GBIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEjIKCWZhaWxlZF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARI1CgtvcmRlcl9tYXRjaBgUIAEoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyTWF0Y2hCEAoOX2Vycm9yX21lc3NhZ2VCDQoLX3NldHRsZWRfYXRCDwoNX2NhbmNlbGxlZF9hdEIMCgpfZmFpbGVkX2F0IrsBCgpPcmRlck1hdGNoEh4KFnNldHRsZW1lbnRfcHJvcG9zYWxfaWQYASABKAkSFAoMYmlkX29yZGVyX2lkGAIgASgEEhYKDm9mZmVyX29yZGVyX2lkGAMgASgEEhgKEG1hdGNoZWRfcXVhbnRpdHkYBCABKAkSFQoNbWF0Y2hlZF9wcmljZRgFIAEoCRIuCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKcBAoKU2V0dGxlbWVudBIVCg1zZXR0bGVtZW50X2lkGAEgASgEEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhEKCW1hcmtldF9pZBgDIAEoCRINCgVidXllchgEIAEoCRIOCgZzZWxsZXIYBSABKAkSFwoPYmFzZV9pbnN0cnVtZW50GAYgASgJEhgKEHF1b3RlX2luc3RydW1lbnQYByABKAkSFQoNYmFzZV9xdWFudGl0eRgIIAEoCRIWCg5xdW90ZV9xdWFudGl0eRgJIAEoCRIYChBzZXR0bGVtZW50X3ByaWNlGAogASgJEiAKGGR2cF9wcm9jZXNzaW5nX2ZlZV9idXllchgLIAEoCRIhChlkdnBfcHJvY2Vzc2luZ19mZWVfc2VsbGVyGAwgASgJEicKH2FsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfYnV5ZXIYDSABKAkSKAogYWxsb2NhdGlvbl9wcm9jZXNzaW5nX2ZlZV9zZWxsZXIYDiABKAkSHAoPc2V0dGxlZF9kdnBfY2lkGA8gASgJSACIAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYECABKAlIAYgBARIuCgpzZXR0bGVkX2F0GBEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZCKVAgoKTWFya2V0RGF0YRIRCgltYXJrZXRfaWQYASABKAkSEwoLcGFpcl9zeW1ib2wYAiABKAkSFQoIYmVzdF9iaWQYAyABKAlIAIgBARIXCgpiZXN0X29mZmVyGAQgASgJSAGIAQESFwoKbGFzdF9wcmljZRgFIAEoCUgCiAEBEhIKCnZvbHVtZV8yNGgYBiABKAkSEgoKdHJhZGVzXzI0aBgHIAEoDRITCgtvcGVuX29yZGVycxgIIAEoDRIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEILCglfYmVzdF9iaWRCDQoLX2Jlc3Rfb2ZmZXJCDQoLX2xhc3RfcHJpY2Ui+gIKEEdldE9yZGVyc1JlcXVlc3QSFgoJbWFya2V0X2lkGAIgASgJSACIAQESNgoGc3RhdHVzGAMgASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJTdGF0dXNIAYgBARI4CgpvcmRlcl90eXBlGAQgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBARIuCiFsaXF1aWRpdHlfcHJvdmlkZXJfYWN0aXZlX3NlY29uZHMYCyABKA1IBYgBARIgChhsaXF1aWRpdHlfcHJvdmlkZXJfbmFtZXMYDCADKAlCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQg0KC19vcmRlcl90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0QiQKIl9saXF1aWRpdHlfcHJvdmlkZXJfYWN0aXZlX3NlY29uZHMicQoRR2V0T3JkZXJzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBm9yZGVycxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEg0KBXRvdGFsGAQgASgNIksKGEdldE9yZGVyYm9va0RlcHRoUmVxdWVzdBIRCgltYXJrZXRfaWQYAiABKAkSEgoFZGVwdGgYAyABKA1IAIgBAUIICgZfZGVwdGgidgoZR2V0T3JkZXJib29rRGVwdGhSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNwoJb3JkZXJib29rGAMgASgLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rRGVwdGgiywEKHUdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXF1ZXN0EhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjsKBnN0YXR1cxgDIAEoDjImLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRTdGF0dXNIAYgBARISCgVsaW1pdBgEIAEoDUgCiAEBEhMKBm9mZnNldBgFIAEoDUgDiAEBQgwKCl9tYXJrZXRfaWRCCQoHX3N0YXR1c0IICgZfbGltaXRCCQoHX29mZnNldCKOAQoeR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI7Cglwcm9wb3NhbHMYAyADKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWwSDQoFdG90YWwYBCABKA0iMwocR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVxdWVzdBITCgtwcm9wb3NhbF9pZBgCIAEoCSKPAQodR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEj8KCHByb3Bvc2FsGAMgASgLMiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFByb3Bvc2FsSACIAQFCCwoJX3Byb3Bvc2FsIocBChVHZXRJbnN0cnVtZW50c1JlcXVlc3QSHAoPaW5zdHJ1bWVudF90eXBlGAIgASgJSACIAQESEgoFbGltaXQYAyABKA1IAYgBARITCgZvZmZzZXQYBCABKA1IAogBAUISChBfaW5zdHJ1bWVudF90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0IoABChZHZXRJbnN0cnVtZW50c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgtpbnN0cnVtZW50cxgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLkluc3RydW1lbnQSDQoFdG90YWwYBCABKA0irQIKEUdldE1hcmtldHNSZXF1ZXN0EjoKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZUgAiAEBEhwKD2Jhc2VfaW5zdHJ1bWVudBgDIAEoCUgBiAEBEh0KEHF1b3RlX2luc3RydW1lbnQYBCABKAlIAogBARIYCgthY3RpdmVfb25seRgFIAEoCEgDiAEBEhIKBWxpbWl0GAYgASgNSASIAQESEwoGb2Zmc2V0GAcgASgNSAWIAQFCDgoMX21hcmtldF90eXBlQhIKEF9iYXNlX2luc3RydW1lbnRCEwoRX3F1b3RlX2luc3RydW1lbnRCDgoMX2FjdGl2ZV9vbmx5QggKBl9saW1pdEIJCgdfb2Zmc2V0InQKEkdldE1hcmtldHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLQoHbWFya2V0cxgDIAMoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldBINCgV0b3RhbBgEIAEoDSL8AQoWR2V0T3JkZXJIaXN0b3J5UmVxdWVzdBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARIyCglmcm9tX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMAoHdG9fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCDAoKX2Zyb21fdGltZUIKCghfdG9fdGltZUIICgZfbGltaXRCCQoHX29mZnNldCJ3ChdHZXRPcmRlckhpc3RvcnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGb3JkZXJzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISDQoFdG90YWwYBCABKA0iKgoUR2V0TWFya2V0RGF0YVJlcXVlc3QSEgoKbWFya2V0X2lkcxgCIAMoCSJwChVHZXRNYXJrZXREYXRhUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC21hcmtldF9kYXRhGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0RGF0YSL7AQoVR2V0U2V0dGxlbWVudHNSZXF1ZXN0EhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjIKCWZyb21fdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIwCgd0b190aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhIKBWxpbWl0GAUgASgNSAOIAQESEwoGb2Zmc2V0GAYgASgNSASIAQFCDAoKX21hcmtldF9pZEIMCgpfZnJvbV90aW1lQgoKCF90b190aW1lQggKBl9saW1pdEIJCgdfb2Zmc2V0IoABChZHZXRTZXR0bGVtZW50c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgtzZXR0bGVtZW50cxgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnQSDQoFdG90YWwYBCABKA0iTAoZU3Vic2NyaWJlT3JkZXJib29rUmVxdWVzdBIRCgltYXJrZXRfaWQYAiABKAkSEgoFZGVwdGgYAyABKA1IAIgBAUIICgZfZGVwdGgihwMKD09yZGVyYm9va1VwZGF0ZRIRCgltYXJrZXRfaWQYASABKAkSRQoLdXBkYXRlX3R5cGUYAiABKA4yMC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tVcGRhdGUuVXBkYXRlVHlwZRI5CgtiaWRfdXBkYXRlcxgDIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEjsKDW9mZmVyX3VwZGF0ZXMYBCADKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tMZXZlbBItCgl0aW1lc3RhbXAYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD3NlcXVlbmNlX251bWJlchgGIAEoBCJaCgpVcGRhdGVUeXBlEhsKF1VQREFURV9UWVBFX1VOU1BFQ0lGSUVEEAASGAoUVVBEQVRFX1RZUEVfU05BUFNIT1QQARIVChFVUERBVEVfVFlQRV9ERUxUQRACIj4KFlN1YnNjcmliZU9yZGVyc1JlcXVlc3QSFgoJbWFya2V0X2lkGAIgASgJSACIAQFCDAoKX21hcmtldF9pZCKtAwoLT3JkZXJVcGRhdGUSPwoKZXZlbnRfdHlwZRgBIAEoDjIrLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVXBkYXRlLkV2ZW50VHlwZRIqCgVvcmRlchgCIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEjQKBW1hdGNoGAMgASgLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJNYXRjaEgAiAEBEi0KCXRpbWVzdGFtcBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiwQEKCUV2ZW50VHlwZRIaChZFVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASFgoSRVZFTlRfVFlQRV9DUkVBVEVEEAESFgoSRVZFTlRfVFlQRV9VUERBVEVEEAISFQoRRVZFTlRfVFlQRV9GSUxMRUQQAxIfChtFVkVOVF9UWVBFX1BBUlRJQUxMWV9GSUxMRUQQBBIYChRFVkVOVF9UWVBFX0NBTkNFTExFRBAFEhYKEkVWRU5UX1RZUEVfRVhQSVJFRBAGQggKBl9tYXRjaCJDChtTdWJzY3JpYmVTZXR0bGVtZW50c1JlcXVlc3QSFgoJbWFya2V0X2lkGAIgASgJSACIAQFCDAoKX21hcmtldF9pZCL2AgoQU2V0dGxlbWVudFVwZGF0ZRJECgpldmVudF90eXBlGAEgASgOMjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFVwZGF0ZS5FdmVudFR5cGUSOgoIcHJvcG9zYWwYAiABKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWwSLQoJdGltZXN0YW1wGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKwAQoJRXZlbnRUeXBlEhoKFkVWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIfChtFVkVOVF9UWVBFX1BST1BPU0FMX0NSRUFURUQQARIdChlFVkVOVF9UWVBFX1NUQVRVU19DSEFOR0VEEAISFgoSRVZFTlRfVFlQRV9TRVRUTEVEEAMSFQoRRVZFTlRfVFlQRV9GQUlMRUQQBBIYChRFVkVOVF9UWVBFX0NBTkNFTExFRBAFIr4EChJTdWJtaXRPcmRlclJlcXVlc3QSEQoJbWFya2V0X2lkGAIgASgJEjMKCm9yZGVyX3R5cGUYAyABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGUSDQoFcHJpY2UYBCABKAkSEAoIcXVhbnRpdHkYBSABKAkSOAoNdGltZV9pbl9mb3JjZRgGIAEoDjIhLnNpbHZhbmEub3JkZXJib29rLnYxLlRpbWVJbkZvcmNlEjMKCmV4cGlyZXNfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESHQoQdHJhZGVyX29yZGVyX3JlZhgIIAEoCUgBiAEBEjEKC2NyZWRlbnRpYWxzGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDHJlcXVpcmVtZW50cxgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCghtZXRhZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIWCglzaWduYXR1cmUYDCABKAlIBYgBARITCgtzaWduZWRfZGF0YRgNIAEoDBINCgVub25jZRgOIAEoBEINCgtfZXhwaXJlc19hdEITChFfdHJhZGVyX29yZGVyX3JlZkIOCgxfY3JlZGVudGlhbHNCDwoNX3JlcXVpcmVtZW50c0ILCglfbWV0YWRhdGFCDAoKX3NpZ25hdHVyZSJyChNTdWJtaXRPcmRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIvCgVvcmRlchgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVySACIAQFCCAoGX29yZGVyIiYKEkNhbmNlbE9yZGVyUmVxdWVzdBIQCghvcmRlcl9pZBgCIAEoBCJyChNDYW5jZWxPcmRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIvCgVvcmRlchgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVySACIAQFCCAoGX29yZGVyIskFChJDcmVhdGVQYXJ0eVJlcXVlc3QSEAoIcGFydHlfaWQYAiABKAkSEgoKcGFydHlfbmFtZRgDIAEoCRISCgpwYXJ0eV90eXBlGAQgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBSABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAYgASgJSAGIAQESLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESJQoYdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkGAggASgJSAOIAQESKgoJdXNlcl9kYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBISCgVlbWFpbBgKIAEoCUgEiAEBEhcKCnB1YmxpY19rZXkYCyABKAlIBYgBARIYCgtpbnZpdGVfY29kZRgMIAEoCUgGiAEBEhMKBnNvdXJjZRgNIAEoCUgHiAEBEiIKFWVuY3J5cHRlZF9wcml2YXRlX2tleRgOIAEoCUgIiAEBEiQKF2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lGBAgASgJSAmIAQESKwoebGlxdWlkaXR5X3Byb3ZpZGVyX2Rlc2NyaXB0aW9uGBEgASgJSAqIAQFCEwoRX3VzZXJfc2VydmljZV9jaWRCFgoUX29wZXJhdG9yX2NvbmZpZ19jaWRCCwoJX21ldGFkYXRhQhsKGV91c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWRCCAoGX2VtYWlsQg0KC19wdWJsaWNfa2V5Qg4KDF9pbnZpdGVfY29kZUIJCgdfc291cmNlQhgKFl9lbmNyeXB0ZWRfcHJpdmF0ZV9rZXlCGgoYX2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lQiEKH19saXF1aWRpdHlfcHJvdmlkZXJfZGVzY3JpcHRpb24iYwoTQ3JlYXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSKSBQoSVXBkYXRlUGFydHlSZXF1ZXN0EhAKCHBhcnR5X2lkGAIgASgJEhgKEGV4cGVjdGVkX3ZlcnNpb24YAyABKAQSFwoKcGFydHlfbmFtZRgEIAEoCUgAiAEBEh0KEHVzZXJfc2VydmljZV9jaWQYBSABKAlIAYgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAYgASgJSAKIAQESJQoYdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkGAcgASgJSAOIAQESLwoJdXNlcl9kYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEi4KCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEhoKDWNoYW5nZV9yZWFzb24YCiABKAlIBogBARISCgVlbWFpbBgLIAEoCUgHiAEBEhcKCnB1YmxpY19rZXkYDCABKAlICIgBARIYCgtpbnZpdGVfY29kZRgNIAEoCUgJiAEBEhMKBnNvdXJjZRgOIAEoCUgKiAEBEiIKFWVuY3J5cHRlZF9wcml2YXRlX2tleRgPIAEoCUgLiAEBQg0KC19wYXJ0eV9uYW1lQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQhsKGV91c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWRCDAoKX3VzZXJfZGF0YUILCglfbWV0YWRhdGFCEAoOX2NoYW5nZV9yZWFzb25CCAoGX2VtYWlsQg0KC19wdWJsaWNfa2V5Qg4KDF9pbnZpdGVfY29kZUIJCgdfc291cmNlQhgKFl9lbmNyeXB0ZWRfcHJpdmF0ZV9rZXkiYwoTVXBkYXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSJbChZEZWFjdGl2YXRlUGFydHlSZXF1ZXN0EhAKCHBhcnR5X2lkGAIgASgJEhgKEGV4cGVjdGVkX3ZlcnNpb24YAyABKAQSFQoNY2hhbmdlX3JlYXNvbhgEIAEoCSJnChdEZWFjdGl2YXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSJoChZHZXRQYXJ0eUhpc3RvcnlSZXF1ZXN0EhAKCHBhcnR5X2lkGAIgASgJEhIKBWxpbWl0GAMgASgNSACIAQESEwoGb2Zmc2V0GAQgASgNSAGIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXQigQIKEVBhcnR5SGlzdG9yeUVudHJ5EhIKCmhpc3RvcnlfaWQYASABKAQSEAoIcGFydHlfaWQYAiABKAkSDgoGYWN0aW9uGAMgASgJEhIKCmNoYW5nZWRfYnkYBCABKAkSGgoNY2hhbmdlX3JlYXNvbhgFIAEoCUgAiAEBEg8KB3ZlcnNpb24YBiABKAQSMwoOcGFydHlfc25hcHNob3QYByABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eRIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIQCg5fY2hhbmdlX3JlYXNvbiKEAQoXR2V0UGFydHlIaXN0b3J5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjgKB2hpc3RvcnkYAyADKAsyJy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eUhpc3RvcnlFbnRyeRINCgV0b3RhbBgEIAEoDSIjCg9HZXRQYXJ0eVJlcXVlc3QSEAoIcGFydHlfaWQYAiABKAkiYAoQR2V0UGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSKjAQoRR2V0UGFydGllc1JlcXVlc3QSFwoKcGFydHlfdHlwZRgCIAEoCUgAiAEBEhgKC2FjdGl2ZV9vbmx5GAMgASgISAGIAQESEgoFbGltaXQYBCABKA1IAogBARITCgZvZmZzZXQYBSABKA1IA4gBAUINCgtfcGFydHlfdHlwZUIOCgxfYWN0aXZlX29ubHlCCAoGX2xpbWl0QgkKB19vZmZzZXQicwoSR2V0UGFydGllc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIsCgdwYXJ0aWVzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHkSDQoFdG90YWwYBCABKA0i4AQKBVBhcnR5EhAKCHBhcnR5X2lkGAEgASgJEhIKCnBhcnR5X25hbWUYAiABKAkSEgoKcGFydHlfdHlwZRgDIAEoCRIdChB1c2VyX3NlcnZpY2VfY2lkGAQgASgJSACIAQESIAoTb3BlcmF0b3JfY29uZmlnX2NpZBgFIAEoCUgBiAEBEhEKCWlzX2FjdGl2ZRgGIAEoCBIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYCiABKAlIA4gBARIqCgl1c2VyX2RhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB3ZlcnNpb24YDCABKAQSEgoFZW1haWwYDSABKAlIBIgBARIXCgpwdWJsaWNfa2V5GA4gASgJSAWIAQESGAoLaW52aXRlX2NvZGUYDyABKAlIBogBARIOCgZzb3VyY2UYECABKAlCEwoRX3VzZXJfc2VydmljZV9jaWRCFgoUX29wZXJhdG9yX2NvbmZpZ19jaWRCCwoJX21ldGFkYXRhQhsKGV91c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWRCCAoGX2VtYWlsQg0KC19wdWJsaWNfa2V5Qg4KDF9pbnZpdGVfY29kZSKNAgoRTGlxdWlkaXR5UHJvdmlkZXISDAoEbmFtZRgBIAEoCRIQCghwYXJ0eV9pZBgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjkKEGxhc3RfYWN0aXZlX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX2Rlc2NyaXB0aW9uQhMKEV9sYXN0X2FjdGl2ZV90aW1lIowBChxHZXRMaXF1aWRpdHlQcm92aWRlcnNSZXF1ZXN0EhsKDmFjdGl2ZV9zZWNvbmRzGAIgASgNSACIAQESEgoFbGltaXQYAyABKA1IAYgBARITCgZvZmZzZXQYBCABKA1IAogBAUIRCg9fYWN0aXZlX3NlY29uZHNCCAoGX2xpbWl0QgkKB19vZmZzZXQilgEKHUdldExpcXVpZGl0eVByb3ZpZGVyc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRJEChNsaXF1aWRpdHlfcHJvdmlkZXJzGAMgAygLMicuc2lsdmFuYS5vcmRlcmJvb2sudjEuTGlxdWlkaXR5UHJvdmlkZXISDQoFdG90YWwYBCABKA0ilwQKEFdhaXRpbmdMaXN0RW50cnkSCgoCaWQYASABKAQSFQoIcGFydHlfaWQYAiABKAlIAIgBARIqCgl1c2VyX2RhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg4KBnNvdXJjZRgEIAEoCRISCgVlbWFpbBgFIAEoCUgBiAEBEhcKCnB1YmxpY19rZXkYBiABKAlIAogBARIZChFvbmJvYXJkaW5nX3N0YXR1cxgHIAEoCRIPCgd2ZXJzaW9uGAggASgEEi4KCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKCW11bHRpaGFzaBgMIAEoCUgEiAEBEiAKE211bHRpaGFzaF9zaWduYXR1cmUYDSABKAlIBYgBARIYCgtpbnZpdGVfY29kZRgOIAEoCUgGiAEBQgsKCV9wYXJ0eV9pZEIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCCwoJX21ldGFkYXRhQgwKCl9tdWx0aWhhc2hCFgoUX211bHRpaGFzaF9zaWduYXR1cmVCDgoMX2ludml0ZV9jb2RlItsBChpBZGRXYWl0aW5nTGlzdEVudHJ5UmVxdWVzdBIqCgl1c2VyX2RhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg4KBnNvdXJjZRgDIAEoCRISCgVlbWFpbBgEIAEoCUgAiAEBEhcKCnB1YmxpY19rZXkYBSABKAlIAYgBARIuCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCCwoJX21ldGFkYXRhIksKG0FkZFdhaXRpbmdMaXN0RW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSCgoCaWQYAyABKAQisQMKBVJvdW5kEhQKDHJvdW5kX251bWJlchgBIAEoBBI0Cidpc3N1YW5jZV9wZXJfZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb24YAiABKAlIAIgBARI2Cilpc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbhgDIAEoCUgBiAEBEhgKC2NjX3VzZF9yYXRlGAQgASgJSAKIAQESJAoXdHJhZmZpY19jb3N0X3VzZF9wZXJfbWIYBSABKAlIA4gBARIuCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIqCihfaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uQiwKKl9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIOCgxfY2NfdXNkX3JhdGVCGgoYX3RyYWZmaWNfY29zdF91c2RfcGVyX21iIqwFChJMYXRlc3RDb2VmZmljaWVudHMSNAonaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uGAEgASgJSACIAQESOgotaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uX3JvdW5kGAIgASgESAGIAQESNgopaXNzdWFuY2VfcGVyX3VuZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb24YAyABKAlIAogBARI8Ci9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbl9yb3VuZBgEIAEoBEgDiAEBEhgKC2NjX3VzZF9yYXRlGAUgASgJSASIAQESHgoRY2NfdXNkX3JhdGVfcm91bmQYBiABKARIBYgBARIkChd0cmFmZmljX2Nvc3RfdXNkX3Blcl9tYhgHIAEoCUgGiAEBEioKHXRyYWZmaWNfY29zdF91c2RfcGVyX21iX3JvdW5kGAggASgESAeIAQFCKgooX2lzc3VhbmNlX3Blcl9mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIwCi5faXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uX3JvdW5kQiwKKl9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIyCjBfaXNzdWFuY2VfcGVyX3VuZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb25fcm91bmRCDgoMX2NjX3VzZF9yYXRlQhQKEl9jY191c2RfcmF0ZV9yb3VuZEIaChhfdHJhZmZpY19jb3N0X3VzZF9wZXJfbWJCIAoeX3RyYWZmaWNfY29zdF91c2RfcGVyX21iX3JvdW5kIjQKFEdldFJvdW5kc0RhdGFSZXF1ZXN0EhIKBWxpbWl0GAIgASgNSACIAQFCCAoGX2xpbWl0IrYBChVHZXRSb3VuZHNEYXRhUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBnJvdW5kcxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlJvdW5kEjgKBmxhdGVzdBgEIAEoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLkxhdGVzdENvZWZmaWNpZW50cxIUCgx0b3RhbF9yb3VuZHMYBSABKA0i7wIKBkludml0ZRITCgtpbnZpdGVfY29kZRgBIAEoCRIPCgdjaGFubmVsGAIgASgJEhQKB3Jld2FyZHMYAyABKAlIAIgBARIuCghtZXRhZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIyCgZzdGF0dXMYBSABKA4yIi5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnZpdGVTdGF0dXMSEgoKY291bnRfdXNlZBgGIAEoDRIWCgltYXhfY291bnQYByABKA1IAogBARISCgpjcmVhdGVkX2J5GAggASgJEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9yZXdhcmRzQgsKCV9tZXRhZGF0YUIMCgpfbWF4X2NvdW50IicKEEdldEludml0ZVJlcXVlc3QSEwoLaW52aXRlX2NvZGUYASABKAkiYAoRR2V0SW52aXRlUmVzcG9uc2USDQoFZm91bmQYASABKAgSMQoGaW52aXRlGAIgASgLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuSW52aXRlSACIAQFCCQoHX2ludml0ZSJLChBVc2VJbnZpdGVSZXF1ZXN0EhMKC2ludml0ZV9jb2RlGAEgASgJEhUKCHBhcnR5X2lkGAIgASgJSACIAQFCCwoJX3BhcnR5X2lkInMKEVVzZUludml0ZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIxCgZpbnZpdGUYAyABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnZpdGVIAIgBAUIJCgdfaW52aXRlIqcCChdDcmVhdGVJbnN0cnVtZW50UmVxdWVzdBIVCg1pbnN0cnVtZW50X2lkGAIgASgJEhcKD2luc3RydW1lbnRfdHlwZRgDIAEoCRIMCgRuYW1lGAQgASgJEg4KBnN5bWJvbBgFIAEoCRIYCgtkZXNjcmlwdGlvbhgGIAEoCUgAiAEBEhMKBmlzc3VlchgHIAEoCUgBiAEBEhUKCHJlZ2lzdHJ5GAggASgJSAKIAQESLgoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESEwoLbmV3c19zeW1ib2wYCiABKAlCDgoMX2Rlc2NyaXB0aW9uQgkKB19pc3N1ZXJCCwoJX3JlZ2lzdHJ5QgsKCV9tZXRhZGF0YSJyChhDcmVhdGVJbnN0cnVtZW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjQKCmluc3RydW1lbnQYAyABKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnN0cnVtZW50IsYDChNDcmVhdGVNYXJrZXRSZXF1ZXN0EhEKCW1hcmtldF9pZBgCIAEoCRI1CgttYXJrZXRfdHlwZRgDIAEoDjIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldFR5cGUSHAoPYmFzZV9pbnN0cnVtZW50GAQgASgJSACIAQESHQoQcXVvdGVfaW5zdHJ1bWVudBgFIAEoCUgBiAEBEhYKDm1pbl9vcmRlcl9zaXplGAYgASgJEhsKDm1heF9vcmRlcl9zaXplGAcgASgJSAKIAQESEQoJdGlja19zaXplGAggASgJEhEKCW1ha2VyX2ZlZRgJIAEoCRIRCgl0YWtlcl9mZWUYCiABKAkSLgoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESMQoLcHJpY2VfZmVlZHMYDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCEgoQX2Jhc2VfaW5zdHJ1bWVudEITChFfcXVvdGVfaW5zdHJ1bWVudEIRCg9fbWF4X29yZGVyX3NpemVCCwoJX21ldGFkYXRhQg4KDF9wcmljZV9mZWVkcyJmChRDcmVhdGVNYXJrZXRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLAoGbWFya2V0GAMgASgLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0ImAKHVVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXF1ZXN0EhEKCW1hcmtldF9pZBgCIAEoCRIsCgtwcmljZV9mZWVkcxgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QicAoeVXBkYXRlTWFya2V0UHJpY2VGZWVkc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIsCgZtYXJrZXQYAyABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQijAEKFFJlcXVlc3RRdW90ZXNSZXF1ZXN0EhEKCW1hcmtldF9pZBgCIAEoCRIRCglkaXJlY3Rpb24YAyABKAkSEAoIcXVhbnRpdHkYBCABKAkSEAoIbHBfbmFtZXMYBSADKAkSGQoMdGltZW91dF9zZWNzGAYgASgNSACIAQFCDwoNX3RpbWVvdXRfc2VjcyLkAQoVUmVxdWVzdFF1b3Rlc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIOCgZyZnFfaWQYAyABKAkSMgoGcXVvdGVzGAQgAygLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuUmZxUXVvdGVJbmZvEjcKCnJlamVjdGlvbnMYBSADKAsyIy5zaWx2YW5hLm9yZGVyYm9vay52MS5SZnFSZWplY3RJbmZvEhUKDWxwc19yZXF1ZXN0ZWQYBiABKA0SFQoNbHBzX3Jlc3BvbmRlZBgHIAEoDSKPAgoMUmZxUXVvdGVJbmZvEhAKCHF1b3RlX2lkGAEgASgJEg8KB2xwX25hbWUYAiABKAkSDQoFcHJpY2UYAyABKAkSEAoIcXVhbnRpdHkYBCABKAkSFgoOcXVvdGVfcXVhbnRpdHkYBSABKAkSLwoLdmFsaWRfdW50aWwYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiEKFGFsbG9jYXRlX2JlZm9yZV9zZWNzGAcgASgNSACIAQESHwoSc2V0dGxlX2JlZm9yZV9zZWNzGAggASgNSAGIAQFCFwoVX2FsbG9jYXRlX2JlZm9yZV9zZWNzQhUKE19zZXR0bGVfYmVmb3JlX3NlY3MiiAEKDVJmcVJlamVjdEluZm8SDwoHbHBfbmFtZRgBIAEoCRIOCgZyZWFzb24YAiABKAkSGQoMbWluX3F1YW50aXR5GAMgASgJSACIAQESGQoMbWF4X3F1YW50aXR5GAQgASgJSAGIAQFCDwoNX21pbl9xdWFudGl0eUIPCg1fbWF4X3F1YW50aXR5IjYKEkFjY2VwdFF1b3RlUmVxdWVzdBIOCgZyZnFfaWQYAiABKAkSEAoIcXVvdGVfaWQYAyABKAkiYQoTQWNjZXB0UXVvdGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSGAoLcHJvcG9zYWxfaWQYAyABKAlIAIgBAUIOCgxfcHJvcG9zYWxfaWQiTQolR2V0Q29ubmVjdGVkTGlxdWlkaXR5UHJvdmlkZXJzUmVxdWVzdBIWCgltYXJrZXRfaWQYAiABKAlIAIgBAUIMCgpfbWFya2V0X2lkIo4BCiZHZXRDb25uZWN0ZWRMaXF1aWRpdHlQcm92aWRlcnNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSQgoTbGlxdWlkaXR5X3Byb3ZpZGVycxgDIAMoCzIlLnNpbHZhbmEub3JkZXJib29rLnYxLkNvbm5lY3RlZExwSW5mbyJOCg9Db25uZWN0ZWRMcEluZm8SDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIYChBjb25uZWN0ZWRfYWdlbnRzGAMgASgNIpUEChBSZnFBdWRpdExvZ0VudHJ5EgoKAmlkGAEgASgEEg4KBnJmcV9pZBgCIAEoCRI7CgpldmVudF90eXBlGAMgASgOMicuc2lsdmFuYS5vcmRlcmJvb2sudjEuUmZxQXVkaXRFdmVudFR5cGUSEQoJbWFya2V0X2lkGAQgASgJEhEKCWRpcmVjdGlvbhgFIAEoCRIYChByZXF1ZXN0aW5nX3BhcnR5GAYgASgJEhQKB2xwX25hbWUYByABKAlIAIgBARIYCgtscF9wYXJ0eV9pZBgIIAEoCUgBiAEBEhUKCHF1YW50aXR5GAkgASgJSAKIAQESEgoFcHJpY2UYCiABKAlIA4gBARIbCg5xdW90ZV9xdWFudGl0eRgLIAEoCUgEiAEBEhUKCHF1b3RlX2lkGAwgASgJSAWIAQESGAoLcHJvcG9zYWxfaWQYDSABKAlIBogBARIaCg1lcnJvcl9tZXNzYWdlGA4gASgJSAeIAQESLgoKY3JlYXRlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2xwX25hbWVCDgoMX2xwX3BhcnR5X2lkQgsKCV9xdWFudGl0eUIICgZfcHJpY2VCEQoPX3F1b3RlX3F1YW50aXR5QgsKCV9xdW90ZV9pZEIOCgxfcHJvcG9zYWxfaWRCEAoOX2Vycm9yX21lc3NhZ2UijgMKFUdldFJmcUF1ZGl0TG9nUmVxdWVzdBITCgZyZnFfaWQYASABKAlIAIgBARIWCgltYXJrZXRfaWQYAiABKAlIAYgBARJACgpldmVudF90eXBlGAMgASgOMicuc2lsdmFuYS5vcmRlcmJvb2sudjEuUmZxQXVkaXRFdmVudFR5cGVIAogBARIUCgdscF9uYW1lGAQgASgJSAOIAQESMgoJZnJvbV90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEjAKB3RvX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESEgoFbGltaXQYByABKA1IBogBARITCgZvZmZzZXQYCCABKA1IB4gBAUIJCgdfcmZxX2lkQgwKCl9tYXJrZXRfaWRCDQoLX2V2ZW50X3R5cGVCCgoIX2xwX25hbWVCDAoKX2Zyb21fdGltZUIKCghfdG9fdGltZUIICgZfbGltaXRCCQoHX29mZnNldCJgChZHZXRSZnFBdWRpdExvZ1Jlc3BvbnNlEjcKB2VudHJpZXMYASADKAsyJi5zaWx2YW5hLm9yZGVyYm9vay52MS5SZnFBdWRpdExvZ0VudHJ5Eg0KBXRvdGFsGAIgASgNKlEKCU9yZGVyVHlwZRIaChZPUkRFUl9UWVBFX1VOU1BFQ0lGSUVEEAASEgoOT1JERVJfVFlQRV9CSUQQARIUChBPUkRFUl9UWVBFX09GRkVSEAIqrQEKC09yZGVyU3RhdHVzEhwKGE9SREVSX1NUQVRVU19VTlNQRUNJRklFRBAAEhcKE09SREVSX1NUQVRVU19BQ1RJVkUQARIYChRPUkRFUl9TVEFUVVNfUEFSVElBTBACEhcKE09SREVSX1NUQVRVU19GSUxMRUQQAxIaChZPUkRFUl9TVEFUVVNfQ0FOQ0VMTEVEEAQSGAoUT1JERVJfU1RBVFVTX0VYUElSRUQQBSqIAQoLVGltZUluRm9yY2USHQoZVElNRV9JTl9GT1JDRV9VTlNQRUNJRklFRBAAEhUKEVRJTUVfSU5fRk9SQ0VfR1RDEAESFQoRVElNRV9JTl9GT1JDRV9JT0MQAhIVChFUSU1FX0lOX0ZPUkNFX0ZPSxADEhUKEVRJTUVfSU5fRk9SQ0VfR1REEAQqsgEKEFNldHRsZW1lbnRTdGF0dXMSIQodU0VUVExFTUVOVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIdChlTRVRUTEVNRU5UX1NUQVRVU19QRU5ESU5HEAESHQoZU0VUVExFTUVOVF9TVEFUVVNfU0VUVExFRBACEh8KG1NFVFRMRU1FTlRfU1RBVFVTX0NBTkNFTExFRBADEhwKGFNFVFRMRU1FTlRfU1RBVFVTX0ZBSUxFRBAEKnYKCk1hcmtldFR5cGUSGwoXTUFSS0VUX1RZUEVfVU5TUEVDSUZJRUQQABIXChNNQVJLRVRfVFlQRV9HRU5FUkFMEAESHQoZTUFSS0VUX1RZUEVfSU5TVElUVVRJT05BTBACEhMKD01BUktFVF9UWVBFX09UQxADKpYBCgxJbnZpdGVTdGF0dXMSHQoZSU5WSVRFX1NUQVRVU19VTlNQRUNJRklFRBAAEhcKE0lOVklURV9TVEFUVVNfVkFMSUQQARIZChVJTlZJVEVfU1RBVFVTX0VYUElSRUQQAhIWChJJTlZJVEVfU1RBVFVTX1VTRUQQAxIbChdJTlZJVEVfU1RBVFVTX0NBTkNFTExFRBAEKt4BChFSZnFBdWRpdEV2ZW50VHlwZRIkCiBSRlFfQVVESVRfRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEiAKHFJGUV9BVURJVF9FVkVOVF9UWVBFX1JFUVVFU1QQARIeChpSRlFfQVVESVRfRVZFTlRfVFlQRV9RVU9URRACEh8KG1JGUV9BVURJVF9FVkVOVF9UWVBFX1JFSkVDVBADEh8KG1JGUV9BVURJVF9FVkVOVF9UWVBFX0FDQ0VQVBAEEh8KG1JGUV9BVURJVF9FVkVOVF9UWVBFX0VYUElSRRAFMtkbChBPcmRlcmJvb2tTZXJ2aWNlElwKCUdldE9yZGVycxImLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyc1JlcXVlc3QaJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcnNSZXNwb25zZRJ0ChFHZXRPcmRlcmJvb2tEZXB0aBIuLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyYm9va0RlcHRoUmVxdWVzdBovLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyYm9va0RlcHRoUmVzcG9uc2USgwEKFkdldFNldHRsZW1lbnRQcm9wb3NhbHMSMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVxdWVzdBo0LnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXNwb25zZRKAAQoVR2V0U2V0dGxlbWVudFByb3Bvc2FsEjIuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVxdWVzdBozLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbFJlc3BvbnNlEmsKDkdldEluc3RydW1lbnRzEisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW5zdHJ1bWVudHNSZXF1ZXN0Giwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW5zdHJ1bWVudHNSZXNwb25zZRJfCgpHZXRNYXJrZXRzEicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0c1JlcXVlc3QaKC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXRzUmVzcG9uc2USbgoPR2V0T3JkZXJIaXN0b3J5Eiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJIaXN0b3J5UmVxdWVzdBotLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVySGlzdG9yeVJlc3BvbnNlEmgKDUdldE1hcmtldERhdGESKi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXREYXRhUmVxdWVzdBorLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldERhdGFSZXNwb25zZRJrCg5HZXRTZXR0bGVtZW50cxIrLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRzUmVxdWVzdBosLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRzUmVzcG9uc2USYgoLU3VibWl0T3JkZXISKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJtaXRPcmRlclJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJtaXRPcmRlclJlc3BvbnNlEmIKC0NhbmNlbE9yZGVyEiguc2lsdmFuYS5vcmRlcmJvb2sudjEuQ2FuY2VsT3JkZXJSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ2FuY2VsT3JkZXJSZXNwb25zZRJZCghHZXRQYXJ0eRIlLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnR5UmVxdWVzdBomLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnR5UmVzcG9uc2USXwoKR2V0UGFydGllcxInLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnRpZXNSZXF1ZXN0Giguc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydGllc1Jlc3BvbnNlEoABChVHZXRMaXF1aWRpdHlQcm92aWRlcnMSMi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRMaXF1aWRpdHlQcm92aWRlcnNSZXF1ZXN0GjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TGlxdWlkaXR5UHJvdmlkZXJzUmVzcG9uc2USmwEKHkdldENvbm5lY3RlZExpcXVpZGl0eVByb3ZpZGVycxI7LnNpbHZhbmEub3JkZXJib29rLnYxLkdldENvbm5lY3RlZExpcXVpZGl0eVByb3ZpZGVyc1JlcXVlc3QaPC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRDb25uZWN0ZWRMaXF1aWRpdHlQcm92aWRlcnNSZXNwb25zZRJoCg1SZXF1ZXN0UXVvdGVzEiouc2lsdmFuYS5vcmRlcmJvb2sudjEuUmVxdWVzdFF1b3Rlc1JlcXVlc3QaKy5zaWx2YW5hLm9yZGVyYm9vay52MS5SZXF1ZXN0UXVvdGVzUmVzcG9uc2USYgoLQWNjZXB0UXVvdGUSKC5zaWx2YW5hLm9yZGVyYm9vay52MS5BY2NlcHRRdW90ZVJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5BY2NlcHRRdW90ZVJlc3BvbnNlEmsKDkdldFJmcUF1ZGl0TG9nEisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UmZxQXVkaXRMb2dSZXF1ZXN0Giwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UmZxQXVkaXRMb2dSZXNwb25zZRJ6ChNBZGRXYWl0aW5nTGlzdEVudHJ5EjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuQWRkV2FpdGluZ0xpc3RFbnRyeVJlcXVlc3QaMS5zaWx2YW5hLm9yZGVyYm9vay52MS5BZGRXYWl0aW5nTGlzdEVudHJ5UmVzcG9uc2USXAoJR2V0SW52aXRlEiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW52aXRlUmVxdWVzdBonLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEludml0ZVJlc3BvbnNlElwKCVVzZUludml0ZRImLnNpbHZhbmEub3JkZXJib29rLnYxLlVzZUludml0ZVJlcXVlc3QaJy5zaWx2YW5hLm9yZGVyYm9vay52MS5Vc2VJbnZpdGVSZXNwb25zZRJoCg1HZXRSb3VuZHNEYXRhEiouc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0Um91bmRzRGF0YVJlcXVlc3QaKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRSb3VuZHNEYXRhUmVzcG9uc2USYgoLQ3JlYXRlUGFydHkSKC5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVQYXJ0eVJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVQYXJ0eVJlc3BvbnNlEmIKC1VwZGF0ZVBhcnR5Eiguc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlUGFydHlSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlUGFydHlSZXNwb25zZRJuCg9EZWFjdGl2YXRlUGFydHkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5EZWFjdGl2YXRlUGFydHlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuRGVhY3RpdmF0ZVBhcnR5UmVzcG9uc2USbgoPR2V0UGFydHlIaXN0b3J5Eiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlIaXN0b3J5UmVxdWVzdBotLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnR5SGlzdG9yeVJlc3BvbnNlEnEKEENyZWF0ZUluc3RydW1lbnQSLS5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVJbnN0cnVtZW50UmVxdWVzdBouLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZUluc3RydW1lbnRSZXNwb25zZRJlCgxDcmVhdGVNYXJrZXQSKS5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVNYXJrZXRSZXF1ZXN0Giouc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlTWFya2V0UmVzcG9uc2USgwEKFlVwZGF0ZU1hcmtldFByaWNlRmVlZHMSMy5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVxdWVzdBo0LnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXNwb25zZRJuChJTdWJzY3JpYmVPcmRlcmJvb2sSLy5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVPcmRlcmJvb2tSZXF1ZXN0GiUuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rVXBkYXRlMAESZAoPU3Vic2NyaWJlT3JkZXJzEiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuU3Vic2NyaWJlT3JkZXJzUmVxdWVzdBohLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVXBkYXRlMAEScwoUU3Vic2NyaWJlU2V0dGxlbWVudHMSMS5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVTZXR0bGVtZW50c1JlcXVlc3QaJi5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50VXBkYXRlMAFCNFoyZ2l0aHViLmNvbS9TaWx2YW5hT25lL2NhbnRvbi1hZ2VudC9wcm90bztvcmRlcmJvb2tiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
16
16
 
17
17
  /**
18
18
  * Instrument message
@@ -570,6 +570,13 @@ export type SettlementProposal = Message<"silvana.orderbook.v1.SettlementProposa
570
570
  * @generated from field: optional google.protobuf.Timestamp failed_at = 19;
571
571
  */
572
572
  failedAt?: Timestamp;
573
+
574
+ /**
575
+ * Matched order IDs (always populated - links proposal to bid/offer orders)
576
+ *
577
+ * @generated from field: silvana.orderbook.v1.OrderMatch order_match = 20;
578
+ */
579
+ orderMatch?: OrderMatch;
573
580
  };
574
581
 
575
582
  /**
@@ -2715,7 +2722,7 @@ export type WaitingListEntry = Message<"silvana.orderbook.v1.WaitingListEntry">
2715
2722
  userData?: JsonObject;
2716
2723
 
2717
2724
  /**
2718
- * loop_wallet, form, supa_wallet
2725
+ * loop_wallet, form, supa_wallet, agent
2719
2726
  *
2720
2727
  * @generated from field: string source = 4;
2721
2728
  */
@@ -2732,9 +2739,11 @@ export type WaitingListEntry = Message<"silvana.orderbook.v1.WaitingListEntry">
2732
2739
  publicKey?: string;
2733
2740
 
2734
2741
  /**
2735
- * @generated from field: bool is_onboarded = 7;
2742
+ * requested, signature_required, topology_created, onboarded
2743
+ *
2744
+ * @generated from field: string onboarding_status = 7;
2736
2745
  */
2737
- isOnboarded: boolean;
2746
+ onboardingStatus: string;
2738
2747
 
2739
2748
  /**
2740
2749
  * @generated from field: uint64 version = 8;
@@ -2755,6 +2764,21 @@ export type WaitingListEntry = Message<"silvana.orderbook.v1.WaitingListEntry">
2755
2764
  * @generated from field: google.protobuf.Timestamp updated_at = 11;
2756
2765
  */
2757
2766
  updatedAt?: Timestamp;
2767
+
2768
+ /**
2769
+ * @generated from field: optional string multihash = 12;
2770
+ */
2771
+ multihash?: string;
2772
+
2773
+ /**
2774
+ * @generated from field: optional string multihash_signature = 13;
2775
+ */
2776
+ multihashSignature?: string;
2777
+
2778
+ /**
2779
+ * @generated from field: optional string invite_code = 14;
2780
+ */
2781
+ inviteCode?: string;
2758
2782
  };
2759
2783
 
2760
2784
  /**
@@ -3446,6 +3470,514 @@ export type UpdateMarketPriceFeedsResponse = Message<"silvana.orderbook.v1.Updat
3446
3470
  export const UpdateMarketPriceFeedsResponseSchema: GenMessage<UpdateMarketPriceFeedsResponse> = /*@__PURE__*/
3447
3471
  messageDesc(file_proto_silvana_orderbook_v1_orderbook, 71);
3448
3472
 
3473
+ /**
3474
+ * Request quotes from connected liquidity providers
3475
+ *
3476
+ * @generated from message silvana.orderbook.v1.RequestQuotesRequest
3477
+ */
3478
+ export type RequestQuotesRequest = Message<"silvana.orderbook.v1.RequestQuotesRequest"> & {
3479
+ /**
3480
+ * Auth via gRPC metadata: authorization: Bearer <token>
3481
+ *
3482
+ * @generated from field: string market_id = 2;
3483
+ */
3484
+ marketId: string;
3485
+
3486
+ /**
3487
+ * "buy" or "sell"
3488
+ *
3489
+ * @generated from field: string direction = 3;
3490
+ */
3491
+ direction: string;
3492
+
3493
+ /**
3494
+ * DECIMAL(38,10) as string — base instrument quantity
3495
+ *
3496
+ * @generated from field: string quantity = 4;
3497
+ */
3498
+ quantity: string;
3499
+
3500
+ /**
3501
+ * Optional: specific LPs to request from (empty = all connected)
3502
+ *
3503
+ * @generated from field: repeated string lp_names = 5;
3504
+ */
3505
+ lpNames: string[];
3506
+
3507
+ /**
3508
+ * How long to wait for LP responses (default: 10, max: 30)
3509
+ *
3510
+ * @generated from field: optional uint32 timeout_secs = 6;
3511
+ */
3512
+ timeoutSecs?: number;
3513
+ };
3514
+
3515
+ /**
3516
+ * Describes the message silvana.orderbook.v1.RequestQuotesRequest.
3517
+ * Use `create(RequestQuotesRequestSchema)` to create a new message.
3518
+ */
3519
+ export const RequestQuotesRequestSchema: GenMessage<RequestQuotesRequest> = /*@__PURE__*/
3520
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 72);
3521
+
3522
+ /**
3523
+ * @generated from message silvana.orderbook.v1.RequestQuotesResponse
3524
+ */
3525
+ export type RequestQuotesResponse = Message<"silvana.orderbook.v1.RequestQuotesResponse"> & {
3526
+ /**
3527
+ * @generated from field: bool success = 1;
3528
+ */
3529
+ success: boolean;
3530
+
3531
+ /**
3532
+ * @generated from field: string message = 2;
3533
+ */
3534
+ message: string;
3535
+
3536
+ /**
3537
+ * UUIDv7 for this RFQ session
3538
+ *
3539
+ * @generated from field: string rfq_id = 3;
3540
+ */
3541
+ rfqId: string;
3542
+
3543
+ /**
3544
+ * @generated from field: repeated silvana.orderbook.v1.RfqQuoteInfo quotes = 4;
3545
+ */
3546
+ quotes: RfqQuoteInfo[];
3547
+
3548
+ /**
3549
+ * @generated from field: repeated silvana.orderbook.v1.RfqRejectInfo rejections = 5;
3550
+ */
3551
+ rejections: RfqRejectInfo[];
3552
+
3553
+ /**
3554
+ * How many LP parties were contacted
3555
+ *
3556
+ * @generated from field: uint32 lps_requested = 6;
3557
+ */
3558
+ lpsRequested: number;
3559
+
3560
+ /**
3561
+ * How many responded (quotes + rejections)
3562
+ *
3563
+ * @generated from field: uint32 lps_responded = 7;
3564
+ */
3565
+ lpsResponded: number;
3566
+ };
3567
+
3568
+ /**
3569
+ * Describes the message silvana.orderbook.v1.RequestQuotesResponse.
3570
+ * Use `create(RequestQuotesResponseSchema)` to create a new message.
3571
+ */
3572
+ export const RequestQuotesResponseSchema: GenMessage<RequestQuotesResponse> = /*@__PURE__*/
3573
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 73);
3574
+
3575
+ /**
3576
+ * Quote info returned to user
3577
+ *
3578
+ * @generated from message silvana.orderbook.v1.RfqQuoteInfo
3579
+ */
3580
+ export type RfqQuoteInfo = Message<"silvana.orderbook.v1.RfqQuoteInfo"> & {
3581
+ /**
3582
+ * @generated from field: string quote_id = 1;
3583
+ */
3584
+ quoteId: string;
3585
+
3586
+ /**
3587
+ * @generated from field: string lp_name = 2;
3588
+ */
3589
+ lpName: string;
3590
+
3591
+ /**
3592
+ * DECIMAL(38,10) as string — price per unit
3593
+ *
3594
+ * @generated from field: string price = 3;
3595
+ */
3596
+ price: string;
3597
+
3598
+ /**
3599
+ * DECIMAL(38,10) as string — base quantity
3600
+ *
3601
+ * @generated from field: string quantity = 4;
3602
+ */
3603
+ quantity: string;
3604
+
3605
+ /**
3606
+ * DECIMAL(38,10) as string — total cost/proceeds in quote instrument
3607
+ *
3608
+ * @generated from field: string quote_quantity = 5;
3609
+ */
3610
+ quoteQuantity: string;
3611
+
3612
+ /**
3613
+ * @generated from field: google.protobuf.Timestamp valid_until = 6;
3614
+ */
3615
+ validUntil?: Timestamp;
3616
+
3617
+ /**
3618
+ * LP's allocation deadline requirement (seconds from DVP creation)
3619
+ *
3620
+ * @generated from field: optional uint32 allocate_before_secs = 7;
3621
+ */
3622
+ allocateBeforeSecs?: number;
3623
+
3624
+ /**
3625
+ * LP's settlement deadline requirement (seconds from DVP creation)
3626
+ *
3627
+ * @generated from field: optional uint32 settle_before_secs = 8;
3628
+ */
3629
+ settleBeforeSecs?: number;
3630
+ };
3631
+
3632
+ /**
3633
+ * Describes the message silvana.orderbook.v1.RfqQuoteInfo.
3634
+ * Use `create(RfqQuoteInfoSchema)` to create a new message.
3635
+ */
3636
+ export const RfqQuoteInfoSchema: GenMessage<RfqQuoteInfo> = /*@__PURE__*/
3637
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 74);
3638
+
3639
+ /**
3640
+ * Rejection info returned to user
3641
+ *
3642
+ * @generated from message silvana.orderbook.v1.RfqRejectInfo
3643
+ */
3644
+ export type RfqRejectInfo = Message<"silvana.orderbook.v1.RfqRejectInfo"> & {
3645
+ /**
3646
+ * @generated from field: string lp_name = 1;
3647
+ */
3648
+ lpName: string;
3649
+
3650
+ /**
3651
+ * Human-readable reason
3652
+ *
3653
+ * @generated from field: string reason = 2;
3654
+ */
3655
+ reason: string;
3656
+
3657
+ /**
3658
+ * LP's min acceptable quantity (if rejected for amount)
3659
+ *
3660
+ * @generated from field: optional string min_quantity = 3;
3661
+ */
3662
+ minQuantity?: string;
3663
+
3664
+ /**
3665
+ * LP's max acceptable quantity (if rejected for amount)
3666
+ *
3667
+ * @generated from field: optional string max_quantity = 4;
3668
+ */
3669
+ maxQuantity?: string;
3670
+ };
3671
+
3672
+ /**
3673
+ * Describes the message silvana.orderbook.v1.RfqRejectInfo.
3674
+ * Use `create(RfqRejectInfoSchema)` to create a new message.
3675
+ */
3676
+ export const RfqRejectInfoSchema: GenMessage<RfqRejectInfo> = /*@__PURE__*/
3677
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 75);
3678
+
3679
+ /**
3680
+ * Accept a specific quote
3681
+ *
3682
+ * @generated from message silvana.orderbook.v1.AcceptQuoteRequest
3683
+ */
3684
+ export type AcceptQuoteRequest = Message<"silvana.orderbook.v1.AcceptQuoteRequest"> & {
3685
+ /**
3686
+ * Auth via gRPC metadata: authorization: Bearer <token>
3687
+ *
3688
+ * Original RFQ session ID
3689
+ *
3690
+ * @generated from field: string rfq_id = 2;
3691
+ */
3692
+ rfqId: string;
3693
+
3694
+ /**
3695
+ * Specific quote to accept
3696
+ *
3697
+ * @generated from field: string quote_id = 3;
3698
+ */
3699
+ quoteId: string;
3700
+ };
3701
+
3702
+ /**
3703
+ * Describes the message silvana.orderbook.v1.AcceptQuoteRequest.
3704
+ * Use `create(AcceptQuoteRequestSchema)` to create a new message.
3705
+ */
3706
+ export const AcceptQuoteRequestSchema: GenMessage<AcceptQuoteRequest> = /*@__PURE__*/
3707
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 76);
3708
+
3709
+ /**
3710
+ * @generated from message silvana.orderbook.v1.AcceptQuoteResponse
3711
+ */
3712
+ export type AcceptQuoteResponse = Message<"silvana.orderbook.v1.AcceptQuoteResponse"> & {
3713
+ /**
3714
+ * @generated from field: bool success = 1;
3715
+ */
3716
+ success: boolean;
3717
+
3718
+ /**
3719
+ * @generated from field: string message = 2;
3720
+ */
3721
+ message: string;
3722
+
3723
+ /**
3724
+ * Settlement proposal ID (if accepted)
3725
+ *
3726
+ * @generated from field: optional string proposal_id = 3;
3727
+ */
3728
+ proposalId?: string;
3729
+ };
3730
+
3731
+ /**
3732
+ * Describes the message silvana.orderbook.v1.AcceptQuoteResponse.
3733
+ * Use `create(AcceptQuoteResponseSchema)` to create a new message.
3734
+ */
3735
+ export const AcceptQuoteResponseSchema: GenMessage<AcceptQuoteResponse> = /*@__PURE__*/
3736
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 77);
3737
+
3738
+ /**
3739
+ * Get connected liquidity providers (replaces activity-based filter)
3740
+ *
3741
+ * @generated from message silvana.orderbook.v1.GetConnectedLiquidityProvidersRequest
3742
+ */
3743
+ export type GetConnectedLiquidityProvidersRequest = Message<"silvana.orderbook.v1.GetConnectedLiquidityProvidersRequest"> & {
3744
+ /**
3745
+ * Auth via gRPC metadata: authorization: Bearer <token>
3746
+ *
3747
+ * Future: filter by market support
3748
+ *
3749
+ * @generated from field: optional string market_id = 2;
3750
+ */
3751
+ marketId?: string;
3752
+ };
3753
+
3754
+ /**
3755
+ * Describes the message silvana.orderbook.v1.GetConnectedLiquidityProvidersRequest.
3756
+ * Use `create(GetConnectedLiquidityProvidersRequestSchema)` to create a new message.
3757
+ */
3758
+ export const GetConnectedLiquidityProvidersRequestSchema: GenMessage<GetConnectedLiquidityProvidersRequest> = /*@__PURE__*/
3759
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 78);
3760
+
3761
+ /**
3762
+ * @generated from message silvana.orderbook.v1.GetConnectedLiquidityProvidersResponse
3763
+ */
3764
+ export type GetConnectedLiquidityProvidersResponse = Message<"silvana.orderbook.v1.GetConnectedLiquidityProvidersResponse"> & {
3765
+ /**
3766
+ * @generated from field: bool success = 1;
3767
+ */
3768
+ success: boolean;
3769
+
3770
+ /**
3771
+ * @generated from field: string message = 2;
3772
+ */
3773
+ message: string;
3774
+
3775
+ /**
3776
+ * @generated from field: repeated silvana.orderbook.v1.ConnectedLpInfo liquidity_providers = 3;
3777
+ */
3778
+ liquidityProviders: ConnectedLpInfo[];
3779
+ };
3780
+
3781
+ /**
3782
+ * Describes the message silvana.orderbook.v1.GetConnectedLiquidityProvidersResponse.
3783
+ * Use `create(GetConnectedLiquidityProvidersResponseSchema)` to create a new message.
3784
+ */
3785
+ export const GetConnectedLiquidityProvidersResponseSchema: GenMessage<GetConnectedLiquidityProvidersResponse> = /*@__PURE__*/
3786
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 79);
3787
+
3788
+ /**
3789
+ * @generated from message silvana.orderbook.v1.ConnectedLpInfo
3790
+ */
3791
+ export type ConnectedLpInfo = Message<"silvana.orderbook.v1.ConnectedLpInfo"> & {
3792
+ /**
3793
+ * @generated from field: string name = 1;
3794
+ */
3795
+ name: string;
3796
+
3797
+ /**
3798
+ * @generated from field: string description = 2;
3799
+ */
3800
+ description: string;
3801
+
3802
+ /**
3803
+ * Number of connected party_ids for this LP
3804
+ *
3805
+ * @generated from field: uint32 connected_agents = 3;
3806
+ */
3807
+ connectedAgents: number;
3808
+ };
3809
+
3810
+ /**
3811
+ * Describes the message silvana.orderbook.v1.ConnectedLpInfo.
3812
+ * Use `create(ConnectedLpInfoSchema)` to create a new message.
3813
+ */
3814
+ export const ConnectedLpInfoSchema: GenMessage<ConnectedLpInfo> = /*@__PURE__*/
3815
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 80);
3816
+
3817
+ /**
3818
+ * @generated from message silvana.orderbook.v1.RfqAuditLogEntry
3819
+ */
3820
+ export type RfqAuditLogEntry = Message<"silvana.orderbook.v1.RfqAuditLogEntry"> & {
3821
+ /**
3822
+ * @generated from field: uint64 id = 1;
3823
+ */
3824
+ id: bigint;
3825
+
3826
+ /**
3827
+ * @generated from field: string rfq_id = 2;
3828
+ */
3829
+ rfqId: string;
3830
+
3831
+ /**
3832
+ * @generated from field: silvana.orderbook.v1.RfqAuditEventType event_type = 3;
3833
+ */
3834
+ eventType: RfqAuditEventType;
3835
+
3836
+ /**
3837
+ * @generated from field: string market_id = 4;
3838
+ */
3839
+ marketId: string;
3840
+
3841
+ /**
3842
+ * @generated from field: string direction = 5;
3843
+ */
3844
+ direction: string;
3845
+
3846
+ /**
3847
+ * @generated from field: string requesting_party = 6;
3848
+ */
3849
+ requestingParty: string;
3850
+
3851
+ /**
3852
+ * @generated from field: optional string lp_name = 7;
3853
+ */
3854
+ lpName?: string;
3855
+
3856
+ /**
3857
+ * @generated from field: optional string lp_party_id = 8;
3858
+ */
3859
+ lpPartyId?: string;
3860
+
3861
+ /**
3862
+ * @generated from field: optional string quantity = 9;
3863
+ */
3864
+ quantity?: string;
3865
+
3866
+ /**
3867
+ * @generated from field: optional string price = 10;
3868
+ */
3869
+ price?: string;
3870
+
3871
+ /**
3872
+ * @generated from field: optional string quote_quantity = 11;
3873
+ */
3874
+ quoteQuantity?: string;
3875
+
3876
+ /**
3877
+ * @generated from field: optional string quote_id = 12;
3878
+ */
3879
+ quoteId?: string;
3880
+
3881
+ /**
3882
+ * @generated from field: optional string proposal_id = 13;
3883
+ */
3884
+ proposalId?: string;
3885
+
3886
+ /**
3887
+ * @generated from field: optional string error_message = 14;
3888
+ */
3889
+ errorMessage?: string;
3890
+
3891
+ /**
3892
+ * @generated from field: google.protobuf.Timestamp created_at = 15;
3893
+ */
3894
+ createdAt?: Timestamp;
3895
+ };
3896
+
3897
+ /**
3898
+ * Describes the message silvana.orderbook.v1.RfqAuditLogEntry.
3899
+ * Use `create(RfqAuditLogEntrySchema)` to create a new message.
3900
+ */
3901
+ export const RfqAuditLogEntrySchema: GenMessage<RfqAuditLogEntry> = /*@__PURE__*/
3902
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 81);
3903
+
3904
+ /**
3905
+ * @generated from message silvana.orderbook.v1.GetRfqAuditLogRequest
3906
+ */
3907
+ export type GetRfqAuditLogRequest = Message<"silvana.orderbook.v1.GetRfqAuditLogRequest"> & {
3908
+ /**
3909
+ * Auth via gRPC metadata — private access: only entries where
3910
+ * requesting_party = caller OR lp_party_id = caller
3911
+ *
3912
+ * @generated from field: optional string rfq_id = 1;
3913
+ */
3914
+ rfqId?: string;
3915
+
3916
+ /**
3917
+ * @generated from field: optional string market_id = 2;
3918
+ */
3919
+ marketId?: string;
3920
+
3921
+ /**
3922
+ * @generated from field: optional silvana.orderbook.v1.RfqAuditEventType event_type = 3;
3923
+ */
3924
+ eventType?: RfqAuditEventType;
3925
+
3926
+ /**
3927
+ * @generated from field: optional string lp_name = 4;
3928
+ */
3929
+ lpName?: string;
3930
+
3931
+ /**
3932
+ * @generated from field: optional google.protobuf.Timestamp from_time = 5;
3933
+ */
3934
+ fromTime?: Timestamp;
3935
+
3936
+ /**
3937
+ * @generated from field: optional google.protobuf.Timestamp to_time = 6;
3938
+ */
3939
+ toTime?: Timestamp;
3940
+
3941
+ /**
3942
+ * @generated from field: optional uint32 limit = 7;
3943
+ */
3944
+ limit?: number;
3945
+
3946
+ /**
3947
+ * @generated from field: optional uint32 offset = 8;
3948
+ */
3949
+ offset?: number;
3950
+ };
3951
+
3952
+ /**
3953
+ * Describes the message silvana.orderbook.v1.GetRfqAuditLogRequest.
3954
+ * Use `create(GetRfqAuditLogRequestSchema)` to create a new message.
3955
+ */
3956
+ export const GetRfqAuditLogRequestSchema: GenMessage<GetRfqAuditLogRequest> = /*@__PURE__*/
3957
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 82);
3958
+
3959
+ /**
3960
+ * @generated from message silvana.orderbook.v1.GetRfqAuditLogResponse
3961
+ */
3962
+ export type GetRfqAuditLogResponse = Message<"silvana.orderbook.v1.GetRfqAuditLogResponse"> & {
3963
+ /**
3964
+ * @generated from field: repeated silvana.orderbook.v1.RfqAuditLogEntry entries = 1;
3965
+ */
3966
+ entries: RfqAuditLogEntry[];
3967
+
3968
+ /**
3969
+ * @generated from field: uint32 total = 2;
3970
+ */
3971
+ total: number;
3972
+ };
3973
+
3974
+ /**
3975
+ * Describes the message silvana.orderbook.v1.GetRfqAuditLogResponse.
3976
+ * Use `create(GetRfqAuditLogResponseSchema)` to create a new message.
3977
+ */
3978
+ export const GetRfqAuditLogResponseSchema: GenMessage<GetRfqAuditLogResponse> = /*@__PURE__*/
3979
+ messageDesc(file_proto_silvana_orderbook_v1_orderbook, 83);
3980
+
3449
3981
  /**
3450
3982
  * Order type enumeration
3451
3983
  *
@@ -3676,6 +4208,47 @@ export enum InviteStatus {
3676
4208
  export const InviteStatusSchema: GenEnum<InviteStatus> = /*@__PURE__*/
3677
4209
  enumDesc(file_proto_silvana_orderbook_v1_orderbook, 5);
3678
4210
 
4211
+ /**
4212
+ * @generated from enum silvana.orderbook.v1.RfqAuditEventType
4213
+ */
4214
+ export enum RfqAuditEventType {
4215
+ /**
4216
+ * @generated from enum value: RFQ_AUDIT_EVENT_TYPE_UNSPECIFIED = 0;
4217
+ */
4218
+ UNSPECIFIED = 0,
4219
+
4220
+ /**
4221
+ * @generated from enum value: RFQ_AUDIT_EVENT_TYPE_REQUEST = 1;
4222
+ */
4223
+ REQUEST = 1,
4224
+
4225
+ /**
4226
+ * @generated from enum value: RFQ_AUDIT_EVENT_TYPE_QUOTE = 2;
4227
+ */
4228
+ QUOTE = 2,
4229
+
4230
+ /**
4231
+ * @generated from enum value: RFQ_AUDIT_EVENT_TYPE_REJECT = 3;
4232
+ */
4233
+ REJECT = 3,
4234
+
4235
+ /**
4236
+ * @generated from enum value: RFQ_AUDIT_EVENT_TYPE_ACCEPT = 4;
4237
+ */
4238
+ ACCEPT = 4,
4239
+
4240
+ /**
4241
+ * @generated from enum value: RFQ_AUDIT_EVENT_TYPE_EXPIRE = 5;
4242
+ */
4243
+ EXPIRE = 5,
4244
+ }
4245
+
4246
+ /**
4247
+ * Describes the enum silvana.orderbook.v1.RfqAuditEventType.
4248
+ */
4249
+ export const RfqAuditEventTypeSchema: GenEnum<RfqAuditEventType> = /*@__PURE__*/
4250
+ enumDesc(file_proto_silvana_orderbook_v1_orderbook, 6);
4251
+
3679
4252
  /**
3680
4253
  * @generated from service silvana.orderbook.v1.OrderbookService
3681
4254
  */
@@ -3800,6 +4373,40 @@ export const OrderbookService: GenService<{
3800
4373
  input: typeof GetLiquidityProvidersRequestSchema;
3801
4374
  output: typeof GetLiquidityProvidersResponseSchema;
3802
4375
  },
4376
+ /**
4377
+ * @generated from rpc silvana.orderbook.v1.OrderbookService.GetConnectedLiquidityProviders
4378
+ */
4379
+ getConnectedLiquidityProviders: {
4380
+ methodKind: "unary";
4381
+ input: typeof GetConnectedLiquidityProvidersRequestSchema;
4382
+ output: typeof GetConnectedLiquidityProvidersResponseSchema;
4383
+ },
4384
+ /**
4385
+ * RFQ operations
4386
+ *
4387
+ * @generated from rpc silvana.orderbook.v1.OrderbookService.RequestQuotes
4388
+ */
4389
+ requestQuotes: {
4390
+ methodKind: "unary";
4391
+ input: typeof RequestQuotesRequestSchema;
4392
+ output: typeof RequestQuotesResponseSchema;
4393
+ },
4394
+ /**
4395
+ * @generated from rpc silvana.orderbook.v1.OrderbookService.AcceptQuote
4396
+ */
4397
+ acceptQuote: {
4398
+ methodKind: "unary";
4399
+ input: typeof AcceptQuoteRequestSchema;
4400
+ output: typeof AcceptQuoteResponseSchema;
4401
+ },
4402
+ /**
4403
+ * @generated from rpc silvana.orderbook.v1.OrderbookService.GetRfqAuditLog
4404
+ */
4405
+ getRfqAuditLog: {
4406
+ methodKind: "unary";
4407
+ input: typeof GetRfqAuditLogRequestSchema;
4408
+ output: typeof GetRfqAuditLogResponseSchema;
4409
+ },
3803
4410
  /**
3804
4411
  * Waiting list operations (JWT auth with user 'onboard')
3805
4412
  *