@cotal-ai/lang 0.0.0 → 0.15.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 (51) hide show
  1. package/LICENSE +202 -0
  2. package/dist/dryrun.d.ts +106 -0
  3. package/dist/dryrun.d.ts.map +1 -0
  4. package/dist/dryrun.js +172 -0
  5. package/dist/dryrun.js.map +1 -0
  6. package/dist/duration.d.ts +12 -0
  7. package/dist/duration.d.ts.map +1 -0
  8. package/dist/duration.js +34 -0
  9. package/dist/duration.js.map +1 -0
  10. package/dist/effects.d.ts +231 -0
  11. package/dist/effects.d.ts.map +1 -0
  12. package/dist/effects.js +64 -0
  13. package/dist/effects.js.map +1 -0
  14. package/dist/errors.d.ts +141 -0
  15. package/dist/errors.d.ts.map +1 -0
  16. package/dist/errors.js +163 -0
  17. package/dist/errors.js.map +1 -0
  18. package/dist/grammar.d.ts +28 -0
  19. package/dist/grammar.d.ts.map +1 -0
  20. package/dist/grammar.js +793 -0
  21. package/dist/grammar.js.map +1 -0
  22. package/dist/index.d.ts +23 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +23 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/interpret.d.ts +89 -0
  27. package/dist/interpret.d.ts.map +1 -0
  28. package/dist/interpret.js +1117 -0
  29. package/dist/interpret.js.map +1 -0
  30. package/dist/journal.d.ts +177 -0
  31. package/dist/journal.d.ts.map +1 -0
  32. package/dist/journal.js +198 -0
  33. package/dist/journal.js.map +1 -0
  34. package/dist/keys.d.ts +87 -0
  35. package/dist/keys.d.ts.map +1 -0
  36. package/dist/keys.js +105 -0
  37. package/dist/keys.js.map +1 -0
  38. package/dist/primitives.d.ts +84 -0
  39. package/dist/primitives.d.ts.map +1 -0
  40. package/dist/primitives.js +265 -0
  41. package/dist/primitives.js.map +1 -0
  42. package/dist/sim.d.ts +101 -0
  43. package/dist/sim.d.ts.map +1 -0
  44. package/dist/sim.js +192 -0
  45. package/dist/sim.js.map +1 -0
  46. package/dist/values.d.ts +35 -0
  47. package/dist/values.d.ts.map +1 -0
  48. package/dist/values.js +0 -0
  49. package/dist/values.js.map +1 -0
  50. package/package.json +27 -7
  51. package/README.md +0 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpret.js","sourceRoot":"","sources":["../src/interpret.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAkB,MAAM,WAAW,CAAC;AACxG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAmB,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,SAAS,EACT,WAAW,EACX,qBAAqB,GAQtB,MAAM,cAAc,CAAC;AAItB,mGAAmG;AAEnG,MAAM,OAAO;IAEF;IACE;IAFX,YACS,KAAc,EACZ,OAAgB;QADlB,UAAK,GAAL,KAAK,CAAS;QACZ,YAAO,GAAP,OAAO,CAAS;IACxB,CAAC;CACL;AAED,MAAM,GAAG;IAEc;IADJ,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACpD,YAAqB,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAE3C,OAAO,CAAC,IAAY,EAAE,KAAc,EAAE,OAAgB;QACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC;IAEO,IAAI,CAAC,IAAY;QACvB,KAAK,IAAI,CAAC,GAAe,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,SAAS;YAAE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,iBAAiB,CAAC,CAAC;QAC/E,OAAO,CAAC,CAAC,KAAK,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;IACvC,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAc;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,SAAS;YAAE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,iBAAiB,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,CAAC,OAAO;YAAE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,oBAAoB,CAAC,CAAC;QAC7E,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;IAClB,CAAC;CACF;AAED,2FAA2F;AAC3F,MAAM,OAAO,YAAa,SAAQ,KAAK;IAE1B;IADX,YACW,IAAY,EACrB,OAAe;QAEf,KAAK,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;QAHnB,SAAI,GAAJ,IAAI,CAAQ;QAIrB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAUD,MAAM,MAAM,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAE9C,wGAAwG;AAExG,MAAM,MAAM;IACV,SAAS,GAAG,KAAK,CAAC;IAClB,MAAM,CAAU;IACC,SAAS,GAAiC,EAAE,CAAC;IAE9D,QAAQ,CAAC,EAA4B;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS;YAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK;QACH,MAAM,CAAC,GAAG,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS;YAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,kBAAkB,CAAC,CAAC;;YAC3D,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,KAAK;IAEE;IACA;IACA;IAHX,YACW,IAAc,EACd,KAAe,EACf,MAAc;QAFd,SAAI,GAAJ,IAAI,CAAU;QACd,UAAK,GAAL,KAAK,CAAU;QACf,WAAM,GAAN,MAAM,CAAQ;IACtB,CAAC;IAEJ,MAAM,CAAC,IAAe,EAAE,IAAmB,EAAE,UAAkB,EAAE,SAAiB;QAChF,OAAO,IAAI,KAAK,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,EACnD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EACjB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CACpB,CAAC;IACJ,CAAC;CACF;AAkDD,2FAA2F;AAC3F,MAAM,OAAO,aAAc,SAAQ,KAAK;IAE3B;IACA;IACA;IAHX,YACW,OAAe,EACf,YAAoB,EACpB,WAAmB;QAE5B,KAAK,CACH,mCAAmC,OAAO,uCAAuC,YAAY,uBAAuB,WAAW,+KAA+K,OAAO,gHAAgH,CACta,CAAC;QANO,YAAO,GAAP,OAAO,CAAQ;QACf,iBAAY,GAAZ,YAAY,CAAQ;QACpB,gBAAW,GAAX,WAAW,CAAQ;QAK5B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,WAAW;IAWJ;IACA;IACA;IAZF,OAAO,CAAU;IACjB,IAAI,CAAO;IACZ,WAAW,GAAG,CAAC,CAAC;IACP,OAAO,CAAS;IACzB,KAAK,GAAG,CAAC,CAAC;IACV,SAAS,CAAS;IACT,UAAU,CAAS;IACnB,UAAU,CAAS;IAEpC,YACW,GAAY,EACZ,OAAmB,EACnB,WAAmB;QAFnB,QAAG,GAAH,GAAG,CAAS;QACZ,YAAO,GAAP,OAAO,CAAY;QACnB,gBAAW,GAAX,WAAW,CAAQ;QAE5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,CAAC;IAED,gGAAgG;IAEhG;;;;;;OAMG;IACK,IAAI,CAAC,KAAY;QACvB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAChB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACjC,MAAM,IAAI,YAAY,CACpB,OAAO,EACP,gCAAgC,IAAI,CAAC,UAAU,mRAAmR,CACnU,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAAY;QAChC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS;YAAE,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC;IACtF,CAAC;IAED,gGAAgG;IAEhG;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CACjB,IAAgB,EAChB,IAAY,EACZ,WAAoB,EACpB,OAAoE,EACpE,KAAY;QAEZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAEpD,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,KAAK,QAAQ;gBACX,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS;oBAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACpF,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YAC9B,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS;oBAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACpF,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAmB,CAAC;gBAC5C,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAC7D,CAAC;YACD,KAAK,kBAAkB;gBACrB,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;YACvE,KAAK,UAAU;gBACb,MAAM,IAAI,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YACzF,KAAK,SAAS,CAAC;YACf,KAAK,MAAM;gBACT,MAAM;QACV,CAAC;QAED,2FAA2F;QAC3F,gFAAgF;QAChF,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,YAAY,CACpB,OAAO,EACP,oCAAoC,IAAI,CAAC,OAAO,qFAAqF,CACtI,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,8FAA8F;QAC9F,4FAA4F;QAC5F,4FAA4F;QAC5F,8FAA8F;QAC9F,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACpH,MAAM,KAAK,GAAG,QAAQ,EAAE,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACnF,+FAA+F;QAC/F,gGAAgG;QAChG,wFAAwF;QACxF,8FAA8F;QAC9F,uCAAuC;QACvC,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,GAAG,GAAkB;YACzB,GAAG;YACH,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,yFAAyF;YACzF,2FAA2F;YAC3F,4EAA4E;YAC5E,SAAS,EAAE,KAAK;YAChB,OAAO;YACP,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACnC,CAAC;SACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC7C,eAAe,CAAC,MAAM,EAAE,iBAAiB,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAChF,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YAC3C,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC3D,MAAM,CAAC,CAAC;YACV,CAAC;YACD,6FAA6F;YAC7F,8FAA8F;YAC9F,wFAAwF;YACxF,0FAA0F;YAC1F,oFAAoF;YACpF,MAAM,MAAM,GAAI,CAAwB,CAAC,IAAI,CAAC;YAC9C,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YACtF,MAAM,KAAK,GACT,CAAC,YAAY,WAAW;gBACtB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;gBAC7G,CAAC,CAAC,OAAO,KAAK,IAAI;oBAChB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAG,CAAW,CAAC,OAAO,EAAE;oBACzE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;YAChF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/D,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM,CAAC,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,kGAAkG;IAElG,KAAK,CAAC,QAAQ,CAAC,IAAa,EAAE,GAAQ,EAAE,KAAY;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,KAAK,CAAC;QAChC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,KAAK,YAAY;gBACf,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC;YACtC,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAmB,CAAC;gBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAwB,CAAC;gBAC5C,IAAI,GAAG,GAAG,EAAE,CAAC;gBACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1C,GAAG,IAAM,MAAM,CAAC,CAAC,CAAa,CAAC,KAA4B,CAAC,MAAM,CAAC;oBACnE,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM;wBAAE,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAY,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC5F,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,GAAG,GAAc,EAAE,CAAC;gBAC1B,KAAK,MAAM,EAAE,IAAK,IAAI,CAAC,QAAsB,IAAI,EAAE,EAAE,CAAC;oBACpD,IAAI,EAAE,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;wBAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAmB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;wBACvE,GAAG,CAAC,IAAI,CAAC,GAAI,MAAoB,CAAC,CAAC;oBACrC,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;oBAChD,CAAC;gBACH,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,GAAG,GAA4B,EAAE,CAAC;gBACxC,KAAK,MAAM,CAAC,IAAK,IAAI,CAAC,UAAwB,IAAI,EAAE,EAAE,CAAC;oBACrD,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;wBAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAmB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;wBAC3E,SAAS;oBACX,CAAC;oBACD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAc,CAAC;oBAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAE,GAAG,CAAC,IAAe,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAClF,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAiB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACpE,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;wBAAE,OAAO,SAAS,CAAC;oBAC7C,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,0BAA0B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3E,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI;oBACjC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAmB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBACnE,CAAC,CAAG,IAAI,CAAC,QAAoB,CAAC,IAAe,CAAC;gBAChD,OAAQ,GAA+B,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAmB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACpE,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACtB,KAAK,GAAG;wBACN,OAAO,CAAC,CAAC,CAAC;oBACZ,KAAK,GAAG;wBACN,OAAO,CAAE,CAAY,CAAC;oBACxB,KAAK,GAAG;wBACN,OAAO,CAAE,CAAY,CAAC;oBACxB,KAAK,QAAQ;wBACX,OAAO,OAAO,CAAC,CAAC;oBAClB;wBACE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,8BAA8B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAe,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAChE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACjE,OAAO,WAAW,CAAC,IAAI,CAAC,QAAkB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAe,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAChE,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACtB,KAAK,IAAI;wBACP,OAAQ,CAAa,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrF,KAAK,IAAI;wBACP,OAAQ,CAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBACrF,KAAK,IAAI;wBACP,iFAAiF;wBACjF,wEAAwE;wBACxE,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;4BAClC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAgB,EAAE,GAAG,EAAE,KAAK,CAAC;4BACxD,CAAC,CAAC,CAAC,CAAC;oBACR;wBACE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,gCAAgC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7F,CAAC;YACH,CAAC;YACD,KAAK,uBAAuB;gBAC1B,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAe,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC5D,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAqB,EAAE,GAAG,EAAE,KAAK,CAAC;oBAC7D,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAoB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACjE,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACrE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAe,CAAC;gBAClC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC/B,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,yCAAyC,CAAC,CAAC;gBAC7E,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAc,EAAE,KAAK,CAAC,CAAC;gBACpC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,KAAK,iBAAiB;gBACpB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAmB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,KAAK,yBAAyB,CAAC;YAC/B,KAAK,oBAAoB;gBACvB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACtC,KAAK,gBAAgB;gBACnB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3C;gBACE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,0BAA0B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,YAAY,CAAC,IAAa,EAAE,OAAY;QACtC,MAAM,MAAM,GAAI,IAAI,CAAC,MAAoB,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAe,CAAC;QAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC;QACxD,OAAO,KAAK,EAAE,KAAY,EAAE,IAAe,EAAoB,EAAE;YAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,gBAAgB;gBAAE,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACpD,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAgB,EAChB,KAAc,EACd,GAAQ,EACR,KAAY,EACZ,OAAgB;QAEhB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,YAAY;gBACf,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBACpD,OAAO;YACT,KAAK,mBAAmB;gBACtB,MAAM,IAAI,CAAC,WAAW,CACpB,OAAO,CAAC,IAAe,EACvB,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EACvF,GAAG,EACH,KAAK,EACL,OAAO,CACR,CAAC;gBACF,OAAO;YACT,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;gBACrD,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,UAAuB,EAAE,CAAC;oBAChD,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;wBAC7B,MAAM,IAAI,GAA4B,EAAE,CAAC;wBACzC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;4BAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gCAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC9E,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAmB,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;wBACzE,SAAS;oBACX,CAAC;oBACD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAc,CAAC;oBAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAE,GAAG,CAAC,IAAe,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAClF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjB,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC7E,CAAC;gBACD,OAAO;YACT,CAAC;YACD,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAc,CAAC;gBACvC,MAAM,GAAG,GAAG,OAAO,CAAC,QAA8B,CAAC;gBACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS;wBAAE,SAAS;oBAC9C,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;wBAC9B,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,QAAmB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;wBAClF,MAAM;oBACR,CAAC;oBACD,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO;YACT,CAAC;YACD;gBACE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,+BAA+B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,gGAAgG;IAEhG,KAAK,CAAC,IAAI,CAAC,IAAa,EAAE,GAAQ,EAAE,KAAY;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAiB,CAAC;QACtC,MAAM,QAAQ,GAAI,IAAI,CAAC,SAAuB,IAAI,EAAE,CAAC;QAErD,6FAA6F;QAC7F,6FAA6F;QAC7F,oBAAoB;QACpB,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,UAAU,CAAC,MAAM,CAAC,IAAc,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAc,CAAC,EAAE,CAAC;YACvH,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,IAAI,GAAc,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAmB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAe,CAAC,CAAC;;gBACjH,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,sDAAsD,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,MAAO,EAA0D,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACxF,CAAC;IAEO,MAAM,CAAC,GAAY,EAAE,GAAW;QACtC,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,GAA+B,CAAC,GAAG,CAAC,CAAC;IACrG,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,QAAmB,EAAE,GAAQ,EAAE,KAAY;QAC3E,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,qBAAqB,CAAC,CAAC;QAEtF,4FAA4F;QAC5F,oEAAoE;QACpE,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAE7E,MAAM,IAAI,GAAc,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAuB,CAAC;QACpG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAErC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,wFAAwF;gBACxF,yFAAyF;gBACzF,2FAA2F;gBAC3F,wFAAwF;gBACxF,+DAA+D;gBAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,OAAO,GACX,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;gBACjG,MAAM,KAAK,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAwB,CAAC;gBACxH,MAAM,OAAO,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAwB,CAAC;gBAC5H,sFAAsF;gBACtF,uFAAuF;gBACvF,uFAAuF;gBACvF,2FAA2F;gBAC3F,yFAAyF;gBACzF,MAAM,GAAG,GAAG;oBACV,OAAO;oBACP,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3G,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/F,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7G,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,SAAS;wBAC3C,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAA4B,EAAE;wBACrE,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,SAAS;wBAC7C,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAA4B,EAAE;wBACzE,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnH,CAAC;gBACF,OAAO,MAAM,IAAI,CAAC,aAAa,CAC7B,OAAO,EACP,QAAQ,IAAI,OAAO;gBACnB,wFAAwF;gBACxF,sFAAsF;gBACtF,4CAA4C;gBAC5C;oBACE,OAAO;oBACP,KAAK,EAAE,KAAK,IAAI,IAAI;oBACpB,OAAO,EAAE,OAAO,IAAI,IAAI;oBACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;oBAC9B,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;oBACtB,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;iBAC7C,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAChC,KAAK,CACN,CAAC;YACJ,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAqB,CAAC;gBACtD,wFAAwF;gBACxF,wFAAwF;gBACxF,0FAA0F;gBAC1F,2FAA2F;gBAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAuB,CAAC;gBACpE,OAAO,MAAM,IAAI,CAAC,aAAa,CAC7B,MAAM,EACN,QAAkB,EAClB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAAE,EAClD,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EACtF,KAAK,CACN,CAAC;YACJ,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAqB,CAAC;gBACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC1C,oFAAoF;gBACpF,0FAA0F;gBAC1F,8DAA8D;gBAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAuB,CAAC;gBACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAuB,CAAC;gBACpE,OAAO,MAAM,IAAI,CAAC,aAAa,CAC7B,KAAK,EACL,QAAkB,EAClB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAAE,EACtG,CAAC,GAAG,EAAE,EAAE,CACN,OAAO,CAAC,GAAG,CACT;oBACE,KAAK;oBACL,MAAM;oBACN,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/C,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChD,EACD,GAAG,CACJ,EACH,KAAK,CACN,CAAC;YACJ,CAAC;YACD,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;gBACjC,0FAA0F;gBAC1F,uFAAuF;gBACvF,2FAA2F;gBAC3F,yEAAyE;gBACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAgD,CAAC;gBAC7F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC1C,2FAA2F;gBAC3F,qEAAqE;gBACrE,uFAAuF;gBACvF,wFAAwF;gBACxF,yFAAyF;gBACzF,yFAAyF;gBACzF,wFAAwF;gBACxF,2DAA2D;gBAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAuB,CAAC;gBACpE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAuB,CAAC;gBAC1D,MAAM,OAAO,GAAG;oBACd,MAAM;oBACN,MAAM,EAAE,MAAM,IAAI,IAAI;oBACtB,OAAO,EAAE,SAAS,IAAI,IAAI;oBAC1B,GAAG,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnE,CAAC;gBACF,OAAO,qBAAqB,CAC1B,CAAC,MAAM,IAAI,CAAC,aAAa,CACzB,YAAY,EACZ,QAAkB,EAClB,OAAO,EACP,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;oBACvB,gFAAgF;oBAChF,sFAAsF;oBACtF,qFAAqF;oBACrF,kFAAkF;oBAClF,+CAA+C;oBAC/C,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;oBACtF,MAAM,GAAG,GAAG;wBACV,MAAM;wBACN,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC3C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1D,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/C,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC5C,CAAC;oBACF,uFAAuF;oBACvF,oFAAoF;oBACpF,kFAAkF;oBAClF,kFAAkF;oBAClF,MAAM,QAAQ,GAAG,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;oBAE1F,qEAAqE;oBACrE,EAAE;oBACF,sFAAsF;oBACtF,oFAAoF;oBACpF,iFAAiF;oBACjF,uFAAuF;oBACvF,uFAAuF;oBACvF,uFAAuF;oBACvF,4DAA4D;oBAC5D,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;wBACpB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBACpD,OAAO;4BACL,GAAG,GAAG;4BACN,QAAQ,EAAE;gCACR,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE;gCAC3D,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;6BAC3F;yBACF,CAAC;oBACJ,CAAC;oBAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBACjD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;wBAC3D,sFAAsF;wBACtF,oFAAoF;wBACpF,uDAAuD;wBACvD,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBAC9G,CAAC;oBACD,qFAAqF;oBACrF,qFAAqF;oBACrF,uFAAuF;oBACvF,qFAAqF;oBACrF,EAAE;oBACF,6EAA6E;oBAC7E,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;oBAC3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC7F,sFAAsF;oBACtF,0EAA0E;oBAC1E,OAAO;wBACL,GAAG,MAAM;wBACT,QAAQ,EAAE;4BACR,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;4BAC5D,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;yBAC7E;qBACF,CAAC;gBACJ,CAAC,EACD,KAAK,CACJ,CAAkB,EACnB,QAAQ,CACT,CAAC;YACJ,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;gBACnC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,2CAA2C;gBACpE,uFAAuF;gBACvF,sFAAsF;gBACtF,sFAAsF;gBACtF,qFAAqF;gBACrF,gCAAgC;gBAChC,OAAO,MAAM,IAAI,CAAC,aAAa,CAC7B,OAAO,EACP,QAAQ,IAAI,EAAE,EACd,EAAE,QAAQ,EAAE,EACZ,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,EACzC,KAAK,CACN,CAAC;YACJ,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAoB,CAAC;gBACrD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAuB,CAAC;gBAClE,0FAA0F;gBAC1F,4FAA4F;gBAC5F,2FAA2F;gBAC3F,2FAA2F;gBAC3F,gBAAgB;gBAChB,OAAO,MAAM,IAAI,CAAC,aAAa,CAC7B,MAAM,EACN,QAAQ,IAAI,EAAE,EACd,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,EACnC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EACpF,KAAK,CACN,CAAC;YACJ,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAuB,CAAC;gBACzD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAA0C,CAAC;gBAC1E,OAAO,MAAM,IAAI,CAAC,aAAa,CAC7B,QAAQ,EACR,QAAQ,IAAI,EAAE,EACd,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAC5C,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAC9C,KAAK,CACN,CAAC;YACJ,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAqB,CAAC;gBACtD,OAAO,MAAM,IAAI,CAAC,aAAa,CAC7B,SAAS,EACT,QAAQ,IAAI,EAAE,EACd,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EACtB,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,EACxC,KAAK,CACN,CAAC;YACJ,CAAC;YACD;gBACE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,yCAAyC,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,QAAmB,EAAE,GAAQ,EAAE,KAAY;QACvE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,qBAAqB,CAAC,CAAC;QACtF,MAAM,SAAS,GAAG,IAAiB,CAAC;QAEpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAY,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACzF,MAAM,SAAS,GAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAwB,IAAI,IAAI,CAAC;QAC3E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE9D,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3C,MAAM,OAAO,GAA6D,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC5F,CAAC,CAAE,KAA0D,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7F,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAqE,CAAC,CAAC;YAE1F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;YACvF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC;YAEvE,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC3C,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;wBACzB,CAAC,CAAC,OAAO;wBACT,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,uDAAuD;oBACvD,KAAK,MAAM,CAAC,IAAI,MAAM;wBAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;oBACnE,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAClC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC7C,MAAM,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;YAED,2FAA2F;YAC3F,uFAAuF;YACvF,2FAA2F;YAC3F,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CACxF,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,MAAM;gBAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;YACzE,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAClC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7C,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,KAAkB,CAAC;YACjC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAY,EAAE,GAAG,EAAE,KAAK,CAAC,CAG9C,CAAC;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAA+D,CAAC;YAEpG,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAU,CAAC;gBACf,IAAI,KAAK,KAAK,SAAS;oBAAE,CAAC,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;qBACnD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAQ,IAAyB,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBACxG,CAAC,GAAI,IAAuB,CAAC,EAAE,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,YAAY,CACpB,OAAO,EACP,mLAAmL,CACpL,CAAC;gBACJ,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;gBACnD,MAAM,IAAI,YAAY,CACpB,OAAO,EACP,0CAA0C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,kSAAkS,CAClW,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7F,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7C,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,yCAAyC,CAAC,CAAC;IACpF,CAAC;IAED,mGAAmG;IAEnG,KAAK,CAAC,YAAY,CAAC,KAAc,EAAE,GAAQ,EAAE,KAAY;QACvD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAI,KAAK,CAAC,IAAkB,IAAI,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACrC,KAAK,CAAC,OAAO,CAAG,CAAC,CAAC,EAAc,CAAC,IAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAa,EAAE,GAAQ,EAAE,KAAY;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,KAAK,CAAC;QAChC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,qBAAqB;gBACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAqB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC5D,OAAO,MAAM,CAAC;YAChB,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;gBACpC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAyB,EAAE,CAAC;oBAC/C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAe,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBACtH,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAa,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,KAAK,qBAAqB;gBACxB,OAAO,MAAM,CAAC,CAAC,0BAA0B;YAC3C,KAAK,gBAAgB;gBACnB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnD,KAAK,aAAa;gBAChB,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAe,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC1D,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAqB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;oBAC5D,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAoB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAChE,KAAK,gBAAgB;gBACnB,SAAS,CAAC;oBACR,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAe,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;wBAAE,OAAO,MAAM,CAAC;oBAC5E,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAe,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC/D,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;wBAAE,OAAO,MAAM,CAAC;oBACtC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;wBAAE,OAAO,CAAC,CAAC;gBACpC,CAAC;YACH,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;oBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAe,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5G,SAAS,CAAC;oBACR,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAe,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;wBAClH,OAAO,MAAM,CAAC;oBAChB,CAAC;oBACD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAe,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBACnE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;wBAAE,OAAO,MAAM,CAAC;oBACtC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;wBAAE,OAAO,CAAC,CAAC;oBAClC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;wBAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBACrH,CAAC;YACH,CAAC;YACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAc,CAAC;gBACvF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAe,CAAC;oBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC,CAAG,IAAI,CAAC,YAA0B,CAAC,CAAC,CAAa,CAAC,EAAa,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC3H,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;oBAC1E,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAe,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBACnE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;wBAAE,OAAO,MAAM,CAAC;oBACtC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;wBAAE,OAAO,CAAC,CAAC;gBACpC,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,KAAK,iBAAiB;gBACpB,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAmB,EAAE,GAAG,EAAE,KAAK,CAAC;iBACrI,CAAC;YACJ,KAAK,gBAAgB;gBACnB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC3B,KAAK,mBAAmB;gBACtB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC9B,KAAK,gBAAgB;gBACnB,MAAM,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAmB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAClE,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBAChE,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;wBAAE,OAAO,CAAC,CAAC;gBACpC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,oFAAoF;oBACpF,sFAAsF;oBACtF,IAAI,CAAC,YAAY,SAAS;wBAAE,MAAM,CAAC,CAAC;oBACpC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAyB,CAAC;oBACnD,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS;wBAAE,MAAM,CAAC,CAAC;oBAC/D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC9B,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAClE,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBAClG,CAAC;oBACD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAe,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAChF,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;wBAAE,OAAO,CAAC,CAAC;gBACpC,CAAC;wBAAS,CAAC;oBACT,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;wBAC5D,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAoB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAuB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAkB,CAAC;gBACtC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;4BAAE,OAAO,GAAG,IAAI,CAAC;6BACvD,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAe,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC;4BAAE,OAAO,GAAG,IAAI,CAAC;oBACrG,CAAC;oBACD,IAAI,CAAC,OAAO;wBAAE,SAAS;oBACvB,KAAK,MAAM,CAAC,IAAK,CAAC,CAAC,UAAwB,IAAI,EAAE,EAAE,CAAC;wBAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;wBACrD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;4BAAE,OAAO,MAAM,CAAC;wBACzC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;4BAAE,OAAO,IAAI,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,KAAK,gBAAgB;gBACnB,OAAO,MAAM,CAAC;YAChB;gBACE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,yBAAyB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;CACF;AAED,qGAAqG;AAErG,SAAS,WAAW,CAAC,EAAU,EAAE,CAAU,EAAE,CAAU;IACrD,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACpB,KAAK,GAAG;YACN,OAAQ,CAAY,GAAI,CAAY,CAAC;QACvC,KAAK,IAAI;YACP,OAAQ,CAAY,IAAK,CAAY,CAAC;QACxC,KAAK,GAAG;YACN,OAAQ,CAAY,GAAI,CAAY,CAAC;QACvC,KAAK,IAAI;YACP,OAAQ,CAAY,IAAK,CAAY,CAAC;QACxC,KAAK,GAAG;YACN,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;gBACnD,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACvB,CAAC,CAAE,CAAY,GAAI,CAAY,CAAC;QACpC,KAAK,GAAG;YACN,OAAQ,CAAY,GAAI,CAAY,CAAC;QACvC,KAAK,GAAG;YACN,OAAQ,CAAY,GAAI,CAAY,CAAC;QACvC,KAAK,GAAG;YACN,OAAQ,CAAY,GAAI,CAAY,CAAC;QACvC,KAAK,GAAG;YACN,OAAQ,CAAY,GAAI,CAAY,CAAC;QACvC;YACE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,SAAS,cAAc,CAAC,CAAU;IAChC,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjI,CAAC;IACD,IAAI,CAAC,YAAY,YAAY;QAAE,OAAO,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACxG,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAA4B,CAAC;IAC7E,OAAO,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,wGAAwG;AAExG;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,MAAc,EAAE,OAAmB;IAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAc,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAErE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC;IAC3F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAEnC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,GAAc,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACzE,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAClE,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW;QACX,KAAK,EAAE,MAAM,CAAC,SAAS;KACxB,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAc,EACd,OAAgB,EAChB,OAAoC;IAEpC,OAAO,CAAC,aAAa,EAAE,CAAC;IACxB,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CAAC,GAAQ,EAAE,MAAmB,EAAE,SAAgB;IACrE,MAAM,EAAE,GACN,CAAC,IAAgD,EAAE,EAAE,CACrD,KAAK,EAAE,KAAY,EAAE,IAAe,EAAoB,EAAE,CACxD,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEtB,+FAA+F;IAC/F,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5E,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAErG,oEAAoE;IACpE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAG,CAAC,CAAC,CAAC,CAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9G,GAAG,CAAC,OAAO,CACT,SAAS,EACT,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACX,MAAM,EAAE,GAAI,CAAC,CAAC,CAAC,CAAwB,CAAC,OAAO,CAAC;QAChD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;QACrD,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,EAAE;YACX,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAG,IAAI,CAAC,IAAyB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3E,CAAC;IACJ,CAAC,CAAC,EACF,KAAK,CACN,CAAC;IACF,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAG,CAAC,CAAC,CAAC,CAAwB,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAG,CAAC,CAAC,CAAC,CAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAExG,6FAA6F;IAC7F,gGAAgG;IAChG,kEAAkE;IAClE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5D,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/E,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpH,GAAG,CAAC,OAAO,CACT,MAAM,EACN,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAc,CAAC;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,EACF,KAAK,CACN,CAAC;IACF,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAE7E,8FAA8F;IAC9F,0EAA0E;IAC1E,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3E,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7E,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAW,EAAE,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/G,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAI,CAAC,CAAC,CAAC,CAAY,EAAE,GAAI,CAAC,CAAC,CAAC,CAAY,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3F,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAwB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9E,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAChG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxF,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3F,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAW,EAAE,CAAC,CAAC,CAAC,CAAuB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAClH,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAI,CAAC,CAAC,CAAC,CAAe,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACjF,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAc,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7E,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEpF,gFAAgF;IAChF,MAAM,MAAM,GACV,CAAC,IAAiH,EAAE,EAAE,CACtH,KAAK,EAAE,KAAY,EAAE,IAAe,EAAoB,EAAE,CACxD,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAc,EAAE,IAAI,CAAC,CAAC,CAAwD,CAAC,CAAC;IAE5G,GAAG,CAAC,OAAO,CACT,KAAK,EACL,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAc,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,EACF,KAAK,CACN,CAAC;IACF,GAAG,CAAC,OAAO,CACT,QAAQ,EACR,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAc,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,EACF,KAAK,CACN,CAAC;IACF,GAAG,CAAC,OAAO,CACT,MAAM,EACN,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,EACF,KAAK,CACN,CAAC;IACF,GAAG,CAAC,OAAO,CACT,MAAM,EACN,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QACvF,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,EACF,KAAK,CACN,CAAC;IACF,GAAG,CAAC,OAAO,CACT,OAAO,EACP,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC3F,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,EACF,KAAK,CACN,CAAC;IAEF,uBAAuB;IACvB,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACnF,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAY,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAY,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3E,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAY,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3E,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7F,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzF,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzF,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1G,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAI,CAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAI,CAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvE,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvE,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEzE,GAAG,CAAC,OAAO,CACT,QAAQ,EACR,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACX,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,EACF,KAAK,CACN,CAAC;IACF,GAAG,CAAC,OAAO,CACT,KAAK,EACL,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACd,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,EACF,KAAK,CACN,CAAC;IAEF,KAAK,SAAS,CAAC;AACjB,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * The step journal.
3
+ *
4
+ * Resume is not a cursor and not a fast-forward: it is re-running the program from the top with
5
+ * journalled effects returning recorded results, matched by key. That is precisely why
6
+ * out-of-order concurrency replays correctly, and it is the same thing as an effect handler's
7
+ * resume() implemented by re-running the deterministic prefix, which is why no continuation or VM
8
+ * state is ever serialized.
9
+ *
10
+ * The input hash is deliberately NOT part of the lookup key. It is compared after the entry is
11
+ * found, so a changed input is a diagnosable divergence naming the step, rather than a silent
12
+ * miss that quietly re-runs the effect and lets two versions of the truth coexist.
13
+ */
14
+ import type { EffectKind } from "./primitives.js";
15
+ import { type StepKey } from "./keys.js";
16
+ export type EntryState = "pending" | "settled";
17
+ export type EntryStatus = "ok" | "failed" | "cancelled";
18
+ export interface EntryError {
19
+ readonly code: string;
20
+ readonly kind: string;
21
+ readonly message: string;
22
+ readonly detail?: Readonly<Record<string, unknown>>;
23
+ }
24
+ export interface JournalEntry {
25
+ readonly v: 1;
26
+ /** Append order. For reading and rendering ONLY; matching never uses it. */
27
+ readonly seq: number;
28
+ readonly run: string;
29
+ readonly scope: string;
30
+ readonly kind: EffectKind;
31
+ readonly name: string;
32
+ readonly occurrence: number;
33
+ readonly inputHash: string;
34
+ /**
35
+ * The identity the handler submits under, written HERE at `begin` rather than reported back
36
+ * after the fact. Recovery reissues under it; `external` is what the handler learned and may be
37
+ * absent entirely if the crash came first.
38
+ */
39
+ readonly requestId?: string;
40
+ /**
41
+ * WHICH attempt {@link JournalEntry.requestId} names, counted from 0.
42
+ *
43
+ * The id alone is not enough to recover an escalation. An escalated checkpoint mints twice under
44
+ * one entry, and a resumed run that knows only the open id cannot tell whether the hop has been
45
+ * spent: it re-runs the live body, mints a second time under the id the far side already holds,
46
+ * and collects that mint's cached expiry as if it were a fresh observation. The index is what
47
+ * makes "complete the open attempt" expressible at all. Absent on an entry written before this
48
+ * rule, which reads as attempt 0 and is correct for every non-escalating effect.
49
+ */
50
+ readonly attempt?: number;
51
+ readonly state: EntryState;
52
+ readonly status?: EntryStatus;
53
+ readonly result?: unknown;
54
+ readonly error?: EntryError;
55
+ /** The external resource this effect bound, so a crash mid-effect is recoverable. */
56
+ readonly external?: Readonly<Record<string, unknown>>;
57
+ readonly startedAt: number;
58
+ readonly endedAt?: number;
59
+ }
60
+ /** What the interpreter should do when it reaches an effect. */
61
+ export type LookupVerdict =
62
+ /** Nothing recorded: perform the effect live. */
63
+ {
64
+ readonly verdict: "miss";
65
+ }
66
+ /** Recorded and successful: return the result, perform nothing. */
67
+ | {
68
+ readonly verdict: "replay";
69
+ readonly entry: JournalEntry;
70
+ }
71
+ /** Recorded as failed: throw the recorded error, perform nothing. */
72
+ | {
73
+ readonly verdict: "replay-failed";
74
+ readonly entry: JournalEntry;
75
+ }
76
+ /** Recorded as cancelled: re-raise cancellation in this branch. */
77
+ | {
78
+ readonly verdict: "replay-cancelled";
79
+ readonly entry: JournalEntry;
80
+ }
81
+ /** Started but never settled: re-bind to `entry.external` and await its terminal. */
82
+ | {
83
+ readonly verdict: "pending";
84
+ readonly entry: JournalEntry;
85
+ }
86
+ /** Recorded with different inputs: abort, mutate nothing, and report the diff. */
87
+ | {
88
+ readonly verdict: "diverged";
89
+ readonly entry: JournalEntry;
90
+ readonly recordedHash: string;
91
+ readonly programHash: string;
92
+ };
93
+ export interface JournalInit {
94
+ readonly run: string;
95
+ readonly entries?: readonly JournalEntry[];
96
+ /** Refuse to append. A migration's dry replay must never mutate the run it is checking. */
97
+ readonly readOnly?: boolean;
98
+ }
99
+ export declare class JournalReadOnlyError extends Error {
100
+ constructor(key: StepKey);
101
+ }
102
+ export declare class Journal {
103
+ readonly run: string;
104
+ readonly readOnly: boolean;
105
+ private readonly byKey;
106
+ private readonly order;
107
+ /** Every key the current replay has looked up. What is left over is an orphan. */
108
+ private readonly consumed;
109
+ constructor(init: JournalInit);
110
+ private static keyOf;
111
+ /**
112
+ * Look the step up and say what the interpreter should do. Marks the key consumed, which is
113
+ * what lets a migration tell "this step was removed" from "this step has not run yet".
114
+ */
115
+ lookup(key: StepKey, inputHash: string): LookupVerdict;
116
+ /** Append the `pending` half: the effect is about to be performed. */
117
+ begin(key: StepKey, inputHash: string, startedAt: number, requestId?: string): JournalEntry;
118
+ /** Record the external resource the handler created, before its terminal is awaited. */
119
+ /**
120
+ * Point the pending entry at a NEW open identity, before the work under it is issued.
121
+ *
122
+ * Escalation mints twice under one entry, so between the hops the row must name the attempt that
123
+ * is about to be open rather than the one that already settled. Without this a crash after the
124
+ * second mint leaves the far side holding work under an identity the journal never recorded, and
125
+ * recovery reissues the first attempt and gets its cached expiry.
126
+ *
127
+ * The INDEX moves with the id, and it is the half that recovery reads: an id says what to submit
128
+ * under, the index says how much of the chain is already spent.
129
+ */
130
+ reissueAs(key: StepKey, requestId: string, attempt: number): void;
131
+ bind(key: StepKey, external: Readonly<Record<string, unknown>>): void;
132
+ /** Append the `settled` half. */
133
+ settle(key: StepKey, outcome: {
134
+ readonly status: "ok";
135
+ readonly result: unknown;
136
+ } | {
137
+ readonly status: "failed";
138
+ readonly error: EntryError;
139
+ } | {
140
+ readonly status: "cancelled";
141
+ }, endedAt: number): JournalEntry;
142
+ /** Every entry, in append order. The journal is the prompt context for repair. */
143
+ entries(): readonly JournalEntry[];
144
+ get(key: StepKey): JournalEntry | undefined;
145
+ /**
146
+ * Entries the current replay never looked up. On a migration these are the steps the edited
147
+ * program removed, and what happens next depends on what they DID: a removed sleep is nothing,
148
+ * a removed spawn leaks a live agent, a removed resolved checkpoint discards a human decision.
149
+ */
150
+ orphans(): readonly JournalEntry[];
151
+ /** Start a fresh replay pass. */
152
+ resetConsumed(): void;
153
+ }
154
+ /**
155
+ * The run clock, per branch.
156
+ *
157
+ * `now()` is the maximum `endedAt` over the effects that causally precede the call, meaning the
158
+ * ones this point actually awaited. Sequentially that is the previous effect's end; after joining
159
+ * concurrent branches it is the maximum over all of them; inside a branch it is that branch's own
160
+ * history. Deterministic under replay in every case, which is what makes "time advances only at
161
+ * effect boundaries" a property of the design rather than a convention authors have to respect.
162
+ *
163
+ * A journal-wide max would NOT do: it would let a sibling branch's completion leak into a branch
164
+ * that never awaited it, and live execution and replay would then disagree.
165
+ */
166
+ export declare class RunClock {
167
+ private value;
168
+ constructor(startedAt: number);
169
+ now(): number;
170
+ /** Advance past an effect this branch awaited. Monotone: an out-of-order settle cannot rewind. */
171
+ advance(endedAt: number): void;
172
+ /** A branch inherits its parent's clock at the moment it forks. */
173
+ fork(): RunClock;
174
+ /** Joining concurrent branches takes the maximum, so the join sees all of their histories. */
175
+ join(branches: readonly RunClock[]): void;
176
+ }
177
+ //# sourceMappingURL=journal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../src/journal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * The step journal.
3
+ *
4
+ * Resume is not a cursor and not a fast-forward: it is re-running the program from the top with
5
+ * journalled effects returning recorded results, matched by key. That is precisely why
6
+ * out-of-order concurrency replays correctly, and it is the same thing as an effect handler's
7
+ * resume() implemented by re-running the deterministic prefix, which is why no continuation or VM
8
+ * state is ever serialized.
9
+ *
10
+ * The input hash is deliberately NOT part of the lookup key. It is compared after the entry is
11
+ * found, so a changed input is a diagnosable divergence naming the step, rather than a silent
12
+ * miss that quietly re-runs the effect and lets two versions of the truth coexist.
13
+ */
14
+ import { stepKeyString } from "./keys.js";
15
+ export class JournalReadOnlyError extends Error {
16
+ constructor(key) {
17
+ super(`journal is read-only; ${stepKeyString(key)} would have been appended`);
18
+ this.name = "JournalReadOnlyError";
19
+ }
20
+ }
21
+ export class Journal {
22
+ run;
23
+ readOnly;
24
+ byKey = new Map();
25
+ order = [];
26
+ /** Every key the current replay has looked up. What is left over is an orphan. */
27
+ consumed = new Set();
28
+ constructor(init) {
29
+ this.run = init.run;
30
+ this.readOnly = init.readOnly === true;
31
+ for (const e of init.entries ?? []) {
32
+ // The stored `scope` string is authoritative: it is what makes a journal readable back
33
+ // without re-running the program that produced it.
34
+ const full = `${e.scope}/${e.name === "" ? e.kind : `${e.kind}:${e.name}`}#${e.occurrence}`;
35
+ this.byKey.set(full, e);
36
+ this.order.push(full);
37
+ }
38
+ }
39
+ static keyOf(key) {
40
+ return stepKeyString(key);
41
+ }
42
+ /**
43
+ * Look the step up and say what the interpreter should do. Marks the key consumed, which is
44
+ * what lets a migration tell "this step was removed" from "this step has not run yet".
45
+ */
46
+ lookup(key, inputHash) {
47
+ const k = Journal.keyOf(key);
48
+ this.consumed.add(k);
49
+ const entry = this.byKey.get(k);
50
+ if (entry === undefined)
51
+ return { verdict: "miss" };
52
+ if (entry.inputHash !== inputHash) {
53
+ return {
54
+ verdict: "diverged",
55
+ entry,
56
+ recordedHash: entry.inputHash,
57
+ programHash: inputHash,
58
+ };
59
+ }
60
+ if (entry.state === "pending")
61
+ return { verdict: "pending", entry };
62
+ if (entry.status === "failed")
63
+ return { verdict: "replay-failed", entry };
64
+ if (entry.status === "cancelled")
65
+ return { verdict: "replay-cancelled", entry };
66
+ return { verdict: "replay", entry };
67
+ }
68
+ /** Append the `pending` half: the effect is about to be performed. */
69
+ begin(key, inputHash, startedAt, requestId) {
70
+ if (this.readOnly)
71
+ throw new JournalReadOnlyError(key);
72
+ const k = Journal.keyOf(key);
73
+ const entry = {
74
+ v: 1,
75
+ seq: this.order.length,
76
+ run: this.run,
77
+ scope: k.slice(0, k.lastIndexOf("/")),
78
+ kind: key.kind,
79
+ name: key.name,
80
+ occurrence: key.occurrence,
81
+ inputHash,
82
+ ...(requestId !== undefined ? { requestId, attempt: 0 } : {}),
83
+ state: "pending",
84
+ startedAt,
85
+ };
86
+ this.byKey.set(k, entry);
87
+ this.order.push(k);
88
+ this.consumed.add(k);
89
+ return entry;
90
+ }
91
+ /** Record the external resource the handler created, before its terminal is awaited. */
92
+ /**
93
+ * Point the pending entry at a NEW open identity, before the work under it is issued.
94
+ *
95
+ * Escalation mints twice under one entry, so between the hops the row must name the attempt that
96
+ * is about to be open rather than the one that already settled. Without this a crash after the
97
+ * second mint leaves the far side holding work under an identity the journal never recorded, and
98
+ * recovery reissues the first attempt and gets its cached expiry.
99
+ *
100
+ * The INDEX moves with the id, and it is the half that recovery reads: an id says what to submit
101
+ * under, the index says how much of the chain is already spent.
102
+ */
103
+ reissueAs(key, requestId, attempt) {
104
+ if (this.readOnly)
105
+ throw new JournalReadOnlyError(key);
106
+ const k = Journal.keyOf(key);
107
+ const entry = this.byKey.get(k);
108
+ if (entry === undefined)
109
+ throw new Error(`reissueAs before begin for ${k}`);
110
+ this.byKey.set(k, { ...entry, requestId, attempt });
111
+ }
112
+ bind(key, external) {
113
+ if (this.readOnly)
114
+ throw new JournalReadOnlyError(key);
115
+ const k = Journal.keyOf(key);
116
+ const entry = this.byKey.get(k);
117
+ if (entry === undefined)
118
+ throw new Error(`bind before begin for ${k}`);
119
+ this.byKey.set(k, { ...entry, external });
120
+ }
121
+ /** Append the `settled` half. */
122
+ settle(key, outcome, endedAt) {
123
+ if (this.readOnly)
124
+ throw new JournalReadOnlyError(key);
125
+ const k = Journal.keyOf(key);
126
+ const entry = this.byKey.get(k);
127
+ if (entry === undefined)
128
+ throw new Error(`settle before begin for ${k}`);
129
+ const settled = {
130
+ ...entry,
131
+ state: "settled",
132
+ status: outcome.status,
133
+ endedAt,
134
+ ...(outcome.status === "ok" ? { result: outcome.result } : {}),
135
+ ...(outcome.status === "failed" ? { error: outcome.error } : {}),
136
+ };
137
+ this.byKey.set(k, settled);
138
+ return settled;
139
+ }
140
+ /** Every entry, in append order. The journal is the prompt context for repair. */
141
+ entries() {
142
+ return this.order.map((k) => this.byKey.get(k)).filter((e) => e !== undefined);
143
+ }
144
+ get(key) {
145
+ return this.byKey.get(Journal.keyOf(key));
146
+ }
147
+ /**
148
+ * Entries the current replay never looked up. On a migration these are the steps the edited
149
+ * program removed, and what happens next depends on what they DID: a removed sleep is nothing,
150
+ * a removed spawn leaks a live agent, a removed resolved checkpoint discards a human decision.
151
+ */
152
+ orphans() {
153
+ return this.order
154
+ .filter((k) => !this.consumed.has(k))
155
+ .map((k) => this.byKey.get(k))
156
+ .filter((e) => e !== undefined);
157
+ }
158
+ /** Start a fresh replay pass. */
159
+ resetConsumed() {
160
+ this.consumed.clear();
161
+ }
162
+ }
163
+ /**
164
+ * The run clock, per branch.
165
+ *
166
+ * `now()` is the maximum `endedAt` over the effects that causally precede the call, meaning the
167
+ * ones this point actually awaited. Sequentially that is the previous effect's end; after joining
168
+ * concurrent branches it is the maximum over all of them; inside a branch it is that branch's own
169
+ * history. Deterministic under replay in every case, which is what makes "time advances only at
170
+ * effect boundaries" a property of the design rather than a convention authors have to respect.
171
+ *
172
+ * A journal-wide max would NOT do: it would let a sibling branch's completion leak into a branch
173
+ * that never awaited it, and live execution and replay would then disagree.
174
+ */
175
+ export class RunClock {
176
+ value;
177
+ constructor(startedAt) {
178
+ this.value = startedAt;
179
+ }
180
+ now() {
181
+ return this.value;
182
+ }
183
+ /** Advance past an effect this branch awaited. Monotone: an out-of-order settle cannot rewind. */
184
+ advance(endedAt) {
185
+ if (endedAt > this.value)
186
+ this.value = endedAt;
187
+ }
188
+ /** A branch inherits its parent's clock at the moment it forks. */
189
+ fork() {
190
+ return new RunClock(this.value);
191
+ }
192
+ /** Joining concurrent branches takes the maximum, so the join sees all of their histories. */
193
+ join(branches) {
194
+ for (const b of branches)
195
+ this.advance(b.now());
196
+ }
197
+ }
198
+ //# sourceMappingURL=journal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journal.js","sourceRoot":"","sources":["../src/journal.ts"],"names":[],"mappings":"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"}
package/dist/keys.d.ts ADDED
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Step keys: `(scope path, effect kind, step name, occurrence)`, with the input hash compared
3
+ * after lookup rather than folded into the key.
4
+ *
5
+ * Never execution position. Positional keying is the durable-execution field's documented worst
6
+ * production pain, and an LLM author restructures control flow freely, so positions are the one
7
+ * thing that will not survive an edit.
8
+ *
9
+ * The scope path exists for one reason: inside a concurrency combinator, branches interleave, so
10
+ * a per-run occurrence counter would race. Two branches both calling `turn(x, { name: "review" })`
11
+ * would fight over occurrence 0 and the winner would depend on wall-clock timing, which is
12
+ * exactly the nondeterminism replay cannot tolerate. Each branch therefore gets its own counter
13
+ * namespace, and a combinator's own occurrence is allocated synchronously at the call, which sits
14
+ * in already-deterministic code.
15
+ */
16
+ import type { EffectKind } from "./primitives.js";
17
+ /** The concurrency combinators that open a scope. */
18
+ export type ScopeKind = "parallel" | "race" | "fanOut" | "conclave";
19
+ export interface ScopeFrame {
20
+ readonly kind: ScopeKind;
21
+ /** The combinator's step name, or null when it was not named. */
22
+ readonly name: string | null;
23
+ /** Which entry into this combinator, within the enclosing namespace. */
24
+ readonly occurrence: number;
25
+ /** Array index, record field name, or the fan-out item's key. */
26
+ readonly branch: string;
27
+ }
28
+ export interface StepKey {
29
+ readonly scope: readonly ScopeFrame[];
30
+ readonly kind: EffectKind;
31
+ /** The literal step name, or "" when the effect was not named. */
32
+ readonly name: string;
33
+ readonly occurrence: number;
34
+ }
35
+ /** `sha256:<hex>` over the RFC 8785 canonical form, matching the digest discipline used for
36
+ * contract artifacts elsewhere in the repo. */
37
+ export declare const DIGEST_PREFIX: "sha256:";
38
+ /**
39
+ * The identity a handler submits under, written on the pending entry BEFORE the handler runs.
40
+ *
41
+ * Four components, each load-bearing rather than defensive. `runId`, because two runs reaching the
42
+ * same step with the same inputs would otherwise derive the same id and collide at a caller-scoped
43
+ * idempotency boundary. `attempt`, because escalation mints twice under one entry, so the second
44
+ * mint needs a second identity that is still derivable before it happens. The step key and input
45
+ * hash are what make it the identity of THIS step's THIS call.
46
+ *
47
+ * base64url, not the `sha256:<hex>` form this carried first: an endpoint id token is
48
+ * `[A-Za-z0-9_-]{1,64}`, and that form is 71 characters with a colon in it, so it was never a
49
+ * legal id. This is 43 characters in exactly that alphabet, with no `.` to confuse the
50
+ * dot-separated subject a goal id rides.
51
+ */
52
+ export declare function requestId(runId: string, key: StepKey, inputHash: string, attempt?: number): string;
53
+ export declare function digest(value: unknown): string;
54
+ /** The canonical string form, used in the journal, the trace, and error messages. */
55
+ export declare function scopePathString(scope: readonly ScopeFrame[]): string;
56
+ export declare function stepKeyString(key: StepKey): string;
57
+ export declare function stepKeyEquals(a: StepKey, b: StepKey): boolean;
58
+ /**
59
+ * One counter namespace. A run has one at the root, and every branch of every concurrency scope
60
+ * gets its own child.
61
+ *
62
+ * Both counters are allocated synchronously at the call site, before the first await. That is the
63
+ * whole determinism argument: the allocating code is either sequential or is itself inside an
64
+ * already-deterministic namespace, so no two allocations can race.
65
+ */
66
+ export declare class KeyScope {
67
+ readonly path: readonly ScopeFrame[];
68
+ private readonly effectCounts;
69
+ private readonly scopeCounts;
70
+ constructor(path?: readonly ScopeFrame[]);
71
+ /** Allocate the next occurrence for an effect in this namespace, and build its key. */
72
+ nextEffect(kind: EffectKind, name?: string): StepKey;
73
+ /**
74
+ * Allocate the next occurrence for a concurrency scope entered from this namespace. Call once
75
+ * per combinator call, then {@link branch} once per branch.
76
+ */
77
+ nextScope(kind: ScopeKind, name?: string | null): number;
78
+ /** The child namespace for one branch of a scope opened from here. */
79
+ branch(kind: ScopeKind, name: string | null, occurrence: number, branchKey: string): KeyScope;
80
+ }
81
+ /**
82
+ * The branch keys for a combinator's argument. The record form is the default because its keys
83
+ * survive both reordering and insertion; the array form is keyed by index, which shifts when a
84
+ * branch is inserted, and the validator lints it.
85
+ */
86
+ export declare function branchKeys(branches: readonly unknown[] | Readonly<Record<string, unknown>>): string[];
87
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,qDAAqD;AACrD,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;gDACgD;AAChD,eAAO,MAAM,aAAa,EAAG,SAAkB,CAAC;AAEhD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,MAAM,CAI7F;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE7C;AAOD,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAEpE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAGlD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAE7D;AAED;;;;;;;GAOG;AACH,qBAAa,QAAQ;IAIP,QAAQ,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE;IAHhD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAEpC,IAAI,GAAE,SAAS,UAAU,EAAO;IAErD,uFAAuF;IACvF,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,SAAK,GAAG,OAAO;IAOhD;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM;IAO9D,sEAAsE;IACtE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ;CAG9F;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,EAAE,CAIrG"}