memento-mcp-server 1.14.0 → 1.15.0-c

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 (77) hide show
  1. package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.d.ts +18 -0
  2. package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.d.ts.map +1 -0
  3. package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.js +346 -0
  4. package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.js.map +1 -0
  5. package/dist/domains/memory/tools/remember-tool.d.ts.map +1 -1
  6. package/dist/domains/memory/tools/remember-tool.js +182 -1
  7. package/dist/domains/memory/tools/remember-tool.js.map +1 -1
  8. package/dist/infrastructure/database/database/migration/migrations/005-relation-engine-schema.sql +7 -7
  9. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.d.ts +65 -0
  10. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.d.ts.map +1 -0
  11. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.js +250 -0
  12. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.js.map +1 -0
  13. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.sql +86 -0
  14. package/dist/infrastructure/logging/triple-extraction-logger.d.ts +92 -0
  15. package/dist/infrastructure/logging/triple-extraction-logger.d.ts.map +1 -0
  16. package/dist/infrastructure/logging/triple-extraction-logger.js +194 -0
  17. package/dist/infrastructure/logging/triple-extraction-logger.js.map +1 -0
  18. package/dist/infrastructure/scheduler/batch-scheduler.d.ts +57 -0
  19. package/dist/infrastructure/scheduler/batch-scheduler.d.ts.map +1 -1
  20. package/dist/infrastructure/scheduler/batch-scheduler.js +220 -0
  21. package/dist/infrastructure/scheduler/batch-scheduler.js.map +1 -1
  22. package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.d.ts +194 -0
  23. package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.d.ts.map +1 -0
  24. package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.js +639 -0
  25. package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.js.map +1 -0
  26. package/dist/services/semantic-memory/semantic-memory-statistics.d.ts +64 -0
  27. package/dist/services/semantic-memory/semantic-memory-statistics.d.ts.map +1 -0
  28. package/dist/services/semantic-memory/semantic-memory-statistics.js +113 -0
  29. package/dist/services/semantic-memory/semantic-memory-statistics.js.map +1 -0
  30. package/dist/services/semantic-memory/semantic-memory-update-service.d.ts +257 -0
  31. package/dist/services/semantic-memory/semantic-memory-update-service.d.ts.map +1 -0
  32. package/dist/services/semantic-memory/semantic-memory-update-service.js +696 -0
  33. package/dist/services/semantic-memory/semantic-memory-update-service.js.map +1 -0
  34. package/dist/services/triple-extraction/entity-linker.d.ts +55 -0
  35. package/dist/services/triple-extraction/entity-linker.d.ts.map +1 -0
  36. package/dist/services/triple-extraction/entity-linker.js +154 -0
  37. package/dist/services/triple-extraction/entity-linker.js.map +1 -0
  38. package/dist/services/triple-extraction/predicate-canonicalizer.d.ts +63 -0
  39. package/dist/services/triple-extraction/predicate-canonicalizer.d.ts.map +1 -0
  40. package/dist/services/triple-extraction/predicate-canonicalizer.js +166 -0
  41. package/dist/services/triple-extraction/predicate-canonicalizer.js.map +1 -0
  42. package/dist/services/triple-extraction/triple-extraction-service.d.ts +181 -0
  43. package/dist/services/triple-extraction/triple-extraction-service.d.ts.map +1 -0
  44. package/dist/services/triple-extraction/triple-extraction-service.js +907 -0
  45. package/dist/services/triple-extraction/triple-extraction-service.js.map +1 -0
  46. package/dist/services/triple-extraction/triple-extraction-statistics.d.ts +74 -0
  47. package/dist/services/triple-extraction/triple-extraction-statistics.d.ts.map +1 -0
  48. package/dist/services/triple-extraction/triple-extraction-statistics.js +146 -0
  49. package/dist/services/triple-extraction/triple-extraction-statistics.js.map +1 -0
  50. package/dist/shared/types/index.d.ts +1 -0
  51. package/dist/shared/types/index.d.ts.map +1 -1
  52. package/dist/shared/types/index.js.map +1 -1
  53. package/dist/shared/types/triple-extraction.d.ts +99 -0
  54. package/dist/shared/types/triple-extraction.d.ts.map +1 -0
  55. package/dist/shared/types/triple-extraction.js +6 -0
  56. package/dist/shared/types/triple-extraction.js.map +1 -0
  57. package/dist/shared/utils/pii-masker.d.ts +67 -0
  58. package/dist/shared/utils/pii-masker.d.ts.map +1 -0
  59. package/dist/shared/utils/pii-masker.js +205 -0
  60. package/dist/shared/utils/pii-masker.js.map +1 -0
  61. package/dist/shared/utils/prompt-template-loader.d.ts +42 -0
  62. package/dist/shared/utils/prompt-template-loader.d.ts.map +1 -0
  63. package/dist/shared/utils/prompt-template-loader.js +92 -0
  64. package/dist/shared/utils/prompt-template-loader.js.map +1 -0
  65. package/dist/shared/utils/triple-cache.d.ts +90 -0
  66. package/dist/shared/utils/triple-cache.d.ts.map +1 -0
  67. package/dist/shared/utils/triple-cache.js +124 -0
  68. package/dist/shared/utils/triple-cache.js.map +1 -0
  69. package/dist/tools/index.d.ts +2 -1
  70. package/dist/tools/index.d.ts.map +1 -1
  71. package/dist/tools/index.js +3 -1
  72. package/dist/tools/index.js.map +1 -1
  73. package/dist/tools/types.d.ts +1 -0
  74. package/dist/tools/types.d.ts.map +1 -1
  75. package/dist/tools/types.js +2 -0
  76. package/dist/tools/types.js.map +1 -1
  77. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triple-extraction-batch-job.js","sourceRoot":"","sources":["../../../../src/infrastructure/scheduler/jobs/triple-extraction-batch-job.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kEAAkE,CAAC;AAC3G,OAAO,EAAE,2BAA2B,EAAE,MAAM,qEAAqE,CAAC;AAClH,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAsEzD;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAC3B,MAAM,CAA2C;IACjD,uBAAuB,CAA0B;IACjD,2BAA2B,GAAuC,IAAI,CAAC;IAE/E,YACE,MAAuC,EACvC,YAGC;QAED,IAAI,CAAC,MAAM,GAAG;YACZ,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,EAAE,EAAE,qBAAqB;YACzD,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,EAAE,oBAAoB;YACvD,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,CAAC;YACnC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACvD,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,CAAC,EAAE,8BAA8B;YACjE,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,GAAG,EAAE,cAAc;YACzD,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,qCAAqC;YAC5E,GAAG,MAAM;SACV,CAAC;QAEF,IAAI,CAAC,uBAAuB,GAAG,YAAY,EAAE,uBAAuB,IAAI,IAAI,uBAAuB,EAAE,CAAC;QACtG,IAAI,CAAC,2BAA2B,GAAG,YAAY,EAAE,2BAA2B,IAAI,IAAI,CAAC;IACvF,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,CAAC,EAAqB;QACjC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAClE,MAAM,MAAM,GAAgC;YAC1C,OAAO,EAAE,yBAAyB;YAClC,SAAS;YACT,OAAO,EAAE,IAAI,IAAI,EAAE;YACnB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE;gBACP,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,CAAC;gBACV,uBAAuB,EAAE,CAAC;gBAC1B,uBAAuB,EAAE,CAAC;gBAC1B,WAAW,EAAE,IAAI,GAAG,EAAE;aACvB;SACF,CAAC;QAEF,IAAI,CAAC;YACH,4BAA4B;YAC5B,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE;gBAClD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI;gBACnC,WAAW,EAAE,CAAC,EAAE,qCAAqC;gBACrD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBACtC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAClC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;aAC/C,CAAC,CAAC;YAEH,mDAAmD;YACnD,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACtC,IAAI,CAAC,2BAA2B,GAAG,IAAI,2BAA2B,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;YAED,cAAc;YACd,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAE/E,+BAA+B;YAC/B,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE;gBACzD,KAAK,EAAE,cAAc,CAAC,MAAM;gBAC5B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;gBACzE,iBAAiB,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC;oBAC1C,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,sBAAsB;oBACtE,CAAC,CAAC,WAAW;aAChB,CAAC,CAAC;YAEH,kDAAkD;YAClD,mDAAmD;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAE3E,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE;gBACjE,aAAa,EAAE,cAAc,CAAC,MAAM;gBACpC,UAAU,EAAE,MAAM,CAAC,MAAM;gBACzB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;aACjC,CAAC,CAAC;YAEH,kDAAkD;YAClD,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;gBAClE,gCAAgC;gBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/B,IAAI,WAAW,IAAI,eAAe,EAAE,CAAC;oBACnC,MAAM,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;oBAClD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,OAAO,cAAc,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC;oBAC/F,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,cAAc;oBAC7C,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;wBACjD,OAAO;wBACP,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;wBAC5B,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;wBACnC,eAAe,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU;qBAC5C,CAAC,CAAC;oBACH,MAAM,CAAC,kBAAkB;gBAC3B,CAAC;gBAED,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,eAAe;oBACf,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,mCAAmC;oBACnC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;oBAEhF,sBAAsB;oBACtB,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC;oBAClD,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC;oBAC9C,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC;oBAC5C,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC;oBAC9C,MAAM,CAAC,OAAO,CAAC,uBAAuB,IAAI,WAAW,CAAC,uBAAuB,CAAC;oBAC9E,MAAM,CAAC,OAAO,CAAC,uBAAuB,IAAI,WAAW,CAAC,uBAAuB,CAAC;oBAE9E,gBAAgB;oBAChB,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;wBAC7D,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBACvD,CAAC;oBAED,QAAQ;oBACR,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;oBAE1C,+BAA+B;oBAC/B,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;wBAC9B,UAAU,EAAE,UAAU,GAAG,CAAC;wBAC1B,WAAW,EAAE,MAAM,CAAC,MAAM;wBAC1B,SAAS,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;wBAC7B,SAAS,EAAE,WAAW,CAAC,SAAS;wBAChC,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,MAAM,EAAE,WAAW,CAAC,MAAM;wBAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,uBAAuB,EAAE,WAAW,CAAC,uBAAuB;wBAC5D,uBAAuB,EAAE,WAAW,CAAC,uBAAuB;wBAC5D,QAAQ,EAAE,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;qBACpE,CAAC,CAAC;oBAEH,4CAA4C;oBAC5C,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;wBACnE,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;oBAC9E,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,iCAAiC;oBACjC,MAAM,YAAY,GAAG,2BAA2B,UAAU,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7I,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACjC,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE;wBAClD,UAAU,EAAE,UAAU,GAAG,CAAC;wBAC1B,WAAW,EAAE,MAAM,CAAC,MAAM;wBAC1B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;oBAEH,sBAAsB;oBACtB,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;oBAC5C,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;YAED,iDAAiD;YACjD,yCAAyC;YACzC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;YAC9C,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YAE5C,oBAAoB;YACpB,0BAA0B;YAC1B,0BAA0B;YAC1B,qBAAqB;YACrB,sBAAsB;YACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvE,MAAM,eAAe,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC;gBACpD,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClD,CAAC,CAAC,GAAG,CAAC;YACR,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC;gBAC9C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACxE,CAAC,CAAC,KAAK,CAAC;YAEV,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;gBACnD,wBAAwB;gBACxB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;gBACnC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;gBAC/B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;gBAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;gBAE/B,wBAAwB;gBACxB,uBAAuB,EAAE,MAAM,CAAC,OAAO,CAAC,uBAAuB;gBAC/D,uBAAuB,EAAE,MAAM,CAAC,OAAO,CAAC,uBAAuB;gBAC/D,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC,uBAAuB,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB;gBAEtG,mBAAmB;gBACnB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;gBAChC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;gBACpC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,YAAY;gBAC/E,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,YAAY;gBAErF,oBAAoB;gBACpB,QAAQ,EAAE,GAAG,eAAe,GAAG;gBAC/B,UAAU,EAAE,QAAQ;gBACpB,mBAAmB,EAAE,iBAAiB;gBACtC,WAAW,EAAE,GAAG,WAAW,GAAG;gBAE9B,SAAS;gBACT,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC;oBAC9C,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;oBACxF,CAAC,CAAC,CAAC;gBACL,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI;gBAEtD,QAAQ;gBACR,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAEhC,QAAQ;gBACR,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB;gBACzD,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aAClE,CAAC,CAAC;YAEH,wBAAwB;YACxB,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;gBAC9D,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC;oBACtC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;oBAC7E,CAAC,CAAC,gBAAgB;gBACpB,0BAA0B,EAAE,MAAM,CAAC,OAAO,CAAC,uBAAuB,GAAG,CAAC;oBACpE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;oBACpG,CAAC,CAAC,yBAAyB;gBAC7B,oBAAoB,EAAE;oBACpB,WAAW,EAAE,MAAM,CAAC,MAAM;oBAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;wBAC7B,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACpD,CAAC,CAAC,GAAG;oBACP,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;iBACvC;gBACD,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC;oBACpD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;wBACpE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;wBACnC,OAAO,GAAG,CAAC;oBACb,CAAC,EAAE,EAA4B,CAAC;oBAClC,CAAC,CAAC,EAAE;aACP,CAAC,CAAC;QAEL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4BAA4B;YAC5B,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;gBACjD,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBAC5D,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;gBACnC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;gBAC/B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;gBAC7B,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;gBAC5C,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YAC5B,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC1E,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACK,eAAe,CAAI,QAAa,EAAE,SAAiB;QACzD,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACK,KAAK,CAAC,YAAY,CACxB,EAAqB,EACrB,KAOE,EACF,aAA0C,EAC1C,eAAuB;QAWvB,MAAM,WAAW,GAAG;YAClB,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,uBAAuB,EAAE,CAAC;YAC1B,uBAAuB,EAAE,CAAC;YAC1B,WAAW,EAAE,IAAI,GAAG,EAAkB;YACtC,MAAM,EAAE,EAAc;SACvB,CAAC;QAEF,yCAAyC;QACzC,yCAAyC;QACzC,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,gCAAgC;YAChC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,eAAe,EAAE,CAAC;gBAClC,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,cAAc;gBACpD,MAAM,CAAC,IAAI,CAAC,qDAAqD,EAAE;oBACjE,SAAS,EAAE,KAAK,CAAC,MAAM;oBACvB,gBAAgB,EAAE,WAAW,CAAC,SAAS;iBACxC,CAAC,CAAC;gBACH,MAAM,CAAC,qBAAqB;YAC9B,CAAC;YAED,IAAI,CAAC;gBACH,oDAAoD;gBACpD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,WAAW,CAAC,OAAO,EAAE,CAAC;oBACtB,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE;wBAClD,SAAS,EAAE,MAAM,CAAC,EAAE;wBACpB,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;qBACxC,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,sCAAsC;gBACtC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAE3F,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,yCAAyC;oBACzC,2DAA2D;oBAC3D,MAAM,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;wBAChD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,2BAA4B,CAAC,oBAAoB,CAC/E,gBAAgB,EAChB;4BACE,gBAAgB,EAAE,MAAM,CAAC,EAAE;4BAC3B,kBAAkB,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;yBAC7C,CACF,CAAC;wBAEF,uBAAuB;wBACvB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;wBAE3E,MAAM,eAAe,GAAwB;4BAC3C,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM;4BAC7C,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACvC,CAAC;wBAEF,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;4BAC3B,eAAe,CAAC,cAAc,GAAG,aAAa,CAAC;wBACjD,CAAC;wBAED,MAAM,IAAI,CAAC,kBAAkB,CAC3B,EAAE,EACF,MAAM,CAAC,EAAE,EACT,SAAS,EACT,eAAe,CAChB,CAAC;wBAEF,WAAW,CAAC,OAAO,EAAE,CAAC;wBACtB,WAAW,CAAC,uBAAuB,IAAI,YAAY,CAAC,OAAO,CAAC;wBAC5D,WAAW,CAAC,uBAAuB,IAAI,YAAY,CAAC,OAAO,CAAC;oBAC9D,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,mCAAmC;oBACnC,MAAM,aAAa,GAAG,gBAAgB,CAAC,cAAc,CAAC,aAAa,IAAI,WAAW,CAAC;oBACnF,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBACrD,MAAM,aAAa,GAAG,iBAAiB,GAAG,CAAC,CAAC;oBAE5C,MAAM,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;wBAChD,yBAAyB;wBACzB,IAAI,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;4BAC5C,iCAAiC;4BACjC,MAAM,IAAI,CAAC,kBAAkB,CAC3B,EAAE,EACF,MAAM,CAAC,EAAE,EACT,WAAW,EACX;gCACE,aAAa;gCACb,WAAW,EAAE,aAAa;gCAC1B,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gCACtC,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;6BACvC,CACF,CAAC;4BAEF,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE;gCAC3D,SAAS,EAAE,MAAM,CAAC,EAAE;gCACpB,WAAW,EAAE,aAAa;gCAC1B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gCACnC,cAAc,EAAE,aAAa;6BAC9B,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,2BAA2B;4BAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC;gCAChD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BAEzF,MAAM,IAAI,CAAC,kBAAkB,CAC3B,EAAE,EACF,MAAM,CAAC,EAAE,EACT,QAAQ,EACR;gCACE,aAAa;gCACb,WAAW,EAAE,aAAa;gCAC1B,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gCACtC,qBAAqB,EAAE,WAAW;6BACnC,CACF,CAAC;4BAEF,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE;gCACjE,SAAS,EAAE,MAAM,CAAC,EAAE;gCACpB,WAAW,EAAE,aAAa;gCAC1B,YAAY,EAAE,WAAW;gCACzB,cAAc,EAAE,aAAa;6BAC9B,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC,CAAC,CAAC;oBAEH,WAAW,CAAC,MAAM,EAAE,CAAC;oBACrB,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;gBACxD,CAAC;gBAED,WAAW,CAAC,SAAS,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,yDAAyD;gBACzD,qBAAqB;gBACrB,MAAM,YAAY,GAAG,4BAA4B,MAAM,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxH,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACtC,WAAW,CAAC,MAAM,EAAE,CAAC;gBACrB,WAAW,CAAC,SAAS,EAAE,CAAC;gBAExB,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE;oBAC5D,SAAS,EAAE,MAAM,CAAC,EAAE;oBACpB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC7D,UAAU,EAAG,KAAa,EAAE,IAAI;iBACjC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,iBAAiB,CAC7B,EAAqB,EACrB,KAAa;QASb,gCAAgC;QAChC,yCAAyC;QACzC,4DAA4D;QAC5D,0CAA0C;QAC1C,iCAAiC;QACjC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE;;;;;;;;;;;;;;;;;;KAkBtC,EAAE,CAAC,KAAK,CAAC,CAOR,CAAC;QAEH,mCAAmC;QACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YAChD,gBAAgB;YAChB,IAAI,MAAM,CAAC,uBAAuB,KAAK,IAAI,IAAI,MAAM,CAAC,uBAAuB,KAAK,EAAE,EAAE,CAAC;gBACrF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,0BAA0B;YAC1B,IAAI,MAAM,CAAC,uBAAuB,KAAK,QAAQ,EAAE,CAAC;gBAChD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACvC,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACK,WAAW,CACjB,MAGC,EACD,MAAY,IAAI,IAAI,EAAE;QAEtB,eAAe;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC,CAAC,cAAc;QAC9B,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC;YAE1C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,CAAC,2BAA2B;YAC1C,CAAC;YAED,iCAAiC;YACjC,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CACrC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CACpE,CAAC;YAEF,iCAAiC;YACjC,uEAAuE;YACvE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAE9F,sBAAsB;YACtB,OAAO,oBAAoB,IAAI,WAAW,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4BAA4B;YAC5B,MAAM,CAAC,IAAI,CAAC,4DAA4D,EAAE;gBACxE,SAAS,EAAE,MAAM,CAAC,EAAE;gBACpB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,MAGrB;QACC,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC;YACvC,OAAO,CAAC,CAAC,CAAC,sBAAsB;QAClC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAC/D,OAAO,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,4DAA4D,EAAE;gBACxE,SAAS,EAAE,MAAM,CAAC,EAAE;gBACpB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACK,KAAK,CAAC,kBAAkB,CAC9B,EAAqB,EACrB,QAAgB,EAChB,MAA0C,EAC1C,QAA6B;QAE7B,4CAA4C;QAC5C,uBAAuB;QACvB,iEAAiE;QACjE,0EAA0E;QAC1E,gFAAgF;QAChF,GAAG;QACH,oCAAoC;QACpC,qCAAqC;QACrC,MAAM,eAAe,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAE5D,qEAAqE;QACrE,oCAAoC;QACpC,mDAAmD;QACnD,MAAM,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE;;;;;;KAM3B,EAAE;YACD,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,iCAAiC;YAC1D,MAAM;YACN,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACxB,QAAQ;SACT,CAAC,CAAC;QAEH,4BAA4B;QAC5B,MAAM,CAAC,KAAK,CAAC,mDAAmD,EAAE;YAChE,SAAS,EAAE,QAAQ;YACnB,gBAAgB,EAAE,eAAe;YACjC,uBAAuB,EAAE,MAAM;YAC/B,uBAAuB,EAAE,CACvB,CAAC,MAAM,KAAK,SAAS,IAAI,eAAe,KAAK,IAAI,CAAC;gBAClD,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,CAAC,IAAI,eAAe,KAAK,KAAK,CAAC,CAC/E;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,0BAA0B,CACtC,EAAqB,EACrB,gBAAwB;QAExB,IAAI,CAAC;YACH,qDAAqD;YACrD,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE;;;OAGvC,EAAE,CAAC,gBAAgB,CAAC,CAAyC,CAAC;YAE/D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,CAAC,kBAAkB;YACjC,CAAC;YAED,2BAA2B;YAC3B,MAAM,gBAAgB,GAAG,SAAS;iBAC/B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;iBAC1B,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;YAE7D,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC,CAAC,4BAA4B;YAC3C,CAAC;YAED,QAAQ;YACR,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;YAC1F,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;gBACpD,kBAAkB,EAAE,gBAAgB;gBACpC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Semantic Memory 생성 통계 수집 서비스
3
+ *
4
+ * PRD 8.2: Semantic Memory 생성 통계
5
+ * - 생성된 Semantic Memory 수
6
+ * - 업데이트된 Semantic Memory 수
7
+ * - 중복 제거된 항목 수
8
+ */
9
+ /**
10
+ * Semantic Memory 생성 통계
11
+ */
12
+ export interface SemanticMemoryStatistics {
13
+ totalProcessed: number;
14
+ totalCreated: number;
15
+ totalUpdated: number;
16
+ totalSkipped: number;
17
+ totalDuplicates: number;
18
+ totalConfidence: number;
19
+ averageConfidence: number;
20
+ minConfidence: number;
21
+ maxConfidence: number;
22
+ totalProcessingTime: number;
23
+ averageProcessingTime: number;
24
+ totalErrors: number;
25
+ errorRate: number;
26
+ firstRecorded: number;
27
+ lastRecorded: number;
28
+ }
29
+ /**
30
+ * Semantic Memory 생성 통계 수집 서비스
31
+ */
32
+ export declare class SemanticMemoryStatisticsService {
33
+ private statistics;
34
+ private confidenceValues;
35
+ private processingTimes;
36
+ constructor();
37
+ /**
38
+ * 통계 초기화
39
+ */
40
+ private initializeStatistics;
41
+ /**
42
+ * Semantic Memory 생성/업데이트 결과 기록
43
+ *
44
+ * @param created 생성된 Semantic Memory 수
45
+ * @param updated 업데이트된 Semantic Memory 수
46
+ * @param skipped 건너뛴 Semantic Memory 수
47
+ * @param duplicates 중복 제거된 항목 수
48
+ * @param confidences Confidence 값 배열
49
+ * @param processingTime 처리 시간 (밀리초)
50
+ * @param error 에러 발생 여부
51
+ */
52
+ recordUpdate(created: number, updated: number, skipped: number, duplicates: number, confidences: number[], processingTime: number, error?: boolean): void;
53
+ /**
54
+ * 통계 조회
55
+ *
56
+ * @returns Semantic Memory 생성 통계
57
+ */
58
+ getStatistics(): SemanticMemoryStatistics;
59
+ /**
60
+ * 통계 리셋
61
+ */
62
+ reset(): void;
63
+ }
64
+ //# sourceMappingURL=semantic-memory-statistics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-memory-statistics.d.ts","sourceRoot":"","sources":["../../../src/services/semantic-memory/semantic-memory-statistics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,wBAAwB;IAEvC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IAGxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IAGtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAG9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAGlB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,+BAA+B;IAC1C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,eAAe,CAAgB;;IAMvC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;;;;;;;;;OAUG;IACH,YAAY,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EAAE,EACrB,cAAc,EAAE,MAAM,EACtB,KAAK,GAAE,OAAe,GACrB,IAAI;IAuDP;;;;OAIG;IACH,aAAa,IAAI,wBAAwB;IAIzC;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Semantic Memory 생성 통계 수집 서비스
3
+ *
4
+ * PRD 8.2: Semantic Memory 생성 통계
5
+ * - 생성된 Semantic Memory 수
6
+ * - 업데이트된 Semantic Memory 수
7
+ * - 중복 제거된 항목 수
8
+ */
9
+ /**
10
+ * Semantic Memory 생성 통계 수집 서비스
11
+ */
12
+ export class SemanticMemoryStatisticsService {
13
+ statistics;
14
+ confidenceValues = []; // Confidence 히스토리 (최근 1000개)
15
+ processingTimes = []; // 처리 시간 히스토리 (최근 1000개)
16
+ constructor() {
17
+ this.statistics = this.initializeStatistics();
18
+ }
19
+ /**
20
+ * 통계 초기화
21
+ */
22
+ initializeStatistics() {
23
+ return {
24
+ totalProcessed: 0,
25
+ totalCreated: 0,
26
+ totalUpdated: 0,
27
+ totalSkipped: 0,
28
+ totalDuplicates: 0,
29
+ totalConfidence: 0,
30
+ averageConfidence: 0,
31
+ minConfidence: Infinity,
32
+ maxConfidence: 0,
33
+ totalProcessingTime: 0,
34
+ averageProcessingTime: 0,
35
+ totalErrors: 0,
36
+ errorRate: 0.0,
37
+ firstRecorded: Date.now(),
38
+ lastRecorded: Date.now()
39
+ };
40
+ }
41
+ /**
42
+ * Semantic Memory 생성/업데이트 결과 기록
43
+ *
44
+ * @param created 생성된 Semantic Memory 수
45
+ * @param updated 업데이트된 Semantic Memory 수
46
+ * @param skipped 건너뛴 Semantic Memory 수
47
+ * @param duplicates 중복 제거된 항목 수
48
+ * @param confidences Confidence 값 배열
49
+ * @param processingTime 처리 시간 (밀리초)
50
+ * @param error 에러 발생 여부
51
+ */
52
+ recordUpdate(created, updated, skipped, duplicates, confidences, processingTime, error = false) {
53
+ this.statistics.totalProcessed += (created + updated + skipped);
54
+ this.statistics.totalCreated += created;
55
+ this.statistics.totalUpdated += updated;
56
+ this.statistics.totalSkipped += skipped;
57
+ this.statistics.totalDuplicates += duplicates;
58
+ this.statistics.lastRecorded = Date.now();
59
+ // Confidence 통계
60
+ for (const confidence of confidences) {
61
+ this.confidenceValues.push(confidence);
62
+ // 최근 1000개만 유지 (메모리 효율성)
63
+ if (this.confidenceValues.length > 1000) {
64
+ this.confidenceValues.shift();
65
+ }
66
+ this.statistics.totalConfidence += confidence;
67
+ this.statistics.minConfidence = Math.min(this.statistics.minConfidence, confidence);
68
+ this.statistics.maxConfidence = Math.max(this.statistics.maxConfidence, confidence);
69
+ }
70
+ // 평균 Confidence 계산 (최근 1000개 기준)
71
+ if (this.confidenceValues.length > 0) {
72
+ const sum = this.confidenceValues.reduce((acc, conf) => acc + conf, 0);
73
+ this.statistics.averageConfidence = sum / this.confidenceValues.length;
74
+ }
75
+ // 처리 시간 통계
76
+ this.processingTimes.push(processingTime);
77
+ // 최근 1000개만 유지 (메모리 효율성)
78
+ if (this.processingTimes.length > 1000) {
79
+ this.processingTimes.shift();
80
+ }
81
+ this.statistics.totalProcessingTime += processingTime;
82
+ // 평균 처리 시간 계산 (최근 1000개 기준)
83
+ if (this.processingTimes.length > 0) {
84
+ const sum = this.processingTimes.reduce((acc, time) => acc + time, 0);
85
+ this.statistics.averageProcessingTime = sum / this.processingTimes.length;
86
+ }
87
+ // 에러 통계
88
+ if (error) {
89
+ this.statistics.totalErrors++;
90
+ }
91
+ // 에러율 계산
92
+ this.statistics.errorRate = this.statistics.totalProcessed > 0
93
+ ? this.statistics.totalErrors / this.statistics.totalProcessed
94
+ : 0.0;
95
+ }
96
+ /**
97
+ * 통계 조회
98
+ *
99
+ * @returns Semantic Memory 생성 통계
100
+ */
101
+ getStatistics() {
102
+ return { ...this.statistics };
103
+ }
104
+ /**
105
+ * 통계 리셋
106
+ */
107
+ reset() {
108
+ this.statistics = this.initializeStatistics();
109
+ this.confidenceValues = [];
110
+ this.processingTimes = [];
111
+ }
112
+ }
113
+ //# sourceMappingURL=semantic-memory-statistics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-memory-statistics.js","sourceRoot":"","sources":["../../../src/services/semantic-memory/semantic-memory-statistics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,257 @@
1
+ /**
2
+ * Semantic Memory 갱신 서비스
3
+ *
4
+ * Triple 추출 결과를 기반으로 Semantic Memory를 생성하거나 업데이트합니다.
5
+ *
6
+ * 주요 기능:
7
+ * - Triple 기반 Semantic Memory 생성/업데이트
8
+ * - 중복 판단 및 병합
9
+ * - Confidence 계산 (구조적 검증 기반)
10
+ * - 중요도 계산
11
+ */
12
+ import Database from 'better-sqlite3';
13
+ import { RelationGraph } from '../../domains/relation/services/relation-graph.js';
14
+ import { UnifiedEmbeddingService } from '../../domains/embedding/services/unified-embedding-service.js';
15
+ import type { TripleExtractionResult } from '../../shared/types/triple-extraction.js';
16
+ /**
17
+ * Semantic Memory 업데이트 결과
18
+ */
19
+ export interface SemanticMemoryUpdateResult {
20
+ created: number;
21
+ updated: number;
22
+ skipped: number;
23
+ semanticMemoryIds: string[];
24
+ }
25
+ /**
26
+ * Semantic Memory 업데이트 옵션
27
+ */
28
+ export interface SemanticMemoryUpdateOptions {
29
+ /**
30
+ * Episodic Memory ID (관계 생성용)
31
+ */
32
+ episodicMemoryId: string;
33
+ /**
34
+ * Episodic Memory 중요도 (중요도 계산용)
35
+ */
36
+ episodicImportance?: number;
37
+ /**
38
+ * Confidence 임계값 (기본값: 0.7)
39
+ *
40
+ * PRD 2.4: 신뢰도가 일정 수준 이상인 경우만 Semantic Memory 생성
41
+ * 이 값보다 낮은 confidence를 가진 triple은 Semantic Memory로 변환하지 않음
42
+ * 설정 가능하며, 미지정 시 기본값 0.7 사용
43
+ */
44
+ confidenceThreshold?: number;
45
+ /**
46
+ * Subject/Object 유사도 임계값 (기본값: 0.9)
47
+ */
48
+ similarityThreshold?: number;
49
+ }
50
+ /**
51
+ * Semantic Memory 갱신 서비스
52
+ */
53
+ export declare class SemanticMemoryUpdateService {
54
+ private db;
55
+ private readonly canonicalizer;
56
+ private readonly entityLinker;
57
+ private readonly embeddingService;
58
+ private readonly relationGraph;
59
+ private readonly statistics;
60
+ /**
61
+ * Confidence 임계값 기본값 (PRD 2.4 참고)
62
+ * 신뢰도가 이 값 이상인 경우만 Semantic Memory 생성
63
+ */
64
+ private readonly DEFAULT_CONFIDENCE_THRESHOLD;
65
+ /**
66
+ * Subject/Object 유사도 임계값 기본값
67
+ * 중복 판단 시 사용되는 유사도 임계값
68
+ */
69
+ private readonly DEFAULT_SIMILARITY_THRESHOLD;
70
+ constructor(db: Database.Database, embeddingService?: UnifiedEmbeddingService, relationGraph?: RelationGraph);
71
+ /**
72
+ * 런타임 relation_type_registry 등록
73
+ *
74
+ * extracted_from와 supported_by 관계 타입이 없을 경우 자동 등록합니다.
75
+ * 마이그레이션에서 초기 데이터 삽입은 처리되지만, 런타임에 없을 경우를 대비합니다.
76
+ */
77
+ private ensureRelationTypes;
78
+ /**
79
+ * Triple 배열을 기반으로 Semantic Memory를 생성하거나 업데이트합니다.
80
+ *
81
+ * @param extractionResult Triple 추출 결과
82
+ * @param options 업데이트 옵션
83
+ * @returns 업데이트 결과
84
+ */
85
+ updateSemanticMemory(extractionResult: TripleExtractionResult, options: SemanticMemoryUpdateOptions): Promise<SemanticMemoryUpdateResult>;
86
+ /**
87
+ * Semantic Memory 생성 통계 조회
88
+ *
89
+ * PRD 8.2: Semantic Memory 생성 통계
90
+ * - 생성된 Semantic Memory 수
91
+ * - 업데이트된 Semantic Memory 수
92
+ * - 중복 제거된 항목 수
93
+ *
94
+ * @returns Semantic Memory 생성 통계
95
+ */
96
+ getStatistics(): import("./semantic-memory-statistics.js").SemanticMemoryStatistics;
97
+ /**
98
+ * Triple을 자연어로 변환
99
+ *
100
+ * @param subject 정규화된 subject
101
+ * @param predicate 정규화된 predicate
102
+ * @param object 정규화된 object
103
+ * @returns 자연어 문장
104
+ */
105
+ private tripleToNaturalLanguage;
106
+ /**
107
+ * 새로운 Semantic Memory 생성
108
+ *
109
+ * Triple의 predicate, subject, object를 정규화하여 저장합니다.
110
+ *
111
+ * @param triple Triple
112
+ * @param options 업데이트 옵션
113
+ * @param confidence Confidence
114
+ * @returns 생성된 Semantic Memory ID
115
+ */
116
+ private createSemanticMemory;
117
+ /**
118
+ * 기존 Semantic Memory 업데이트 (병합 전략)
119
+ *
120
+ * PRD 2.3 중복 방지 및 병합 전략에 따라:
121
+ * - 유사도가 임계값 이상인 경우 새로운 항목을 생성하지 않고 기존 항목 업데이트
122
+ * - 기존 항목의 중요도 업데이트
123
+ * - Episode Weight 누적: 동일 triple이 여러 Episodic Memory에서 추출된 경우 가중치 증가
124
+ * * recall_count를 증가시켜 Episode Weight를 추적
125
+ * * 중요도는 Episode Weight를 반영하여 재계산
126
+ * - 완전히 동일한 Semantic Memory는 생성하지 않음 (중복 판단 로직에서 처리)
127
+ *
128
+ * @param semanticMemoryId Semantic Memory ID
129
+ * @param triple Triple
130
+ * @param options 업데이트 옵션
131
+ * @param confidence Confidence
132
+ */
133
+ private updateExistingSemanticMemory;
134
+ /**
135
+ * 중복 Semantic Memory 검색
136
+ *
137
+ * Triple 요소별 비교 기준 (PRD 2.2 참고):
138
+ * - Predicate: Canonicalization 후 정확히 일치하면 동일한 것으로 처리 (정확 일치만)
139
+ * - Subject: 문자열 정규화 후 일치 여부를 기본으로, 임베딩 유사도를 보조 기준으로 사용
140
+ * - Object: Subject와 동일한 방식 (정규화 + 유사도)
141
+ *
142
+ * 중복 판단 로직:
143
+ * ```
144
+ * if (predicate == predicate' AND
145
+ * (subject.normalized() == subject'.normalized() OR subject.similarity(subject') > threshold) AND
146
+ * (object.normalized() == object'.normalized() OR object.similarity(object') > threshold))
147
+ * → 중복으로 판단
148
+ * ```
149
+ *
150
+ * @param triple Triple
151
+ * @param similarityThreshold 유사도 임계값 (기본값: 0.9)
152
+ * @returns 중복 Semantic Memory (없으면 null)
153
+ */
154
+ private findDuplicateSemanticMemory;
155
+ /**
156
+ * 두 엔티티의 유사도 확인
157
+ *
158
+ * PRD 2.2 중복 판단 기준표에 따라:
159
+ * - 기본 기준: 문자열 정규화 후 일치 여부 (lowercasing, 공백 제거)
160
+ * - 보조 기준: 임베딩 유사도 (임계값 이상이면 유사한 것으로 판단)
161
+ *
162
+ * 정규화: lowercasing, 공백 제거, 한글/영문 혼용 통일 (EntityLinker에서 이미 수행됨)
163
+ *
164
+ * @param entity1 첫 번째 엔티티 (이미 정규화된 값)
165
+ * @param entity2 두 번째 엔티티 (DB에서 조회한 값)
166
+ * @param threshold 유사도 임계값 (기본값: 0.9)
167
+ * @returns 유사도가 임계값 이상이면 true
168
+ */
169
+ private checkSimilarity;
170
+ /**
171
+ * 코사인 유사도 계산
172
+ */
173
+ private cosineSimilarity;
174
+ /**
175
+ * 구조적 검증 기반 Confidence 계산
176
+ *
177
+ * PRD 2.4 신뢰도 기반 필터링 (구조적 검증 방식)에 따라:
178
+ * - LLM 응답에서 confidence 추출은 신뢰할 수 없음 (대부분의 LLM은 신뢰할 수 있는 confidence를 제공하지 않음)
179
+ * - 구조적 검증 기반 confidence 계산 (AriGraph 방식) 사용
180
+ *
181
+ * 각 검증 단계별 점수 부여:
182
+ * 1. Triple 구조의 완전성 검증 (subject, predicate, object 모두 존재): 0.3
183
+ * 2. Predicate 정규화 성공 여부: 0.3
184
+ * 3. Entity linking 성공 여부: 0.4
185
+ * - Subject와 Object 모두 성공: 0.4
186
+ * - 하나만 성공: 0.2 (부분 성공)
187
+ *
188
+ * 최종 confidence는 0.0~1.0 범위로 정규화됩니다.
189
+ * 신뢰도가 일정 수준 이상인 경우만 Semantic Memory 생성 (기본 임계값: 0.7)
190
+ *
191
+ * @param triple Triple
192
+ * @param extractionInfo 추출 정보 (steps 정보 포함)
193
+ * @returns Confidence (0.0~1.0)
194
+ */
195
+ private calculateConfidence;
196
+ /**
197
+ * Semantic Memory 중요도 계산
198
+ *
199
+ * PRD 2.5 Semantic Memory 중요도 계산에 따라:
200
+ * - Triple이 추출된 Episodic Memory의 중요도 반영
201
+ * - 여러 Episodic Memory에서 동일한 Semantic Memory가 추출된 경우 중요도 증가
202
+ * * Episode Weight 누적: 동일 triple이 여러 Episodic Memory에서 추출된 경우 가중치 증가
203
+ * * 로그 스케일을 사용하여 증가폭을 제어 (과도한 증가 방지)
204
+ * - 중요도 Decay: 시간이 지나면서 중요도가 감쇠하는지 여부 결정 (초기에는 decay 없음)
205
+ * - 중요도는 0.0~1.0 범위로 정규화
206
+ *
207
+ * 계산 공식:
208
+ * - 기본 중요도 = Episodic Memory 중요도
209
+ * - Episode Weight가 1보다 큰 경우: importance += log(episodeCount + 1) / log(10) * 0.1
210
+ * - 최종 중요도 = min(1.0, max(0.0, importance))
211
+ *
212
+ * @param episodicImportance Triple이 추출된 Episodic Memory의 중요도
213
+ * @param episodeCount Episode Weight (여러 Episodic Memory에서 추출된 횟수)
214
+ * @returns 계산된 중요도 (0.0~1.0)
215
+ */
216
+ private calculateImportance;
217
+ /**
218
+ * 관계 방향 검증
219
+ *
220
+ * PRD 3.2 관계 타입 정의에 따라:
221
+ * - extracted_from: source가 Episodic, target이 Semantic이어야 함
222
+ * - supported_by: source가 Semantic, target이 Episodic이어야 함
223
+ *
224
+ * @param sourceId 소스 Memory ID
225
+ * @param targetId 타겟 Memory ID
226
+ * @param relationType 관계 타입
227
+ * @throws Error 관계 방향이 올바르지 않은 경우
228
+ */
229
+ private validateRelationDirection;
230
+ /**
231
+ * Episodic-Edge 관계 생성
232
+ *
233
+ * PRD 2.4 Confidence 저장 위치 및 연계 방식에 따라:
234
+ * - **주 저장 위치**: `memory_relation` 테이블의 `confidence` 필드
235
+ * - Episodic Memory와 Semantic Memory 간 관계의 신뢰도로 저장
236
+ * - 검색/가중치 계산 시: `memory_relation.confidence` 참조
237
+ * - 각 relation 생성 시 계산된 confidence 값을 저장
238
+ *
239
+ * 두 가지 관계를 생성:
240
+ * 1. extracted_from (Episodic → Semantic): Episodic Memory에서 Semantic Memory로 추출된 관계
241
+ * 2. supported_by (Semantic → Episodic): Semantic Memory가 Episodic Memory에 의해 지원되는 관계 (역방향)
242
+ *
243
+ * 각 관계는 동일한 confidence 값을 가지며, 각 triple별로 독립적인 relation으로 저장됩니다.
244
+ *
245
+ * PRD 3.4 관계 중복 방지:
246
+ * - UNIQUE(source_id, target_id, relation_type) 제약 조건 활용
247
+ * - 동일한 Episodic Memory와 Semantic Memory 간의 동일한 관계 타입은 중복 생성하지 않음
248
+ *
249
+ * @param episodicMemoryId Episodic Memory ID
250
+ * @param semanticMemoryId Semantic Memory ID
251
+ * @param triple Triple
252
+ * @param extractionInfo 추출 정보
253
+ * @param confidence 계산된 Confidence (구조적 검증 기반, 0.0~1.0)
254
+ */
255
+ private createEpisodicEdge;
256
+ }
257
+ //# sourceMappingURL=semantic-memory-update-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-memory-update-service.d.ts","sourceRoot":"","sources":["../../../src/services/semantic-memory/semantic-memory-update-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AAGxG,OAAO,KAAK,EAAU,sBAAsB,EAAkB,MAAM,yCAAyC,CAAC;AAY9G;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,2BAA2B;IAqBpC,OAAO,CAAC,EAAE;IApBZ,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA0B;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAG7D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAO;IAEpD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAO;gBAG1C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAC7B,gBAAgB,CAAC,EAAE,uBAAuB,EAC1C,aAAa,CAAC,EAAE,aAAa;IAc/B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAiD3B;;;;;;OAMG;IACG,oBAAoB,CACxB,gBAAgB,EAAE,sBAAsB,EACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAoHtC;;;;;;;;;OASG;IACH,aAAa;IAIb;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAS/B;;;;;;;;;OASG;YACW,oBAAoB;IA4DlC;;;;;;;;;;;;;;;OAeG;YACW,4BAA4B;IA+C1C;;;;;;;;;;;;;;;;;;;OAmBG;YACW,2BAA2B;IAkFzC;;;;;;;;;;;;;OAaG;YACW,eAAe;IAwC7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,mBAAmB;IAwC3B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;;;;;;;;;;OAWG;YACW,yBAAyB;IAsCvC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;YACW,kBAAkB;CAgFjC"}