edgeflowjs 0.1.0 → 0.2.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.
- package/README.md +200 -66
- package/dist/backends/index.d.ts +9 -2
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +13 -13
- package/dist/backends/index.js.map +1 -1
- package/dist/backends/onnx.d.ts +11 -4
- package/dist/backends/onnx.d.ts.map +1 -1
- package/dist/backends/onnx.js +97 -78
- package/dist/backends/onnx.js.map +1 -1
- package/dist/backends/transformers-adapter.d.ts +99 -0
- package/dist/backends/transformers-adapter.d.ts.map +1 -0
- package/dist/backends/transformers-adapter.js +171 -0
- package/dist/backends/transformers-adapter.js.map +1 -0
- package/dist/backends/webgpu.d.ts +7 -5
- package/dist/backends/webgpu.d.ts.map +1 -1
- package/dist/backends/webgpu.js +7 -5
- package/dist/backends/webgpu.js.map +1 -1
- package/dist/backends/webnn.d.ts +6 -5
- package/dist/backends/webnn.d.ts.map +1 -1
- package/dist/backends/webnn.js +6 -5
- package/dist/backends/webnn.js.map +1 -1
- package/dist/core/composer.d.ts +118 -0
- package/dist/core/composer.d.ts.map +1 -0
- package/dist/core/composer.js +163 -0
- package/dist/core/composer.js.map +1 -0
- package/dist/core/device-profiler.d.ts +75 -0
- package/dist/core/device-profiler.d.ts.map +1 -0
- package/dist/core/device-profiler.js +131 -0
- package/dist/core/device-profiler.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +8 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/memory.d.ts +22 -2
- package/dist/core/memory.d.ts.map +1 -1
- package/dist/core/memory.js +49 -13
- package/dist/core/memory.js.map +1 -1
- package/dist/core/plugin.d.ts +100 -0
- package/dist/core/plugin.d.ts.map +1 -0
- package/dist/core/plugin.js +106 -0
- package/dist/core/plugin.js.map +1 -0
- package/dist/core/runtime.d.ts +4 -0
- package/dist/core/runtime.d.ts.map +1 -1
- package/dist/core/runtime.js +18 -0
- package/dist/core/runtime.js.map +1 -1
- package/dist/core/scheduler.d.ts +17 -0
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +101 -3
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/types.d.ts +14 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/worker.d.ts +202 -0
- package/dist/core/worker.d.ts.map +1 -0
- package/dist/core/worker.js +477 -0
- package/dist/core/worker.js.map +1 -0
- package/dist/edgeflow.browser.js +9770 -4383
- package/dist/edgeflow.browser.js.map +4 -4
- package/dist/edgeflow.browser.min.js +435 -5
- package/dist/edgeflow.browser.min.js.map +4 -4
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -10
- package/dist/index.js.map +1 -1
- package/dist/pipelines/automatic-speech-recognition.d.ts +63 -0
- package/dist/pipelines/automatic-speech-recognition.d.ts.map +1 -0
- package/dist/pipelines/automatic-speech-recognition.js +269 -0
- package/dist/pipelines/automatic-speech-recognition.js.map +1 -0
- package/dist/pipelines/base.d.ts +6 -1
- package/dist/pipelines/base.d.ts.map +1 -1
- package/dist/pipelines/base.js +12 -2
- package/dist/pipelines/base.js.map +1 -1
- package/dist/pipelines/feature-extraction.d.ts +5 -40
- package/dist/pipelines/feature-extraction.d.ts.map +1 -1
- package/dist/pipelines/feature-extraction.js +44 -63
- package/dist/pipelines/feature-extraction.js.map +1 -1
- package/dist/pipelines/image-classification.d.ts +4 -36
- package/dist/pipelines/image-classification.d.ts.map +1 -1
- package/dist/pipelines/image-classification.js +22 -60
- package/dist/pipelines/image-classification.js.map +1 -1
- package/dist/pipelines/image-segmentation.d.ts +221 -0
- package/dist/pipelines/image-segmentation.d.ts.map +1 -0
- package/dist/pipelines/image-segmentation.js +535 -0
- package/dist/pipelines/image-segmentation.js.map +1 -0
- package/dist/pipelines/index.d.ts +18 -0
- package/dist/pipelines/index.d.ts.map +1 -1
- package/dist/pipelines/index.js +51 -2
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pipelines/object-detection.d.ts +44 -0
- package/dist/pipelines/object-detection.d.ts.map +1 -0
- package/dist/pipelines/object-detection.js +218 -0
- package/dist/pipelines/object-detection.js.map +1 -0
- package/dist/pipelines/question-answering.d.ts +41 -0
- package/dist/pipelines/question-answering.d.ts.map +1 -0
- package/dist/pipelines/question-answering.js +164 -0
- package/dist/pipelines/question-answering.js.map +1 -0
- package/dist/pipelines/text-classification.d.ts +3 -39
- package/dist/pipelines/text-classification.d.ts.map +1 -1
- package/dist/pipelines/text-classification.js +29 -67
- package/dist/pipelines/text-classification.js.map +1 -1
- package/dist/pipelines/text-generation.d.ts +281 -0
- package/dist/pipelines/text-generation.d.ts.map +1 -0
- package/dist/pipelines/text-generation.js +766 -0
- package/dist/pipelines/text-generation.js.map +1 -0
- package/dist/pipelines/zero-shot-classification.d.ts +45 -0
- package/dist/pipelines/zero-shot-classification.d.ts.map +1 -0
- package/dist/pipelines/zero-shot-classification.js +140 -0
- package/dist/pipelines/zero-shot-classification.js.map +1 -0
- package/dist/tools/benchmark.d.ts +92 -0
- package/dist/tools/benchmark.d.ts.map +1 -0
- package/dist/tools/benchmark.js +213 -0
- package/dist/tools/benchmark.js.map +1 -0
- package/dist/tools/debugger.d.ts +258 -0
- package/dist/tools/debugger.d.ts.map +1 -0
- package/dist/tools/debugger.js +624 -0
- package/dist/tools/debugger.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/monitor.d.ts +284 -0
- package/dist/tools/monitor.d.ts.map +1 -0
- package/dist/tools/monitor.js +921 -0
- package/dist/tools/monitor.js.map +1 -0
- package/dist/tools/quantization.d.ts +235 -0
- package/dist/tools/quantization.d.ts.map +1 -0
- package/dist/tools/quantization.js +830 -0
- package/dist/tools/quantization.js.map +1 -0
- package/dist/utils/hub.d.ts +162 -0
- package/dist/utils/hub.d.ts.map +1 -0
- package/dist/utils/hub.js +311 -0
- package/dist/utils/hub.js.map +1 -0
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +5 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/model-loader.d.ts.map +1 -1
- package/dist/utils/model-loader.js +106 -30
- package/dist/utils/model-loader.js.map +1 -1
- package/dist/utils/offline.d.ts +147 -0
- package/dist/utils/offline.d.ts.map +1 -0
- package/dist/utils/offline.js +405 -0
- package/dist/utils/offline.js.map +1 -0
- package/dist/utils/preprocessor.d.ts +82 -6
- package/dist/utils/preprocessor.d.ts.map +1 -1
- package/dist/utils/preprocessor.js +278 -21
- package/dist/utils/preprocessor.js.map +1 -1
- package/dist/utils/tokenizer.d.ts +197 -72
- package/dist/utils/tokenizer.d.ts.map +1 -1
- package/dist/utils/tokenizer.js +558 -274
- package/dist/utils/tokenizer.js.map +1 -1
- package/package.json +26 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quantization.js","sourceRoot":"","sources":["../../src/tools/quantization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAY,MAAM,kBAAkB,CAAC;AAoH5D,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,SAAS,oBAAoB,CAC3B,IAAkB,EAClB,IAAY,EACZ,SAAkB,EAClB,UAAmB,EACnB,cAAsB,CAAC,EACvB,QAAkB,EAAE;IAEpB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjE,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,2BAA2B;QAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC9C,IAAI,SAAS,GAAG,QAAQ,CAAC;QACzB,IAAI,SAAS,GAAG,CAAC,QAAQ,CAAC;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,GAAG,QAAQ,CAAC;YACnB,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;YAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;gBAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACzB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3B,CAAC;YAED,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACrC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAErC,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtD,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;gBAC1B,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;gBACxC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,yBAAyB;YACzB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IAClF,CAAC;SAAM,CAAC;QACN,0BAA0B;QAC1B,IAAI,GAAG,GAAG,QAAQ,CAAC;QACnB,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;QAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACzB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,KAAa,CAAC;QAClB,IAAI,SAAiB,CAAC;QAEtB,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;YACtB,SAAS,GAAG,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;YACpC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,yBAAyB;QACzB,IAAI,KAAK,KAAK,CAAC;YAAE,KAAK,GAAG,CAAC,CAAC;QAE3B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACxC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,IAAkB,EAClB,KAA4B,EAC5B,SAA8B,EAC9B,UAAmB,EACnB,cAAsB,IAAI,CAAC,MAAM;IAEjC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,UAAU,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,EAAE,GAAI,SAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;gBAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,KAAe,CAAC;QAC1B,MAAM,EAAE,GAAG,SAAmB,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,IAAkB,EAClB,KAA4B,EAC5B,SAA8B,EAC9B,UAAmB,EACnB,cAAsB,IAAI,CAAC,MAAM;IAEjC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE3C,IAAI,UAAU,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,EAAE,GAAI,SAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;gBAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,KAAe,CAAC;QAC1B,MAAM,EAAE,GAAG,SAAmB,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,IAAkB,EAClB,KAAa,EACb,SAAiB;IAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;IAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAE9B,kDAAkD;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/E,sCAAsC;QACtC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAkB;IAC3C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAErD,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACvB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;IAExB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC;IAE9B,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,uBAAuB;QACvB,IAAI,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAClD,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC1B,uBAAuB;QACvB,OAAO,IAAI,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,OAAO,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAe,EACf,KAA4B,EAC5B,SAA8B,EAC9B,aAAsB,KAAK,EAC3B,cAAsB,IAAI,CAAC,MAAM;IAEjC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE7C,IAAI,UAAU,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,EAAE,GAAI,SAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;gBAChC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,KAAe,CAAC;QAC1B,MAAM,EAAE,GAAG,SAAmB,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAgB,EAChB,KAA4B,EAC5B,SAA8B,EAC9B,aAAsB,KAAK,EAC3B,cAAsB,IAAI,CAAC,MAAM;IAEjC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE7C,IAAI,UAAU,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,EAAE,GAAI,SAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;gBAChC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,KAAe,CAAC;QAC1B,MAAM,EAAE,GAAG,SAAmB,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAEhC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,eAAe;QACf,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACtE,CAAC;SAAM,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC3B,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAiB;IACjD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAkCD;;;GAGG;AACH,SAAS,iBAAiB,CAAC,SAAsB;IAC/C,8CAA8C;IAC9C,mFAAmF;IACnF,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,0DAA0D;IAC1D,yDAAyD;IACzD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IAEjD,oDAAoD;IACpD,wEAAwE;IACxE,OAAO,CAAC,IAAI,CAAC;QACX,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;QAC5B,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,KAAqB;IACpD,iCAAiC;IACjC,6FAA6F;IAC7F,uFAAuF;IACvF,6GAA6G;IAE7G,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAElC,uBAAuB;IACvB,IAAI,SAAS,GAAG,EAAE,CAAC,CAAC,SAAS;IAE7B,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE5D,SAAS,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO;QAC1C,SAAS,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ;QAClD,SAAS,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ;QAC5C,SAAS,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,gBAAgB;QACxD,SAAS,IAAI,CAAC,CAAC,CAAC,WAAW;QAC3B,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,SAAS,IAAI,CAAC,CAAC,CAAC,eAAe;QAC/B,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC;QACD,SAAS,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO;IAClD,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,eAAe;IACf,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAAC,MAAM,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;IAAC,MAAM,IAAI,CAAC,CAAC;IAC3H,uEAAuE;IACvE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,GAAG,UAAU,EAAE,IAAI,CAAC,CAAC;IAAC,MAAM,IAAI,CAAC,CAAC;IAC3E,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAAC,MAAM,IAAI,CAAC,CAAC;IACpF,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAAC,MAAM,IAAI,CAAC,CAAC;IAEhE,gBAAgB;IAChB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE5D,OAAO;QACP,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAAC,MAAM,IAAI,CAAC,CAAC;QAC5D,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;QAEzD,QAAQ;QACR,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAAC,MAAM,IAAI,CAAC,CAAC;QAC/D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAAC,MAAM,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,QAAQ;QACR,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAAC,MAAM,IAAI,CAAC,CAAC;QAC7D,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC;QAE3D,iBAAiB;QACjB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAAC,MAAM,IAAI,CAAC,CAAC;QACjE,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC;QAEnE,QAAQ;QACR,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAAC,MAAM,IAAI,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,IAAI,CAAC,CAAC;gBAC/D,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,IAAI,CAAC,CAAC;gBAC7C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,IAAI,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAAC,MAAM,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,aAAa;QACb,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAAC,MAAM,IAAI,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,IAAI,CAAC,CAAC;gBACnE,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;oBAAC,MAAM,IAAI,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,IAAI,CAAC,CAAC;gBAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,MAAM,IAAI,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAAC,MAAM,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,OAAO;QACP,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QACpD,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAAC,MAAM,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAAC,MAAM,IAAI,CAAC,CAAC;QACpD,KAAK,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;IACnF,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAsB,EACtB,OAA4B;IAE5B,MAAM,EACJ,IAAI,EACJ,YAAY,GAAG,EAAE,EACjB,UAAU,GAAG,KAAK,EAClB,SAAS,GAAG,IAAI,EAChB,UAAU,EACV,aAAa,GAAG,GAAG,GACpB,GAAG,OAAO,CAAC;IAEZ,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC;IAC1C,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,sBAAsB;IACtB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,gBAAgB,GAA8B,EAAE,CAAC;IACvD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;QAEjD,UAAU,EAAE,CAAC;YACX,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,CAAC,GAAG,CAAC;YACd,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,OAAO;YACP,SAAS,EAAE,MAAM,CAAC,IAAI;SACvB,CAAC,CAAC;QAEH,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAElC,uBAAuB;QACvB,MAAM,UAAU,GACd,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa;YAClC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC1B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAChC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;gBACD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QAEL,IAAI,UAAU,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,aAAa,EAAE,MAAM,CAAC,KAAK;gBAC3B,cAAc,EAAE,MAAM,CAAC,KAAK;gBAC5B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;gBACpC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;gBACrC,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;gBAClC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;gBAClC,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa;oBAC5C,CAAC,CAAC,kBAAkB;oBACpB,CAAC,CAAC,sBAAsB;aAC3B,CAAC,CAAC;YAEH,gBAAgB,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAgB;gBAChD,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,aAAa,EAAE,MAAM,CAAC,KAAK;aAC5B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,oCAAoC;QACpC,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,oBAAoB,CACjC,MAAM,CAAC,IAAI,EACX,IAAI,EACJ,SAAS,EACT,UAAU,EACV,CAAC,EACD,MAAM,CAAC,KAAK,CACb,CAAC;QAEF,gBAAgB;QAChB,IAAI,aAA0B,CAAC;QAC/B,IAAI,cAAsB,CAAC;QAE3B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM;gBACT,MAAM,QAAQ,GAAG,cAAc,CAC7B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,EAChB,UAAU,EACV,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAC9E,CAAC;gBACF,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAC;gBACxD,cAAc,GAAG,MAAM,CAAC;gBACxB,MAAM;YAER,KAAK,OAAO;gBACV,MAAM,SAAS,GAAG,eAAe,CAC/B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,EAChB,UAAU,EACV,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAC9E,CAAC;gBACF,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAC;gBACzD,cAAc,GAAG,OAAO,CAAC;gBACzB,MAAM;YAER,KAAK,MAAM;gBACT,MAAM,QAAQ,GAAG,cAAc,CAC7B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAe,EACtB,MAAM,CAAC,SAAmB,CAC3B,CAAC;gBACF,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAC;gBACxD,cAAc,GAAG,MAAM,CAAC;gBACxB,MAAM;YAER,KAAK,SAAS;gBACZ,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChD,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAC;gBACxD,cAAc,GAAG,SAAS,CAAC;gBAC3B,MAAM;YAER,KAAK,SAAS,CAAC;YACf;gBACE,6CAA6C;gBAC7C,MAAM,OAAO,GAAG,cAAc,CAC5B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,EAChB,UAAU,EACV,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAC9E,CAAC;gBACF,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAC;gBACvD,cAAc,GAAG,MAAM,CAAC;gBACxB,MAAM;QACV,CAAC;QAED,gBAAgB,EAAE,CAAC;QACnB,eAAe,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAEtC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,YAAY,YAAY;YACrD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAC1B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACjB,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,YAAY,UAAU;YACpD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;QAErB,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QAC7B,CAAC;QAED,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,aAAa,EAAE,MAAM,CAAC,KAAK;YAC3B,cAAc;YACd,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;YACpC,aAAa,EAAE,aAAa,CAAC,UAAU;YACvC,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,MAAM,CAAC,GAAG;YACpB,QAAQ,EAAE,MAAM,CAAC,GAAG;YACpB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,gBAAgB,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,cAAc;YACrB,aAAa,EAAE,MAAM,CAAC,KAAK;YAC3B,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE,OAAO;SACnB,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAErE,MAAM,cAAc,GAAmB;QACrC,OAAO,EAAE,CAAC;QACV,gBAAgB,EAAE,IAAI;QACtB,YAAY;QACZ,OAAO,EAAE,gBAAgB;KAC1B,CAAC;IAEF,MAAM,aAAa,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAE9D,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAExE,uBAAuB;IACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;QAChC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM;QACnD,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7D,yDAAyD;IACzD,MAAM,aAAa,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,CAAC;IAE/C,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,YAAY;QACZ,aAAa,EAAE,aAAa,CAAC,UAAU;QACvC,gBAAgB,EAAE,YAAY,GAAG,aAAa,CAAC,UAAU;QACzD,gBAAgB;QAChB,cAAc;QACd,UAAU;QACV,KAAK,EAAE;YACL,eAAe,EAAE,WAAW;YAC5B,mBAAmB,EAAE,eAAe;YACpC,YAAY,EAAE,QAAQ;YACtB,QAAQ;YACR,QAAQ;YACR,aAAa;SACd;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAsB,EACtB,IAAsB,EACtB,UAAyD,EAAE;IAM3D,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACzD,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAiB,CAAC;IAEvC,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,oBAAoB,CACjC,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,UAAU,EACV,CAAC,EACD,KAAK,CACN,CAAC;IAEF,IAAI,aAAmD,CAAC;IACxD,IAAI,KAAe,CAAC;IAEpB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,aAAa,GAAG,cAAc,CAC5B,IAAI,EACJ,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,EAChB,UAAU,CACX,CAAC;YACF,KAAK,GAAG,OAAO,CAAC,CAAC,gDAAgD;YACjE,MAAM;QAER,KAAK,OAAO;YACV,aAAa,GAAG,eAAe,CAC7B,IAAI,EACJ,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,EAChB,UAAU,CACX,CAAC;YACF,KAAK,GAAG,OAAO,CAAC;YAChB,MAAM;QAER,KAAK,SAAS;YACZ,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxC,KAAK,GAAG,SAAS,CAAC,CAAC,6BAA6B;YAChD,MAAM;QAER;YACE,aAAa,GAAG,cAAc,CAC5B,IAAI,EACJ,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,EAChB,UAAU,CACX,CAAC;YACF,KAAK,GAAG,OAAO,CAAC;IACpB,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,YAAY,YAAY;QACrD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACjB,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,YAAY,UAAU;QACpD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC9B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IAErB,OAAO;QACL,MAAM,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;QACnE,KAAK,EAAE,UAAU;QACjB,SAAS,EAAE,OAAO;KACnB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAsB,EACtB,KAAwB,EACxB,SAA4B,EAC5B,IAAsB;IAEtB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAiB,CAAC;IAEvC,IAAI,eAA6B,CAAC;IAElC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAExC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,eAAe,GAAG,cAAc,CAC9B,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAC/B,QAAQ,EACR,KAAK,EACL,UAAU,CACX,CAAC;YACF,MAAM;QAER,KAAK,OAAO;YACV,eAAe,GAAG,eAAe,CAC/B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAChC,QAAQ,EACR,KAAK,EACL,UAAU,CACX,CAAC;YACF,MAAM;QAER,KAAK,SAAS;YACZ,eAAe,GAAG,iBAAiB,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM;QAER;YACE,eAAe,GAAG,cAAc,CAC9B,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAC/B,QAAQ,EACR,KAAK,EACL,UAAU,CACX,CAAC;IACN,CAAC;IAED,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAC3E,CAAC;AAiDD;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,MAAsB,EACtB,UAA0B,EAAE;IAM5B,MAAM,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAiB,CAAC;IAEvC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,+BAA+B;QAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QAC5D,MAAM,iBAAiB,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAExE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,iBAAiB,EAAE,CAAC;gBAC/C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClB,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACZ,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClB,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC;QACpE,IAAI,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC;QAC5D,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC,MAAM;KACpC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAsB,EACtB,UAA0B,EAAE;IAE5B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAE/B,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAEnD,sCAAsC;IACtC,qDAAqD;IACrD,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,cAAc,CAC/B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EACvB,MAAM,CAAC,KAAK,EACZ,SAAS,CACV,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAErD,OAAO;QACL,IAAI,EAAE,SAAS,EAAE,wDAAwD;QACzE,YAAY,EAAE,SAAS,CAAC,UAAU;QAClC,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,sCAAsC;QACxE,QAAQ,EAAE,YAAY,GAAG,WAAW;QACpC,gBAAgB,EAAE,YAAY;QAC9B,eAAe,EAAE,WAAW;KAC7B,CAAC;AACJ,CAAC;AAmCD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAsB;IACvD,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;IAEvC,MAAM,cAAc,GAAoD,EAAE,CAAC;IAC3E,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,MAAM,WAAW,GAA2D,EAAE,CAAC;IAE/E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAElC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;gBAChC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC7B,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;QAElD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACvD,CAAC;QACD,cAAc,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,KAAK,EAAE,CAAC;QACtC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,IAAI,IAAI,IAAI,CAAC;QAE3C,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI;YACJ,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhD,2BAA2B;IAC3B,MAAM,uBAAuB,GAAqC;QAChE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAC9B,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAC9B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACjC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;KAClC,CAAC;IAEF,6CAA6C;IAC7C,IAAI,uBAAuB,GAAqB,SAAS,CAAC;IAC1D,IAAI,SAAS,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;QAClC,uBAAuB,GAAG,MAAM,CAAC;IACnC,CAAC;SAAM,IAAI,SAAS,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;QACzC,uBAAuB,GAAG,MAAM,CAAC;IACnC,CAAC;SAAM,IAAI,SAAS,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;QACxC,uBAAuB,GAAG,SAAS,CAAC;IACtC,CAAC;IAED,OAAO;QACL,SAAS;QACT,WAAW,EAAE,OAAO,CAAC,MAAM;QAC3B,eAAe,EAAE,WAAW;QAC5B,cAAc;QACd,cAAc;QACd,eAAe,EAAE,WAAW,GAAG,CAAC,EAAE,8BAA8B;QAChE,uBAAuB;QACvB,uBAAuB;KACxB,CAAC;AACJ,CAAC;AAoBD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAsB,EACtB,OAAsB;IAEtB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAErC,kCAAkC;IAClC,IAAI,IAAI,GAAG,SAAS,CAAC;IACrB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,sCAAsC;IACtC,wDAAwD;IACxD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU;YACb,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,+BAA+B;YAC/B,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,iCAAiC;YACjC,OAAO,IAAI,CAAC;QACd;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,eAAe;IACb,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,UAAU;IACV,WAAW;IACX,YAAY;IACZ,WAAW;IACX,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,gBAAgB;CACjB,CAAC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* edgeFlow.js - Hugging Face Hub Integration
|
|
3
|
+
*
|
|
4
|
+
* Automatically download models, tokenizers, and configs from Hugging Face Hub.
|
|
5
|
+
*/
|
|
6
|
+
import { type DownloadProgress } from './model-loader.js';
|
|
7
|
+
import { Tokenizer } from './tokenizer.js';
|
|
8
|
+
/**
|
|
9
|
+
* Hub options
|
|
10
|
+
*/
|
|
11
|
+
export interface HubOptions {
|
|
12
|
+
/** HuggingFace API endpoint (default: https://huggingface.co) */
|
|
13
|
+
endpoint?: string;
|
|
14
|
+
/** Model revision/branch (default: main) */
|
|
15
|
+
revision?: string;
|
|
16
|
+
/** Subfolder within the repo */
|
|
17
|
+
subfolder?: string;
|
|
18
|
+
/** Enable caching */
|
|
19
|
+
cache?: boolean;
|
|
20
|
+
/** Force re-download */
|
|
21
|
+
forceDownload?: boolean;
|
|
22
|
+
/** Progress callback */
|
|
23
|
+
onProgress?: (progress: HubDownloadProgress) => void;
|
|
24
|
+
/** HuggingFace API token (for private repos) */
|
|
25
|
+
token?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Download progress for hub
|
|
29
|
+
*/
|
|
30
|
+
export interface HubDownloadProgress {
|
|
31
|
+
/** Current file being downloaded */
|
|
32
|
+
file: string;
|
|
33
|
+
/** File index (1-based) */
|
|
34
|
+
fileIndex: number;
|
|
35
|
+
/** Total files */
|
|
36
|
+
totalFiles: number;
|
|
37
|
+
/** File download progress */
|
|
38
|
+
fileProgress: DownloadProgress;
|
|
39
|
+
/** Overall progress (0-100) */
|
|
40
|
+
overallProgress: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Model info from config.json
|
|
44
|
+
*/
|
|
45
|
+
export interface ModelConfig {
|
|
46
|
+
model_type?: string;
|
|
47
|
+
architectures?: string[];
|
|
48
|
+
hidden_size?: number;
|
|
49
|
+
num_attention_heads?: number;
|
|
50
|
+
num_hidden_layers?: number;
|
|
51
|
+
vocab_size?: number;
|
|
52
|
+
max_position_embeddings?: number;
|
|
53
|
+
type_vocab_size?: number;
|
|
54
|
+
id2label?: Record<string, string>;
|
|
55
|
+
label2id?: Record<string, number>;
|
|
56
|
+
[key: string]: unknown;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Downloaded model bundle
|
|
60
|
+
*/
|
|
61
|
+
export interface ModelBundle {
|
|
62
|
+
/** Model ID */
|
|
63
|
+
modelId: string;
|
|
64
|
+
/** Model data (ArrayBuffer) */
|
|
65
|
+
modelData: ArrayBuffer;
|
|
66
|
+
/** Tokenizer instance */
|
|
67
|
+
tokenizer?: Tokenizer;
|
|
68
|
+
/** Model config */
|
|
69
|
+
config?: ModelConfig;
|
|
70
|
+
/** Model files info */
|
|
71
|
+
files: {
|
|
72
|
+
model?: string;
|
|
73
|
+
tokenizer?: string;
|
|
74
|
+
config?: string;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Download a file from HuggingFace Hub
|
|
79
|
+
*/
|
|
80
|
+
export declare function downloadFile(modelId: string, filename: string, options?: HubOptions): Promise<ArrayBuffer>;
|
|
81
|
+
/**
|
|
82
|
+
* Download JSON file from HuggingFace Hub
|
|
83
|
+
*/
|
|
84
|
+
export declare function downloadJson<T = unknown>(modelId: string, filename: string, options?: HubOptions): Promise<T>;
|
|
85
|
+
/**
|
|
86
|
+
* Download tokenizer from HuggingFace Hub
|
|
87
|
+
*/
|
|
88
|
+
export declare function downloadTokenizer(modelId: string, options?: HubOptions): Promise<Tokenizer>;
|
|
89
|
+
/**
|
|
90
|
+
* Download model config from HuggingFace Hub
|
|
91
|
+
*/
|
|
92
|
+
export declare function downloadConfig(modelId: string, options?: HubOptions): Promise<ModelConfig>;
|
|
93
|
+
/**
|
|
94
|
+
* Download complete model bundle (model + tokenizer + config)
|
|
95
|
+
*/
|
|
96
|
+
export declare function downloadModel(modelId: string, options?: HubOptions): Promise<ModelBundle>;
|
|
97
|
+
/**
|
|
98
|
+
* Load a model from HuggingFace Hub
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* // Load a sentiment analysis model
|
|
103
|
+
* const bundle = await fromHub('Xenova/distilbert-base-uncased-finetuned-sst-2-english');
|
|
104
|
+
*
|
|
105
|
+
* // Use with edgeFlow
|
|
106
|
+
* const model = await loadModelFromBuffer(bundle.modelData);
|
|
107
|
+
* const tokens = bundle.tokenizer.encode('I love this!');
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare function fromHub(modelId: string, options?: HubOptions): Promise<ModelBundle>;
|
|
111
|
+
/**
|
|
112
|
+
* Check if a model exists on HuggingFace Hub
|
|
113
|
+
*/
|
|
114
|
+
export declare function modelExists(modelId: string, options?: HubOptions): Promise<boolean>;
|
|
115
|
+
/**
|
|
116
|
+
* Get model info from HuggingFace Hub
|
|
117
|
+
*/
|
|
118
|
+
export declare function getModelInfo(modelId: string, options?: HubOptions): Promise<{
|
|
119
|
+
hasOnnx: boolean;
|
|
120
|
+
onnxFile?: string;
|
|
121
|
+
hasTokenizer: boolean;
|
|
122
|
+
hasConfig: boolean;
|
|
123
|
+
config?: ModelConfig;
|
|
124
|
+
}>;
|
|
125
|
+
/**
|
|
126
|
+
* Pre-configured popular models
|
|
127
|
+
*/
|
|
128
|
+
export declare const POPULAR_MODELS: {
|
|
129
|
+
readonly 'sentiment-analysis': "Xenova/distilbert-base-uncased-finetuned-sst-2-english";
|
|
130
|
+
readonly 'text-classification': "Xenova/distilbert-base-uncased-finetuned-sst-2-english";
|
|
131
|
+
readonly 'feature-extraction': "Xenova/all-MiniLM-L6-v2";
|
|
132
|
+
readonly 'sentence-similarity': "Xenova/all-MiniLM-L6-v2";
|
|
133
|
+
readonly 'question-answering': "Xenova/distilbert-base-cased-distilled-squad";
|
|
134
|
+
readonly ner: "Xenova/bert-base-NER";
|
|
135
|
+
readonly 'token-classification': "Xenova/bert-base-NER";
|
|
136
|
+
readonly 'text-generation': "Xenova/gpt2";
|
|
137
|
+
readonly 'translation-en-fr': "Xenova/t5-small";
|
|
138
|
+
readonly 'translation-en-de': "Xenova/t5-small";
|
|
139
|
+
readonly summarization: "Xenova/distilbart-cnn-6-6";
|
|
140
|
+
readonly 'fill-mask': "Xenova/bert-base-uncased";
|
|
141
|
+
readonly 'image-classification': "Xenova/vit-base-patch16-224";
|
|
142
|
+
readonly 'object-detection': "Xenova/detr-resnet-50";
|
|
143
|
+
readonly 'image-segmentation': "Xenova/segformer-b0-finetuned-ade-512-512";
|
|
144
|
+
readonly 'zero-shot-classification': "Xenova/mobilebert-uncased-mnli";
|
|
145
|
+
readonly 'automatic-speech-recognition': "Xenova/whisper-tiny.en";
|
|
146
|
+
readonly 'text-to-speech': "Xenova/speecht5_tts";
|
|
147
|
+
};
|
|
148
|
+
export type PopularModelTask = keyof typeof POPULAR_MODELS;
|
|
149
|
+
/**
|
|
150
|
+
* Get the default model ID for a task
|
|
151
|
+
*/
|
|
152
|
+
export declare function getDefaultModel(task: PopularModelTask): string;
|
|
153
|
+
/**
|
|
154
|
+
* Load a model by task name
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* const bundle = await fromTask('sentiment-analysis');
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
export declare function fromTask(task: PopularModelTask, options?: HubOptions): Promise<ModelBundle>;
|
|
162
|
+
//# sourceMappingURL=hub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/utils/hub.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* edgeFlow.js - Hugging Face Hub Integration
|
|
3
|
+
*
|
|
4
|
+
* Automatically download models, tokenizers, and configs from Hugging Face Hub.
|
|
5
|
+
*/
|
|
6
|
+
import { loadModelData, isModelCached } from './model-loader.js';
|
|
7
|
+
import { Tokenizer } from './tokenizer.js';
|
|
8
|
+
import { EdgeFlowError, ErrorCodes } from '../core/types.js';
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Constants
|
|
11
|
+
// ============================================================================
|
|
12
|
+
const DEFAULT_ENDPOINT = 'https://huggingface.co';
|
|
13
|
+
const DEFAULT_REVISION = 'main';
|
|
14
|
+
/**
|
|
15
|
+
* Common ONNX model file patterns (in order of preference)
|
|
16
|
+
*/
|
|
17
|
+
const ONNX_MODEL_FILES = [
|
|
18
|
+
'model.onnx',
|
|
19
|
+
'model_quantized.onnx',
|
|
20
|
+
'model_int8.onnx',
|
|
21
|
+
'model_uint8.onnx',
|
|
22
|
+
'model_fp16.onnx',
|
|
23
|
+
'onnx/model.onnx',
|
|
24
|
+
'onnx/model_quantized.onnx',
|
|
25
|
+
];
|
|
26
|
+
// ============================================================================
|
|
27
|
+
// Hub API
|
|
28
|
+
// ============================================================================
|
|
29
|
+
/**
|
|
30
|
+
* Build URL for a file in a HuggingFace repo
|
|
31
|
+
*/
|
|
32
|
+
function buildFileUrl(modelId, filename, options = {}) {
|
|
33
|
+
const endpoint = options.endpoint ?? DEFAULT_ENDPOINT;
|
|
34
|
+
const revision = options.revision ?? DEFAULT_REVISION;
|
|
35
|
+
const subfolder = options.subfolder ? `${options.subfolder}/` : '';
|
|
36
|
+
return `${endpoint}/${modelId}/resolve/${revision}/${subfolder}${filename}`;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Fetch with optional auth token
|
|
40
|
+
*/
|
|
41
|
+
async function fetchWithAuth(url, token) {
|
|
42
|
+
const headers = {};
|
|
43
|
+
if (token) {
|
|
44
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
45
|
+
}
|
|
46
|
+
const response = await fetch(url, { headers });
|
|
47
|
+
return response;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Check if a file exists in a repo
|
|
51
|
+
*/
|
|
52
|
+
async function fileExists(modelId, filename, options = {}) {
|
|
53
|
+
const url = buildFileUrl(modelId, filename, options);
|
|
54
|
+
try {
|
|
55
|
+
const response = await fetchWithAuth(url, options.token);
|
|
56
|
+
// HuggingFace returns 302 redirect for existing files
|
|
57
|
+
return response.ok || response.status === 302;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Find the best ONNX model file in a repo
|
|
65
|
+
*/
|
|
66
|
+
async function findOnnxModel(modelId, options = {}) {
|
|
67
|
+
// Try common file patterns
|
|
68
|
+
for (const filename of ONNX_MODEL_FILES) {
|
|
69
|
+
if (await fileExists(modelId, filename, options)) {
|
|
70
|
+
return filename;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Download a file from HuggingFace Hub
|
|
77
|
+
*/
|
|
78
|
+
export async function downloadFile(modelId, filename, options = {}) {
|
|
79
|
+
const url = buildFileUrl(modelId, filename, options);
|
|
80
|
+
// Use model loader for caching and resume support
|
|
81
|
+
return loadModelData(url, {
|
|
82
|
+
cache: options.cache ?? true,
|
|
83
|
+
forceDownload: options.forceDownload ?? false,
|
|
84
|
+
onProgress: options.onProgress ? (progress) => {
|
|
85
|
+
options.onProgress({
|
|
86
|
+
file: filename,
|
|
87
|
+
fileIndex: 1,
|
|
88
|
+
totalFiles: 1,
|
|
89
|
+
fileProgress: progress,
|
|
90
|
+
overallProgress: progress.percent,
|
|
91
|
+
});
|
|
92
|
+
} : undefined,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Download JSON file from HuggingFace Hub
|
|
97
|
+
*/
|
|
98
|
+
export async function downloadJson(modelId, filename, options = {}) {
|
|
99
|
+
const url = buildFileUrl(modelId, filename, options);
|
|
100
|
+
// Check cache first
|
|
101
|
+
if (options.cache !== false && !options.forceDownload) {
|
|
102
|
+
const cached = await isModelCached(url);
|
|
103
|
+
if (cached) {
|
|
104
|
+
const data = await loadModelData(url, { cache: true });
|
|
105
|
+
const text = new TextDecoder().decode(data);
|
|
106
|
+
return JSON.parse(text);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Fetch directly for small JSON files
|
|
110
|
+
const response = await fetchWithAuth(url, options.token);
|
|
111
|
+
if (!response.ok) {
|
|
112
|
+
throw new EdgeFlowError(`Failed to download ${filename} from ${modelId}: ${response.status}`, ErrorCodes.MODEL_NOT_FOUND);
|
|
113
|
+
}
|
|
114
|
+
return response.json();
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Download tokenizer from HuggingFace Hub
|
|
118
|
+
*/
|
|
119
|
+
export async function downloadTokenizer(modelId, options = {}) {
|
|
120
|
+
const url = buildFileUrl(modelId, 'tokenizer.json', options);
|
|
121
|
+
return Tokenizer.fromUrl(url);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Download model config from HuggingFace Hub
|
|
125
|
+
*/
|
|
126
|
+
export async function downloadConfig(modelId, options = {}) {
|
|
127
|
+
return downloadJson(modelId, 'config.json', options);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Download complete model bundle (model + tokenizer + config)
|
|
131
|
+
*/
|
|
132
|
+
export async function downloadModel(modelId, options = {}) {
|
|
133
|
+
const files = {};
|
|
134
|
+
const totalSteps = 3; // model, tokenizer, config
|
|
135
|
+
let currentStep = 0;
|
|
136
|
+
const reportProgress = (file, progress) => {
|
|
137
|
+
if (options.onProgress) {
|
|
138
|
+
const baseProgress = (currentStep / totalSteps) * 100;
|
|
139
|
+
const stepProgress = (progress.percent / totalSteps);
|
|
140
|
+
options.onProgress({
|
|
141
|
+
file,
|
|
142
|
+
fileIndex: currentStep + 1,
|
|
143
|
+
totalFiles: totalSteps,
|
|
144
|
+
fileProgress: progress,
|
|
145
|
+
overallProgress: baseProgress + stepProgress,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
// 1. Find and download ONNX model
|
|
150
|
+
console.log(`🔍 Finding ONNX model in ${modelId}...`);
|
|
151
|
+
const modelFile = await findOnnxModel(modelId, options);
|
|
152
|
+
if (!modelFile) {
|
|
153
|
+
throw new EdgeFlowError(`No ONNX model found in ${modelId}. Please ensure the model has an ONNX file.`, ErrorCodes.MODEL_NOT_FOUND, { modelId, triedFiles: ONNX_MODEL_FILES });
|
|
154
|
+
}
|
|
155
|
+
files.model = modelFile;
|
|
156
|
+
console.log(`📦 Downloading model: ${modelFile}`);
|
|
157
|
+
const modelData = await downloadFile(modelId, modelFile, {
|
|
158
|
+
...options,
|
|
159
|
+
onProgress: (p) => reportProgress(modelFile, p.fileProgress),
|
|
160
|
+
});
|
|
161
|
+
currentStep = 1;
|
|
162
|
+
// 2. Download tokenizer (optional)
|
|
163
|
+
let tokenizer;
|
|
164
|
+
try {
|
|
165
|
+
console.log(`📝 Downloading tokenizer...`);
|
|
166
|
+
files.tokenizer = 'tokenizer.json';
|
|
167
|
+
tokenizer = await downloadTokenizer(modelId, options);
|
|
168
|
+
console.log(`✓ Tokenizer loaded`);
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
console.warn(`⚠️ No tokenizer found for ${modelId}`);
|
|
172
|
+
}
|
|
173
|
+
currentStep = 2;
|
|
174
|
+
// 3. Download config (optional)
|
|
175
|
+
let config;
|
|
176
|
+
try {
|
|
177
|
+
console.log(`⚙️ Downloading config...`);
|
|
178
|
+
files.config = 'config.json';
|
|
179
|
+
config = await downloadConfig(modelId, options);
|
|
180
|
+
console.log(`✓ Config loaded`);
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
console.warn(`⚠️ No config found for ${modelId}`);
|
|
184
|
+
}
|
|
185
|
+
currentStep = 3;
|
|
186
|
+
if (options.onProgress) {
|
|
187
|
+
options.onProgress({
|
|
188
|
+
file: 'complete',
|
|
189
|
+
fileIndex: totalSteps,
|
|
190
|
+
totalFiles: totalSteps,
|
|
191
|
+
fileProgress: { loaded: 1, total: 1, percent: 100, speed: 0, eta: 0 },
|
|
192
|
+
overallProgress: 100,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
console.log(`✅ Model bundle downloaded: ${modelId}`);
|
|
196
|
+
return {
|
|
197
|
+
modelId,
|
|
198
|
+
modelData,
|
|
199
|
+
tokenizer,
|
|
200
|
+
config,
|
|
201
|
+
files,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
// ============================================================================
|
|
205
|
+
// High-level API
|
|
206
|
+
// ============================================================================
|
|
207
|
+
/**
|
|
208
|
+
* Load a model from HuggingFace Hub
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```typescript
|
|
212
|
+
* // Load a sentiment analysis model
|
|
213
|
+
* const bundle = await fromHub('Xenova/distilbert-base-uncased-finetuned-sst-2-english');
|
|
214
|
+
*
|
|
215
|
+
* // Use with edgeFlow
|
|
216
|
+
* const model = await loadModelFromBuffer(bundle.modelData);
|
|
217
|
+
* const tokens = bundle.tokenizer.encode('I love this!');
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
export async function fromHub(modelId, options = {}) {
|
|
221
|
+
return downloadModel(modelId, options);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Check if a model exists on HuggingFace Hub
|
|
225
|
+
*/
|
|
226
|
+
export async function modelExists(modelId, options = {}) {
|
|
227
|
+
try {
|
|
228
|
+
// Try to find an ONNX model
|
|
229
|
+
const modelFile = await findOnnxModel(modelId, options);
|
|
230
|
+
return modelFile !== null;
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Get model info from HuggingFace Hub
|
|
238
|
+
*/
|
|
239
|
+
export async function getModelInfo(modelId, options = {}) {
|
|
240
|
+
const [onnxFile, hasTokenizer, config] = await Promise.all([
|
|
241
|
+
findOnnxModel(modelId, options),
|
|
242
|
+
fileExists(modelId, 'tokenizer.json', options),
|
|
243
|
+
downloadConfig(modelId, options).catch(() => undefined),
|
|
244
|
+
]);
|
|
245
|
+
return {
|
|
246
|
+
hasOnnx: onnxFile !== null,
|
|
247
|
+
onnxFile: onnxFile ?? undefined,
|
|
248
|
+
hasTokenizer,
|
|
249
|
+
hasConfig: config !== undefined,
|
|
250
|
+
config,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
// ============================================================================
|
|
254
|
+
// Popular Models Registry
|
|
255
|
+
// ============================================================================
|
|
256
|
+
/**
|
|
257
|
+
* Pre-configured popular models
|
|
258
|
+
*/
|
|
259
|
+
export const POPULAR_MODELS = {
|
|
260
|
+
// Text Classification / Sentiment
|
|
261
|
+
'sentiment-analysis': 'Xenova/distilbert-base-uncased-finetuned-sst-2-english',
|
|
262
|
+
'text-classification': 'Xenova/distilbert-base-uncased-finetuned-sst-2-english',
|
|
263
|
+
// Feature Extraction
|
|
264
|
+
'feature-extraction': 'Xenova/all-MiniLM-L6-v2',
|
|
265
|
+
'sentence-similarity': 'Xenova/all-MiniLM-L6-v2',
|
|
266
|
+
// Question Answering
|
|
267
|
+
'question-answering': 'Xenova/distilbert-base-cased-distilled-squad',
|
|
268
|
+
// Token Classification
|
|
269
|
+
'ner': 'Xenova/bert-base-NER',
|
|
270
|
+
'token-classification': 'Xenova/bert-base-NER',
|
|
271
|
+
// Text Generation
|
|
272
|
+
'text-generation': 'Xenova/gpt2',
|
|
273
|
+
// Translation
|
|
274
|
+
'translation-en-fr': 'Xenova/t5-small',
|
|
275
|
+
'translation-en-de': 'Xenova/t5-small',
|
|
276
|
+
// Summarization
|
|
277
|
+
'summarization': 'Xenova/distilbart-cnn-6-6',
|
|
278
|
+
// Fill Mask
|
|
279
|
+
'fill-mask': 'Xenova/bert-base-uncased',
|
|
280
|
+
// Image Classification
|
|
281
|
+
'image-classification': 'Xenova/vit-base-patch16-224',
|
|
282
|
+
// Object Detection
|
|
283
|
+
'object-detection': 'Xenova/detr-resnet-50',
|
|
284
|
+
// Image Segmentation
|
|
285
|
+
'image-segmentation': 'Xenova/segformer-b0-finetuned-ade-512-512',
|
|
286
|
+
// Zero-shot Classification
|
|
287
|
+
'zero-shot-classification': 'Xenova/mobilebert-uncased-mnli',
|
|
288
|
+
// Speech Recognition
|
|
289
|
+
'automatic-speech-recognition': 'Xenova/whisper-tiny.en',
|
|
290
|
+
// Text-to-Speech
|
|
291
|
+
'text-to-speech': 'Xenova/speecht5_tts',
|
|
292
|
+
};
|
|
293
|
+
/**
|
|
294
|
+
* Get the default model ID for a task
|
|
295
|
+
*/
|
|
296
|
+
export function getDefaultModel(task) {
|
|
297
|
+
return POPULAR_MODELS[task];
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Load a model by task name
|
|
301
|
+
*
|
|
302
|
+
* @example
|
|
303
|
+
* ```typescript
|
|
304
|
+
* const bundle = await fromTask('sentiment-analysis');
|
|
305
|
+
* ```
|
|
306
|
+
*/
|
|
307
|
+
export async function fromTask(task, options = {}) {
|
|
308
|
+
const modelId = getDefaultModel(task);
|
|
309
|
+
return downloadModel(modelId, options);
|
|
310
|
+
}
|
|
311
|
+
//# sourceMappingURL=hub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub.js","sourceRoot":"","sources":["../../src/utils/hub.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* edgeFlow.js - Utilities Exports
|
|
3
3
|
*/
|
|
4
|
-
export { Tokenizer, createBasicTokenizer, loadTokenizer, type TokenizerModel, type TokenizerOptions, } from './tokenizer.js';
|
|
4
|
+
export { Tokenizer, createBasicTokenizer, loadTokenizer, loadTokenizerFromHub, type TokenizerModel, type TokenizerOptions, } from './tokenizer.js';
|
|
5
5
|
export { ImagePreprocessor, AudioPreprocessor, preprocessText, createImagePreprocessor, createAudioPreprocessor, type ImagePreprocessorOptions, type AudioPreprocessorOptions, type TextPreprocessorOptions, } from './preprocessor.js';
|
|
6
6
|
export { Cache, InferenceCache, ModelDownloadCache, createCache, type CacheStrategy, type CacheOptions, type CacheStats, } from './cache.js';
|
|
7
7
|
export { loadModelData, preloadModel, preloadModels, isModelCached, getCachedModel, deleteCachedModel, clearModelCache, getModelCacheStats, getPreloadStatus, cancelPreload, getPreloadedModel, type DownloadProgress, type ModelLoaderOptions, type PreloadOptions, } from './model-loader.js';
|
|
8
|
+
export { fromHub, fromTask, downloadModel, downloadFile, downloadTokenizer, downloadConfig, modelExists, getModelInfo, getDefaultModel, POPULAR_MODELS, type HubOptions, type HubDownloadProgress, type ModelConfig, type ModelBundle, type PopularModelTask, } from './hub.js';
|
|
9
|
+
export { OfflineManager, getOfflineManager, initOffline, isOffline, isPWASupported, generateServiceWorker, generateManifest, type OfflineConfig, type OfflineStatus, type CachedModelInfo, } from './offline.js';
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,KAAK,EACL,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,KAAK,EACL,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,OAAO,EACP,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,cAAc,EACd,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
* edgeFlow.js - Utilities Exports
|
|
3
3
|
*/
|
|
4
4
|
// Tokenizer
|
|
5
|
-
export { Tokenizer, createBasicTokenizer, loadTokenizer, } from './tokenizer.js';
|
|
5
|
+
export { Tokenizer, createBasicTokenizer, loadTokenizer, loadTokenizerFromHub, } from './tokenizer.js';
|
|
6
6
|
// Preprocessor
|
|
7
7
|
export { ImagePreprocessor, AudioPreprocessor, preprocessText, createImagePreprocessor, createAudioPreprocessor, } from './preprocessor.js';
|
|
8
8
|
// Cache
|
|
9
9
|
export { Cache, InferenceCache, ModelDownloadCache, createCache, } from './cache.js';
|
|
10
10
|
// Model Loader (Preloading, Sharding, Resume, Caching)
|
|
11
11
|
export { loadModelData, preloadModel, preloadModels, isModelCached, getCachedModel, deleteCachedModel, clearModelCache, getModelCacheStats, getPreloadStatus, cancelPreload, getPreloadedModel, } from './model-loader.js';
|
|
12
|
+
// HuggingFace Hub Integration
|
|
13
|
+
export { fromHub, fromTask, downloadModel, downloadFile, downloadTokenizer, downloadConfig, modelExists, getModelInfo, getDefaultModel, POPULAR_MODELS, } from './hub.js';
|
|
14
|
+
// Offline/PWA Support
|
|
15
|
+
export { OfflineManager, getOfflineManager, initOffline, isOffline, isPWASupported, generateServiceWorker, generateManifest, } from './offline.js';
|
|
12
16
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY;AACZ,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY;AACZ,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,oBAAoB,GAGrB,MAAM,gBAAgB,CAAC;AAExB,eAAe;AACf,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,GAIxB,MAAM,mBAAmB,CAAC;AAE3B,QAAQ;AACR,OAAO,EACL,KAAK,EACL,cAAc,EACd,kBAAkB,EAClB,WAAW,GAIZ,MAAM,YAAY,CAAC;AAEpB,uDAAuD;AACvD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,GAIlB,MAAM,mBAAmB,CAAC;AAE3B,8BAA8B;AAC9B,OAAO,EACL,OAAO,EACP,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,cAAc,GAMf,MAAM,UAAU,CAAC;AAElB,sBAAsB;AACtB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,gBAAgB,GAIjB,MAAM,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-loader.d.ts","sourceRoot":"","sources":["../../src/utils/model-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"model-loader.d.ts","sourceRoot":"","sources":["../../src/utils/model-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA2xBD;;GAEG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,CA0DtB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAE5F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/C,OAAO,GAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAM,GAC7C,OAAO,CAAC,WAAW,EAAE,CAAC,CAIxB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGjE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAE7E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAElE;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAEzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAExG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAEhF"}
|