@feelyourprotocol/vm 8141.0.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 (115) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +583 -0
  3. package/dist/cjs/bloom/index.d.ts +29 -0
  4. package/dist/cjs/bloom/index.d.ts.map +1 -0
  5. package/dist/cjs/bloom/index.js +76 -0
  6. package/dist/cjs/bloom/index.js.map +1 -0
  7. package/dist/cjs/buildBlock.d.ts +118 -0
  8. package/dist/cjs/buildBlock.d.ts.map +1 -0
  9. package/dist/cjs/buildBlock.js +363 -0
  10. package/dist/cjs/buildBlock.js.map +1 -0
  11. package/dist/cjs/constructors.d.ts +9 -0
  12. package/dist/cjs/constructors.d.ts.map +1 -0
  13. package/dist/cjs/constructors.js +75 -0
  14. package/dist/cjs/constructors.js.map +1 -0
  15. package/dist/cjs/emitEVMProfile.d.ts +9 -0
  16. package/dist/cjs/emitEVMProfile.d.ts.map +1 -0
  17. package/dist/cjs/emitEVMProfile.js +130 -0
  18. package/dist/cjs/emitEVMProfile.js.map +1 -0
  19. package/dist/cjs/index.d.ts +11 -0
  20. package/dist/cjs/index.d.ts.map +1 -0
  21. package/dist/cjs/index.js +36 -0
  22. package/dist/cjs/index.js.map +1 -0
  23. package/dist/cjs/package.json +3 -0
  24. package/dist/cjs/params.d.ts +3 -0
  25. package/dist/cjs/params.d.ts.map +1 -0
  26. package/dist/cjs/params.js +105 -0
  27. package/dist/cjs/params.js.map +1 -0
  28. package/dist/cjs/requests.d.ts +11 -0
  29. package/dist/cjs/requests.d.ts.map +1 -0
  30. package/dist/cjs/requests.js +208 -0
  31. package/dist/cjs/requests.js.map +1 -0
  32. package/dist/cjs/runBlock.d.ts +35 -0
  33. package/dist/cjs/runBlock.d.ts.map +1 -0
  34. package/dist/cjs/runBlock.js +797 -0
  35. package/dist/cjs/runBlock.js.map +1 -0
  36. package/dist/cjs/runFrameTx.d.ts +18 -0
  37. package/dist/cjs/runFrameTx.d.ts.map +1 -0
  38. package/dist/cjs/runFrameTx.js +313 -0
  39. package/dist/cjs/runFrameTx.js.map +1 -0
  40. package/dist/cjs/runTx.d.ts +18 -0
  41. package/dist/cjs/runTx.d.ts.map +1 -0
  42. package/dist/cjs/runTx.js +900 -0
  43. package/dist/cjs/runTx.js.map +1 -0
  44. package/dist/cjs/types.d.ts +452 -0
  45. package/dist/cjs/types.d.ts.map +1 -0
  46. package/dist/cjs/types.js +3 -0
  47. package/dist/cjs/types.js.map +1 -0
  48. package/dist/cjs/vm.d.ts +75 -0
  49. package/dist/cjs/vm.d.ts.map +1 -0
  50. package/dist/cjs/vm.js +111 -0
  51. package/dist/cjs/vm.js.map +1 -0
  52. package/dist/esm/bloom/index.d.ts +29 -0
  53. package/dist/esm/bloom/index.d.ts.map +1 -0
  54. package/dist/esm/bloom/index.js +72 -0
  55. package/dist/esm/bloom/index.js.map +1 -0
  56. package/dist/esm/buildBlock.d.ts +118 -0
  57. package/dist/esm/buildBlock.d.ts.map +1 -0
  58. package/dist/esm/buildBlock.js +358 -0
  59. package/dist/esm/buildBlock.js.map +1 -0
  60. package/dist/esm/constructors.d.ts +9 -0
  61. package/dist/esm/constructors.d.ts.map +1 -0
  62. package/dist/esm/constructors.js +72 -0
  63. package/dist/esm/constructors.js.map +1 -0
  64. package/dist/esm/emitEVMProfile.d.ts +9 -0
  65. package/dist/esm/emitEVMProfile.d.ts.map +1 -0
  66. package/dist/esm/emitEVMProfile.js +127 -0
  67. package/dist/esm/emitEVMProfile.js.map +1 -0
  68. package/dist/esm/index.d.ts +11 -0
  69. package/dist/esm/index.d.ts.map +1 -0
  70. package/dist/esm/index.js +11 -0
  71. package/dist/esm/index.js.map +1 -0
  72. package/dist/esm/package.json +3 -0
  73. package/dist/esm/params.d.ts +3 -0
  74. package/dist/esm/params.d.ts.map +1 -0
  75. package/dist/esm/params.js +102 -0
  76. package/dist/esm/params.js.map +1 -0
  77. package/dist/esm/requests.d.ts +11 -0
  78. package/dist/esm/requests.d.ts.map +1 -0
  79. package/dist/esm/requests.js +204 -0
  80. package/dist/esm/requests.js.map +1 -0
  81. package/dist/esm/runBlock.d.ts +35 -0
  82. package/dist/esm/runBlock.d.ts.map +1 -0
  83. package/dist/esm/runBlock.js +790 -0
  84. package/dist/esm/runBlock.js.map +1 -0
  85. package/dist/esm/runFrameTx.d.ts +18 -0
  86. package/dist/esm/runFrameTx.d.ts.map +1 -0
  87. package/dist/esm/runFrameTx.js +310 -0
  88. package/dist/esm/runFrameTx.js.map +1 -0
  89. package/dist/esm/runTx.d.ts +18 -0
  90. package/dist/esm/runTx.d.ts.map +1 -0
  91. package/dist/esm/runTx.js +896 -0
  92. package/dist/esm/runTx.js.map +1 -0
  93. package/dist/esm/types.d.ts +452 -0
  94. package/dist/esm/types.d.ts.map +1 -0
  95. package/dist/esm/types.js +2 -0
  96. package/dist/esm/types.js.map +1 -0
  97. package/dist/esm/vm.d.ts +75 -0
  98. package/dist/esm/vm.d.ts.map +1 -0
  99. package/dist/esm/vm.js +107 -0
  100. package/dist/esm/vm.js.map +1 -0
  101. package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -0
  102. package/dist/tsconfig.prod.esm.tsbuildinfo +1 -0
  103. package/package.json +117 -0
  104. package/src/bloom/index.ts +83 -0
  105. package/src/buildBlock.ts +470 -0
  106. package/src/constructors.ts +91 -0
  107. package/src/emitEVMProfile.ts +151 -0
  108. package/src/index.ts +10 -0
  109. package/src/params.ts +104 -0
  110. package/src/requests.ts +293 -0
  111. package/src/runBlock.ts +1022 -0
  112. package/src/runFrameTx.ts +411 -0
  113. package/src/runTx.ts +1203 -0
  114. package/src/types.ts +511 -0
  115. package/src/vm.ts +147 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runTx.js","sourceRoot":"","sources":["../../src/runTx.ts"],"names":[],"mappings":";;AA0WA,sBAwHC;AAuoBD,8CA0DC;AAnqCD,6CAAmE;AACnE,+CAA4D;AAC5D,yCAKwB;AACxB,uCAA2E;AAW3E,2CAmByB;AACzB,iCAAgC;AAEhC,+CAAwC;AACxC,2DAAoD;AACpD,mDAAqD;AAgBrD,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,OAAO,CAAC,CAAA;AACnC,MAAM,QAAQ,GAAG,IAAA,eAAY,EAAC,WAAW,CAAC,CAAA;AAE1C,MAAM,cAAc,GAAG,IAAA,yBAAiB,GAAE,CAAA;AAE1C,IAAI,cAAc,GAAG,KAAK,CAAA;AAC1B,MAAM,SAAS,GAAG,wDAAwD,CAAA;AAC1E,MAAM,iBAAiB,GAAG,iCAAiC,CAAA;AAC3D,MAAM,cAAc,GAAG,WAAW,CAAA;AAClC,MAAM,mBAAmB,GAAG,yCAAyC,CAAA;AACrE,MAAM,oBAAoB,GAAG,mBAAmB,CAAA;AAChD,MAAM,eAAe,GAAG,mBAAmB,CAAA;AAC3C,MAAM,wBAAwB,GAAG,uBAAuB,CAAA;AACxD,MAAM,aAAa,GAAG,UAAU,CAAA;AAChC,MAAM,aAAa,GAAG,WAAW,CAAA;AAEjC,wFAAwF;AACxF,MAAM,oBAAoB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAE/D;;;;;;;;;GASG;AACH,KAAK,UAAU,wBAAwB,CACrC,EAAM,EACN,EAAuB,EACvB,MAAe,EACf,gBAAwB;IAExB,IAAI,SAAS,GAAG,gBAAgB,CAAA;IAChC,MAAM,iBAAiB,GAAG,EAAE,CAAC,iBAAiB,CAAA;IAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;QAEjC,oBAAoB;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,SAAS,GAAG,IAAA,oBAAa,EAAC,OAAO,CAAC,CAAA;QACxC,IAAI,SAAS,KAAK,eAAQ,IAAI,SAAS,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAChE,SAAQ;QACV,CAAC;QAED,wBAAwB;QACxB,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAA,oBAAa,EAAC,cAAc,CAAC,IAAI,iBAAU,EAAE,CAAC;YAChD,8FAA8F;YAC9F,sDAAsD;YACtD,SAAQ;QACV,CAAC;QAED,4CAA4C;QAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,IAAI,IAAA,oBAAa,EAAC,CAAC,CAAC,GAAG,4BAAqB,EAAE,CAAC;YAC7C,gEAAgE;YAChE,SAAQ;QACV,CAAC;QAED,mBAAmB;QACnB,MAAM,OAAO,GAAG,IAAA,oBAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACtC,IAAI,OAAO,GAAG,eAAQ,EAAE,CAAC;YACvB,SAAQ;QACV,CAAC;QAED,2CAA2C;QAC3C,IAAI,SAAkB,CAAA;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,IAAA,kCAA2B,EAAC,IAAI,CAAC,CAAA;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;YACpB,SAAQ;QACV,CAAC;QAED,MAAM,qBAAqB,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QACzE,MAAM,aAAa,GAAG,qBAAqB,KAAK,SAAS,CAAA;QACzD,MAAM,OAAO,GAAG,qBAAqB,IAAI,IAAI,cAAO,EAAE,CAAA;QAEtD,0CAA0C;QAC1C,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEzD,6EAA6E;QAC7E,gDAAgD;QAChD,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC/D,CAAC;QAED,8DAA8D;QAC9D,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACrD,IAAI,CAAC,IAAA,kBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,EAAE,CAAC;gBACzD,SAAQ;YACV,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC/C,+DAA+D;YAC/D,yDAAyD;YACzD,IAAI,OAAO,CAAC,KAAK,GAAG,eAAQ,KAAK,IAAA,oBAAa,EAAC,cAAc,CAAC,EAAE,CAAC;gBAC/D,SAAQ;YACV,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,KAAK,IAAA,oBAAa,EAAC,cAAc,CAAC,EAAE,CAAC;YAC3D,SAAQ;QACV,CAAC;QAED,6CAA6C;QAC7C,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;YACzF,SAAS,IAAI,MAAM,CAAA;QACrB,CAAC;QAED,iCAAiC;QACjC,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACnD,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,cAAc,CACzC,SAAS,CAAC,QAAQ,EAAE,EACpB,OAAO,CAAC,KAAK,EACb,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,CAC9C,CAAA;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACvB,8DAA8D;QAC9D,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;YAChD,CAAC,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;YAC1C,CAAC,CAAC,SAAS,CAAA;QACb,IAAI,IAAA,kBAAW,EAAC,OAAO,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7C,iEAAiE;YACjE,yDAAyD;YACzD,MAAM,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,UAAU,EAAE,CAAC,CAAA;YAC1D,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,aAAa,CACxC,SAAS,CAAC,QAAQ,EAAE,EACpB,IAAI,UAAU,EAAE,EAChB,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,EAC7C,WAAW,CACZ,CAAA;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAA,kBAAW,EAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;YAC9D,MAAM,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;YACrD,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,aAAa,CACxC,SAAS,CAAC,QAAQ,EAAE,EACpB,WAAW,EACX,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,EAC7C,WAAW,CACZ,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,oBAAoB,CAAC,EAAM,EAAE,OAAoB;IAC9D,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAClD,OAAM;IACR,CAAC;IAED,MAAM,eAAe,GAA2B,IAAI,GAAG,EAAE,CAAA;IACzD,MAAM,gBAAgB,GAAU,EAAE,CAAA;IAClC,MAAM,mBAAmB,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3F,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,CAAA;IAED,KAAK,MAAM,CAAC,wBAAwB,CAAC,IAAI,mBAAmB,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,IAAA,iBAAU,EAAC,wBAAwB,CAAC,CAAC,CAAA;QAEjE,kEAAkE;QAClE,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAClE,SAAQ;YACV,CAAC;QACH,CAAC;QAED,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;YACzD,MAAM,mBAAmB,GAAG,OAAO,EAAE,OAAO,IAAI,eAAQ,CAAA;YACxD,IAAI,mBAAmB,GAAG,eAAQ,EAAE,CAAC;gBACnC,gBAAgB,CAAC,IAAI,CAAC,IAAA,kCAA4B,EAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAA;YACnF,CAAC;QACH,CAAC;QAED,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC3C,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QACvC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAA;IACrF,CAAC;IAED,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/D,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,qBAAqB,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAA;IAC1E,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,EAAM;IACnC,MAAM,UAAU,GAAe,EAAE,CAAA;IAEjC,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAW,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAmB;YAC3B,OAAO,EAAE,KAAK,OAAO,EAAE;YACvB,WAAW,EAAE,EAAE;SAChB,CAAA;QACD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QACpC,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,kBAAkB,CAC/B,EAAM,EACN,KAAyB,EACzB,KAAwB,EACxB,OAAoB,EACpB,kBAA0B;IAE1B,kDAAkD;IAClD,IAAI,KAAc,CAAA;IAClB,IAAI,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,sBAAa,CAAC,gBAAgB,EAAE,CAAC;QACjE,KAAK,GAAG,IAAA,oBAAY,EAAC,KAAK,EAAE,MAAM,IAAI,cAAc,CAAC,CAAA;IACvD,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,KAAK,EAAE,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAA;IAC3D,CAAC;IAED,8BAA8B;IAC9B,IAAI,YAAY,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAChD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,YAAY,GAAG,IAAI,cAAO,EAAE,CAAA;IAC9B,CAAC;IAED,2EAA2E;IAC3E,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;QACjD,CAAC,CAAC,OAAO,CAAC,aAAa,GAAG,kBAAkB;QAC5C,CAAC,CAAC,OAAO,CAAC,WAAW,CAAA;IACvB,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAA;IACjD,YAAY,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAA;IAC1C,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,UAAU,KAAK,eAAQ,EAAE,CAAC;YACpC,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,CAC3C,KAAK,CAAC,QAAQ,EAAE,EAChB,YAAY,CAAC,OAAO,EACpB,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,EAC7C,oBAAoB,CACrB,CAAA;QACH,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,+DAA+D;YAC/D,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,2EAA2E;IAC3E,qDAAqD;IACrD,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IAEpD,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,CAAC,4BAA4B,KAAK,iBAAiB,YAAY,CAAC,OAAO,GAAG,CAAC,CAAA;IAClF,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,KAAK,CAAC,EAAM,EAAE,IAAe;IACjD,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,aAAa,KAAK,IAAI,EAAE,CAAC;QACrD,cAAc,GAAG,IAAI,CAAA;IACvB,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,qBAAqB,IAAA,iBAAU,EAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAA;QAC/D,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAClB,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvB,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACrE,uEAAuE;QACvE,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC1D,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC1D,+CAA+C;YAC/C,MAAM,GAAG,GAAG,SAAS,CAAC,4CAA4C,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;YAC5F,MAAM,IAAA,iCAA0B,EAAC,GAAG,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAA;IACvE,IAAI,IAAI,CAAC,2BAA2B,KAAK,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC7E,MAAM,GAAG,GAAG,SAAS,CAAC,0CAA0C,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAC1F,MAAM,IAAA,iCAA0B,EAAC,GAAG,CAAC,CAAA;IACvC,CAAC;IAED,mDAAmD;IACnD,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IAE9B,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACnC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAA;IAC3C,CAAC;IAED,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QAClC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,uBAAwB,EAAE,CAAA;IAC3C,CAAC;IAED,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAA;IACjC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACtB,KAAK,CAAC,eAAe,CAAC,CAAA;IACxB,CAAC;IAED,yCAAyC;IACzC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAU,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3F,oCAAoC;QACpC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;YAC7B,MAAM,GAAG,GAAG,SAAS,CACnB,oDAAoD,EACpD,EAAE,EACF,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,EAAE,CACR,CAAA;YACD,MAAM,IAAA,iCAA0B,EAAC,GAAG,CAAC,CAAA;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACrF,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;YAC7B,MAAM,GAAG,GAAG,SAAS,CACnB,oDAAoD,EACpD,EAAE,EACF,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,EAAE,CACR,CAAA;YACD,MAAM,IAAA,iCAA0B,EAAC,GAAG,CAAC,CAAA;QACvC,CAAC;QAED,IAAI,CAAC,IAAA,qBAAgB,EAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAsB,CAAA;YAE5C,KAAK,MAAM,cAAc,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACjD,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,cAAc,CAAA;gBACpD,4HAA4H;gBAC5H,MAAM,OAAO,GAAG,IAAA,2BAAoB,EAAC,YAAY,CAAC,CAAA;gBAClD,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBAClD,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE,CAAC;oBACvC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAA,2BAAoB,EAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAA;gBACnF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACrC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;QAC7B,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;QAC7B,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACjC,CAAC;QACD,MAAM,CAAC,CAAA;IACT,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAA;QAC/B,CAAC;QACD,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;QAChD,IAAI,cAAc,EAAE,CAAC;YACnB,sCAAsC;YACtC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;YAC9B,MAAM,IAAI,GAAI,EAAE,CAAC,GAAW,CAAC,kBAAkB,EAAE,CAAA;YACjD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/D,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;YACnD,CAAC;YACD,IAAA,kCAAc,EAAC,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAA;YAC1D,IAAA,kCAAc,EAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAClD;YAAC,EAAE,CAAC,GAAW,CAAC,oBAAoB,EAAE,CAAA;QACzC,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,EAAM,EAAE,IAAe;IAC3C,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAA;IAE7B,8BAA8B;IAC9B,6BAA6B;IAC7B,8BAA8B;IAC9B,IAAI,aAAkD,CAAA;IACtD,IAAI,UAA+C,CAAA;IAEnD,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,EAAE,CAAC,GAAG,CAAC,uBAAuB,KAAK,SAAS,EAAE,CAAC;YACjD,MAAM,KAAK,CAAC,uEAAuE,CAAC,CAAA;QACtF,CAAC;QAED,gHAAgH;QAChH,IAAI,CAAC,CAAC,uBAAuB,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;YAClD,MAAM,IAAA,iCAA0B,EAC9B,sEAAsE,CACvE,CAAA;QACH,CAAC;QACD,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAA;QAC9C,UAAU,GAAG,IAAI,6BAAuB,CAAC;YACvC,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,YAAY;SAC1D,CAAC,CAAA;IACJ,CAAC;IAED,8BAA8B;IAC9B,gCAAgC;IAChC,8BAA8B;IAC9B,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IAE1B,iFAAiF;IACjF,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAE9B,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAA;IACpC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,CACH,mBACE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,UACpD,WAAW,MAAM,EAAE,CACpB,CAAA;IACH,CAAC;IAED,8BAA8B;IAC9B,oCAAoC;IACpC,8BAA8B;IAC9B,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,8DAA8D;QAC9D,MAAM,iBAAiB,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAA;QAC5C,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAA;QACjD,CAAC;QACD,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;QACtD,IAAI,EAAE,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YACxB,yHAAyH;YACzH,wGAAwG;YACxG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAA,2BAAoB,EAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;QACxE,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAA;YAC9E,wGAAwG;YACxG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAA,2BAAoB,EAAC,QAAQ,CAAC,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,iCAAiC;IACjC,8BAA8B;IAC9B,0EAA0E;IAC1E,MAAM,YAAY,GAAG,EAAE,CAAC,eAAe,EAAE,CAAA;IACzC,IAAI,SAAS,GAAG,eAAQ,CAAA;IAExB,8CAA8C;IAC9C,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,uDAAuD;QACvD,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;QACD,SAAS;YACP,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IACzF,CAAC;IAED,IAAI,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAA;IAC1B,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IACtD,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,SAAS,CACnB,gBAAgB,MAAM,CAAC,QAAQ,CAAC,2CAA2C,MAAM,CAC/E,WAAW,CACZ,EAAE,EACH,EAAE,EACF,KAAK,EACL,EAAE,CACH,CAAA;QACD,MAAM,IAAA,iCAA0B,EAAC,GAAG,CAAC,CAAA;IACvC,CAAC;IACD,QAAQ,IAAI,YAAY,CAAA;IACxB,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,QAAQ,CAAC,yBAAyB,YAAY,uBAAuB,QAAQ,GAAG,CAAC,CAAA;IACnF,CAAC;IAED,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,iBAAiB;QACjB,gEAAgE;QAChE,+DAA+D;QAC/D,MAAM,YAAY,GAAG,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAA;QACzE,MAAM,aAAa,GAAG,KAAK,EAAE,MAAM,CAAC,aAAa,IAAI,cAAc,CAAC,aAAc,CAAA;QAClF,IAAI,YAAY,GAAG,aAAa,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,SAAS,CACnB,iBACE,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAC1C,KAAK,YAAY,6CAA6C,aAAa,GAAG,EAC9E,EAAE,EACF,KAAK,EACL,EAAE,CACH,CAAA;YACD,MAAM,IAAA,iCAA0B,EAAC,GAAG,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,sCAAsC;QACtC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC1B,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IACjC,CAAC;IAED,8BAA8B;IAC9B,6BAA6B;IAC7B,8BAA8B;IAC9B,IAAI,WAAW,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAChD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,WAAW,GAAG,IAAI,cAAO,EAAE,CAAA;IAC7B,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,CAAA;IACtC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,gEAAgE;IAChE,0EAA0E;IAC1E,IAAI,CAAC,IAAA,kBAAW,EAAC,WAAW,CAAC,QAAQ,EAAE,qBAAc,CAAC,IAAI,CAAC,IAAA,qBAAgB,EAAC,EAAE,CAAC,EAAE,CAAC;QAChF,MAAM,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QACnD,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBACxC,kEAAkE;gBAClE,IAAI,IAAA,kBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC;oBAAE,MAAK;gBAC9D,mGAAmG;YACrG,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,GAAG,GAAG,SAAS,CACnB,uDAAuD,EACvD,EAAE,EACF,KAAK,EACL,EAAE,CACH,CAAA;gBACD,MAAM,IAAA,iCAA0B,EAAC,GAAG,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,aAAa,GAAG,KAAK,EAAE,MAAM,CAAC,aAAa,IAAI,cAAc,CAAC,aAAa,CAAA;IACjF,MAAM,WAAW,GAAG,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;IACpD,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,EAAE,CAAC;YACnE,IAAI,EAAE,CAAC,QAAQ,CAAC,eAAU,CAAC,gBAAgB,CAAC,KAAK,KAAK,EAAE,CAAC;gBACvD,iGAAiG;gBACjG,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAA;gBAC3C,WAAW,CAAC,OAAO,GAAG,WAAW,CAAA;gBACjC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;gBACpD,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,CAC3C,MAAM,CAAC,QAAQ,EAAE,EACjB,WAAW,CAAC,OAAO,EACnB,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,EAC7C,eAAe,CAChB,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,SAAS,CACnB,qEAAqE,WAAW,8BAA8B,MAAM,eAAe,OAAO,EAAE,EAC5I,EAAE,EACF,KAAK,EACL,EAAE,CACH,CAAA;YACD,MAAM,IAAA,iCAA0B,EAAC,GAAG,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,OAAO,GAAG,EAAE,CAAC,KAAK,CAAA;IACtB,IAAI,YAAY,GAAG,eAAQ,CAAA;IAC3B,IAAI,YAAY,GAAG,eAAQ,CAAA;IAC3B,IAAI,EAAE,CAAC,QAAQ,CAAC,eAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7C,iBAAiB;QACjB,oDAAoD;QACpD,kDAAkD;QAClD,OAAO,IAAI,EAAE,CAAC,QAAQ,GAAI,EAAsB,CAAC,YAAY,CAAA;IAC/D,CAAC;IAED,IAAI,IAAA,iBAAY,EAAC,EAAE,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,SAAS,CAAC,sDAAsD,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;YAC5F,MAAM,IAAA,iCAA0B,EAAC,GAAG,CAAC,CAAA;QACvC,CAAC;QACD,gBAAgB;QAChB,oDAAoD;QACpD,sIAAsI;QACtI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QACxE,OAAO,IAAI,YAAY,GAAG,EAAE,CAAC,gBAAgB,CAAA;QAE7C,mCAAmC;QACnC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,cAAc,CAAC,eAAe,EAAE,CAAA;QACvF,IAAI,EAAE,CAAC,gBAAgB,GAAG,YAAY,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,SAAS,CACnB,kCAAkC,EAAE,CAAC,gBAAgB,sCAAsC,YAAY,IAAI,EAC3G,EAAE,EACF,KAAK,EACL,EAAE,CACH,CAAA;YACD,MAAM,IAAA,iCAA0B,EAAC,GAAG,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,WAAW,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;YAC/D,qEAAqE;YACrE,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAA;YAC3C,WAAW,CAAC,OAAO,GAAG,OAAO,CAAA;YAC7B,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;YACpD,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,CAC3C,MAAM,CAAC,QAAQ,EAAE,EACjB,WAAW,CAAC,OAAO,EACnB,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,EAC7C,eAAe,CAChB,CAAA;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,SAAS,CACnB,iEAAiE,OAAO,8BAA8B,MAAM,eAAe,OAAO,EAAE,EACpI,EAAE,EACF,KAAK,EACL,EAAE,CACH,CAAA;YACD,MAAM,IAAA,iCAA0B,EAAC,GAAG,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC5B,IAAI,KAAK,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,SAAS,CACnB,gEAAgE,KAAK,qBAAqB,EAAE,CAAC,KAAK,EAAE,EACpG,EAAE,EACF,KAAK,EACL,EAAE,CACH,CAAA;YACD,MAAM,IAAA,iCAA0B,EAAC,GAAG,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,yBAAyB;IACzB,8BAA8B;IAC9B,IAAI,QAAgB,CAAA;IACpB,IAAI,kBAA0B,CAAA;IAC9B,IAAI,EAAE,CAAC,QAAQ,CAAC,eAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7C,oDAAoD;QACpD,MAAM,OAAO,GAAG,KAAK,EAAE,MAAM,CAAC,aAAa,IAAI,cAAc,CAAC,aAAc,CAAA;QAC5E,kBAAkB,GAAG,EAAE,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;QAExD,QAAQ,GAAG,kBAAkB,GAAG,OAAO,CAAA;IACzC,CAAC;SAAM,CAAC;QACN,qEAAqE;QACrE,QAAQ,GAAI,EAAe,CAAC,QAAQ,CAAA;QACpC,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAM,CAAC,aAAa,IAAI,cAAc,CAAC,aAAc,CAAA;YAC5E,kBAAkB,GAAI,EAAe,CAAC,QAAQ,GAAG,OAAO,CAAA;QAC1D,CAAC;IACH,CAAC;IAED,cAAc;IACd,IAAI,mBAAmB,CAAA;IACvB,IAAI,IAAA,iBAAY,EAAC,EAAE,CAAC,EAAE,CAAC;QACrB,mBAAmB,GAAG,EAAE,CAAC,mBAAmB,CAAA;IAC9C,CAAC;IAED,8BAA8B;IAC9B,wDAAwD;IACxD,8BAA8B;IAC9B,IAAI,OAAoB,CAAA;IACxB,IAAI,MAAc,CAAA;IAClB,IAAI,WAAmB,CAAA;IACvB,IAAI,SAAS,GAAG,eAAQ,CAAA;IAExB,IAAI,qBAAyC,CAAA;IAC7C,IAAI,IAAA,qBAAgB,EAAC,EAAE,CAAC,EAAE,CAAC;QACzB,8EAA8E;QAC9E,MAAM,GAAG,eAAQ,CAAA;QACjB,WAAW,GAAG,eAAQ,CAAA;QAEtB,IAAI,cAAc,EAAE,CAAC;YACnB,sCAAsC;YACtC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;YAClC,qBAAqB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC3C,CAAC;QAED,OAAO,GAAG,MAAM,IAAA,mCAAmB,EACjC,EAAE,EACF,EAA+B,EAC/B,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,IAAI,CACL,CAAA;IACH,CAAC;SAAM,CAAC;QACN,8BAA8B;QAC9B,qDAAqD;QACrD,8BAA8B;QAC9B,MAAM,GAAG,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC/B,WAAW,GAAG,YAAY,GAAG,YAAY,CAAA;QACzC,MAAM,qBAAqB,GAAG,WAAW,CAAC,OAAO,CAAA;QACjD,WAAW,CAAC,OAAO,IAAI,MAAM,CAAA;QAC7B,WAAW,CAAC,OAAO,IAAI,WAAW,CAAA;QAClC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,WAAW,CAAC,OAAO,GAAG,eAAQ,EAAE,CAAC;YAChE,WAAW,CAAC,OAAO,GAAG,eAAQ,CAAA;QAChC,CAAC;QACD,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAEpD,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,CAC3C,MAAM,CAAC,QAAQ,EAAE,EACjB,WAAW,CAAC,OAAO,EACnB,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,EAC7C,qBAAqB,CACtB,CAAA;QACH,CAAC;QAED,sDAAsD;QACtD,IAAI,EAAE,CAAC,QAAQ,CAAC,eAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3C,SAAS,GAAG,MAAM,wBAAwB,CAAC,EAAE,EAAE,EAAyB,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;QAC9F,CAAC;QAED,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CAAC,2CAA2C,WAAW,CAAC,OAAO,IAAI,CAAC,CAAA;QAC3E,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,sCAAsC;YACtC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;YAClC,qBAAqB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC3C,CAAC;QAED,8BAA8B;QAC9B,0BAA0B;QAC1B,8BAA8B;QAC9B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;QAE9B,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CACH,cACE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,UAC1C,gBAAgB,MAAM,aAAa,QAAQ,OACzC,EAAE,EAAE,QAAQ,EAAE,IAAI,MACpB,UAAU,KAAK,SAAS,IAAA,YAAK,EAAC,IAAI,CAAC,EAAE,CACtC,CAAA;QACH,CAAC;QAED,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;YAC9B,KAAK;YACL,QAAQ;YACR,MAAM;YACN,QAAQ;YACR,EAAE;YACF,KAAK;YACL,IAAI;YACJ,mBAAmB;YACnB,aAAa,EAAE,UAAU;SAC1B,CAAC,CAAgB,CAAA;QAElB,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,CAAC;YAAC,aAAyC,EAAE,KAAK,CAAC,UAAsC,CAAC,CAAA;QAC5F,CAAC;IACH,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,cAAc,KAAK,WAAW,CAAC,GAAG,EAAE,GAAG,qBAAsB,IAAI,CAAC,CAAA;QACjF,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAA;QACzD,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,CAAC,yCAAyC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,UAAU,CAAA;QAC5E,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACtB,KAAK,CACH,8CAA8C,gBAAgB,mBAC5D,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAC/D,gBAAgB,IAAA,YAAK,EAAC,WAAW,CAAC,cAAc,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,CAC3E,CAAA;IACH,CAAC;IAED,8BAA8B;IAC9B,4BAA4B;IAC5B,8BAA8B;IAC9B,iDAAiD;IACjD,MAAM,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,gBAAgB,GAAG,YAAY,CAAA;IACpF,OAAO,CAAC,aAAa,GAAG,yBAAyB,CAAA;IACjD,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,QAAQ,CAAC,kBAAkB,YAAY,yBAAyB,OAAO,CAAC,aAAa,GAAG,CAAC,CAAA;IAC3F,CAAC;IAED,8BAA8B;IAC9B,IAAI,IAAA,iBAAY,EAAC,EAAE,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,WAAW,GAAG,YAAY,CAAA;IACpC,CAAC;IAED,yBAAyB;IACzB,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,IAAI,eAAQ,CAAA;IACrD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA,CAAC,wEAAwE;IACtG,MAAM,iBAAiB,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;IAC9D,IAAI,SAAS,KAAK,eAAQ,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,GAAG,iBAAiB,CAAA;QAC3D,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;QACzD,OAAO,CAAC,aAAa,IAAI,SAAS,CAAA;QAClC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CAAC,0BAA0B,SAAS,4BAA4B,OAAO,CAAC,aAAa,GAAG,CAAC,CAAA;QAChG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,EAAE,CAAC;YACtC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;gBACb,QAAQ,CACN,gBAAgB,SAAS,oDAAoD,OAAO,CAAC,aAAa,8BAA8B,CACjI,CAAA;YACH,CAAC;YACD,OAAO,CAAC,SAAS,GAAG,eAAQ,CAAA;YAC5B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAA;QACnC,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,gEAAgE;IAChE,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;QACpD,CAAC,CAAC,IAAA,gBAAS,EAAC,yBAAyB,EAAE,SAAS,CAAC;QACjD,CAAC,CAAC,OAAO,CAAC,aAAa,CAAA;IAEzB,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAA;IAEtD,8CAA8C;IAC9C,IAAI,IAAA,qBAAgB,EAAC,EAAE,CAAC,EAAE,CAAC;QACzB,4DAA4D;QAC5D,MAAM,OAAO,GAAG,EAA+B,CAAA;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAA,CAAC,iCAAiC;QAC1E,IAAI,YAAY,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,YAAY,KAAK,SAAS;YAAE,YAAY,GAAG,IAAI,cAAO,EAAE,CAAA;QAC5D,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAClD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAA;QACtD,MAAM,WAAW,GAAG,cAAc,GAAG,aAAa,CAAA;QAClD,IAAI,WAAW,GAAG,eAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,OAAO,IAAI,WAAW,CAAA;YACnC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;QACtD,CAAC;QACD,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CACH,sBAAsB,WAAW,aAAa,KAAK,aAAa,cAAc,WAAW,aAAa,GAAG,CAC1G,CAAA;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,WAAW,GAAG,IAAI,cAAO,EAAE,CAAA;QAC7B,CAAC;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAA;QACrD,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,CAAA;QACxC,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAA;QAC3C,WAAW,CAAC,OAAO,IAAI,UAAU,CAAA;QAEjC,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,CAC3C,MAAM,CAAC,QAAQ,EAAE,EACjB,WAAW,CAAC,OAAO,EACnB,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,EAC7C,eAAe,CAChB,CAAA;YACD,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,cAAc,CACzC,MAAM,CAAC,QAAQ,EAAE,EACjB,WAAW,CAAC,KAAK,EACjB,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,CAC9C,CAAA;QACH,CAAC;QAED,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QACpD,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,UAAU,GAAG,eAAQ,EAAE,CAAC;YAC5D,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,CAC3C,MAAM,CAAC,QAAQ,EAAE,EACjB,WAAW,CAAC,OAAO,EACnB,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,gBAAgB,CAC9C,CAAA;QACH,CAAC;QACD,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CACH,wBAAwB,UAAU,yCAAyC,WAAW,CAAC,OAAO,GAAG,CAClG,CAAA;QACH,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,MAAM,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAmB,CAAC,CAAA;IAExE,IAAI,cAAc,EAAE,CAAC;QACnB,sCAAsC;QACtC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QACpC,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IACpC,CAAC;IAED,8BAA8B;IAC9B,8BAA8B;IAC9B,8BAA8B;IAC9B,MAAM,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAEvC,8EAA8E;IAC9E,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IAC/D,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,CAAC,gCAAgC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,sCAAsC;QACtC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;QACrC,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAC/B,CAAC;IAED,wCAAwC;IACxC,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,OAAO,CAAC,UAAU,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,sCAAsC;QACtC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QAChC,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;IACxC,CAAC;IAED,iCAAiC;IACjC,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5E,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAA;IAC9C,CAAC;IAED,2BAA2B;IAC3B,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IAC9B,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;IAElC,IAAI,cAAc,EAAE,CAAC;QACnB,sCAAsC;QACtC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;QACzC,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC7B,CAAC;IAED,8BAA8B;IAC9B,+BAA+B;IAC/B,8BAA8B;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAA;IACpF,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAC,aAAa,CAAA;IACzD,OAAO,CAAC,OAAO,GAAG,MAAM,iBAAiB,CACvC,EAAE,EACF,EAAE,EACF,OAAO,EACP,iBAAiB,EACjB,YAAY,EACZ,YAAY,CACb,CAAA;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,sCAAsC;QACtC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IAChC,CAAC;IAED,8CAA8C;IAC9C,wFAAwF;IACxF,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,EAAE,CAAC,GAAG,CAAC,oBAAqB,CAAC,4BAA4B,EAAE,CAAA;IAC7D,CAAC;IAED,sDAAsD;IACtD,MAAM,KAAK,GAAiB,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAA;IAC3D,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAChC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,CACH,wBACE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,UACpD,WAAW,MAAM,EAAE,CACpB,CAAA;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,MAAe;IAChD,MAAM,KAAK,GAAG,IAAI,gBAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC1C,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACnB,kBAAkB;YAClB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACjB,iBAAiB;YACjB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,iBAAiB,CACrC,EAAM,EACN,EAAoB,EACpB,QAAqB,EACrB,iBAAyB,EACzB,WAAoB,EACpB,YAAqB;IAErB,MAAM,WAAW,GAAkB;QACjC,sBAAsB,EAAE,iBAAiB;QACzC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS;QACnC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE;KACrC,CAAA;IAED,IAAI,OAAO,CAAA;IACX,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,CACH,uCACE,EAAE,CAAC,IACL,2BAA2B,iBAAiB,cAAc,IAAA,YAAK,EAAC,WAAW,CAAC,SAAS,CAAC,KACpF,WAAW,CAAC,SAAS,CAAC,MACxB,gBAAgB,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAC1C,CAAA;IACH,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACrD,qBAAqB;QACrB,IAAI,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,iBAAiB;YACjB,OAAO,GAAG;gBACR,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,uCAAuC;gBACzG,GAAG,WAAW;aACW,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,gBAAgB;YAChB,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,CAAA;YACtD,OAAO,GAAG;gBACR,SAAS;gBACT,GAAG,WAAW;aACU,CAAA;QAC5B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,6BAA6B;QAC7B,IAAI,IAAA,iBAAY,EAAC,EAAE,CAAC,EAAE,CAAC;YACrB,OAAO,GAAG;gBACR,WAAW;gBACX,YAAY;gBACZ,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,GAAG,WAAW;aACS,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,GAAG;gBACR,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,GAAG,WAAW;aACW,CAAA;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,GAAW,EAAE,EAAM,EAAE,KAAwB,EAAE,EAAoB;IACpF,MAAM,aAAa,GAAG,KAAK,IAAI,cAAc,CAAA;IAC7C,MAAM,aAAa,GAAG,UAAU,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;IACtF,MAAM,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IAE1D,MAAM,QAAQ,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,aAAa,OAAO,UAAU,GAAG,CAAA;IACjF,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -0,0 +1,452 @@
1
+ import type { Block, BlockOptions, HeaderData } from '@feelyourprotocol/block';
2
+ import type { Common, ParamsDict, StateManagerInterface } from '@feelyourprotocol/common';
3
+ import type { EVMInterface, EVMMockBlockchainInterface, EVMOpts, EVMResult, Log } from '@feelyourprotocol/evm';
4
+ import type { AccessList, TypedTransaction } from '@feelyourprotocol/tx';
5
+ import type { BigIntLike, BlockLevelAccessList, CLRequest, CLRequestType, PrefixedHexString, WithdrawalData } from '@feelyourprotocol/util';
6
+ import type { Bloom } from './bloom/index.ts';
7
+ export type TxReceipt = PreByzantiumTxReceipt | PostByzantiumTxReceipt | EIP4844BlobTxReceipt;
8
+ /**
9
+ * Abstract interface with common transaction receipt fields
10
+ */
11
+ export interface BaseTxReceipt {
12
+ /**
13
+ * Cumulative gas used in the block including this tx
14
+ */
15
+ cumulativeBlockGasUsed: bigint;
16
+ /**
17
+ * Bloom bitvector
18
+ */
19
+ bitvector: Uint8Array;
20
+ /**
21
+ * Logs emitted
22
+ */
23
+ logs: Log[];
24
+ }
25
+ /**
26
+ * Pre-Byzantium receipt type with a field
27
+ * for the intermediary state root
28
+ */
29
+ export interface PreByzantiumTxReceipt extends BaseTxReceipt {
30
+ /**
31
+ * Intermediary state root
32
+ */
33
+ stateRoot: Uint8Array;
34
+ }
35
+ /**
36
+ * Receipt type for Byzantium and beyond replacing the intermediary
37
+ * state root field with a status code field (EIP-658)
38
+ */
39
+ export interface PostByzantiumTxReceipt extends BaseTxReceipt {
40
+ /**
41
+ * Status of transaction, `1` if successful, `0` if an exception occurred
42
+ */
43
+ status: 0 | 1;
44
+ }
45
+ export interface EIP4844BlobTxReceipt extends PostByzantiumTxReceipt {
46
+ /**
47
+ * blob gas consumed by a transaction
48
+ *
49
+ * Note: This value is not included in the receiptRLP used for encoding the receiptsRoot in a block
50
+ * and is only provided as part of receipt metadata.
51
+ */
52
+ blobGasUsed: bigint;
53
+ /**
54
+ * blob gas price for block transaction was included in
55
+ *
56
+ * Note: This values is not included in the `receiptRLP` used for encoding the `receiptsRoot` in a block
57
+ * and is only provided as part of receipt metadata.
58
+ */
59
+ blobGasPrice: bigint;
60
+ }
61
+ export type EVMProfilerOpts = {
62
+ enabled: boolean;
63
+ };
64
+ export type VMEvent = {
65
+ beforeBlock: (data: Block, resolve?: (result?: any) => void) => void;
66
+ afterBlock: (data: AfterBlockEvent, resolve?: (result?: any) => void) => void;
67
+ beforeTx: (data: TypedTransaction, resolve?: (result?: any) => void) => void;
68
+ afterTx: (data: AfterTxEvent, resolve?: (result?: any) => void) => void;
69
+ };
70
+ export type VMProfilerOpts = {
71
+ reportAfterTx?: boolean;
72
+ reportAfterBlock?: boolean;
73
+ };
74
+ /**
75
+ * Options for instantiating a {@link VM}.
76
+ */
77
+ export interface VMOpts {
78
+ /**
79
+ * Use a {@link Common} instance
80
+ * if you want to change the chain setup.
81
+ *
82
+ * ### Possible Values
83
+ *
84
+ * - `chain`: all chains supported by `Common` or a custom chain
85
+ * - `hardfork`: `mainnet` hardforks up to the `Paris` hardfork
86
+ * - `eips`: `2537` (usage e.g. `eips: [ 2537, ]`)
87
+ *
88
+ * Note: check the associated `@feelyourprotocol/evm` instance options
89
+ * documentation for supported EIPs.
90
+ *
91
+ * ### Default Setup
92
+ *
93
+ * Default setup if no `Common` instance is provided:
94
+ *
95
+ * - `chain`: `mainnet`
96
+ * - `hardfork`: `paris`
97
+ * - `eips`: `[]`
98
+ */
99
+ common?: Common;
100
+ /**
101
+ * A {@link StateManager} instance to use as the state store
102
+ */
103
+ stateManager?: StateManagerInterface;
104
+ /**
105
+ * A {@link Blockchain} object for storing/retrieving blocks
106
+ */
107
+ blockchain?: EVMMockBlockchainInterface;
108
+ /**
109
+ * If true, create entries in the state tree for the precompiled contracts, saving some gas the
110
+ * first time each of them is called.
111
+ *
112
+ * If this parameter is false, each call to each of them has to pay an extra 25000 gas
113
+ * for creating the account. If the account is still empty after this call, it will be deleted,
114
+ * such that this extra cost has to be paid again.
115
+ *
116
+ * Setting this to true has the effect of precompiled contracts' gas costs matching mainnet's from
117
+ * the very first call, which is intended for testing networks.
118
+ *
119
+ * Default: `false`
120
+ */
121
+ activatePrecompiles?: boolean;
122
+ /**
123
+ * Set the hardfork either by timestamp (for HFs from Shanghai onwards) or by block number
124
+ * for older Hfs.
125
+ *
126
+ * Additionally it is possible to pass in a specific TD value to support live-Merge-HF
127
+ * transitions. Note that this should only be needed in very rare and specific scenarios.
128
+ *
129
+ * Default: `false` (HF is set to whatever default HF is set by the {@link Common} instance)
130
+ */
131
+ setHardfork?: boolean | BigIntLike;
132
+ /**
133
+ * VM parameters sorted by EIP can be found in the exported `paramsVM` dictionary,
134
+ * which is internally passed to the associated `@feelyourprotocol/common` instance which
135
+ * manages parameter selection based on the hardfork and EIP settings.
136
+ *
137
+ * This option allows providing a custom set of parameters. Note that parameters
138
+ * get fully overwritten, so you need to extend the default parameter dict
139
+ * to provide the full parameter set.
140
+ *
141
+ * It is recommended to deep-clone the params object for this to avoid side effects:
142
+ *
143
+ * ```ts
144
+ * const params = JSON.parse(JSON.stringify(paramsVM))
145
+ * params['1559']['elasticityMultiplier'] = 10 // 2
146
+ * ```
147
+ */
148
+ params?: ParamsDict;
149
+ /**
150
+ * Use a custom EVM to run Messages on. If this is not present, use the default EVM.
151
+ */
152
+ evm?: EVMInterface;
153
+ /**
154
+ * Often there is no need to provide a full custom EVM but only a few options need to be
155
+ * adopted. This option allows to provide a custom set of EVM options to be passed.
156
+ *
157
+ * Note: This option will throw if used in conjunction with a full custom EVM passed.
158
+ */
159
+ evmOpts?: EVMOpts;
160
+ profilerOpts?: VMProfilerOpts;
161
+ }
162
+ /**
163
+ * Options for the block builder.
164
+ */
165
+ export interface BuilderOpts extends BlockOptions {
166
+ /**
167
+ * Whether to put the block into the vm's blockchain after building it.
168
+ * This is useful for completing a full cycle when building a block so
169
+ * the only next step is to build again, however it may not be desired
170
+ * if the block is being emulated or may be discarded as to not affect
171
+ * the underlying blockchain.
172
+ *
173
+ * Default: true
174
+ */
175
+ putBlockIntoBlockchain?: boolean;
176
+ /**
177
+ * Provide a clique signer's privateKey to seal this block.
178
+ * Will throw if provided on a non-PoA chain.
179
+ */
180
+ cliqueSigner?: Uint8Array;
181
+ }
182
+ /**
183
+ * Options for building a block.
184
+ */
185
+ export interface BuildBlockOpts {
186
+ /**
187
+ * The parent block
188
+ */
189
+ parentBlock: Block;
190
+ /**
191
+ * The block header data to use.
192
+ * Defaults used for any values not provided.
193
+ */
194
+ headerData?: HeaderData;
195
+ withdrawals?: WithdrawalData[];
196
+ /**
197
+ * The block and builder options to use.
198
+ */
199
+ blockOpts?: BuilderOpts;
200
+ }
201
+ /**
202
+ * Options for sealing a block.
203
+ */
204
+ export interface SealBlockOpts {
205
+ /**
206
+ * For PoW, the nonce.
207
+ * Overrides the value passed in the constructor.
208
+ */
209
+ nonce?: Uint8Array;
210
+ /**
211
+ * For PoW, the mixHash.
212
+ * Overrides the value passed in the constructor.
213
+ */
214
+ mixHash?: Uint8Array;
215
+ }
216
+ /**
217
+ * Options for running a block.
218
+ */
219
+ export interface RunBlockOpts {
220
+ /**
221
+ * The @feelyourprotocol/block to process
222
+ */
223
+ block: Block;
224
+ /**
225
+ * Root of the state trie
226
+ */
227
+ root?: Uint8Array;
228
+ /**
229
+ * Clearing the StateManager cache.
230
+ *
231
+ * If state root is not reset for whatever reason this can be set to `false` for better performance.
232
+ *
233
+ * Default: true
234
+ */
235
+ clearCache?: boolean;
236
+ /**
237
+ * Whether to generate the stateRoot and other related fields.
238
+ * If `true`, `runBlock` will set the fields `stateRoot`, `receiptTrie`, `gasUsed`, and `bloom` (logs bloom) after running the block.
239
+ * If `false`, `runBlock` throws if any fields do not match.
240
+ * Defaults to `false`.
241
+ */
242
+ generate?: boolean;
243
+ /**
244
+ * If true, will skip "Block validation":
245
+ * Block validation validates the header (with respect to the blockchain),
246
+ * the transactions, the transaction trie and the uncle hash.
247
+ */
248
+ skipBlockValidation?: boolean;
249
+ /**
250
+ * If true, skips the hardfork validation of vm, block
251
+ * and tx
252
+ */
253
+ skipHardForkValidation?: boolean;
254
+ /**
255
+ * if true, will skip "Header validation"
256
+ * If the block has been picked from the blockchain to be executed,
257
+ * header has already been validated, and can be skipped especially when
258
+ * consensus of the chain has moved ahead.
259
+ */
260
+ skipHeaderValidation?: boolean;
261
+ /**
262
+ * If true, skips the nonce check
263
+ */
264
+ skipNonce?: boolean;
265
+ /**
266
+ * If true, checks the balance of the `from` account for the transaction and sets its
267
+ * balance equal equal to the upfront cost (gas limit * gas price + transaction value)
268
+ */
269
+ skipBalance?: boolean;
270
+ /**
271
+ * Set the hardfork either by timestamp (for HFs from Shanghai onwards) or by block number
272
+ * for older Hfs.
273
+ *
274
+ * Default: `false` (HF is set to whatever default HF is set by the {@link Common} instance)
275
+ */
276
+ setHardfork?: boolean;
277
+ /**
278
+ * If true, adds a hashedKey -> preimages mapping of all touched accounts
279
+ * to the `RunTxResult` returned.
280
+ */
281
+ reportPreimages?: boolean;
282
+ /**
283
+ * If true, will validate block size limit (EIP-7934) when validating block data.
284
+ * Defaults to false.
285
+ */
286
+ validateBlockSize?: boolean;
287
+ }
288
+ /**
289
+ * Result of {@link applyBlock}
290
+ */
291
+ export interface ApplyBlockResult {
292
+ /**
293
+ * The Bloom filter
294
+ */
295
+ bloom: Bloom;
296
+ /**
297
+ * The gas used after executing the block
298
+ */
299
+ gasUsed: bigint;
300
+ /**
301
+ * The receipt root after executing the block
302
+ */
303
+ receiptsRoot: Uint8Array;
304
+ /**
305
+ * Receipts generated for transactions in the block
306
+ */
307
+ receipts: TxReceipt[];
308
+ /**
309
+ * Results of executing the transactions in the block
310
+ */
311
+ results: RunTxResult[];
312
+ /**
313
+ * Preimages mapping of the touched accounts from the block (see reportPreimages option)
314
+ */
315
+ preimages?: Map<PrefixedHexString, Uint8Array>;
316
+ }
317
+ /**
318
+ * Result of {@link runBlock}
319
+ */
320
+ export interface RunBlockResult extends Omit<ApplyBlockResult, 'bloom'> {
321
+ /**
322
+ * The stateRoot after executing the block
323
+ */
324
+ stateRoot: Uint8Array;
325
+ /**
326
+ * The bloom filter of the LOGs (events) after executing the block
327
+ */
328
+ logsBloom: Uint8Array;
329
+ /**
330
+ * The requestsHash for any CL requests in the block
331
+ */
332
+ requestsHash?: Uint8Array;
333
+ /**
334
+ * Any CL requests that were processed in the course of this block
335
+ */
336
+ requests?: CLRequest<CLRequestType>[];
337
+ /**
338
+ * The block level access list created during execution
339
+ * (if EIP-7928 is active)
340
+ */
341
+ blockLevelAccessList?: BlockLevelAccessList;
342
+ }
343
+ export interface AfterBlockEvent extends RunBlockResult {
344
+ block: Block;
345
+ }
346
+ /**
347
+ * Options for the `runTx` method.
348
+ */
349
+ export interface RunTxOpts {
350
+ /**
351
+ * The `@feelyourprotocol/block` the `tx` belongs to.
352
+ * If omitted, a default blank block will be used.
353
+ */
354
+ block?: Block;
355
+ /**
356
+ * An `@feelyourprotocol/tx` to run
357
+ */
358
+ tx: TypedTransaction;
359
+ /**
360
+ * If true, skips the nonce check
361
+ */
362
+ skipNonce?: boolean;
363
+ /**
364
+ * Skip balance checks if true. Adds transaction cost to balance to ensure execution doesn't fail.
365
+ */
366
+ skipBalance?: boolean;
367
+ /**
368
+ * If true, skips the validation of the tx's gas limit
369
+ * against the block's gas limit.
370
+ */
371
+ skipBlockGasLimitValidation?: boolean;
372
+ /**
373
+ * If true, skips the hardfork validation of vm, block
374
+ * and tx
375
+ */
376
+ skipHardForkValidation?: boolean;
377
+ /**
378
+ * If true, adds a generated EIP-2930 access list
379
+ * to the `RunTxResult` returned.
380
+ *
381
+ * Option works with all tx types. EIP-2929 needs to
382
+ * be activated (included in `berlin` HF).
383
+ *
384
+ * Note: if this option is used with a custom {@link StateManager} implementation
385
+ * {@link StateManager.generateAccessList} must be implemented.
386
+ */
387
+ reportAccessList?: boolean;
388
+ /**
389
+ * If true, adds a hashedKey -> preimages mapping of all touched accounts
390
+ * to the `RunTxResult` returned.
391
+ */
392
+ reportPreimages?: boolean;
393
+ /**
394
+ * To obtain an accurate tx receipt input the block gas used up until this tx.
395
+ */
396
+ blockGasUsed?: bigint;
397
+ }
398
+ /**
399
+ * Execution result of a transaction
400
+ */
401
+ export interface RunTxResult extends EVMResult {
402
+ /**
403
+ * Bloom filter resulted from transaction
404
+ */
405
+ bloom: Bloom;
406
+ /**
407
+ * The amount of ether used by this transaction
408
+ */
409
+ amountSpent: bigint;
410
+ /**
411
+ * The tx receipt
412
+ */
413
+ receipt: TxReceipt;
414
+ /**
415
+ * The amount of gas used in this transaction, which is paid for
416
+ * This contains the gas units that have been used on execution, plus the upfront cost,
417
+ * which consists of calldata cost, intrinsic cost and optionally the access list costs
418
+ */
419
+ totalGasSpent: bigint;
420
+ /**
421
+ * The amount of gas accounted for at block level.
422
+ * On EIP-7778 this excludes tx-level refund subtraction.
423
+ */
424
+ blockGasSpent: bigint;
425
+ /**
426
+ * The amount of gas as that was refunded during the transaction (i.e. `gasUsed = totalGasConsumed - gasRefund`)
427
+ */
428
+ gasRefund: bigint;
429
+ /**
430
+ * EIP-2930 access list generated for the tx (see `reportAccessList` option)
431
+ */
432
+ accessList?: AccessList;
433
+ /**
434
+ * Preimages mapping of the touched accounts from the tx (see `reportPreimages` option)
435
+ */
436
+ preimages?: Map<PrefixedHexString, Uint8Array>;
437
+ /**
438
+ * The value that accrues to the miner by this transaction
439
+ */
440
+ minerValue: bigint;
441
+ /**
442
+ * This is the blob gas units times the fee per blob gas for 4844 transactions
443
+ */
444
+ blobGasUsed?: bigint;
445
+ }
446
+ export interface AfterTxEvent extends RunTxResult {
447
+ /**
448
+ * The transaction which just got finished
449
+ */
450
+ transaction: TypedTransaction;
451
+ }
452
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ import { EventEmitter } from 'eventemitter3';
2
+ import type { Common, StateManagerInterface } from '@feelyourprotocol/common';
3
+ import type { EVMInterface, EVMMockBlockchainInterface } from '@feelyourprotocol/evm';
4
+ import type { BigIntLike } from '@feelyourprotocol/util';
5
+ import type { VMEvent, VMOpts } from './types.ts';
6
+ /**
7
+ * The VM is a state transition machine that executes EVM bytecode and updates the state.
8
+ * It can be used to execute transactions, blocks, individual transactions, or snippets of EVM bytecode.
9
+ *
10
+ * A VM can be created with the constructor method:
11
+ *
12
+ * - {@link createVM}
13
+ */
14
+ export declare class VM {
15
+ /**
16
+ * The StateManager used by the VM
17
+ */
18
+ readonly stateManager: StateManagerInterface;
19
+ /**
20
+ * The blockchain the VM operates on
21
+ */
22
+ readonly blockchain: EVMMockBlockchainInterface;
23
+ readonly common: Common;
24
+ readonly events: EventEmitter<VMEvent>;
25
+ /**
26
+ * The EVM used for bytecode execution
27
+ */
28
+ readonly evm: EVMInterface;
29
+ protected readonly _opts: VMOpts;
30
+ protected _isInitialized: boolean;
31
+ protected readonly _setHardfork: boolean | BigIntLike;
32
+ /**
33
+ * Cached emit() function, not for public usage
34
+ * set to public due to implementation internals
35
+ * @hidden
36
+ */
37
+ readonly _emit: (topic: string, data: any) => Promise<void>;
38
+ /**
39
+ * VM is run in DEBUG mode (default: false)
40
+ * Taken from DEBUG environment variable
41
+ *
42
+ * Safeguards on debug() calls are added for
43
+ * performance reasons to avoid string literal evaluation
44
+ * @hidden
45
+ */
46
+ readonly DEBUG: boolean;
47
+ /**
48
+ * Instantiates a new {@link VM} Object.
49
+ *
50
+ * @deprecated The direct usage of this constructor is discouraged since
51
+ * non-finalized async initialization might lead to side effects. Please
52
+ * use the async {@link createVM} constructor instead (same API).
53
+ * @param opts
54
+ */
55
+ constructor(opts?: VMOpts);
56
+ /**
57
+ * Returns a copy of the {@link VM} instance.
58
+ *
59
+ * Note that the returned copy will share the same db as the original for the blockchain and the statemanager.
60
+ *
61
+ * Associated caches will be deleted and caches will be re-initialized for a more short-term focused
62
+ * usage, being less memory intense (the statemanager caches will switch to using an ORDERED_MAP cache
63
+ * data structure more suitable for short-term usage, the trie node LRU cache will not be activated at all).
64
+ * To fine-tune this behavior (if the shallow-copy-returned object has a longer life span e.g.) you can set
65
+ * the `downlevelCaches` option to `false`.
66
+ *
67
+ * @param downlevelCaches Downlevel (so: adopted for short-term usage) associated state caches (default: true)
68
+ */
69
+ shallowCopy(downlevelCaches?: boolean): Promise<VM>;
70
+ /**
71
+ * Return a compact error string representation of the object
72
+ */
73
+ errorStr(): string;
74
+ }
75
+ //# sourceMappingURL=vm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vm.d.ts","sourceRoot":"","sources":["../../src/vm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAK5C,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAE/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEjD;;;;;;;GAOG;AACH,qBAAa,EAAE;IACb;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAA;IAE5C;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAA;IAE/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEvB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;IACtC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;IAE1B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAChC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAQ;IAEzC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,UAAU,CAAA;IAErD;;;;OAIG;IACH,SAAgB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAElE;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAQ;IAE/B;;;;;;;OAOG;gBACS,IAAI,GAAE,MAAW;IA6B7B;;;;;;;;;;;;OAYG;IACG,WAAW,CAAC,eAAe,UAAO,GAAG,OAAO,CAAC,EAAE,CAAC;IAsBtD;;OAEG;IACH,QAAQ;CAUT"}