@peerbit/pubsub 5.2.10 → 5.3.0

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 (67) hide show
  1. package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.d.ts +3 -0
  2. package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.d.ts.map +1 -0
  3. package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.js +90 -0
  4. package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.js.map +1 -0
  5. package/dist/benchmark/fanout-tree-parent-upgrade-eval.d.ts +2 -0
  6. package/dist/benchmark/fanout-tree-parent-upgrade-eval.d.ts.map +1 -0
  7. package/dist/benchmark/fanout-tree-parent-upgrade-eval.js +712 -0
  8. package/dist/benchmark/fanout-tree-parent-upgrade-eval.js.map +1 -0
  9. package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.d.ts +2 -0
  10. package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.d.ts.map +1 -0
  11. package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.js +1591 -0
  12. package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.js.map +1 -0
  13. package/dist/benchmark/fanout-tree-parent-upgrade-prepush.d.ts +2 -0
  14. package/dist/benchmark/fanout-tree-parent-upgrade-prepush.d.ts.map +1 -0
  15. package/dist/benchmark/fanout-tree-parent-upgrade-prepush.js +297 -0
  16. package/dist/benchmark/fanout-tree-parent-upgrade-prepush.js.map +1 -0
  17. package/dist/benchmark/fanout-tree-parent-upgrade-preset.d.ts +73 -0
  18. package/dist/benchmark/fanout-tree-parent-upgrade-preset.d.ts.map +1 -0
  19. package/dist/benchmark/fanout-tree-parent-upgrade-preset.js +183 -0
  20. package/dist/benchmark/fanout-tree-parent-upgrade-preset.js.map +1 -0
  21. package/dist/benchmark/fanout-tree-sim-lib.d.ts +101 -0
  22. package/dist/benchmark/fanout-tree-sim-lib.d.ts.map +1 -1
  23. package/dist/benchmark/fanout-tree-sim-lib.js +540 -38
  24. package/dist/benchmark/fanout-tree-sim-lib.js.map +1 -1
  25. package/dist/benchmark/fanout-tree-sim.d.ts +0 -9
  26. package/dist/benchmark/fanout-tree-sim.d.ts.map +1 -1
  27. package/dist/benchmark/fanout-tree-sim.js +369 -28
  28. package/dist/benchmark/fanout-tree-sim.js.map +1 -1
  29. package/dist/benchmark/index.js +20 -0
  30. package/dist/benchmark/index.js.map +1 -1
  31. package/dist/benchmark/pubsub-topic-sim-lib.d.ts +4 -0
  32. package/dist/benchmark/pubsub-topic-sim-lib.d.ts.map +1 -1
  33. package/dist/benchmark/pubsub-topic-sim-lib.js +58 -3
  34. package/dist/benchmark/pubsub-topic-sim-lib.js.map +1 -1
  35. package/dist/benchmark/pubsub-topic-sim.js +18 -0
  36. package/dist/benchmark/pubsub-topic-sim.js.map +1 -1
  37. package/dist/src/debounced-set.d.ts +1 -1
  38. package/dist/src/debounced-set.d.ts.map +1 -1
  39. package/dist/src/debounced-set.js +5 -1
  40. package/dist/src/debounced-set.js.map +1 -1
  41. package/dist/src/fanout-tree-codec.d.ts +330 -0
  42. package/dist/src/fanout-tree-codec.d.ts.map +1 -0
  43. package/dist/src/fanout-tree-codec.js +1209 -0
  44. package/dist/src/fanout-tree-codec.js.map +1 -0
  45. package/dist/src/fanout-tree-parent-upgrade.d.ts +117 -0
  46. package/dist/src/fanout-tree-parent-upgrade.d.ts.map +1 -0
  47. package/dist/src/fanout-tree-parent-upgrade.js +135 -0
  48. package/dist/src/fanout-tree-parent-upgrade.js.map +1 -0
  49. package/dist/src/fanout-tree.d.ts +241 -73
  50. package/dist/src/fanout-tree.d.ts.map +1 -1
  51. package/dist/src/fanout-tree.js +2224 -1050
  52. package/dist/src/fanout-tree.js.map +1 -1
  53. package/dist/src/index.d.ts +57 -0
  54. package/dist/src/index.d.ts.map +1 -1
  55. package/dist/src/index.js +293 -41
  56. package/dist/src/index.js.map +1 -1
  57. package/dist/src/topic-root-control-plane.d.ts +13 -0
  58. package/dist/src/topic-root-control-plane.d.ts.map +1 -1
  59. package/dist/src/topic-root-control-plane.js +45 -0
  60. package/dist/src/topic-root-control-plane.js.map +1 -1
  61. package/package.json +6 -6
  62. package/src/debounced-set.ts +5 -0
  63. package/src/fanout-tree-codec.ts +1580 -0
  64. package/src/fanout-tree-parent-upgrade.ts +353 -0
  65. package/src/fanout-tree.ts +4467 -2204
  66. package/src/index.ts +392 -56
  67. package/src/topic-root-control-plane.ts +48 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout-tree-codec.js","sourceRoot":"","sources":["../../src/fanout-tree-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5B,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5B,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAI,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAI,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,IAAI,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAErD,MAAM,kCAAkC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,UAAU,GAAG,CACzB,GAAe,EACf,MAAc,EACd,KAAa,EACZ,EAAE;IACH,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACxC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACxC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IACvC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAe,EAAE,MAAc,EAAE,EAAE,CAC5D,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACtB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,GAAe,EAAE,MAAc,EAAE,KAAa,EAAE,EAAE;IACrE,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QACpC,CAAC,KAAK,EAAE,CAAC;IACV,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAe,EAAE,MAAc,EAAE,EAAE;IAC5D,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CACzB,GAAe,EACf,MAAc,EACd,KAAa,EACZ,EAAE;IACH,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;IACvC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAe,EAAE,MAAc,EAAE,EAAE,CAC5D,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAElD,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAC3C,MAAM,0BAA0B,GAAG,CAAC,GAAG,+BAA+B,CAAC;AAEvE,MAAM,WAAW;IACC,GAAG,CAAa;IACzB,MAAM,GAAG,CAAC,CAAC;IAEnB,YAAY,IAAY,EAAE,UAAsB,EAAE,YAAoB;QACrE,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,0BAA0B,GAAG,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,+BAA+B,EAAE,aAAa,CAAC,CAAC;IACxE,CAAC;IAEO,MAAM,CAAC,KAAa;QAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;IAED,EAAE,CAAC,KAAa;QACf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,GAAG,CAAC,KAAa;QAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACf,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,GAAG,CAAC,KAAa;QAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACf,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK,CAAC,KAAiB,EAAE,cAAc,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO;QACtE,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACd,WAAW,KAAK,qBAAqB,cAAc,SAAS,KAAK,CAAC,MAAM,EAAE,CAC1E,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QAC5B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;CACD;AAED,MAAM,WAAW;IAEE;IACT;IAFT,YACkB,GAAe,EACxB,MAAc;QADL,QAAG,GAAH,GAAG,CAAY;QACxB,WAAM,GAAN,MAAM,CAAQ;IACpB,CAAC;IAEJ,MAAM,CAAC,OAAO,CAAC,IAAgB,EAAE,eAAuB;QACvD,IAAI,IAAI,CAAC,MAAM,GAAG,0BAA0B,GAAG,eAAe,EAAE,CAAC;YAChE,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,KAAa;QAChB,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,KAAK,CAAC;IAClC,CAAC;IAED,EAAE;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC;IACjC,CAAC;IAED,GAAG;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACnC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,GAAG;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACnC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AA4CD,MAAM,sBAAsB,GAAG,CAAC,GAAG,CAAC,CAAC;AACrC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,aAAa,GAAG,CAC5B,UAAsB,EACtB,KAAa,EACb,UAAkB,EAClB,6BAA6B,GAAG,CAAC,EAChC,EAAE;IACH,MAAM,cAAc,GAAG,6BAA6B,GAAG,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,WAAW,CAC5B,YAAY,EACZ,UAAU,EACV,sBAAsB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1E;SACC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC;SAChB,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC;IACxB,IAAI,cAAc,EAAE,CAAC;QACpB,KAAK,CAAC,GAAG,CAAC,6BAA6B,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAgB,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,KAAK,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAC1D,OAAO;QACN,KAAK;QACL,UAAU;QACV,6BAA6B,EAAE,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC;YACnE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;KACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,UAAsB,EACtB,KAAa,EACb,KAAa,EACb,mBAA8B,EAC9B,SAAyD,EACxD,EAAE;IACH,MAAM,UAAU,GAAiB,EAAE,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,SAAS;QAAE,KAAK,IAAI,CAAC,CAAC;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,GAAG,IAAI,mBAAmB,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,KAAK,IAAI,cAAc;YAAE,MAAM;QACnC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAS;QACtC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,GAAG;YAAE,SAAS;QACjD,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;QACvB,KAAK,IAAI,CAAC,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;IACzB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;IACjC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;IACpC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IAEvB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpB,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACf,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,CAAC;QACZ,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,UAAsB,EACtB,KAAa,EACb,MAAc,EACd,SAAgC,EAC/B,EAAE;IACH,MAAM,OAAO,GAA0D,EAAE,CAAC;IAC1E,KAAK,MAAM,CAAC,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,EAAE,IAAI;YAAE,SAAS;QACvB,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG;YAAE,SAAS;QAC/D,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,YAAY,UAAU,CAAC;aACvD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC;aACjD,KAAK,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,MAAM,IAAI,wBAAwB;YAAE,MAAM;IACvD,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;QACjC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;QACxB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;IACzB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC5D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;QAC7B,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;QAClE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACzB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,CAAC;YACZ,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACnB,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;QACpB,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAsB,EAAE,EAAE;IACpD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;IAClB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAsB,EAAE,gBAAwB,EAAE,EAAE;IAC7E,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACvC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACjB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,gBAAgB,KAAK,CAAC,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,UAAsB,EACtB,KAAa,EACb,WAAqB,EACpB,EAAE;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,UAAU,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC7B,UAAsB,EACtB,KAAa,EACb,WAAqB,EACpB,EAAE;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;IACvB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,UAAU,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAC1B,UAAsB,EACtB,QAAgB,EAChB,eAAuB,EACtB,EAAE;IACH,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACnB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC;IACpC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,eAAe,KAAK,CAAC,CAAC,CAAC;IAC3C,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAmB,EAAE,EAAE;IACjD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;IAClB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpB,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,UAAsB,EACtB,OAAmB,EAClB,EAAE;IACH,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,GAAG,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;IAC3B,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrB,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAsB,EAAE,EAAE;IACrD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACnB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC5B,UAAsB,EACtB,KAAe,EACf,OAAmB,EACnB,OAAsD,EACrD,EAAE;IACH,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;IAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAiB,EAAE,CAAC;IACtC,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,GAAG,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAC/B,IAAI,OAAO,IAAI,cAAc;YAAE,MAAM;QACrC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAS;QACtC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,GAAG;YAAE,SAAS;QACjD,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;QACvB,OAAO,IAAI,CAAC,CAAC;IACd,CAAC;IAED,MAAM,eAAe,GAAiB,EAAE,CAAC;IACzC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB;QAC9B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,UAAU,IAAI,cAAc;gBAAE,MAAM;YACxC,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,SAAS;YACtC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,GAAG;gBAAE,SAAS;YACjD,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;YACvB,UAAU,IAAI,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;IAED,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IACrB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACvB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,QAAQ,EAAE,CAAC;QACd,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAQ,CAAC,QAAS,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,CAAC;IACb,CAAC;IACD,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;IAC/B,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpB,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACd,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC;QAClC,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;YAClC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACpB,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC;QACrB,CAAC;IACF,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,UAAsB,EACtB,QAAgB,EAChB,KAAe,EACd,EAAE;IACH,MAAM,UAAU,GAAiB,EAAE,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAC/B,IAAI,KAAK,IAAI,cAAc;YAAE,MAAM;QACnC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAS;QACtC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,GAAG;YAAE,SAAS;QACjD,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;QACvB,KAAK,IAAI,CAAC,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;IACzB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC9B,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACvB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpB,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,UAAsB,EACtB,KAAa,EACb,UAAkB,EACjB,EAAE;IACH,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IACvD,GAAG,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;IACzB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IAC3B,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,UAAsB,EACtB,KAAa,EACb,KAAgB,EACf,EAAE;IACH,MAAM,UAAU,GAAiB,EAAE,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAC/B,IAAI,KAAK,IAAI,cAAc;YAAE,MAAM;QACnC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAS;QACtC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,GAAG;YAAE,SAAS;QACjD,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;QACvB,KAAK,IAAI,CAAC,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;IACzB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACvB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpB,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAC1B,IAAgB,EAChB,WAAmB,EACnB,UAAkB,EACoB,EAAE;IACxC,IAAI,MAAM,GAAG,WAAW,CAAC;IACzB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC;QAC5B,IAAI,GAAG,KAAK,CAAC;YAAE,MAAM;QACrB,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QACtC,IAAI,KAAK,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,IAAI,GAAG,CAAC;IACf,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACpC,UAAsB,EACtB,KAAa,EACb,KAAa,EACb,WAAmB,EACnB,SAAiB,EACjB,UAAkB,EAClB,KAAkB,EACjB,EAAE;IACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,KAAK,CAAa,SAAS,CAAC,CAAC;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC;QAC1B,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3C,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACzC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IAC3B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QACxB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,CAAC;QACZ,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACnB,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,UAAsB,EACtB,KAAa,EACb,IAAY,EACX,EAAE;IACH,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;IAC3B,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;IACjC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,UAAsB,EACtB,KAAa,EACb,OAAuB,EACtB,EAAE;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,OAAO,GAMR,EAAE,CAAC;IACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QACtB,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG;YAAE,SAAS;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC;YACZ,SAAS;YACT,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,KAAK;SACL,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;IAC3B,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC5D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;QAC7B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,CAAC;QACZ,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,CAAC;QACZ,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,CAAC;QACZ,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;QAClE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACzB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,CAAC;YACZ,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACnB,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;QACpB,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACpC,UAAsB,EACtB,aAAqB,EACrB,KAAa,EACb,MAAc,EACb,EAAE;IACH,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,GAAG,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvB,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACtC,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,8BAA8B,GAAG,CAAC,CAAC;AACzC,MAAM,gCAAgC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,gCAAgC,GACrC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvC,MAAM,oCAAoC,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,UAAsB,EACtB,KAAa,EACb,YAAY,GAAG,CAAC,EAChB,mBAAmB,GAAG,IAAI,EACzB,EAAE;IACH,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,mBAAmB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACrE,MAAM,KAAK,GAAG,IAAI,WAAW,CAC5B,oBAAoB,EACpB,UAAU,EACV,8BAA8B;QAC7B,CAAC,YAAY,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CACtD,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;IACnB,IAAI,YAAY,EAAE,CAAC;QAClB,KAAK;aACH,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;aAClC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACrC,UAAsB,EACtB,KAAa,EACb,OAWC,EACA,EAAE;IACH,OAAO,IAAI,WAAW,CACrB,sBAAsB,EACtB,UAAU,EACV,gCAAgC,GAAG,oCAAoC,CACvE;SACC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC;SAChB,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;SACxB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC5B,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAClC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAChC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC/B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;SAC3D,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAClC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC;SAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;SAC3D,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACjE,IAAI,EAAE,CAAC;AACV,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAgB,EAAE,EAAE;IACxD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;IACxE,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACpC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,UAAU,GAAG,kCAAkC,CAAC;IACpD,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClB,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,UAAU,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,kCAAkC,CAAC;QAC/D,CAAC;IACF,CAAC;IACD,OAAO;QACN,KAAK;QACL,YAAY;QACZ,mBAAmB,EAAE,OAAO,CAC3B,UAAU,GAAG,kCAAkC,CAC/C;KACD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAgB,EAAE,IAAY,EAAE,EAAE;IACxE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IACpC,IACC,KAAK,IAAI,IAAI;QACb,KAAK,IAAI,IAAI;QACb,KAAK,IAAI,IAAI;QACb,WAAW,IAAI,IAAI;QACnB,SAAS,IAAI,IAAI;QACjB,QAAQ,IAAI,IAAI;QAChB,eAAe,IAAI,IAAI;QACvB,WAAW,IAAI,IAAI;QACnB,cAAc,IAAI,IAAI;QACtB,eAAe,IAAI,IAAI,EACtB,CAAC;QACF,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO;QACN,KAAK;QACL,IAAI;QACJ,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,wBAAwB,CAAC;QACjD,SAAS,EAAE,OAAO,CAAC,KAAK,GAAG,2BAA2B,CAAC;QACvD,SAAS,EAAE,OAAO,CAAC,KAAK,GAAG,2BAA2B,CAAC;QACvD,UAAU,EAAE,OAAO,CAAC,KAAK,GAAG,4BAA4B,CAAC;QACzD,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC;YAChE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACJ,KAAK;QACL,WAAW;QACX,SAAS;QACT,QAAQ;QACR,eAAe;QACf,WAAW;QACX,cAAc;QACd,eAAe;KACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACrC,YAAwB,EACxB,KAAa,EACb,KAAkB,EACjB,EAAE;IACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,KAAK,CAAa,SAAS,CAAC,CAAC;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC;QAC1B,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC;IAC/B,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACzB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IAC3B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QACxB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,CAAC;QACZ,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACnB,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAClC,YAAwB,EACxB,KAAa,EACb,IAAY,EACZ,IAAY,EACX,EAAE;IACH,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,GAAG,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;IAC5B,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACzB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;IACjC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC;IAChC,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,OAAwB,EAAE,EAAE;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,OAAO,GAA0D,EAAE,CAAC;IAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QACtB,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG;YAAE,SAAS;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAClC,YAAwB,EACxB,KAAa,EACb,OAAwB,EACvB,EAAE;IACH,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC;IAEtC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;IAC5B,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACzB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC5D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;QAC7B,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;QAClE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACzB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,CAAC;YACZ,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACnB,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;QACpB,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,YAAwB,EACxB,IAAY,EACZ,KAAa,EACZ,EAAE;IACH,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC;IAChC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACzB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,YAAwB,EAAE,EAAE;IACrE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,GAAG,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC;IAClC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,YAAwB,EACxB,OAAwB,EACvB,EAAE;IACH,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;IAElC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,GAAG,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;IAC7B,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACzB,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC5D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;QAC7B,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;QAClE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACzB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,CAAC;YACZ,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACnB,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;QACpB,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAyCF;0BAC0B;AAC1B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,IAAgB,EACK,EAAE;IACvB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,IAAgB,EACsB,EAAE;IACxC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACvD,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;IAC5C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,mBAAmB,GAAa,EAAE,CAAC;IACzC,uEAAuE;IACvE,mDAAmD;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC;QAC5B,IAAI,GAAG,KAAK,CAAC;YAAE,MAAM;QACrB,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QACtC,mBAAmB,CAAC,IAAI,CACvB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CACvD,CAAC;QACF,MAAM,IAAI,GAAG,CAAC;IACf,CAAC;IACD,MAAM,SAAS,GACd,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;QACxB,CAAC,CAAC;YACA,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;YACjC,eAAe,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC;SAC5C;QACF,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,IAAgB,EACsB,EAAE;IACxC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAE,GAAG,IAAI,CAAC;IAChC,MAAM,SAAS,GAA4C,EAAE,CAAC;IAC9D,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;QACvC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;gBAAE,MAAM;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC;YAChC,IAAI,OAAO,KAAK,CAAC;gBAAE,MAAM;YACzB,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM;gBAAE,MAAM;YAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;YACzE,MAAM,IAAI,OAAO,CAAC;YAClB,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;gBAAE,MAAM;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC,CAAC;YACjD,MAAM,KAAK,GAAiB,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;YACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;oBAAE,MAAM;gBACpC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACpC,MAAM,IAAI,CAAC,CAAC;gBACZ,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;oBAAE,MAAM;gBACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;gBAChD,MAAM,IAAI,GAAG,CAAC;YACf,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAgB,EAAsB,EAAE;IACjE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF;6BAC6B;AAC7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAgB,EAAwB,EAAE;IAC1E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAE,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAC1B,IAAgB,EAC4C,EAAE;IAC9D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO;QACN,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7B,eAAe,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;KACpC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC5B,IAAgB,EACmB,EAAE;IACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,QAA4B,CAAC;IACjC,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QACnD,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,CAAC;IACb,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAE,CAAC,CAAC;IAChD,MAAM,IAAI,CAAC,CAAC;IACZ,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACxB,IAAI,UAAgC,CAAC;IACrC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAE,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,CAAC;QACZ,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3D,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC;QAChC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IAC9B,CAAC;IACD,OAAO;QACN,QAAQ;QACR,KAAK;QACL,UAAU;QACV,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;KAC5C,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,IAAgB,EACoC,EAAE;IACtD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;IAC5C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,IAAgB,EACqC,EAAE;IACvD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAE,CAAC;IAC1B,0EAA0E;IAC1E,MAAM,UAAU,GACf,OAAO,KAAK,CAAC,IAAI,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM;QAC1C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IACxD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,IAAgB,EACiC,EAAE;IACnD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;IAC5C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACtB,IAAgB,EAChB,WAAmB,EACnB,SAAiB,EACF,EAAE;IACjB,IAAI,MAAM,GAAG,WAAW,CAAC;IACzB,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QACpC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,CAAC;QACZ,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACpC,IAAgB,EASJ,EAAE;IACd,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,OAAO;QACN,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,kEAAkE;QAClE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9B,UAAU,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAE,CAAC;KAC1C,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,IAAgB,EAC8B,EAAE;IAChD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,IAAgB,EAGJ,EAAE;IACd,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAE,CAAC;IACxB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,OAAO,GAAqC,EAAE,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC;QAChC,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,OAAO,CAAC;QAClB,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QAChD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,CAAC;QACZ,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,CAAC;QACZ,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC;QAClC,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;gBAAE,MAAM;YACpC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,CAAC;YACZ,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;gBAAE,MAAM;YACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,CAAC;QACf,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACpC,IAAgB,EACuD,EAAE;IACzE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,MAAM,GAAG,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACzD,OAAO;QACN,aAAa,EAAE,WAAW,CAAC,MAAM,CAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CACvC;QACD,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAE,GAAG,IAAI;QACrC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC,CAAE,GAAG,IAAI;KAC1C,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACrC,IAAgB,EACqC,EAAE;IACvD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO;QACN,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAE,CAAC;KAC1C,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAClC,IAAgB,EAC4C,EAAE;IAC9D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACvD,OAAO;QACN,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACzB,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;KACzB,CAAC;AACH,CAAC,CAAC;AAEF;kEACkE;AAClE,MAAM,wBAAwB,GAAG,CAChC,IAAgB,EAChB,WAAmB,EACnB,QAAgB,EACe,EAAE;IACjC,IAAI,MAAM,GAAG,WAAW,CAAC;IACzB,MAAM,SAAS,GAAiC,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC;QAChC,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,OAAO,CAAC;QAClB,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC;QAClC,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;gBAAE,MAAM;YACpC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,CAAC;YACZ,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;gBAAE,MAAM;YACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,CAAC;QACf,CAAC;QACD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAClC,IAAgB,EACuD,EAAE;IACzE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO;QACN,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,OAAO,EAAE,wBAAwB,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAE,CAAC;KACtD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,IAAgB,EACwC,EAAE;IAC1D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,OAAO,EAAE,OAAO,EAAE,wBAAwB,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAE,CAAC,EAAE,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,IAAgB,EAC8B,EAAE;IAChD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACpC,IAAgB,EAChB,WAAmB,EACnB,QAAgB,EACf,EAAE;IACH,IAAI,MAAM,GAAG,WAAW,CAAC;IACzB,MAAM,SAAS,GAAwB,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC;QAChC,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,OAAO,CAAC;QAClB,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,MAAM;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC;QAClC,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;gBAAE,MAAM;YACpC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,CAAC;YACZ,IAAI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;gBAAE,MAAM;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,CAAC;YACd,IAAI,CAAC;gBACJ,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACR,iBAAiB;YAClB,CAAC;QACF,CAAC;QACD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC,CAAC;AAqEF,MAAM,CAAC,MAAM,iBAAiB,GAAoB;IACjD,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,UAAU;IACV,SAAS;IACT,eAAe;IACf,cAAc;IACd,WAAW;IACX,UAAU;IACV,kBAAkB;IAClB,WAAW;IACX,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,qBAAqB;IACrB,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,mBAAmB;IACnB,mBAAmB;IACnB,uBAAuB;IACvB,yBAAyB;IACzB,oBAAoB;IACpB,aAAa;IACb,uBAAuB;IACvB,gBAAgB;IAChB,gBAAgB;IAChB,SAAS;IACT,gBAAgB;IAChB,WAAW;IACX,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,qBAAqB;IACrB,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;IACpB,uBAAuB;CACvB,CAAC"}
@@ -0,0 +1,117 @@
1
+ export type ParentUpgradeOptions = {
2
+ parentUpgradeIntervalMs?: number;
3
+ parentUpgradeLeafOnly?: boolean;
4
+ parentUpgradeMinLevelGain?: number;
5
+ parentUpgradeRootMinLevelGain?: number;
6
+ parentUpgradeRootMinSubtreeGain?: number;
7
+ parentUpgradeNonRootMinLevelGain?: number;
8
+ parentUpgradeMinFreeSlots?: number;
9
+ parentUpgradeRootMinFreeSlots?: number;
10
+ parentUpgradeMaxChildLoadRatio?: number;
11
+ parentUpgradeRootMaxChildLoadRatio?: number;
12
+ parentUpgradeCooldownMs?: number;
13
+ parentUpgradeFailedBackoffMinMs?: number;
14
+ parentUpgradeFailedBackoffMaxMs?: number;
15
+ parentUpgradeQuietMs?: number;
16
+ parentUpgradeRepairQuietMs?: number;
17
+ parentUpgradeMaxPerPeer?: number;
18
+ parentUpgradeRepairGuard?: boolean;
19
+ parentUpgradeDataGuard?: boolean;
20
+ parentUpgradeMode?: ParentUpgradeMode;
21
+ parentUpgradeVerifyStaleRootCapacity?: boolean;
22
+ parentUpgradeStaleRootProbeProbability?: number;
23
+ parentProbeTimeoutMs?: number;
24
+ parentProbeMaxPerRound?: number;
25
+ parentProbeMaxLagMessages?: number;
26
+ parentProbeRejectCooldownMs?: number;
27
+ parentProbeRejectCooldownMaxMs?: number;
28
+ parentShadowObserveMs?: number;
29
+ parentShadowMinObservations?: number;
30
+ parentShadowDualPathMs?: number;
31
+ parentShadowDualPathMinMessages?: number;
32
+ };
33
+ export type ParentUpgradeSkipReason = "leaf" | "repair" | "data" | "cooldown" | "quiet" | "budget";
34
+ export type ParentUpgradeMode = "direct" | "probe" | "shadow";
35
+ export type ParentUpgradePolicy = {
36
+ intervalMs: number;
37
+ leafOnly: boolean;
38
+ minLevelGain: number;
39
+ rootMinLevelGain: number;
40
+ rootMinSubtreeGain: number;
41
+ nonRootMinLevelGain: number;
42
+ minFreeSlots: number;
43
+ rootMinFreeSlots: number;
44
+ maxChildLoadRatio: number;
45
+ rootMaxChildLoadRatio: number;
46
+ staleRootProbeProbability: number;
47
+ cooldownMs: number;
48
+ quietMs: number;
49
+ repairQuietMs: number;
50
+ maxPerPeer: number;
51
+ repairGuard: boolean;
52
+ dataGuard: boolean;
53
+ mode: ParentUpgradeMode;
54
+ verifyStaleRootCapacity: boolean;
55
+ failedBackoff: {
56
+ minMs: number;
57
+ maxMs: number;
58
+ };
59
+ probe: {
60
+ timeoutMs: number;
61
+ maxPerRound: number;
62
+ maxLagMessages: number;
63
+ rejectCooldownMs: number;
64
+ rejectCooldownMaxMs: number;
65
+ };
66
+ shadow: {
67
+ observeMs: number;
68
+ minObservations: number;
69
+ dualPathMs: number;
70
+ dualPathMinMessages: number;
71
+ };
72
+ };
73
+ export type ParentUpgradeGateState = {
74
+ children: {
75
+ size: number;
76
+ };
77
+ missingSeqs: {
78
+ size: number;
79
+ };
80
+ lastRepairSentAt: number;
81
+ endSeqExclusive: number;
82
+ parentUpgradeRetryAfterSeq: number;
83
+ maxSeqSeen: number;
84
+ parentUpgradeCount: number;
85
+ parentUpgradeBackoffUntil: number;
86
+ parentUpgradeLastAt: number;
87
+ lastParentDataAt: number;
88
+ lastParentUpgradeActivityAt?: number;
89
+ };
90
+ export type ParentUpgradeGateOptions = {
91
+ leafOnly: boolean;
92
+ repairGuard: boolean;
93
+ dataGuard: boolean;
94
+ endedAndComplete: boolean;
95
+ maxPerPeer: number;
96
+ cooldownMs: number;
97
+ quietMs: number;
98
+ repairQuietMs: number;
99
+ now: number;
100
+ };
101
+ export type ParentUpgradeSkipMetrics = {
102
+ reparentUpgradeSkipLeaf: number;
103
+ reparentUpgradeSkipRepair: number;
104
+ reparentUpgradeSkipData: number;
105
+ reparentUpgradeSkipCooldown: number;
106
+ reparentUpgradeSkipQuiet: number;
107
+ reparentUpgradeSkipBudget: number;
108
+ };
109
+ export declare const normalizeParentUpgradePolicy: (options: ParentUpgradeOptions) => ParentUpgradePolicy;
110
+ export declare const evaluateParentUpgradeGate: (state: ParentUpgradeGateState, options: ParentUpgradeGateOptions) => {
111
+ run: true;
112
+ } | {
113
+ run: false;
114
+ reason: ParentUpgradeSkipReason;
115
+ };
116
+ export declare const recordParentUpgradeSkip: (metrics: ParentUpgradeSkipMetrics, reason: ParentUpgradeSkipReason) => void;
117
+ //# sourceMappingURL=fanout-tree-parent-upgrade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout-tree-parent-upgrade.d.ts","sourceRoot":"","sources":["../../src/fanout-tree-parent-upgrade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ export const normalizeParentUpgradePolicy = (options) => {
2
+ const intervalMs = Math.max(0, Math.floor(options.parentUpgradeIntervalMs ?? 0));
3
+ const minLevelGain = Math.max(1, Math.floor(options.parentUpgradeMinLevelGain ?? 1));
4
+ const rootMinLevelGain = Math.max(minLevelGain, Math.floor(options.parentUpgradeRootMinLevelGain ?? 3));
5
+ const rootMinSubtreeGain = Math.max(minLevelGain, Math.floor(options.parentUpgradeRootMinSubtreeGain ?? rootMinLevelGain));
6
+ const minFreeSlots = Math.max(0, Math.floor(options.parentUpgradeMinFreeSlots ?? 8));
7
+ const maxChildLoadRatioRaw = Number(options.parentUpgradeMaxChildLoadRatio ?? 0.5);
8
+ const maxChildLoadRatio = Number.isFinite(maxChildLoadRatioRaw)
9
+ ? Math.max(0, maxChildLoadRatioRaw)
10
+ : 0.5;
11
+ const rootMaxChildLoadRatioRaw = Number(options.parentUpgradeRootMaxChildLoadRatio ??
12
+ Math.min(maxChildLoadRatio, 0.4));
13
+ const rootMaxChildLoadRatio = Number.isFinite(rootMaxChildLoadRatioRaw)
14
+ ? Math.max(0, rootMaxChildLoadRatioRaw)
15
+ : Math.min(maxChildLoadRatio, 0.4);
16
+ const staleRootProbeProbabilityRaw = Number(options.parentUpgradeStaleRootProbeProbability ?? 0.015625);
17
+ const staleRootProbeProbability = Number.isFinite(staleRootProbeProbabilityRaw)
18
+ ? Math.max(0, Math.min(1, staleRootProbeProbabilityRaw))
19
+ : 0.015625;
20
+ const cooldownMs = Math.max(0, Math.floor(options.parentUpgradeCooldownMs ?? 5_000));
21
+ const failedBackoffMinMs = Math.max(0, Math.floor(options.parentUpgradeFailedBackoffMinMs ?? cooldownMs));
22
+ const probeRejectCooldownMs = Math.max(0, Math.floor(options.parentProbeRejectCooldownMs ?? 10_000));
23
+ const quietMs = Math.max(0, Math.floor(options.parentUpgradeQuietMs ?? 5_000));
24
+ const mode = options.parentUpgradeMode === "probe" ||
25
+ options.parentUpgradeMode === "shadow"
26
+ ? options.parentUpgradeMode
27
+ : options.parentUpgradeMode === "direct"
28
+ ? "direct"
29
+ : "shadow";
30
+ return {
31
+ intervalMs,
32
+ leafOnly: options.parentUpgradeLeafOnly !== false,
33
+ minLevelGain,
34
+ rootMinLevelGain,
35
+ rootMinSubtreeGain,
36
+ nonRootMinLevelGain: Math.max(minLevelGain, Math.floor(options.parentUpgradeNonRootMinLevelGain ?? 2)),
37
+ minFreeSlots,
38
+ rootMinFreeSlots: Math.max(0, Math.floor(options.parentUpgradeRootMinFreeSlots ?? minFreeSlots)),
39
+ maxChildLoadRatio,
40
+ rootMaxChildLoadRatio,
41
+ staleRootProbeProbability,
42
+ cooldownMs,
43
+ quietMs,
44
+ repairQuietMs: Math.max(0, Math.floor(options.parentUpgradeRepairQuietMs ?? quietMs)),
45
+ maxPerPeer: Math.max(0, Math.floor(options.parentUpgradeMaxPerPeer ?? 2)),
46
+ repairGuard: options.parentUpgradeRepairGuard !== false,
47
+ dataGuard: options.parentUpgradeDataGuard !== false,
48
+ mode,
49
+ verifyStaleRootCapacity: options.parentUpgradeVerifyStaleRootCapacity ?? (mode === "shadow"),
50
+ failedBackoff: {
51
+ minMs: failedBackoffMinMs,
52
+ maxMs: Math.max(failedBackoffMinMs, Math.floor(options.parentUpgradeFailedBackoffMaxMs ?? 60_000)),
53
+ },
54
+ probe: {
55
+ timeoutMs: Math.max(1, Math.floor(options.parentProbeTimeoutMs ?? 500)),
56
+ maxPerRound: Math.max(1, Math.floor(options.parentProbeMaxPerRound ?? 2)),
57
+ maxLagMessages: Math.max(0, Math.floor(options.parentProbeMaxLagMessages ?? 0)),
58
+ rejectCooldownMs: probeRejectCooldownMs,
59
+ rejectCooldownMaxMs: Math.max(probeRejectCooldownMs, Math.floor(options.parentProbeRejectCooldownMaxMs ?? 60_000)),
60
+ },
61
+ shadow: {
62
+ observeMs: Math.max(0, Math.floor(options.parentShadowObserveMs ?? 2_000)),
63
+ minObservations: Math.max(1, Math.floor(options.parentShadowMinObservations ?? 2)),
64
+ dualPathMs: Math.max(0, Math.floor(options.parentShadowDualPathMs ?? (mode === "shadow" ? 5_000 : 0))),
65
+ dualPathMinMessages: Math.max(1, Math.floor(options.parentShadowDualPathMinMessages ??
66
+ (mode === "shadow" ? 32 : 1))),
67
+ },
68
+ };
69
+ };
70
+ export const evaluateParentUpgradeGate = (state, options) => {
71
+ if (options.leafOnly && state.children.size > 0) {
72
+ return { run: false, reason: "leaf" };
73
+ }
74
+ if (options.repairGuard && state.missingSeqs.size > 0) {
75
+ return { run: false, reason: "repair" };
76
+ }
77
+ if (options.repairGuard &&
78
+ options.repairQuietMs > 0 &&
79
+ state.lastRepairSentAt > 0 &&
80
+ options.now - state.lastRepairSentAt < options.repairQuietMs) {
81
+ return { run: false, reason: "repair" };
82
+ }
83
+ if (options.dataGuard &&
84
+ !(state.endSeqExclusive > 0 && options.endedAndComplete)) {
85
+ return { run: false, reason: "data" };
86
+ }
87
+ if (options.dataGuard && state.parentUpgradeRetryAfterSeq >= 0) {
88
+ if (state.maxSeqSeen <= state.parentUpgradeRetryAfterSeq) {
89
+ return { run: false, reason: "data" };
90
+ }
91
+ state.parentUpgradeRetryAfterSeq = -1;
92
+ }
93
+ if (options.maxPerPeer > 0 &&
94
+ state.parentUpgradeCount >= options.maxPerPeer) {
95
+ return { run: false, reason: "budget" };
96
+ }
97
+ if (state.parentUpgradeBackoffUntil > options.now) {
98
+ return { run: false, reason: "cooldown" };
99
+ }
100
+ if (options.cooldownMs > 0 &&
101
+ state.parentUpgradeLastAt > 0 &&
102
+ options.now - state.parentUpgradeLastAt < options.cooldownMs) {
103
+ return { run: false, reason: "cooldown" };
104
+ }
105
+ const lastParentUpgradeActivityAt = state.lastParentUpgradeActivityAt ?? state.lastParentDataAt;
106
+ if (options.quietMs > 0 &&
107
+ lastParentUpgradeActivityAt > 0 &&
108
+ options.now - lastParentUpgradeActivityAt < options.quietMs) {
109
+ return { run: false, reason: "quiet" };
110
+ }
111
+ return { run: true };
112
+ };
113
+ export const recordParentUpgradeSkip = (metrics, reason) => {
114
+ switch (reason) {
115
+ case "leaf":
116
+ metrics.reparentUpgradeSkipLeaf += 1;
117
+ break;
118
+ case "repair":
119
+ metrics.reparentUpgradeSkipRepair += 1;
120
+ break;
121
+ case "data":
122
+ metrics.reparentUpgradeSkipData += 1;
123
+ break;
124
+ case "cooldown":
125
+ metrics.reparentUpgradeSkipCooldown += 1;
126
+ break;
127
+ case "quiet":
128
+ metrics.reparentUpgradeSkipQuiet += 1;
129
+ break;
130
+ case "budget":
131
+ metrics.reparentUpgradeSkipBudget += 1;
132
+ break;
133
+ }
134
+ };
135
+ //# sourceMappingURL=fanout-tree-parent-upgrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout-tree-parent-upgrade.js","sourceRoot":"","sources":["../../src/fanout-tree-parent-upgrade.ts"],"names":[],"mappings":"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"}