@vertexvis/viewer 0.18.2-testing.0 → 0.18.2-testing.1
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/dist/cjs/index-b99cd335.js +126 -1
- package/dist/esm/index-fd7d7b68.js +126 -1
- package/package.json +7 -7
- package/dist/components/_commonjsHelpers.js +0 -41
- package/dist/components/_commonjsHelpers.js.map +0 -1
- package/dist/components/browser.esm.js +0 -3173
- package/dist/components/browser.esm.js.map +0 -1
- package/dist/components/bundle.esm.js +0 -2250
- package/dist/components/bundle.esm.js.map +0 -1
- package/dist/components/bundle.esm2.js +0 -39740
- package/dist/components/bundle.esm2.js.map +0 -1
- package/dist/components/config.js +0 -81
- package/dist/components/config.js.map +0 -1
- package/dist/components/controller.js +0 -7627
- package/dist/components/controller.js.map +0 -1
- package/dist/components/controller2.js +0 -124
- package/dist/components/controller2.js.map +0 -1
- package/dist/components/controller3.js +0 -111
- package/dist/components/controller3.js.map +0 -1
- package/dist/components/cursors.js +0 -110
- package/dist/components/cursors.js.map +0 -1
- package/dist/components/dom.js +0 -43
- package/dist/components/dom.js.map +0 -1
- package/dist/components/dom2.js +0 -10
- package/dist/components/dom2.js.map +0 -1
- package/dist/components/elementRectObserver.js +0 -25
- package/dist/components/elementRectObserver.js.map +0 -1
- package/dist/components/entities.js +0 -179
- package/dist/components/entities.js.map +0 -1
- package/dist/components/errors.js +0 -80
- package/dist/components/errors.js.map +0 -1
- package/dist/components/events.js +0 -11
- package/dist/components/events.js.map +0 -1
- package/dist/components/index.d.ts +0 -26
- package/dist/components/index.js +0 -365
- package/dist/components/index.js.map +0 -1
- package/dist/components/index2.js +0 -63
- package/dist/components/index2.js.map +0 -1
- package/dist/components/interactions.js +0 -236
- package/dist/components/interactions.js.map +0 -1
- package/dist/components/mapper.js +0 -9811
- package/dist/components/mapper.js.map +0 -1
- package/dist/components/markup.js +0 -33
- package/dist/components/markup.js.map +0 -1
- package/dist/components/model.js +0 -134
- package/dist/components/model.js.map +0 -1
- package/dist/components/model2.js +0 -157
- package/dist/components/model2.js.map +0 -1
- package/dist/components/overlays.js +0 -76
- package/dist/components/overlays.js.map +0 -1
- package/dist/components/png-decoder.js +0 -2405
- package/dist/components/png-decoder.js.map +0 -1
- package/dist/components/regl-component.js +0 -12582
- package/dist/components/regl-component.js.map +0 -1
- package/dist/components/results.js +0 -24
- package/dist/components/results.js.map +0 -1
- package/dist/components/row.js +0 -32
- package/dist/components/row.js.map +0 -1
- package/dist/components/scene-tree-search.js +0 -146
- package/dist/components/scene-tree-search.js.map +0 -1
- package/dist/components/scene-tree-table-layout.js +0 -928
- package/dist/components/scene-tree-table-layout.js.map +0 -1
- package/dist/components/scene-tree-toolbar.js +0 -35
- package/dist/components/scene-tree-toolbar.js.map +0 -1
- package/dist/components/scene.js +0 -1508
- package/dist/components/scene.js.map +0 -1
- package/dist/components/stencil.js +0 -25
- package/dist/components/stencil.js.map +0 -1
- package/dist/components/streamAttributes.js +0 -40833
- package/dist/components/streamAttributes.js.map +0 -1
- package/dist/components/templates.js +0 -36
- package/dist/components/templates.js.map +0 -1
- package/dist/components/tslib.es6.js +0 -125
- package/dist/components/tslib.es6.js.map +0 -1
- package/dist/components/vertex-scene-tree-search.d.ts +0 -11
- package/dist/components/vertex-scene-tree-search.js +0 -11
- package/dist/components/vertex-scene-tree-search.js.map +0 -1
- package/dist/components/vertex-scene-tree-table-cell.d.ts +0 -11
- package/dist/components/vertex-scene-tree-table-cell.js +0 -209
- package/dist/components/vertex-scene-tree-table-cell.js.map +0 -1
- package/dist/components/vertex-scene-tree-table-column.d.ts +0 -11
- package/dist/components/vertex-scene-tree-table-column.js +0 -42
- package/dist/components/vertex-scene-tree-table-column.js.map +0 -1
- package/dist/components/vertex-scene-tree-table-header.d.ts +0 -11
- package/dist/components/vertex-scene-tree-table-header.js +0 -38
- package/dist/components/vertex-scene-tree-table-header.js.map +0 -1
- package/dist/components/vertex-scene-tree-table-layout.d.ts +0 -11
- package/dist/components/vertex-scene-tree-table-layout.js +0 -11
- package/dist/components/vertex-scene-tree-table-layout.js.map +0 -1
- package/dist/components/vertex-scene-tree-table-resize-divider.d.ts +0 -11
- package/dist/components/vertex-scene-tree-table-resize-divider.js +0 -57
- package/dist/components/vertex-scene-tree-table-resize-divider.js.map +0 -1
- package/dist/components/vertex-scene-tree-toolbar-group.d.ts +0 -11
- package/dist/components/vertex-scene-tree-toolbar-group.js +0 -38
- package/dist/components/vertex-scene-tree-toolbar-group.js.map +0 -1
- package/dist/components/vertex-scene-tree-toolbar.d.ts +0 -11
- package/dist/components/vertex-scene-tree-toolbar.js +0 -11
- package/dist/components/vertex-scene-tree-toolbar.js.map +0 -1
- package/dist/components/vertex-scene-tree.d.ts +0 -11
- package/dist/components/vertex-scene-tree.js +0 -803
- package/dist/components/vertex-scene-tree.js.map +0 -1
- package/dist/components/vertex-viewer-box-query-tool.d.ts +0 -11
- package/dist/components/vertex-viewer-box-query-tool.js +0 -352
- package/dist/components/vertex-viewer-box-query-tool.js.map +0 -1
- package/dist/components/vertex-viewer-button.d.ts +0 -11
- package/dist/components/vertex-viewer-button.js +0 -11
- package/dist/components/vertex-viewer-button.js.map +0 -1
- package/dist/components/vertex-viewer-default-toolbar.d.ts +0 -11
- package/dist/components/vertex-viewer-default-toolbar.js +0 -99
- package/dist/components/vertex-viewer-default-toolbar.js.map +0 -1
- package/dist/components/vertex-viewer-dom-element.d.ts +0 -11
- package/dist/components/vertex-viewer-dom-element.js +0 -11
- package/dist/components/vertex-viewer-dom-element.js.map +0 -1
- package/dist/components/vertex-viewer-dom-group.d.ts +0 -11
- package/dist/components/vertex-viewer-dom-group.js +0 -11
- package/dist/components/vertex-viewer-dom-group.js.map +0 -1
- package/dist/components/vertex-viewer-dom-renderer.d.ts +0 -11
- package/dist/components/vertex-viewer-dom-renderer.js +0 -11
- package/dist/components/vertex-viewer-dom-renderer.js.map +0 -1
- package/dist/components/vertex-viewer-hit-result-indicator.d.ts +0 -11
- package/dist/components/vertex-viewer-hit-result-indicator.js +0 -335
- package/dist/components/vertex-viewer-hit-result-indicator.js.map +0 -1
- package/dist/components/vertex-viewer-icon.d.ts +0 -11
- package/dist/components/vertex-viewer-icon.js +0 -11
- package/dist/components/vertex-viewer-icon.js.map +0 -1
- package/dist/components/vertex-viewer-layer.d.ts +0 -11
- package/dist/components/vertex-viewer-layer.js +0 -11
- package/dist/components/vertex-viewer-layer.js.map +0 -1
- package/dist/components/vertex-viewer-markup-arrow.d.ts +0 -11
- package/dist/components/vertex-viewer-markup-arrow.js +0 -11
- package/dist/components/vertex-viewer-markup-arrow.js.map +0 -1
- package/dist/components/vertex-viewer-markup-circle.d.ts +0 -11
- package/dist/components/vertex-viewer-markup-circle.js +0 -11
- package/dist/components/vertex-viewer-markup-circle.js.map +0 -1
- package/dist/components/vertex-viewer-markup-freeform.d.ts +0 -11
- package/dist/components/vertex-viewer-markup-freeform.js +0 -11
- package/dist/components/vertex-viewer-markup-freeform.js.map +0 -1
- package/dist/components/vertex-viewer-markup-tool.d.ts +0 -11
- package/dist/components/vertex-viewer-markup-tool.js +0 -257
- package/dist/components/vertex-viewer-markup-tool.js.map +0 -1
- package/dist/components/vertex-viewer-markup.d.ts +0 -11
- package/dist/components/vertex-viewer-markup.js +0 -362
- package/dist/components/vertex-viewer-markup.js.map +0 -1
- package/dist/components/vertex-viewer-measurement-details.d.ts +0 -11
- package/dist/components/vertex-viewer-measurement-details.js +0 -307
- package/dist/components/vertex-viewer-measurement-details.js.map +0 -1
- package/dist/components/vertex-viewer-measurement-distance.d.ts +0 -11
- package/dist/components/vertex-viewer-measurement-distance.js +0 -1067
- package/dist/components/vertex-viewer-measurement-distance.js.map +0 -1
- package/dist/components/vertex-viewer-measurement-line.d.ts +0 -11
- package/dist/components/vertex-viewer-measurement-line.js +0 -11
- package/dist/components/vertex-viewer-measurement-line.js.map +0 -1
- package/dist/components/vertex-viewer-measurement-overlays.d.ts +0 -11
- package/dist/components/vertex-viewer-measurement-overlays.js +0 -11
- package/dist/components/vertex-viewer-measurement-overlays.js.map +0 -1
- package/dist/components/vertex-viewer-measurement-precise.d.ts +0 -11
- package/dist/components/vertex-viewer-measurement-precise.js +0 -362
- package/dist/components/vertex-viewer-measurement-precise.js.map +0 -1
- package/dist/components/vertex-viewer-pin-group.d.ts +0 -11
- package/dist/components/vertex-viewer-pin-group.js +0 -11
- package/dist/components/vertex-viewer-pin-group.js.map +0 -1
- package/dist/components/vertex-viewer-pin-label-line.d.ts +0 -11
- package/dist/components/vertex-viewer-pin-label-line.js +0 -11
- package/dist/components/vertex-viewer-pin-label-line.js.map +0 -1
- package/dist/components/vertex-viewer-pin-label.d.ts +0 -11
- package/dist/components/vertex-viewer-pin-label.js +0 -11
- package/dist/components/vertex-viewer-pin-label.js.map +0 -1
- package/dist/components/vertex-viewer-pin-tool.d.ts +0 -11
- package/dist/components/vertex-viewer-pin-tool.js +0 -430
- package/dist/components/vertex-viewer-pin-tool.js.map +0 -1
- package/dist/components/vertex-viewer-spinner.d.ts +0 -11
- package/dist/components/vertex-viewer-spinner.js +0 -11
- package/dist/components/vertex-viewer-spinner.js.map +0 -1
- package/dist/components/vertex-viewer-toolbar-group.d.ts +0 -11
- package/dist/components/vertex-viewer-toolbar-group.js +0 -11
- package/dist/components/vertex-viewer-toolbar-group.js.map +0 -1
- package/dist/components/vertex-viewer-toolbar.d.ts +0 -11
- package/dist/components/vertex-viewer-toolbar.js +0 -11
- package/dist/components/vertex-viewer-toolbar.js.map +0 -1
- package/dist/components/vertex-viewer-transform-widget.d.ts +0 -11
- package/dist/components/vertex-viewer-transform-widget.js +0 -838
- package/dist/components/vertex-viewer-transform-widget.js.map +0 -1
- package/dist/components/vertex-viewer-view-cube.d.ts +0 -11
- package/dist/components/vertex-viewer-view-cube.js +0 -270
- package/dist/components/vertex-viewer-view-cube.js.map +0 -1
- package/dist/components/vertex-viewer.d.ts +0 -11
- package/dist/components/vertex-viewer.js +0 -3543
- package/dist/components/vertex-viewer.js.map +0 -1
- package/dist/components/viewer-button.js +0 -35
- package/dist/components/viewer-button.js.map +0 -1
- package/dist/components/viewer-dom-element.js +0 -250
- package/dist/components/viewer-dom-element.js.map +0 -1
- package/dist/components/viewer-dom-group.js +0 -214
- package/dist/components/viewer-dom-group.js.map +0 -1
- package/dist/components/viewer-dom-renderer.js +0 -295
- package/dist/components/viewer-dom-renderer.js.map +0 -1
- package/dist/components/viewer-icon.js +0 -87
- package/dist/components/viewer-icon.js.map +0 -1
- package/dist/components/viewer-layer.js +0 -46
- package/dist/components/viewer-layer.js.map +0 -1
- package/dist/components/viewer-markup-arrow.js +0 -235
- package/dist/components/viewer-markup-arrow.js.map +0 -1
- package/dist/components/viewer-markup-circle-components.js +0 -42
- package/dist/components/viewer-markup-circle-components.js.map +0 -1
- package/dist/components/viewer-markup-circle.js +0 -201
- package/dist/components/viewer-markup-circle.js.map +0 -1
- package/dist/components/viewer-markup-freeform.js +0 -251
- package/dist/components/viewer-markup-freeform.js.map +0 -1
- package/dist/components/viewer-measurement-line.js +0 -77
- package/dist/components/viewer-measurement-line.js.map +0 -1
- package/dist/components/viewer-measurement-overlays.js +0 -184
- package/dist/components/viewer-measurement-overlays.js.map +0 -1
- package/dist/components/viewer-pin-group.js +0 -207
- package/dist/components/viewer-pin-group.js.map +0 -1
- package/dist/components/viewer-pin-label-line.js +0 -43
- package/dist/components/viewer-pin-label-line.js.map +0 -1
- package/dist/components/viewer-pin-label.js +0 -427
- package/dist/components/viewer-pin-label.js.map +0 -1
- package/dist/components/viewer-spinner.js +0 -53
- package/dist/components/viewer-spinner.js.map +0 -1
- package/dist/components/viewer-toolbar-group.js +0 -42
- package/dist/components/viewer-toolbar-group.js.map +0 -1
- package/dist/components/viewer-toolbar.js +0 -61
- package/dist/components/viewer-toolbar.js.map +0 -1
- package/dist/components/viewport.js +0 -188
- package/dist/components/viewport.js.map +0 -1
- package/dist/components/wrappers_pb.js +0 -1926
- package/dist/components/wrappers_pb.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"regl-component.js","mappings":";;;;;;;;;;AAAA,CAAC,UAAU,MAAM,EAAE,OAAO,EAAE;AAC5B,IAAmE,cAAc,GAAG,OAAO,EAAE,CAE1D,CAAC;AACpC,CAAC,CAACA,cAAI,GAAG,YAAY,CACrB;AACA,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE;AAChC,EAAE;AACF,IAAI,CAAC,YAAY,UAAU;AAC3B,IAAI,CAAC,YAAY,WAAW;AAC5B,IAAI,CAAC,YAAY,WAAW;AAC5B,IAAI,CAAC,YAAY,SAAS;AAC1B,IAAI,CAAC,YAAY,UAAU;AAC3B,IAAI,CAAC,YAAY,UAAU;AAC3B,IAAI,CAAC,YAAY,YAAY;AAC7B,IAAI,CAAC,YAAY,YAAY;AAC7B,IAAI,CAAC,YAAY,iBAAiB;AAClC,GAAG;AACH,EAAC;AACD;AACA,IAAI,MAAM,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE;AACnC,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAC;AAC9B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACxC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC;AACjC,GAAG;AACH,EAAE,OAAO,IAAI;AACb,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,KAAI;AACf;AACA;AACA;AACA,SAAS,SAAS,EAAE,GAAG,EAAE;AACzB,EAAE,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AACnC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC;AACpB,GAAG;AACH,EAAE,OAAO,SAAS,GAAG,GAAG;AACxB,CAAC;AACD;AACA,SAAS,KAAK,EAAE,OAAO,EAAE;AACzB,EAAE,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,GAAG,OAAO,EAAC;AAC5C,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAC;AACtB,EAAE,MAAM,KAAK;AACb,CAAC;AACD;AACA,SAAS,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;AAC/B,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,KAAK,CAAC,OAAO,EAAC;AAClB,GAAG;AACH,CAAC;AACD;AACA,SAAS,OAAO,EAAE,OAAO,EAAE;AAC3B,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,OAAO,IAAI,GAAG,OAAO;AACzB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,CAAC;AACD;AACA,SAAS,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE;AACxD,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,CAAC,EAAE;AACjC,IAAI,KAAK,CAAC,qBAAqB,GAAG,KAAK,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;AAChE,UAAU,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,EAAC;AACpE,GAAG;AACH,CAAC;AACD;AACA,SAAS,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3C,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC3B,IAAI,KAAK;AACT,MAAM,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;AACjD,MAAM,yBAAyB,EAAC;AAChC,GAAG;AACH,CAAC;AACD;AACA,SAAS,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE;AACtC,EAAE,QAAQ,IAAI;AACd,IAAI,KAAK,QAAQ,EAAE,OAAO,OAAO,KAAK,KAAK,QAAQ;AACnD,IAAI,KAAK,QAAQ,EAAE,OAAO,OAAO,KAAK,KAAK,QAAQ;AACnD,IAAI,KAAK,QAAQ,EAAE,OAAO,OAAO,KAAK,KAAK,QAAQ;AACnD,IAAI,KAAK,SAAS,EAAE,OAAO,OAAO,KAAK,KAAK,SAAS;AACrD,IAAI,KAAK,UAAU,EAAE,OAAO,OAAO,KAAK,KAAK,UAAU;AACvD,IAAI,KAAK,WAAW,EAAE,OAAO,OAAO,KAAK,KAAK,WAAW;AACzD,IAAI,KAAK,QAAQ,EAAE,OAAO,OAAO,KAAK,KAAK,QAAQ;AACnD,GAAG;AACH,CAAC;AACD;AACA,SAAS,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;AAC5C,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;AACpC,IAAI,KAAK;AACT,MAAM,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;AACjD,MAAM,aAAa,GAAG,IAAI,GAAG,QAAQ,IAAI,OAAO,KAAK,CAAC,EAAC;AACvD,GAAG;AACH,CAAC;AACD;AACA,SAAS,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE;AAC9C,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AACnB,SAAS,CAAC,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AAClC,IAAI,KAAK,CAAC,2BAA2B,GAAG,KAAK,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;AACtE,UAAU,iCAAiC,EAAC;AAC5C,GAAG;AACH,CAAC;AACD;AACA,SAAS,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3C,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC/B,IAAI,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,oBAAoB,GAAG,IAAI,EAAC;AAC3E,GAAG;AACH,CAAC;AACD;AACA,IAAI,eAAe,GAAG;AACtB,EAAE,IAAI;AACN,EAAE,QAAQ;AACV,EAAE,WAAW;AACb,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,oBAAoB;AACtB,EAAE,SAAS;AACX,EAAE,QAAQ;AACV,EAAC;AACD;AACA,SAAS,gBAAgB,EAAE,GAAG,EAAE;AAChC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAC1C,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC1C,MAAM,KAAK,CAAC,qCAAqC,GAAG,GAAG,GAAG,oBAAoB,GAAG,eAAe,EAAC;AACjG,KAAK;AACL,GAAG,EAAC;AACJ,CAAC;AACD;AACA,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;AAC1B,EAAE,GAAG,GAAG,GAAG,GAAG,GAAE;AAChB,EAAE,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,IAAI,GAAG,GAAG,GAAG,GAAG,IAAG;AACnB,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,CAAC;AACD;AACA,SAAS,UAAU,IAAI;AACvB,EAAE,IAAI,CAAC,IAAI,GAAG,UAAS;AACvB,EAAE,IAAI,CAAC,KAAK,GAAG,GAAE;AACjB,EAAE,IAAI,CAAC,KAAK,GAAG,GAAE;AACjB,EAAE,IAAI,CAAC,SAAS,GAAG,MAAK;AACxB,CAAC;AACD;AACA,SAAS,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;AACnC,EAAE,IAAI,CAAC,MAAM,GAAG,OAAM;AACtB,EAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,EAAE,IAAI,CAAC,MAAM,GAAG,GAAE;AAClB,CAAC;AACD;AACA,SAAS,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE;AACvD,EAAE,IAAI,CAAC,IAAI,GAAG,WAAU;AACxB,EAAE,IAAI,CAAC,IAAI,GAAG,WAAU;AACxB,EAAE,IAAI,CAAC,OAAO,GAAG,QAAO;AACxB,CAAC;AACD;AACA,SAAS,YAAY,IAAI;AACzB,EAAE,IAAI,KAAK,GAAG,IAAI,KAAK,GAAE;AACzB,EAAE,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,QAAQ,GAAE;AAC/C,EAAE,IAAI,GAAG,GAAG,qCAAqC,CAAC,IAAI,CAAC,KAAK,EAAC;AAC7D,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;AACjB,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,wCAAwC,CAAC,IAAI,CAAC,KAAK,EAAC;AACjE,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,SAAS;AAClB,CAAC;AACD;AACA,SAAS,aAAa,IAAI;AAC1B,EAAE,IAAI,KAAK,GAAG,IAAI,KAAK,GAAE;AACzB,EAAE,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,QAAQ,GAAE;AAC/C,EAAE,IAAI,GAAG,GAAG,mCAAmC,CAAC,IAAI,CAAC,KAAK,EAAC;AAC3D,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;AACjB,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,kCAAkC,CAAC,IAAI,CAAC,KAAK,EAAC;AAC3D,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;AAClB,GAAG;AACH,EAAE,OAAO,SAAS;AAClB,CAAC;AACD;AACA,SAAS,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE;AACvC,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAC;AAChC,EAAE,IAAI,UAAU,GAAG,EAAC;AACpB,EAAE,IAAI,UAAU,GAAG,EAAC;AACpB,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,EAAE,IAAI,UAAU,EAAE;AAC7B,IAAI,CAAC,EAAE,IAAI,UAAU,EAAE;AACvB,IAAG;AACH,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,IAAI,YAAY,GAAE;AAChE,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAC;AACjD,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACzC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,EAAC;AACvB,IAAI,IAAI,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAC;AACrD,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,QAAQ,KAAK,CAAC,CAAC,CAAC;AACtB,QAAQ,KAAK,MAAM;AACnB,UAAU,IAAI,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC;AAC9D,UAAU,IAAI,cAAc,EAAE;AAC9B,YAAY,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,EAAC;AAC9C,YAAY,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE;AACnC,cAAc,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,EAAC;AAChD,cAAc,IAAI,EAAE,UAAU,IAAI,KAAK,CAAC,EAAE;AAC1C,gBAAgB,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,UAAU,GAAE;AACpD,eAAe;AACf,aAAa;AACb,WAAW;AACX,UAAU,KAAK;AACf,QAAQ,KAAK,QAAQ;AACrB,UAAU,IAAI,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC;AACpE,UAAU,IAAI,QAAQ,EAAE;AACxB,YAAY,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC;AACjD,gBAAgB,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtC,gBAAgB,QAAQ,CAAC,CAAC,CAAC,EAAC;AAC5B,WAAW;AACX,UAAU,KAAK;AACf,OAAO;AACP,KAAK;AACL,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,EAAC;AACpE,GAAG;AACH,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,UAAU,EAAE;AACnD,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,EAAC;AAChC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACvC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAI;AACpC,KAAK,EAAC;AACN,GAAG,EAAC;AACJ,EAAE,OAAO,KAAK;AACd,CAAC;AACD;AACA,SAAS,aAAa,EAAE,MAAM,EAAE;AAChC,EAAE,IAAI,MAAM,GAAG,GAAE;AACjB,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;AAC/C,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,gCAAgC,CAAC,IAAI,CAAC,MAAM,EAAC;AAC7D,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW;AACjC,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACpB,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACpB,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAC;AACzB,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,EAAC;AACxD,KAAK;AACL,GAAG,EAAC;AACJ,EAAE,OAAO,MAAM;AACf,CAAC;AACD;AACA,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE;AACvC,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AAClC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAC;AAChC,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAC;AACvC,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAC;AAC/B,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAI;AAC7B,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,KAAI;AAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAC;AAC7C,GAAG,EAAC;AACJ,CAAC;AACD;AACA,SAAS,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AAC9D,EAAE,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE;AACzD,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAC;AAC5C,IAAI,IAAI,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC,eAAe,GAAG,UAAU,GAAG,SAAQ;AACtE,IAAI,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,iCAAiC,EAAE,OAAO,EAAC;AAC7F,IAAI,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,EAAC;AAC5C,IAAI,IAAI,MAAM,GAAG,aAAa,CAAC,MAAM,EAAC;AACtC,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,EAAC;AAChC;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,UAAU,EAAE;AACrD,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,EAAC;AAClC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,QAAQ,MAAM;AACd,OAAO;AACP;AACA,MAAM,IAAI,OAAO,GAAG,CAAC,EAAE,EAAC;AACxB,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE,EAAC;AACvB;AACA,MAAM,SAAS,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;AACjC,QAAQ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAC;AACzB,QAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAC;AAChC,OAAO;AACP;AACA,MAAM,IAAI,CAAC,cAAc,GAAG,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,sDAAsD,EAAC;AACzH;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACzC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,2CAA2C,EAAC;AAC5F,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,sDAAsD,EAAC;AACxF;AACA;AACA,UAAU,IAAI,MAAM,GAAG,EAAC;AACxB,UAAU,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AAC/C,YAAY,IAAI,OAAO,GAAG,KAAK,CAAC,QAAO;AACvC,YAAY,IAAI,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAC;AAC9D,YAAY,IAAI,KAAK,EAAE;AACvB,cAAc,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAC;AACrC,cAAc,OAAO,GAAG,KAAK,CAAC,CAAC,EAAC;AAChC,cAAc,QAAQ,QAAQ;AAC9B,gBAAgB,KAAK,QAAQ;AAC7B,kBAAkB,QAAQ,GAAG,IAAG;AAChC,kBAAkB,KAAK;AACvB,eAAe;AACf,cAAc,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,EAAC;AACvE,aAAa,MAAM;AACnB,cAAc,MAAM,GAAG,EAAC;AACxB,aAAa;AACb;AACA,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAC;AAClC,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,kBAAkB,EAAC;AACvE,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAC;AAClC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,kBAAkB,EAAC;AACpD,WAAW,EAAC;AACZ,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAC;AACvC,SAAS,MAAM;AACf,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,KAAK,EAAC;AAC/C,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,WAAW,EAAC;AAC7C,SAAS;AACT,OAAO,EAAC;AACR,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC7D,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAC;AACtC,QAAQ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAC;AAC1C,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC;AACrC,OAAO;AACP,KAAK,EAAC;AACN;AACA,IAAI,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC;AAC5E,GAAG;AACH,CAAC;AACD;AACA,SAAS,cAAc,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE;AACvE,EAAE,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE;AACxD,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAC;AAC9C,IAAI,IAAI,SAAS,GAAG,WAAW,CAAC,UAAU,EAAE,OAAO,EAAC;AACpD,IAAI,IAAI,SAAS,GAAG,WAAW,CAAC,UAAU,EAAE,OAAO,EAAC;AACpD;AACA,IAAI,IAAI,MAAM,GAAG,6CAA6C;AAC9D,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,0BAA0B,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAG;AAC9E;AACA,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM;AACtD,QAAQ,sDAAsD;AAC9D,QAAQ,WAAW,EAAC;AACpB,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,EAAC;AACzC,KAAK;AACL,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAC;AACvB,GAAG;AACH,CAAC;AACD;AACA,SAAS,cAAc,EAAE,MAAM,EAAE;AACjC,EAAE,MAAM,CAAC,WAAW,GAAG,YAAY,GAAE;AACrC,CAAC;AACD;AACA,SAAS,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE;AACvE,EAAE,cAAc,CAAC,IAAI,EAAC;AACtB;AACA,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;AACpB,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,OAAO,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC;AAChC,KAAK;AACL,IAAI,OAAO,CAAC;AACZ,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAC;AACrC,EAAE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAC;AACrC;AACA,EAAE,SAAS,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;AAChC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC1C,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAI;AACpC,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,GAAE;AACxC,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAC;AACvC,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAC;AACxC;AACA,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,GAAG,GAAE;AAC5C,EAAE,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,MAAM,EAAC;AAC3C,EAAE,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,EAAC;AAC5C;AACA,EAAE,IAAI,CAAC,SAAS;AAChB,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM;AAC1B,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO;AAC3B,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM;AAC7B,IAAI,UAAU,IAAI,IAAI,CAAC,OAAO,EAAC;AAC/B,CAAC;AACD;AACA,SAAS,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE;AACzC,EAAE,IAAI,QAAQ,GAAG,aAAa,GAAE;AAChC,EAAE,KAAK,CAAC,OAAO;AACf,IAAI,cAAc,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;AAChD,KAAK,QAAQ,KAAK,SAAS,GAAG,EAAE,GAAG,eAAe,GAAG,QAAQ,CAAC,EAAC;AAC/D,CAAC;AACD;AACA,SAAS,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;AAC/C,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,YAAY,CAAC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,EAAC;AACpD,GAAG;AACH,CAAC;AACD;AACA,SAAS,qBAAqB,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE;AACxE,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,CAAC,EAAE;AACjC,IAAI,YAAY;AAChB,MAAM,qBAAqB,GAAG,KAAK,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;AAC5D,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE;AAC/D,MAAM,OAAO,IAAI,YAAY,EAAE,EAAC;AAChC,GAAG;AACH,CAAC;AACD;AACA,SAAS,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;AAC1D,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;AACpC,IAAI,YAAY;AAChB,MAAM,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;AACjD,MAAM,aAAa,GAAG,IAAI,GAAG,QAAQ,IAAI,OAAO,KAAK,CAAC;AACtD,MAAM,OAAO,IAAI,YAAY,EAAE,EAAC;AAChC,GAAG;AACH,CAAC;AACD;AACA,SAAS,aAAa,EAAE,KAAK,EAAE;AAC/B,EAAE,KAAK,GAAE;AACT,CAAC;AACD;AACA,SAAS,sBAAsB,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE;AACpE,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE;AAC1B,IAAI,UAAU;AACd,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc;AAChD,MAAM,UAAU;AAChB,MAAM,2CAA2C,EAAC;AAClD,GAAG,MAAM;AACT,IAAI,UAAU;AACd,MAAM,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM;AAClD,MAAM,SAAS;AACf,MAAM,gDAAgD,EAAC;AACvD,GAAG;AACH,CAAC;AACD;AACA,IAAI,gBAAgB,GAAG,OAAM;AAC7B;AACA,IAAI,UAAU,GAAG,OAAM;AACvB,IAAI,yBAAyB,GAAG,OAAM;AACtC,IAAI,wBAAwB,GAAG,OAAM;AACrC,IAAI,wBAAwB,GAAG,OAAM;AACrC,IAAI,uBAAuB,GAAG,OAAM;AACpC;AACA,IAAI,OAAO,GAAG,KAAI;AAClB,IAAI,gBAAgB,GAAG,KAAI;AAC3B,IAAI,QAAQ,GAAG,KAAI;AACnB,IAAI,iBAAiB,GAAG,KAAI;AAC5B,IAAI,MAAM,GAAG,KAAI;AACjB,IAAI,eAAe,GAAG,KAAI;AAC1B,IAAI,QAAQ,GAAG,KAAI;AACnB;AACA,IAAI,yBAAyB,GAAG,OAAM;AACtC,IAAI,yBAAyB,GAAG,OAAM;AACtC,IAAI,uBAAuB,GAAG,OAAM;AACpC,IAAI,0BAA0B,GAAG,OAAM;AACvC;AACA,IAAI,iBAAiB,GAAG,OAAM;AAC9B;AACA,IAAI,SAAS,GAAG,GAAE;AAClB;AACA,SAAS,CAAC,OAAO,CAAC;AAClB,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAC;AAC/B;AACA,SAAS,CAAC,QAAQ,CAAC;AACnB,SAAS,CAAC,iBAAiB,CAAC;AAC5B,SAAS,CAAC,iBAAiB,CAAC;AAC5B,SAAS,CAAC,uBAAuB,CAAC;AAClC,SAAS,CAAC,yBAAyB,CAAC;AACpC,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAC;AACxC;AACA,SAAS,CAAC,MAAM,CAAC;AACjB,SAAS,CAAC,eAAe,CAAC;AAC1B,SAAS,CAAC,QAAQ,CAAC;AACnB,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAC;AACzC;AACA,SAAS,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;AACpC,EAAE,IAAI,IAAI,KAAK,yBAAyB;AACxC,MAAM,IAAI,KAAK,yBAAyB;AACxC,MAAM,IAAI,KAAK,uBAAuB,EAAE;AACxC,IAAI,OAAO,CAAC;AACZ,GAAG,MAAM,IAAI,IAAI,KAAK,0BAA0B,EAAE;AAClD,IAAI,OAAO,CAAC;AACZ,GAAG,MAAM;AACT,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ;AACrC,GAAG;AACH,CAAC;AACD;AACA,SAAS,MAAM,EAAE,CAAC,EAAE;AACpB,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AACD;AACA,SAAS,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;AAChD,EAAE,IAAI,EAAC;AACP,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,MAAK;AACvB,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,OAAM;AACxB,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,SAAQ;AAC1B;AACA;AACA,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc;AAC3C,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc;AAC3C,EAAE,uBAAuB,EAAC;AAC1B;AACA;AACA,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,gBAAgB,IAAI,IAAI,CAAC,KAAK,KAAK,gBAAgB,EAAE;AAC1E,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;AAChC,MAAM,8EAA8E,EAAC;AACrF,GAAG;AACH;AACA,EAAE,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,EAAE;AAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC5B,MAAM,KAAK;AACX,QAAQ,IAAI,CAAC,SAAS,KAAK,yBAAyB;AACpD,QAAQ,IAAI,CAAC,SAAS,KAAK,wBAAwB;AACnD,QAAQ,IAAI,CAAC,SAAS,KAAK,wBAAwB;AACnD,QAAQ,IAAI,CAAC,SAAS,KAAK,uBAAuB;AAClD,QAAQ,4BAA4B,EAAC;AACrC,KAAK;AACL,GAAG,MAAM;AACT;AACA,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;AAChC,MAAM,2DAA2D,EAAC;AAClE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,MAAM,mCAAmC,EAAC;AAC1C,GAAG;AACH;AACA,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;AACjC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,EAAE;AACnE,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU;AAC1E,QAAQ,4DAA4D,EAAC;AACrE,KAAK;AACL,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU;AAC1B,MAAM,qDAAqD,EAAC;AAC5D,GAAG;AACH;AACA;AACA,EAAE,IAAI,SAAS,GAAG,OAAO,CAAC,OAAM;AAChC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AAC3B,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;AACtB,MAAM,IAAI,EAAE,GAAG,CAAC,IAAI,EAAC;AACrB,MAAM,IAAI,EAAE,GAAG,CAAC,IAAI,EAAC;AACrB,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,qBAAqB,EAAC;AAC9D;AACA,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,EAAC;AAC5B;AACA,MAAM,KAAK;AACX,QAAQ,GAAG,CAAC,KAAK,KAAK,EAAE;AACxB,QAAQ,GAAG,CAAC,MAAM,KAAK,EAAE;AACzB,QAAQ,8BAA8B,EAAC;AACvC;AACA,MAAM,KAAK;AACX,QAAQ,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;AACrC,QAAQ,GAAG,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc;AACrD,QAAQ,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;AACjC,QAAQ,iCAAiC,EAAC;AAC1C;AACA,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAEnB,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE;AAC3B;AACA;AACA,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,gBAAe;AACxG,QAAQ,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,OAAO,GAAG,EAAE;AAClD,UAAU,uEAAuE,EAAC;AAClF,OAAO,MAAM,CAIN;AACP,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACjC,MAAM,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,mBAAmB,EAAC;AACpE,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE;AAC1B,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU;AAC1B,MAAM,uDAAuD,EAAC;AAC9D,GAAG;AACH,CAAC;AACD;AACA,SAAS,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AACzD,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,MAAK;AACvB,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,OAAM;AACxB,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,SAAQ;AAC1B;AACA;AACA,EAAE,KAAK;AACP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc;AAC9E,IAAI,uBAAuB,EAAC;AAC5B,EAAE,KAAK;AACP,IAAI,CAAC,KAAK,CAAC;AACX,IAAI,yBAAyB,EAAC;AAC9B,EAAE,KAAK;AACP,IAAI,IAAI,CAAC,KAAK,KAAK,gBAAgB,IAAI,IAAI,CAAC,KAAK,KAAK,gBAAgB;AACtE,IAAI,qCAAqC,EAAC;AAC1C;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACzC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,EAAC;AACvB,IAAI,KAAK;AACT,MAAM,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAC3C,MAAM,kCAAkC,EAAC;AACzC;AACA,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU;AAC5B,QAAQ,iDAAiD,EAAC;AAC1D,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC;AAC9B,QAAQ,8CAA8C,EAAC;AACvD,KAEK;AACL;AACA,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,OAAM;AAC7B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,EAAC;AAC1B,MAAM,IAAI,GAAG,EAAE;AACf,QAAQ,IAAI,EAAE,GAAG,CAAC,IAAI,EAAC;AACvB,QAAQ,IAAI,EAAE,GAAG,CAAC,IAAI,EAAC;AACvB,QAAQ,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,qBAAqB,EAAC;AAC7D,QAAQ,KAAK;AACb,UAAU,GAAG,CAAC,KAAK,KAAK,EAAE;AAC1B,UAAU,GAAG,CAAC,MAAM,KAAK,EAAE;AAC3B,UAAU,8BAA8B,EAAC;AACzC,QAAQ,KAAK;AACb,UAAU,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;AACvC,UAAU,GAAG,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc;AACvD,UAAU,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;AACnC,UAAU,iCAAiC,EAAC;AAC5C;AACA,QAAQ,IAAI,GAAG,CAAC,UAAU,EAAE,CAEnB,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE;AAC7B,UAAU,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,GAAG,EAAE;AAC/C,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC;AACjE,UAAU,uEAAuE,EAAC;AAClF,SAAS,MAAM,CAIN;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE;AAC5B,EAAE,QAAQ,EAAE,aAAa;AACzB,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,YAAY,EAAE,YAAY;AAC5B,EAAE,OAAO,EAAE,YAAY;AACvB,EAAE,SAAS,EAAE,cAAc;AAC3B,EAAE,gBAAgB,EAAE,qBAAqB;AACzC,EAAE,WAAW,EAAE,gBAAgB;AAC/B,EAAE,IAAI,EAAE,WAAW;AACnB,EAAE,WAAW,EAAE,gBAAgB;AAC/B,EAAE,YAAY,EAAE,iBAAiB;AACjC,EAAE,GAAG,EAAE,mBAAmB;AAC1B,EAAE,KAAK,EAAE,UAAU;AACnB,EAAE,WAAW,EAAE,gBAAgB;AAC/B,EAAE,SAAS,EAAE,cAAc;AAC3B,EAAE,QAAQ,EAAE,aAAa;AACzB,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,YAAY,EAAE,mBAAmB;AACnC,EAAE,iBAAiB,EAAE,sBAAsB;AAC3C,EAAE,YAAY,EAAE,YAAY;AAC5B,EAAE,SAAS,EAAE,cAAc;AAC3B,EAAE,WAAW,EAAE,gBAAgB;AAC/B,CAAC,CAAC,CAAC;AACH;AACA,IAAI,gBAAgB,GAAG,EAAC;AACxB;AACA,IAAI,QAAQ,GAAG,EAAC;AAChB,IAAI,YAAY,GAAG,EAAC;AACpB,IAAI,SAAS,GAAG,EAAC;AACjB;AACA,SAAS,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE;AACtC,EAAE,IAAI,CAAC,EAAE,IAAI,gBAAgB,EAAE,EAAC;AAChC,EAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,EAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,CAAC;AACD;AACA,SAAS,SAAS,EAAE,GAAG,EAAE;AACzB,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;AACxD,CAAC;AACD;AACA,SAAS,UAAU,EAAE,GAAG,EAAE;AAC1B,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,IAAI,OAAO,EAAE;AACb,GAAG;AACH;AACA,EAAE,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAC;AAC/B,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAC;AAC3C;AACA,EAAE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;AACpB,MAAM,SAAS,KAAK,QAAQ;AAC5B,OAAO,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,CAAC,EAAE;AAChD,IAAI,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACjE,GAAG;AACH;AACA,EAAE,IAAI,KAAK,GAAG,2CAA2C,CAAC,IAAI,CAAC,GAAG,EAAC;AACnE,EAAE,IAAI,KAAK,EAAE;AACb,IAAI;AACJ,MAAM,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5C,SAAS,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,SAAS,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACtE,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAC;AAC/B,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,IAAI,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACvC,GAAG;AACH;AACA,EAAE,IAAI,MAAM,GAAG,GAAE;AACjB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAC;AACnD,GAAG;AACH,EAAE,OAAO,MAAM;AACf,CAAC;AACD;AACA,SAAS,gBAAgB,EAAE,GAAG,EAAE;AAChC,EAAE,OAAO,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG;AAC/C,CAAC;AACD;AACA,SAAS,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE;AACpC,EAAE,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;AAC/D,CAAC;AACD;AACA,SAAS,SAAS,EAAE,CAAC,EAAE;AACvB,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,YAAY,eAAe,CAAC;AACpF,CAAC;AACD;AACA,SAAS,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE;AACzB,EAAE,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;AAC/B,IAAI,OAAO,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3C,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE;AAC9D,IAAI,OAAO,IAAI,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC;AAC/C,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC/B,IAAI,OAAO,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3G,GAAG,MAAM,IAAI,CAAC,YAAY,eAAe,EAAE;AAC3C,IAAI,OAAO,CAAC;AACZ,GAAG;AACH,EAAE,OAAO,CAAC,KAAK,EAAE,iCAAiC,GAAG,IAAI,EAAC;AAC1D,CAAC;AACD;AACA,IAAI,OAAO,GAAG;AACd,EAAE,eAAe,EAAE,eAAe;AAClC,EAAE,MAAM,EAAE,aAAa;AACvB,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,QAAQ,EAAE,gBAAgB;AAC5B,CAAC,CAAC;AACF;AACA;AACA,IAAI,GAAG,GAAG;AACV,EAAE,IAAI,EAAE,OAAO,qBAAqB,KAAK,UAAU;AACnD,MAAM,UAAU,EAAE,EAAE,EAAE,OAAO,qBAAqB,CAAC,EAAE,CAAC,EAAE;AACxD,MAAM,UAAU,EAAE,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;AACjD,EAAE,MAAM,EAAE,OAAO,oBAAoB,KAAK,UAAU;AACpD,MAAM,UAAU,GAAG,EAAE,EAAE,OAAO,oBAAoB,CAAC,GAAG,CAAC,EAAE;AACzD,MAAM,YAAY;AAClB,CAAC,CAAC;AACF;AACA;AACA,IAAI,KAAK,GAAG,CAAC,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,GAAG;AAClE,MAAM,YAAY,EAAE,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE;AAC9C,MAAM,YAAY,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;AAC3C;AACA,SAAS,iBAAiB,IAAI;AAC9B,EAAE,IAAI,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,GAAE;AAC3B,EAAE,IAAI,YAAY,GAAG,CAAC,EAAE,EAAC;AACzB,EAAE,OAAO;AACT,IAAI,EAAE,EAAE,UAAU,GAAG,EAAE;AACvB,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC,GAAG,EAAC;AACjC,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,OAAO,MAAM;AACrB,OAAO;AACP,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,OAAM;AACnD,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,EAAC;AAC5B,MAAM,OAAO,MAAM;AACnB,KAAK;AACL;AACA,IAAI,GAAG,EAAE,UAAU,EAAE,EAAE;AACvB,MAAM,OAAO,YAAY,CAAC,EAAE,CAAC;AAC7B,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA;AACA,SAAS,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE;AACpD,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAC;AAC/C,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AACvB,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,MAAM,EAAE,MAAM;AAClB,GAAG,EAAC;AACJ,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,EAAC;AAC7B;AACA,EAAE,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,EAAE;AACjC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,WAAU;AACtC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;AAC1B,MAAM,MAAM,EAAE,CAAC;AACf,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,MAAM,IAAI;AACrB,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,WAAU;AAC7B,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,YAAW;AAC9B,IAAI,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,EAAE;AACnC,MAAM,IAAI,MAAM,GAAG,MAAM,CAAC,qBAAqB,GAAE;AACjD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAI;AACpC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAG;AACpC,KAAK;AACL,IAAI,MAAM,CAAC,KAAK,GAAG,UAAU,GAAG,EAAC;AACjC,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,EAAC;AAClC,GAAG;AACH;AACA,EAAE,IAAI,eAAc;AACpB,EAAE,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;AACzE;AACA;AACA,IAAI,cAAc,GAAG,IAAI,cAAc,CAAC,YAAY;AACpD;AACA,MAAM,UAAU,CAAC,MAAM,EAAC;AACxB,KAAK,EAAC;AACN,IAAI,cAAc,CAAC,OAAO,CAAC,OAAO,EAAC;AACnC,GAAG,MAAM;AACT,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAC;AACpD,GAAG;AACH;AACA,EAAE,SAAS,SAAS,IAAI;AACxB,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,cAAc,CAAC,UAAU,GAAE;AACjC,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAC;AAClD,KAAK;AACL,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,EAAC;AAC/B,GAAG;AACH;AACA,EAAE,MAAM,GAAE;AACV;AACA,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,SAAS,EAAE,SAAS;AACxB,GAAG;AACH,CAAC;AACD;AACA,SAAS,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE;AACnD,EAAE,SAAS,GAAG,EAAE,IAAI,EAAE;AACtB,IAAI,IAAI;AACR,MAAM,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC;AACvD,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,MAAM,OAAO,IAAI;AACjB,KAAK;AACL,GAAG;AACH,EAAE;AACF,IAAI,GAAG,CAAC,OAAO,CAAC;AAChB,IAAI,GAAG,CAAC,oBAAoB,CAAC;AAC7B,IAAI,GAAG,CAAC,oBAAoB,CAAC;AAC7B,GAAG;AACH,CAAC;AACD;AACA,SAAS,aAAa,EAAE,GAAG,EAAE;AAC7B,EAAE;AACF,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;AACpC,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU;AACzC,IAAI,OAAO,GAAG,CAAC,qBAAqB,KAAK,UAAU;AACnD,GAAG;AACH,CAAC;AACD;AACA,SAAS,cAAc,EAAE,GAAG,EAAE;AAC9B,EAAE;AACF,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,UAAU;AACxC,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU;AAC1C,GAAG;AACH,CAAC;AACD;AACA,SAAS,eAAe,EAAE,KAAK,EAAE;AACjC,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjC,IAAI,OAAO,KAAK,CAAC,KAAK,EAAE;AACxB,GAAG;AACH,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,yBAAyB,EAAC;AAC1D,EAAE,OAAO,KAAK;AACd,CAAC;AACD;AACA,SAAS,UAAU,EAAE,IAAI,EAAE;AAC3B,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,IAAI,OAAO,CAAC,OAAO,QAAQ,KAAK,WAAW,EAAE,8BAA8B,EAAC;AAC5E,IAAI,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,IAAI;AACb,CAAC;AACD;AACA,SAAS,SAAS,EAAE,KAAK,EAAE;AAC3B,EAAE,IAAI,IAAI,GAAG,KAAK,IAAI,GAAE;AACxB,EAAE,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAE;AACpC,EAAE,IAAI,iBAAiB,GAAG,GAAE;AAC5B,EAAE,IAAI,UAAU,GAAG,GAAE;AACrB,EAAE,IAAI,kBAAkB,GAAG,GAAE;AAC7B,EAAE,IAAI,UAAU,IAAI,OAAO,MAAM,KAAK,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,gBAAgB,EAAC;AAChF,EAAE,IAAI,OAAO,GAAG,MAAK;AACrB,EAAE,IAAI,MAAM,GAAG,UAAU,GAAG,EAAE;AAC9B,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAC;AACxB,KAAK;AACL,IAAG;AACH,EAAE,IAAI,SAAS,GAAG,YAAY,GAAE;AAChC,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,IAAI,OAAO;AACX,MAAM,OAAO,QAAQ,KAAK,WAAW;AACrC,MAAM,oDAAoD,EAAC;AAC3D,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAC;AAC1C,IAAI,OAAO,CAAC,OAAO,EAAE,kCAAkC,EAAC;AACxD,GAAG,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACvC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;AAC7B,MAAM,OAAO,GAAG,KAAI;AACpB,KAAK,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;AACrC,MAAM,EAAE,GAAG,KAAI;AACf,MAAM,MAAM,GAAG,EAAE,CAAC,OAAM;AACxB,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,EAAC;AAC/B,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE;AACxB,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAE;AACpB,OAAO,MAAM,IAAI,QAAQ,IAAI,IAAI,EAAE;AACnC,QAAQ,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAC;AACxC,OAAO,MAAM,IAAI,WAAW,IAAI,IAAI,EAAE;AACtC,QAAQ,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAC;AAC9C,OAAO;AACP,MAAM,IAAI,YAAY,IAAI,IAAI,EAAE;AAChC,QAAQ,iBAAiB,GAAG,IAAI,CAAC,WAAU;AAC3C,QAAQ,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,4BAA4B,EAAC;AAC/E,OAAO;AACP,MAAM,IAAI,YAAY,IAAI,IAAI,EAAE;AAChC,QAAQ,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,EAAC;AACrD,OAAO;AACP,MAAM,IAAI,oBAAoB,IAAI,IAAI,EAAE;AACxC,QAAQ,kBAAkB,GAAG,eAAe,CAAC,IAAI,CAAC,kBAAkB,EAAC;AACrE,OAAO;AACP,MAAM,IAAI,QAAQ,IAAI,IAAI,EAAE;AAC5B,QAAQ,OAAO,CAAC,IAAI;AACpB,UAAU,IAAI,CAAC,MAAM,EAAE,UAAU;AACjC,UAAU,oCAAoC,EAAC;AAC/C,QAAQ,MAAM,GAAG,IAAI,CAAC,OAAM;AAC5B,OAAO;AACP,MAAM,IAAI,SAAS,IAAI,IAAI,EAAE;AAC7B,QAAQ,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAO;AAChC,OAAO;AACP,MAAM,IAAI,YAAY,IAAI,IAAI,EAAE;AAChC,QAAQ,UAAU,GAAG,CAAC,IAAI,CAAC,WAAU;AACrC,QAAQ,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,qBAAqB,EAAC;AACtD,OAAO;AACP,KAAK;AACL,GAAG,MAAM;AACT,IAAI,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAC;AAC9C,GAAG;AACH;AACA,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;AACrD,MAAM,MAAM,GAAG,QAAO;AACtB,KAAK,MAAM;AACX,MAAM,SAAS,GAAG,QAAO;AACzB,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,CAAC,EAAE,EAAE;AACX,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,OAAO;AACb,QAAQ,OAAO,QAAQ,KAAK,WAAW;AACvC,QAAQ,iEAAiE,EAAC;AAC1E,MAAM,IAAI,MAAM,GAAG,YAAY,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAC;AAC/E,MAAM,IAAI,CAAC,MAAM,EAAE;AACnB,QAAQ,OAAO,IAAI;AACnB,OAAO;AACP,MAAM,MAAM,GAAG,MAAM,CAAC,OAAM;AAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,UAAS;AAClC,KAAK;AACL;AACA,IAAI,IAAI,iBAAiB,CAAC,kBAAkB,KAAK,SAAS,EAAE,iBAAiB,CAAC,kBAAkB,GAAG,KAAI;AACvG,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAC;AACjD,GAAG;AACH;AACA,EAAE,IAAI,CAAC,EAAE,EAAE;AACX,IAAI,SAAS,GAAE;AACf,IAAI,MAAM,CAAC,0FAA0F,EAAC;AACtG,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,kBAAkB,EAAE,kBAAkB;AAC1C,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,SAAS,EAAE,SAAS;AACxB,GAAG;AACH,CAAC;AACD;AACA,SAAS,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE;AAC3C,EAAE,IAAI,UAAU,GAAG,GAAE;AACrB;AACA,EAAE,SAAS,gBAAgB,EAAE,KAAK,EAAE;AACpC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,+BAA+B,EAAC;AAClE,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,GAAE;AAClC,IAAI,IAAI,IAAG;AACX,IAAI,IAAI;AACR,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAC;AACpD,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;AAClB,IAAI,OAAO,CAAC,CAAC,GAAG;AAChB,GAAG;AACH;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACrD,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAC;AACnC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;AACjC,MAAM,MAAM,CAAC,SAAS,GAAE;AACxB,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,6GAA6G,EAAC;AAC/I,MAAM,OAAO,IAAI;AACjB,KAAK;AACL,GAAG;AACH;AACA,EAAE,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,EAAC;AACrD;AACA,EAAE,OAAO;AACT,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,OAAO,EAAE,YAAY;AACzB,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACtD,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;AACzD,UAAU,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,IAAI,CAAC;AACtE,SAAS;AACT,OAAO,EAAC;AACR,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AACrB,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AACvB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC;AACpB,GAAG;AACH,EAAE,OAAO,MAAM;AACf,CAAC;AACD;AACA,IAAI,SAAS,GAAG,KAAI;AACpB,IAAI,kBAAkB,GAAG,KAAI;AAC7B,IAAI,UAAU,GAAG,KAAI;AACrB,IAAI,mBAAmB,GAAG,KAAI;AAC9B,IAAI,QAAQ,GAAG,KAAI;AACnB,IAAI,iBAAiB,GAAG,KAAI;AAC5B,IAAI,UAAU,GAAG,KAAI;AACrB;AACA,SAAS,SAAS,EAAE,CAAC,EAAE;AACvB,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;AAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;AAChB,MAAM,OAAO,CAAC;AACd,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC;AACV,CAAC;AACD;AACA,SAAS,IAAI,EAAE,CAAC,EAAE;AAClB,EAAE,IAAI,CAAC,EAAE,MAAK;AACd,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,KAAK,EAAC;AACvB,EAAE,CAAC,MAAM,EAAC;AACV,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,KAAK,EAAC;AACzB,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,MAAK;AAC1B,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,EAAC;AACxB,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,MAAK;AAC1B,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,EAAC;AACxB,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,MAAK;AAC1B,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AACD;AACA,SAAS,UAAU,IAAI;AACvB,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,CAAC,EAAE,YAAY;AACvC,IAAI,OAAO,EAAE;AACb,GAAG,EAAC;AACJ;AACA,EAAE,SAAS,KAAK,EAAE,CAAC,EAAE;AACrB,IAAI,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,EAAC;AACzB,IAAI,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC;AACvC,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;AACtB,KAAK;AACL,IAAI,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC;AAC9B,GAAG;AACH;AACA,EAAE,SAAS,IAAI,EAAE,GAAG,EAAE;AACtB,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAC;AACnD,GAAG;AACH;AACA,EAAE,SAAS,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE;AAC/B,IAAI,IAAI,MAAM,GAAG,KAAI;AACrB,IAAI,QAAQ,IAAI;AAChB,MAAM,KAAK,SAAS;AACpB,QAAQ,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;AAC9C,QAAQ,KAAK;AACb,MAAM,KAAK,kBAAkB;AAC7B,QAAQ,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;AAC/C,QAAQ,KAAK;AACb,MAAM,KAAK,UAAU;AACrB,QAAQ,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;AACnD,QAAQ,KAAK;AACb,MAAM,KAAK,mBAAmB;AAC9B,QAAQ,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;AACpD,QAAQ,KAAK;AACb,MAAM,KAAK,QAAQ;AACnB,QAAQ,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;AACnD,QAAQ,KAAK;AACb,MAAM,KAAK,iBAAiB;AAC5B,QAAQ,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;AACpD,QAAQ,KAAK;AACb,MAAM,KAAK,UAAU;AACrB,QAAQ,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;AACrD,QAAQ,KAAK;AACb,MAAM;AACN,QAAQ,OAAO,IAAI;AACnB,KAAK;AACL,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,MAAM,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,OAAO,MAAM;AACjB,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,EAAE,KAAK,EAAE;AAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAC;AACtB,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,QAAQ,EAAE,QAAQ;AACtB,GAAG;AACH,CAAC;AACD;AACA,IAAI,IAAI,GAAG,UAAU,GAAE;AACvB;AACA;AACA,IAAI,CAAC,IAAI,GAAG,UAAU,GAAE;AACxB;AACA,IAAI,gBAAgB,GAAG,OAAM;AAC7B,IAAI,WAAW,GAAG,OAAM;AACxB,IAAI,aAAa,GAAG,OAAM;AAC1B,IAAI,YAAY,GAAG,OAAM;AACzB,IAAI,aAAa,GAAG,OAAM;AAC1B,IAAI,aAAa,GAAG,OAAM;AAC1B,IAAI,eAAe,GAAG,OAAM;AAC5B;AACA,IAAI,2BAA2B,GAAG,OAAM;AACxC,IAAI,2BAA2B,GAAG,OAAM;AACxC;AACA,IAAI,mBAAmB,GAAG,OAAM;AAChC,IAAI,oBAAoB,GAAG,OAAM;AACjC,IAAI,qBAAqB,GAAG,OAAM;AAClC,IAAI,6BAA6B,GAAG,OAAM;AAC1C,IAAI,sBAAsB,GAAG,OAAM;AACnC,IAAI,mCAAmC,GAAG,OAAM;AAChD,IAAI,iCAAiC,GAAG,OAAM;AAC9C,IAAI,0BAA0B,GAAG,OAAM;AACvC,IAAI,+BAA+B,GAAG,OAAM;AAC5C,IAAI,4BAA4B,GAAG,OAAM;AACzC,IAAI,wBAAwB,GAAG,OAAM;AACrC;AACA,IAAI,SAAS,GAAG,OAAM;AACtB,IAAI,WAAW,GAAG,OAAM;AACxB,IAAI,UAAU,GAAG,OAAM;AACvB,IAAI,2BAA2B,GAAG,OAAM;AACxC;AACA,IAAI,iCAAiC,GAAG,OAAM;AAC9C;AACA,IAAI,8BAA8B,GAAG,OAAM;AAC3C,IAAI,yBAAyB,GAAG,OAAM;AACtC;AACA,IAAI,aAAa,GAAG,OAAM;AAC1B,IAAI,mBAAmB,GAAG,OAAM;AAChC,IAAI,8BAA8B,GAAG,OAAM;AAC3C,IAAI,WAAW,GAAG,OAAM;AACxB,IAAI,OAAO,GAAG,OAAM;AACpB,IAAI,UAAU,GAAG,OAAM;AACvB,IAAI,kBAAkB,GAAG,OAAM;AAC/B,IAAI,cAAc,GAAG,OAAM;AAC3B,IAAI,uBAAuB,GAAG,OAAM;AACpC,IAAI,oBAAoB,GAAG,OAAM;AACjC,IAAI,qBAAqB,GAAG,OAAM;AAClC;AACA,IAAI,UAAU,GAAG,UAAU,EAAE,EAAE,UAAU,EAAE;AAC3C,EAAE,IAAI,cAAc,GAAG,EAAC;AACxB,EAAE,IAAI,UAAU,CAAC,8BAA8B,EAAE;AACjD,IAAI,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,iCAAiC,EAAC;AACvE,GAAG;AACH;AACA,EAAE,IAAI,cAAc,GAAG,EAAC;AACxB,EAAE,IAAI,mBAAmB,GAAG,EAAC;AAC7B,EAAE,IAAI,UAAU,CAAC,kBAAkB,EAAE;AACrC,IAAI,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,yBAAyB,EAAC;AAC/D,IAAI,mBAAmB,GAAG,EAAE,CAAC,YAAY,CAAC,8BAA8B,EAAC;AACzE,GAAG;AACH;AACA;AACA,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,kBAAiB;AAChD,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,IAAI,gBAAgB,GAAG,EAAE,CAAC,aAAa,GAAE;AAC7C,IAAI,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,gBAAgB,EAAC;AACnD,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAC;AAChF;AACA,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,iBAAiB,GAAE;AACpC,IAAI,EAAE,CAAC,eAAe,CAAC,cAAc,EAAE,GAAG,EAAC;AAC3C,IAAI,EAAE,CAAC,oBAAoB,CAAC,cAAc,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,EAAC;AACrG,IAAI,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,EAAC;AACvC;AACA,IAAI,IAAI,EAAE,CAAC,sBAAsB,CAAC,cAAc,CAAC,KAAK,uBAAuB,EAAE,SAAS,GAAG,MAAK;AAChG;AACA,SAAS;AACT,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;AAC7B,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAC;AACvC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAC;AACrC,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAC;AAChD,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAC;AAC5D;AACA,MAAM,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,GAAG,MAAK;AAC1C,WAAW;AACX,QAAQ,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAC;AACjC,QAAQ,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAC;AAC1C;AACA,QAAQ,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,IAAG;AACrC,OAAO;AACP;AACA,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC;AAC3B,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,IAAI,IAAI,GAAG,OAAO,SAAS,KAAK,WAAW,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAC;AACjK;AACA,EAAE,IAAI,eAAe,GAAG,KAAI;AAC5B;AACA,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,aAAa,GAAE;AACxC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE,EAAC;AACrD,IAAI,EAAE,CAAC,aAAa,CAAC,WAAW,EAAC;AACjC,IAAI,EAAE,CAAC,WAAW,CAAC,mBAAmB,EAAE,WAAW,EAAC;AACpD,IAAI,EAAE,CAAC,UAAU,CAAC,8BAA8B,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAC;AACzG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC;AACvB,IAAI,EAAE,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,EAAC;AAC7C,IAAI,EAAE,CAAC,aAAa,CAAC,WAAW,EAAC;AACjC,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC,QAAQ,GAAE;AACpC,GAAG;AACH;AACA,EAAE,OAAO;AACT;AACA,IAAI,SAAS,EAAE;AACf,MAAM,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC;AAClC,MAAM,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC;AACpC,MAAM,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC;AACnC,MAAM,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC;AACpC,KAAK;AACL,IAAI,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC;AAC7C,IAAI,WAAW,EAAE,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC;AACjD,IAAI,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC;AACnD;AACA;AACA,IAAI,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE;AAC9D,MAAM,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;AAC9B,KAAK,CAAC;AACN;AACA;AACA,IAAI,cAAc,EAAE,cAAc;AAClC;AACA;AACA,IAAI,cAAc,EAAE,cAAc;AAClC,IAAI,mBAAmB,EAAE,mBAAmB;AAC5C;AACA;AACA,IAAI,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,2BAA2B,CAAC;AAC/D,IAAI,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,2BAA2B,CAAC;AAC/D,IAAI,eAAe,EAAE,EAAE,CAAC,YAAY,CAAC,oBAAoB,CAAC;AAC1D,IAAI,uBAAuB,EAAE,EAAE,CAAC,YAAY,CAAC,mCAAmC,CAAC;AACjF,IAAI,cAAc,EAAE,EAAE,CAAC,YAAY,CAAC,4BAA4B,CAAC;AACjE,IAAI,mBAAmB,EAAE,EAAE,CAAC,YAAY,CAAC,wBAAwB,CAAC;AAClE,IAAI,eAAe,EAAE,EAAE,CAAC,YAAY,CAAC,0BAA0B,CAAC;AAChE,IAAI,cAAc,EAAE,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC;AACxD,IAAI,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC;AACzD,IAAI,iBAAiB,EAAE,EAAE,CAAC,YAAY,CAAC,6BAA6B,CAAC;AACrE,IAAI,qBAAqB,EAAE,EAAE,CAAC,YAAY,CAAC,iCAAiC,CAAC;AAC7E,IAAI,iBAAiB,EAAE,EAAE,CAAC,YAAY,CAAC,sBAAsB,CAAC;AAC9D,IAAI,mBAAmB,EAAE,EAAE,CAAC,YAAY,CAAC,+BAA+B,CAAC;AACzE;AACA;AACA,IAAI,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,2BAA2B,CAAC;AACtD,IAAI,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC;AAC1C,IAAI,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC;AACtC,IAAI,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;AACxC;AACA;AACA,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,eAAe,EAAE,eAAe;AACpC,GAAG;AACH,EAAC;AACD;AACA,SAAS,aAAa,EAAE,GAAG,EAAE;AAC7B,EAAE;AACF,IAAI,CAAC,CAAC,GAAG;AACT,IAAI,OAAO,GAAG,KAAK,QAAQ;AAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7B,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;AAClC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM;AAC1C,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,MAAM,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B,CAAC;AACD;AACA,IAAI,MAAM,GAAG,UAAU,GAAG,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AACjE,EAAC;AACD;AACA,IAAI,YAAY,GAAG;AACnB,EAAE,KAAK,EAAE,YAAY;AACrB,EAAE,OAAO,EAAE,YAAY;AACvB,CAAC,CAAC;AACF;AACA,SAAS,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE;AACpC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AAC/B,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAC;AACrB,GAAG;AACH,CAAC;AACD;AACA,SAAS,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;AACxC,EAAE,IAAI,GAAG,GAAG,EAAC;AACb,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AAC/B,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,EAAC;AACtB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAC;AACzB,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA,SAAS,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;AAClD,EAAE,IAAI,GAAG,GAAG,KAAI;AAChB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AAC/B,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,EAAC;AACtB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,EAAC;AACtB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACnC,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAC;AAC3B,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA,SAAS,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;AACpD,EAAE,IAAI,MAAM,GAAG,EAAC;AAChB,EAAE,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACjD,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,EAAC;AACtB,GAAG;AACH,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAC;AACtB,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,KAAK,CAAC,EAAE;AAClC,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,EAAC;AAC7B,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,EAAC;AAC7B,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,EAAC;AAC7B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC5B,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAC;AAC/C,MAAM,GAAG,IAAI,OAAM;AACnB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC5B,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAC;AACtD,MAAM,GAAG,IAAI,OAAM;AACnB,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA,SAAS,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;AACjD,EAAE,IAAI,EAAE,GAAG,EAAC;AACZ,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC3C,MAAM,EAAE,IAAI,KAAK,CAAC,CAAC,EAAC;AACpB,KAAK;AACL,GAAG,MAAM;AACT,IAAI,EAAE,GAAG,EAAC;AACV,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAC;AAC5C,EAAE,QAAQ,KAAK,CAAC,MAAM;AACtB,IAAI,KAAK,CAAC;AACV,MAAM,KAAK;AACX,IAAI,KAAK,CAAC;AACV,MAAM,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAC;AACrC,MAAM,KAAK;AACX,IAAI,KAAK,CAAC;AACV,MAAM,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAC;AAC/C,MAAM,KAAK;AACX,IAAI,KAAK,CAAC;AACV,MAAM,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;AAC5D,MAAM,KAAK;AACX,IAAI;AACJ,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC;AACzC,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,CAAC;AACD;AACA,SAAS,YAAY,EAAE,MAAM,EAAE;AAC/B,EAAE,IAAI,KAAK,GAAG,GAAE;AAChB,EAAE,KAAK,IAAI,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;AAC3D,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAC;AAC5B,GAAG;AACH,EAAE,OAAO,KAAK;AACd,CAAC;AACD;AACA,IAAI,UAAU,IAAI;AAClB,CAAC,oBAAoB,EAAE,IAAI;AAC3B,CAAC,qBAAqB,EAAE,IAAI;AAC5B,CAAC,qBAAqB,EAAE,IAAI;AAC5B,CAAC,qBAAqB,EAAE,IAAI;AAC5B,CAAC,4BAA4B,EAAE,IAAI;AACnC,CAAC,sBAAsB,EAAE,IAAI;AAC7B,CAAC,sBAAsB,EAAE,IAAI;AAC7B,CAAC,uBAAuB,EAAE,IAAI;AAC9B,CAAC,uBAAuB,EAAE,IAAI;AAC9B,CAAC,sBAAsB,EAAE,IAAI;AAC7B,CAAC,CAAC;AACF;AACA,IAAI,IAAI,GAAG,IAAI,CAAC;AAChB,IAAI,KAAK,GAAG,IAAI,CAAC;AACjB,IAAI,KAAK,GAAG,IAAI,CAAC;AACjB,IAAI,KAAK,GAAG,IAAI,CAAC;AACjB,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,IAAI,KAAK,GAAG,IAAI,CAAC;AACjB,IAAI,OAAO,GAAG,IAAI,CAAC;AACnB,IAAI,OAAO,GAAG;AACd,CAAC,IAAI,EAAE,IAAI;AACX,CAAC,KAAK,EAAE,KAAK;AACb,CAAC,KAAK,EAAE,KAAK;AACb,CAAC,KAAK,EAAE,KAAK;AACb,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,KAAK,EAAE,KAAK;AACb,CAAC,OAAO,EAAE,OAAO;AACjB,CAAC,CAAC;AACF;AACA,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,IAAI,UAAU,GAAG;AACjB,CAAC,OAAO,EAAE,SAAS;AACnB,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,QAAQ,EAAE,KAAK;AAChB,CAAC,CAAC;AACF;AACA,IAAI,YAAY,GAAG,YAAY,CAAC,QAAO;AACvC,IAAI,UAAU,GAAG,YAAY,CAAC,MAAK;AACnC;AACA,IAAI,cAAc,GAAG,OAAM;AAC3B,IAAI,cAAc,GAAG,OAAM;AAC3B;AACA,IAAI,kBAAkB,GAAG,KAAI;AAC7B,IAAI,UAAU,GAAG,KAAI;AACrB;AACA,IAAI,YAAY,GAAG,GAAE;AACrB,YAAY,CAAC,IAAI,CAAC,GAAG,EAAC;AACtB,YAAY,CAAC,IAAI,CAAC,GAAG,EAAC;AACtB,YAAY,CAAC,IAAI,CAAC,GAAG,EAAC;AACtB,YAAY,CAAC,IAAI,CAAC,GAAG,EAAC;AACtB,YAAY,CAAC,IAAI,CAAC,GAAG,EAAC;AACtB,YAAY,CAAC,IAAI,CAAC,GAAG,EAAC;AACtB,YAAY,CAAC,IAAI,CAAC,GAAG,EAAC;AACtB;AACA,SAAS,cAAc,EAAE,IAAI,EAAE;AAC/B,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAC7D,CAAC;AACD;AACA,SAAS,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE;AAC9B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAC;AACnB,GAAG;AACH,CAAC;AACD;AACA,SAAS,SAAS;AAClB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;AAC1D,EAAE,IAAI,GAAG,GAAG,EAAC;AACb,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACnC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACrC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,MAAM,EAAC;AAC9D,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA,SAAS,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE;AAC5D,EAAE,IAAI,WAAW,GAAG,EAAC;AACrB,EAAE,IAAI,SAAS,GAAG,GAAE;AACpB;AACA,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE;AAC7B,IAAI,IAAI,CAAC,EAAE,GAAG,WAAW,GAAE;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,YAAY,GAAE;AACnC,IAAI,IAAI,CAAC,IAAI,GAAG,KAAI;AACpB,IAAI,IAAI,CAAC,KAAK,GAAG,eAAc;AAC/B,IAAI,IAAI,CAAC,UAAU,GAAG,EAAC;AACvB,IAAI,IAAI,CAAC,SAAS,GAAG,EAAC;AACtB,IAAI,IAAI,CAAC,KAAK,GAAG,mBAAkB;AACnC;AACA,IAAI,IAAI,CAAC,cAAc,GAAG,KAAI;AAC9B;AACA,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AACxB,MAAM,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,GAAE;AAC9B,KAAK;AACL,GAAG;AACH;AACA,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;AAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAC;AACzC,IAAG;AACH;AACA,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC7C,IAAI,OAAO,CAAC,IAAI,EAAC;AACjB,IAAG;AACH;AACA,EAAE,IAAI,UAAU,GAAG,GAAE;AACrB;AACA,EAAE,SAAS,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE;AACrC,IAAI,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,GAAE;AACjC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAC;AACnC,KAAK;AACL,IAAI,MAAM,CAAC,IAAI,GAAE;AACjB,IAAI,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAC;AACjE,IAAI,OAAO,MAAM;AACjB,GAAG;AACH;AACA,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE;AACrC,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,EAAC;AAC9B,GAAG;AACH;AACA,EAAE,SAAS,wBAAwB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAC1D,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAU;AACvC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC;AAC3C,GAAG;AACH;AACA,EAAE,SAAS,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;AAC/E,IAAI,IAAI,MAAK;AACb,IAAI,MAAM,CAAC,KAAK,GAAG,MAAK;AACxB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC7B,MAAM,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,WAAU;AACxC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,QAAQ,IAAI,SAAQ;AACpB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACpC,UAAU,KAAK,GAAG,UAAU,CAAC,IAAI,EAAC;AAClC,UAAU,IAAI,GAAG,GAAG,EAAC;AACrB,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACjD,YAAY,GAAG,IAAI,KAAK,CAAC,CAAC,EAAC;AAC3B,WAAW;AACX,UAAU,MAAM,CAAC,SAAS,GAAG,IAAG;AAChC,UAAU,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAC;AAC5D,UAAU,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAC;AAC3D,UAAU,IAAI,OAAO,EAAE;AACvB,YAAY,MAAM,CAAC,cAAc,GAAG,SAAQ;AAC5C,WAAW,MAAM;AACjB,YAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAC;AACnC,WAAW;AACX,SAAS,MAAM,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAChD,UAAU,MAAM,CAAC,SAAS,GAAG,UAAS;AACtC,UAAU,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAC;AACnE,UAAU,SAAS,CAAC,SAAS,EAAE,IAAI,EAAC;AACpC,UAAU,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAC;AAC5D,UAAU,IAAI,OAAO,EAAE;AACvB,YAAY,MAAM,CAAC,cAAc,GAAG,UAAS;AAC7C,WAAW,MAAM;AACjB,YAAY,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAC;AACpC,WAAW;AACX,SAAS,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1C,UAAU,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAM;AAC3C,UAAU,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,WAAU;AACvE,UAAU,QAAQ,GAAG,YAAY;AACjC,YAAY,IAAI;AAChB,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACzC,YAAY,MAAM,CAAC,KAAK,EAAC;AACzB,UAAU,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAC;AAC3D,UAAU,IAAI,OAAO,EAAE;AACvB,YAAY,MAAM,CAAC,cAAc,GAAG,SAAQ;AAC5C,WAAW,MAAM;AACjB,YAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAC;AACnC,WAAW;AACX,SAAS,MAAM;AACf,UAAU,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAC;AAC9C,SAAS;AACT,OAAO;AACP,KAAK,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;AACnC,MAAM,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,cAAc,CAAC,IAAI,EAAC;AAClD,MAAM,MAAM,CAAC,SAAS,GAAG,UAAS;AAClC,MAAM,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAC;AACnD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,MAAM,CAAC,cAAc,GAAG,IAAI,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC;AAC3E,OAAO;AACP,KAAK,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;AACpC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAK;AACxB,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,OAAM;AAC9B,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,OAAM;AAC9B;AACA,MAAM,IAAI,MAAM,GAAG,EAAC;AACpB,MAAM,IAAI,MAAM,GAAG,EAAC;AACpB,MAAM,IAAI,OAAO,GAAG,EAAC;AACrB,MAAM,IAAI,OAAO,GAAG,EAAC;AACrB,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,QAAQ,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AACzB,QAAQ,MAAM,GAAG,EAAC;AAClB,QAAQ,OAAO,GAAG,MAAM,CAAC,CAAC,EAAC;AAC3B,QAAQ,OAAO,GAAG,EAAC;AACnB,OAAO,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,QAAQ,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AACzB,QAAQ,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AACzB,QAAQ,OAAO,GAAG,MAAM,CAAC,CAAC,EAAC;AAC3B,QAAQ,OAAO,GAAG,MAAM,CAAC,CAAC,EAAC;AAC3B,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,KAAK,CAAC,eAAe,EAAC;AACtC,OAAO;AACP;AACA,MAAM,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAU;AACrE,MAAM,MAAM,CAAC,SAAS,GAAG,OAAM;AAC/B;AACA,MAAM,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAC;AACvE,MAAM,SAAS,CAAC,aAAa;AAC7B,QAAQ,IAAI,CAAC,IAAI;AACjB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,MAAM,EAAC;AACf,MAAM,wBAAwB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAC;AAC5D,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,MAAM,CAAC,cAAc,GAAG,cAAa;AAC7C,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAC;AACpC,OAAO;AACP,KAAK,MAAM,IAAI,IAAI,YAAY,WAAW,EAAE;AAC5C,MAAM,MAAM,CAAC,KAAK,GAAG,mBAAkB;AACvC,MAAM,MAAM,CAAC,SAAS,GAAG,UAAS;AAClC,MAAM,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAC;AACnD,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,MAAM,CAAC,cAAc,GAAG,IAAI,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAC;AACpE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAC;AAC1C,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,OAAO,EAAE,MAAM,EAAE;AAC5B,IAAI,KAAK,CAAC,WAAW,GAAE;AACvB;AACA;AACA,IAAI,aAAa,CAAC,MAAM,EAAC;AACzB;AACA,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,OAAM;AAC9B,IAAI,OAAO,CAAC,MAAM,EAAE,oCAAoC,EAAC;AACzD,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,EAAC;AAC3B,IAAI,MAAM,CAAC,MAAM,GAAG,KAAI;AACxB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC,EAAE,EAAC;AAC/B,GAAG;AACH;AACA,EAAE,SAAS,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE;AAC/D,IAAI,KAAK,CAAC,WAAW,GAAE;AACvB;AACA,IAAI,IAAI,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAC;AACrC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,OAAM;AACjC;AACA,IAAI,SAAS,UAAU,EAAE,OAAO,EAAE;AAClC,MAAM,IAAI,KAAK,GAAG,eAAc;AAChC,MAAM,IAAI,IAAI,GAAG,KAAI;AACrB,MAAM,IAAI,UAAU,GAAG,EAAC;AACxB,MAAM,IAAI,KAAK,GAAG,EAAC;AACnB,MAAM,IAAI,SAAS,GAAG,EAAC;AACvB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;AAChC,UAAU,YAAY,CAAC,OAAO,CAAC;AAC/B,UAAU,aAAa,CAAC,OAAO,CAAC;AAChC,UAAU,OAAO,YAAY,WAAW,EAAE;AAC1C,QAAQ,IAAI,GAAG,QAAO;AACtB,OAAO,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC9C,QAAQ,UAAU,GAAG,OAAO,GAAG,EAAC;AAChC,OAAO,MAAM,IAAI,OAAO,EAAE;AAC1B,QAAQ,OAAO,CAAC,IAAI;AACpB,UAAU,OAAO,EAAE,QAAQ;AAC3B,UAAU,0DAA0D,EAAC;AACrE;AACA,QAAQ,IAAI,MAAM,IAAI,OAAO,EAAE;AAC/B,UAAU,OAAO;AACjB,YAAY,IAAI,KAAK,IAAI;AACzB,YAAY,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAC/B,YAAY,YAAY,CAAC,IAAI,CAAC;AAC9B,YAAY,aAAa,CAAC,IAAI,CAAC;AAC/B,YAAY,yBAAyB,EAAC;AACtC,UAAU,IAAI,GAAG,OAAO,CAAC,KAAI;AAC7B,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,IAAI,OAAO,EAAE;AAChC,UAAU,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAC;AAC9E,UAAU,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAC;AAC3C,SAAS;AACT;AACA,QAAQ,IAAI,MAAM,IAAI,OAAO,EAAE;AAC/B,UAAU,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAC;AACzE,UAAU,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAC;AACvC,SAAS;AACT;AACA,QAAQ,IAAI,WAAW,IAAI,OAAO,EAAE;AACpC,UAAU,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAC;AACxE,UAAU,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,EAAC;AAC3C,SAAS;AACT;AACA,QAAQ,IAAI,QAAQ,IAAI,OAAO,EAAE;AACjC,UAAU,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,6CAA6C,EAAC;AAChF,UAAU,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,EAAC;AACzC,SAAS;AACT,OAAO;AACP;AACA,MAAM,MAAM,CAAC,IAAI,GAAE;AACnB,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB;AACA,QAAQ,IAAI,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAC;AACrE,QAAQ,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,mBAAkB;AAClD,QAAQ,MAAM,CAAC,KAAK,GAAG,MAAK;AAC5B,QAAQ,MAAM,CAAC,SAAS,GAAG,UAAS;AACpC,QAAQ,MAAM,CAAC,UAAU,GAAG,WAAU;AACtC,OAAO,MAAM;AACb,QAAQ,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAC;AAC7E,OAAO;AACP;AACA,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AAC1B,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,EAAC;AAC1E,OAAO;AACP;AACA,MAAM,OAAO,UAAU;AACvB,KAAK;AACL;AACA,IAAI,SAAS,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;AACvC,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU;AAC3D,QAAQ,oDAAoD,GAAG,6BAA6B,GAAG,IAAI,CAAC,UAAU,GAAG,wBAAwB,GAAG,MAAM,GAAG,uBAAuB,GAAG,MAAM,CAAC,UAAU,EAAC;AACjM;AACA,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC;AACjD,KAAK;AACL;AACA,IAAI,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AACrC,MAAM,IAAI,MAAM,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,EAAC;AACrC,MAAM,IAAI,MAAK;AACf,MAAM,MAAM,CAAC,IAAI,GAAE;AACnB,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,WAAW,EAAE;AAC7D,QAAQ,UAAU,CAAC,IAAI,EAAE,MAAM,EAAC;AAChC,OAAO,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACtC,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,UAAU,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC3C,YAAY,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAC;AACrE,YAAY,SAAS,CAAC,SAAS,EAAE,IAAI,EAAC;AACtC,YAAY,UAAU,CAAC,SAAS,EAAE,MAAM,EAAC;AACzC,YAAY,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAC;AACpC,WAAW,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACtE,YAAY,KAAK,GAAG,UAAU,CAAC,IAAI,EAAC;AACpC,YAAY,IAAI,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAC;AAClE,YAAY,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAC;AACxC,YAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAC;AACnC,WAAW,MAAM;AACjB,YAAY,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAC;AAChD,WAAW;AACX,SAAS;AACT,OAAO,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;AACtC,QAAQ,KAAK,GAAG,IAAI,CAAC,MAAK;AAC1B,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,OAAM;AAChC;AACA,QAAQ,IAAI,MAAM,GAAG,EAAC;AACtB,QAAQ,IAAI,MAAM,GAAG,EAAC;AACtB,QAAQ,IAAI,OAAO,GAAG,EAAC;AACvB,QAAQ,IAAI,OAAO,GAAG,EAAC;AACvB,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,UAAU,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AAC3B,UAAU,MAAM,GAAG,EAAC;AACpB,UAAU,OAAO,GAAG,MAAM,CAAC,CAAC,EAAC;AAC7B,UAAU,OAAO,GAAG,EAAC;AACrB,SAAS,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACvC,UAAU,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AAC3B,UAAU,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AAC3B,UAAU,OAAO,GAAG,MAAM,CAAC,CAAC,EAAC;AAC7B,UAAU,OAAO,GAAG,MAAM,CAAC,CAAC,EAAC;AAC7B,SAAS,MAAM;AACf,UAAU,OAAO,CAAC,KAAK,CAAC,eAAe,EAAC;AACxC,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,YAAY,MAAM,CAAC,KAAK;AACxB,YAAY,cAAc,CAAC,IAAI,CAAC,IAAI,EAAC;AACrC;AACA,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAC;AAClE,QAAQ,SAAS,CAAC,aAAa;AAC/B,UAAU,IAAI,CAAC,IAAI;AACnB,UAAU,MAAM,EAAE,MAAM;AACxB,UAAU,OAAO,EAAE,OAAO;AAC1B,UAAU,IAAI,CAAC,MAAM,EAAC;AACtB,QAAQ,UAAU,CAAC,aAAa,EAAE,MAAM,EAAC;AACzC,QAAQ,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAC;AACpC,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAC;AACxD,OAAO;AACP,MAAM,OAAO,UAAU;AACvB,KAAK;AACL;AACA,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,MAAM,UAAU,CAAC,OAAO,EAAC;AACzB,KAAK;AACL;AACA,IAAI,UAAU,CAAC,SAAS,GAAG,SAAQ;AACnC,IAAI,UAAU,CAAC,OAAO,GAAG,OAAM;AAC/B,IAAI,UAAU,CAAC,OAAO,GAAG,QAAO;AAChC,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AACxB,MAAM,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,MAAK;AACrC,KAAK;AACL,IAAI,UAAU,CAAC,OAAO,GAAG,YAAY,EAAE,OAAO,CAAC,MAAM,EAAC,GAAE;AACxD;AACA,IAAI,OAAO,UAAU;AACrB,GAAG;AACH;AACA,EAAE,SAAS,cAAc,IAAI;AAC7B,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;AAChD,MAAM,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,YAAY,GAAE;AACvC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAC;AAC/C,MAAM,EAAE,CAAC,UAAU;AACnB,QAAQ,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,EAAC;AAC9E,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE;AACtB,IAAI,KAAK,CAAC,kBAAkB,GAAG,YAAY;AAC3C,MAAM,IAAI,KAAK,GAAG,EAAC;AACnB;AACA,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACpD,QAAQ,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAI;AAC1C,OAAO,EAAC;AACR,MAAM,OAAO,KAAK;AAClB,MAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,YAAY;AACxB;AACA,IAAI,YAAY,EAAE,YAAY;AAC9B,IAAI,aAAa,EAAE,aAAa;AAChC;AACA,IAAI,KAAK,EAAE,YAAY;AACvB,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,EAAC;AACxC,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,EAAC;AACjC,KAAK;AACL;AACA,IAAI,SAAS,EAAE,UAAU,OAAO,EAAE;AAClC,MAAM,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,YAAY,UAAU,EAAE;AAC5D,QAAQ,OAAO,OAAO,CAAC,OAAO;AAC9B,OAAO;AACP,MAAM,OAAO,IAAI;AACjB,KAAK;AACL;AACA,IAAI,OAAO,EAAE,cAAc;AAC3B;AACA,IAAI,WAAW,EAAE,kBAAkB;AACnC,GAAG;AACH,CAAC;AACD;AACA,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,GAAG,CAAC,CAAC;AACb,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,IAAI,SAAS,GAAG;AAChB,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,KAAK,EAAE,KAAK;AACb,CAAC,KAAK,EAAE,KAAK;AACb,CAAC,IAAI,EAAE,IAAI;AACX,CAAC,SAAS,EAAE,SAAS;AACrB,CAAC,QAAQ,EAAE,QAAQ;AACnB,CAAC,WAAW,EAAE,CAAC;AACf,CAAC,YAAY,EAAE,CAAC;AAChB,CAAC,gBAAgB,EAAE,CAAC;AACpB,CAAC,cAAc,EAAE,CAAC;AAClB,CAAC,CAAC;AACF;AACA,IAAI,SAAS,GAAG,EAAC;AACjB,IAAI,QAAQ,GAAG,EAAC;AAChB,IAAI,YAAY,GAAG,EAAC;AACpB;AACA,IAAI,SAAS,GAAG,KAAI;AACpB,IAAI,kBAAkB,GAAG,KAAI;AAC7B,IAAI,UAAU,GAAG,KAAI;AACrB,IAAI,mBAAmB,GAAG,KAAI;AAC9B,IAAI,QAAQ,GAAG,KAAI;AACnB,IAAI,iBAAiB,GAAG,KAAI;AAC5B;AACA,IAAI,uBAAuB,GAAG,MAAK;AACnC;AACA,IAAI,gBAAgB,GAAG,OAAM;AAC7B,IAAI,gBAAgB,GAAG,OAAM;AAC7B;AACA,SAAS,iBAAiB,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE;AAChE,EAAE,IAAI,UAAU,GAAG,GAAE;AACrB,EAAE,IAAI,YAAY,GAAG,EAAC;AACtB;AACA,EAAE,IAAI,YAAY,GAAG;AACrB,IAAI,OAAO,EAAE,kBAAkB;AAC/B,IAAI,QAAQ,EAAE,mBAAmB;AACjC,IAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,sBAAsB,EAAE;AACzC,IAAI,YAAY,CAAC,MAAM,GAAG,kBAAiB;AAC3C,GAAG;AACH;AACA,EAAE,SAAS,iBAAiB,EAAE,MAAM,EAAE;AACtC,IAAI,IAAI,CAAC,EAAE,GAAG,YAAY,GAAE;AAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAI;AAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,OAAM;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,aAAY;AAChC,IAAI,IAAI,CAAC,SAAS,GAAG,EAAC;AACtB,IAAI,IAAI,CAAC,IAAI,GAAG,EAAC;AACjB,GAAG;AACH;AACA,EAAE,iBAAiB,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;AACjD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAE;AACtB,IAAG;AACH;AACA,EAAE,IAAI,UAAU,GAAG,GAAE;AACrB;AACA,EAAE,SAAS,mBAAmB,EAAE,IAAI,EAAE;AACtC,IAAI,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,GAAE;AACjC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,WAAW,CAAC,MAAM;AACvD,QAAQ,IAAI;AACZ,QAAQ,uBAAuB;AAC/B,QAAQ,IAAI;AACZ,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAC;AACvB,KAAK;AACL,IAAI,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;AAC9D,IAAI,OAAO,MAAM;AACjB,GAAG;AACH;AACA,EAAE,SAAS,oBAAoB,EAAE,QAAQ,EAAE;AAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAC;AAC7B,GAAG;AACH;AACA,EAAE,SAAS,YAAY;AACvB,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,IAAI,EAAE;AACV,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAE;AAC1B,IAAI,IAAI,MAAK;AACb,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,aAAa,GAAG,KAAI;AAC9B,MAAM,IAAI,CAAC,IAAI;AACf,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC;AAC3B,UAAU,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC7D,QAAQ,aAAa,GAAG,UAAU,CAAC,sBAAsB;AACzD,YAAY,iBAAiB;AAC7B,YAAY,oBAAmB;AAC/B,OAAO;AACP,MAAM,WAAW,CAAC,WAAW;AAC7B,QAAQ,QAAQ,CAAC,MAAM;AACvB,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,QAAQ,aAAa;AACrB,QAAQ,CAAC,EAAC;AACV,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,UAAU,CAAC,uBAAuB,EAAE,UAAU,EAAE,KAAK,EAAC;AAC/D,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,mBAAkB;AACzD,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,MAAK;AACnC,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,GAAG,EAAC;AACnC,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,GAAG,WAAU;AAC7C,KAAK;AACL;AACA,IAAI,KAAK,GAAG,KAAI;AAChB,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,QAAQ,QAAQ,CAAC,MAAM,CAAC,KAAK;AACnC,QAAQ,KAAK,kBAAkB,CAAC;AAChC,QAAQ,KAAK,SAAS;AACtB,UAAU,KAAK,GAAG,mBAAkB;AACpC,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,mBAAmB,CAAC;AACjC,QAAQ,KAAK,UAAU;AACvB,UAAU,KAAK,GAAG,oBAAmB;AACrC,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,iBAAiB,CAAC;AAC/B,QAAQ,KAAK,QAAQ;AACrB,UAAU,KAAK,GAAG,kBAAiB;AACnC,UAAU,KAAK;AACf;AACA,QAAQ;AACR,UAAU,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAC;AAC7D,OAAO;AACP,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,MAAK;AACnC,KAAK;AACL,IAAI,QAAQ,CAAC,IAAI,GAAG,MAAK;AACzB;AACA;AACA,IAAI,OAAO;AACX,MAAM,KAAK,KAAK,iBAAiB;AACjC,MAAM,CAAC,CAAC,UAAU,CAAC,sBAAsB;AACzC,MAAM,2EAA2E,EAAC;AAClF;AACA;AACA,IAAI,IAAI,SAAS,GAAG,MAAK;AACzB,IAAI,IAAI,SAAS,GAAG,CAAC,EAAE;AACvB,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAU;AAC5C,MAAM,IAAI,KAAK,KAAK,mBAAmB,EAAE;AACzC,QAAQ,SAAS,KAAK,EAAC;AACvB,OAAO,MAAM,IAAI,KAAK,KAAK,iBAAiB,EAAE;AAC9C,QAAQ,SAAS,KAAK,EAAC;AACvB,OAAO;AACP,KAAK;AACL,IAAI,QAAQ,CAAC,SAAS,GAAG,UAAS;AAClC;AACA;AACA,IAAI,IAAI,QAAQ,GAAG,KAAI;AACvB,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE;AAClB,MAAM,QAAQ,GAAG,aAAY;AAC7B,MAAM,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAS;AAC/C,MAAM,IAAI,SAAS,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAS;AAC/C,MAAM,IAAI,SAAS,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAQ;AAC9C,MAAM,IAAI,SAAS,KAAK,CAAC,EAAE,QAAQ,GAAG,aAAY;AAClD,KAAK;AACL,IAAI,QAAQ,CAAC,QAAQ,GAAG,SAAQ;AAChC,GAAG;AACH;AACA,EAAE,SAAS,eAAe,EAAE,QAAQ,EAAE;AACtC,IAAI,KAAK,CAAC,aAAa,GAAE;AACzB;AACA,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,kCAAkC,EAAC;AACzE,IAAI,OAAO,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAC;AAClC,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,GAAE;AAC7B,IAAI,QAAQ,CAAC,MAAM,GAAG,KAAI;AAC1B,GAAG;AACH;AACA,EAAE,SAAS,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE;AAChD,IAAI,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAC;AACxE,IAAI,IAAI,QAAQ,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAC;AACxD,IAAI,KAAK,CAAC,aAAa,GAAE;AACzB;AACA,IAAI,SAAS,YAAY,EAAE,OAAO,EAAE;AACpC,MAAM,IAAI,CAAC,OAAO,EAAE;AACpB,QAAQ,MAAM,GAAE;AAChB,QAAQ,QAAQ,CAAC,QAAQ,GAAG,aAAY;AACxC,QAAQ,QAAQ,CAAC,SAAS,GAAG,EAAC;AAC9B,QAAQ,QAAQ,CAAC,IAAI,GAAG,mBAAkB;AAC1C,OAAO,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC9C,QAAQ,MAAM,CAAC,OAAO,EAAC;AACvB,QAAQ,QAAQ,CAAC,QAAQ,GAAG,aAAY;AACxC,QAAQ,QAAQ,CAAC,SAAS,GAAG,OAAO,GAAG,EAAC;AACxC,QAAQ,QAAQ,CAAC,IAAI,GAAG,mBAAkB;AAC1C,OAAO,MAAM;AACb,QAAQ,IAAI,IAAI,GAAG,KAAI;AACvB,QAAQ,IAAI,KAAK,GAAG,iBAAgB;AACpC,QAAQ,IAAI,QAAQ,GAAG,CAAC,EAAC;AACzB,QAAQ,IAAI,SAAS,GAAG,CAAC,EAAC;AAC1B,QAAQ,IAAI,UAAU,GAAG,EAAC;AAC1B,QAAQ,IAAI,KAAK,GAAG,EAAC;AACrB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;AAClC,YAAY,YAAY,CAAC,OAAO,CAAC;AACjC,YAAY,aAAa,CAAC,OAAO,CAAC,EAAE;AACpC,UAAU,IAAI,GAAG,QAAO;AACxB,SAAS,MAAM;AACf,UAAU,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,gCAAgC,EAAC;AAC3E,UAAU,IAAI,MAAM,IAAI,OAAO,EAAE;AACjC,YAAY,IAAI,GAAG,OAAO,CAAC,KAAI;AAC/B,YAAY,OAAO;AACnB,cAAc,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AACjC,gBAAgB,YAAY,CAAC,IAAI,CAAC;AAClC,gBAAgB,aAAa,CAAC,IAAI,CAAC;AACnC,cAAc,iCAAiC,EAAC;AAChD,WAAW;AACX,UAAU,IAAI,OAAO,IAAI,OAAO,EAAE;AAClC,YAAY,OAAO,CAAC,SAAS;AAC7B,cAAc,OAAO,CAAC,KAAK;AAC3B,cAAc,UAAU;AACxB,cAAc,8BAA8B,EAAC;AAC7C,YAAY,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAC;AAC7C,WAAW;AACX,UAAU,IAAI,WAAW,IAAI,OAAO,EAAE;AACtC,YAAY,OAAO,CAAC,SAAS;AAC7B,cAAc,OAAO,CAAC,SAAS;AAC/B,cAAc,SAAS;AACvB,cAAc,kCAAkC,EAAC;AACjD,YAAY,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAC;AACnD,WAAW;AACX,UAAU,IAAI,OAAO,IAAI,OAAO,EAAE;AAClC,YAAY,OAAO;AACnB,cAAc,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC;AACrE,cAAc,mCAAmC,EAAC;AAClD,YAAY,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,EAAC;AACzC,WAAW;AACX,UAAU,IAAI,MAAM,IAAI,OAAO,EAAE;AACjC,YAAY,OAAO,CAAC,SAAS;AAC7B,cAAc,OAAO,CAAC,IAAI;AAC1B,cAAc,YAAY;AAC1B,cAAc,qBAAqB,EAAC;AACpC,YAAY,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAC;AAC9C,WAAW;AACX,UAAU,IAAI,QAAQ,IAAI,OAAO,EAAE;AACnC,YAAY,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,EAAC;AAC3C,WAAW,MAAM;AACjB,YAAY,UAAU,GAAG,UAAS;AAClC,YAAY,IAAI,KAAK,KAAK,mBAAmB,IAAI,KAAK,KAAK,UAAU,EAAE;AACvE,cAAc,UAAU,IAAI,EAAC;AAC7B,aAAa,MAAM,IAAI,KAAK,KAAK,iBAAiB,IAAI,KAAK,KAAK,QAAQ,EAAE;AAC1E,cAAc,UAAU,IAAI,EAAC;AAC7B,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,YAAY;AACpB,UAAU,QAAQ;AAClB,UAAU,IAAI;AACd,UAAU,KAAK;AACf,UAAU,QAAQ;AAClB,UAAU,SAAS;AACnB,UAAU,UAAU;AACpB,UAAU,KAAK,EAAC;AAChB,OAAO;AACP;AACA,MAAM,OAAO,YAAY;AACzB,KAAK;AACL;AACA,IAAI,YAAY,CAAC,OAAO,EAAC;AACzB;AACA,IAAI,YAAY,CAAC,SAAS,GAAG,WAAU;AACvC,IAAI,YAAY,CAAC,SAAS,GAAG,SAAQ;AACrC,IAAI,YAAY,CAAC,OAAO,GAAG,UAAU,IAAI,EAAE,MAAM,EAAE;AACnD,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAC;AAClC,MAAM,OAAO,YAAY;AACzB,MAAK;AACL,IAAI,YAAY,CAAC,OAAO,GAAG,YAAY;AACvC,MAAM,eAAe,CAAC,QAAQ,EAAC;AAC/B,MAAK;AACL;AACA,IAAI,OAAO,YAAY;AACvB,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,YAAY,EAAE,mBAAmB;AACrC,IAAI,aAAa,EAAE,oBAAoB;AACvC,IAAI,WAAW,EAAE,UAAU,QAAQ,EAAE;AACrC,MAAM,IAAI,OAAO,QAAQ,KAAK,UAAU;AACxC,UAAU,QAAQ,CAAC,SAAS,YAAY,iBAAiB,EAAE;AAC3D,QAAQ,OAAO,QAAQ,CAAC,SAAS;AACjC,OAAO;AACP,MAAM,OAAO,IAAI;AACjB,KAAK;AACL,IAAI,KAAK,EAAE,YAAY;AACvB,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,eAAe,EAAC;AACjD,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA,IAAI,KAAK,GAAG,IAAI,YAAY,CAAC,CAAC,EAAC;AAC/B,IAAI,GAAG,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAC;AACvC;AACA,IAAI,mBAAmB,GAAG,KAAI;AAC9B;AACA,SAAS,kBAAkB,EAAE,KAAK,EAAE;AACpC,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,KAAK,CAAC,MAAM,EAAC;AACjE;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACzC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACzB,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAM;AACzB,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACtC,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAM;AACzB,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;AACvC,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAM;AACzB,KAAK,MAAM;AACX,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAC;AACzB,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAC;AACpB;AACA,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,GAAE;AAChC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAG;AACvC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAC;AAC5C;AACA,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE;AACrB;AACA,QAAQ,OAAO,CAAC,CAAC,CAAC,GAAG,IAAG;AACxB,OAAO,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE;AAC5B;AACA,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAG;AACzB,QAAQ,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAC;AACpD,OAAO,MAAM,IAAI,GAAG,GAAG,EAAE,EAAE;AAC3B;AACA,QAAQ,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,OAAM;AACjC,OAAO,MAAM;AACb;AACA,QAAQ,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,KAAI;AACpD,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,OAAO;AAChB,CAAC;AACD;AACA,SAAS,WAAW,EAAE,CAAC,EAAE;AACzB,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC;AAC5C,CAAC;AACD;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5B,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChC,EAAC;AACD;AACA,IAAI,6BAA6B,GAAG,OAAM;AAC1C;AACA,IAAI,eAAe,GAAG,OAAM;AAC5B,IAAI,qBAAqB,GAAG,OAAM;AAClC,IAAI,gCAAgC,GAAG,OAAM;AAC7C;AACA,IAAI,SAAS,GAAG,OAAM;AACtB,IAAI,QAAQ,GAAG,OAAM;AACrB,IAAI,MAAM,GAAG,OAAM;AACnB,IAAI,YAAY,GAAG,OAAM;AACzB,IAAI,kBAAkB,GAAG,OAAM;AAC/B;AACA,IAAI,QAAQ,GAAG,OAAM;AACrB,IAAI,UAAU,GAAG,OAAM;AACvB,IAAI,SAAS,GAAG,OAAM;AACtB;AACA,IAAI,2BAA2B,GAAG,OAAM;AACxC,IAAI,2BAA2B,GAAG,OAAM;AACxC,IAAI,yBAAyB,GAAG,OAAM;AACtC,IAAI,4BAA4B,GAAG,OAAM;AACzC;AACA,IAAI,kBAAkB,GAAG,OAAM;AAC/B,IAAI,gBAAgB,GAAG,OAAM;AAC7B;AACA,IAAI,WAAW,GAAG,OAAM;AACxB,IAAI,iBAAiB,GAAG,OAAM;AAC9B;AACA,IAAI,mBAAmB,GAAG,OAAM;AAChC;AACA,IAAI,+BAA+B,GAAG,OAAM;AAC5C,IAAI,gCAAgC,GAAG,OAAM;AAC7C,IAAI,gCAAgC,GAAG,OAAM;AAC7C,IAAI,gCAAgC,GAAG,OAAM;AAC7C;AACA,IAAI,2BAA2B,GAAG,OAAM;AACxC,IAAI,2CAA2C,GAAG,OAAM;AACxD,IAAI,+CAA+C,GAAG,OAAM;AAC5D;AACA,IAAI,kCAAkC,GAAG,OAAM;AAC/C,IAAI,kCAAkC,GAAG,OAAM;AAC/C,IAAI,mCAAmC,GAAG,OAAM;AAChD,IAAI,mCAAmC,GAAG,OAAM;AAChD;AACA,IAAI,4BAA4B,GAAG,OAAM;AACzC;AACA,IAAI,kBAAkB,GAAG,OAAM;AAC/B,IAAI,mBAAmB,GAAG,OAAM;AAChC,IAAI,iBAAiB,GAAG,OAAM;AAC9B,IAAI,UAAU,GAAG,OAAM;AACvB;AACA,IAAI,iBAAiB,GAAG,OAAM;AAC9B,IAAI,iBAAiB,GAAG,OAAM;AAC9B;AACA,IAAI,SAAS,GAAG,OAAM;AACtB,IAAI,kBAAkB,GAAG,OAAM;AAC/B,IAAI,kBAAkB,GAAG,OAAM;AAC/B;AACA,IAAI,qBAAqB,GAAG,OAAM;AAClC,IAAI,qBAAqB,GAAG,OAAM;AAClC;AACA,IAAI,YAAY,GAAG,OAAM;AACzB,IAAI,SAAS,GAAG,OAAM;AACtB,IAAI,2BAA2B,GAAG,OAAM;AACxC,IAAI,0BAA0B,GAAG,OAAM;AACvC,IAAI,0BAA0B,GAAG,OAAM;AACvC,IAAI,yBAAyB,GAAG,OAAM;AACtC;AACA,IAAI,uBAAuB,GAAG,OAAM;AACpC,IAAI,YAAY,GAAG,OAAM;AACzB,IAAI,UAAU,GAAG,OAAM;AACvB,IAAI,SAAS,GAAG,OAAM;AACtB;AACA,IAAI,6BAA6B,GAAG,OAAM;AAC1C;AACA,IAAI,mBAAmB,GAAG,OAAM;AAChC,IAAI,sBAAsB,GAAG,OAAM;AACnC,IAAI,iCAAiC,GAAG,OAAM;AAC9C,IAAI,qCAAqC,GAAG,OAAM;AAClD;AACA,IAAI,wBAAwB,GAAG,OAAM;AACrC;AACA,IAAI,aAAa,GAAG,OAAM;AAC1B;AACA,IAAI,cAAc,GAAG;AACrB,EAAE,2BAA2B;AAC7B,EAAE,0BAA0B;AAC5B,EAAE,0BAA0B;AAC5B,EAAE,yBAAyB;AAC3B,EAAC;AACD;AACA,IAAI,eAAe,GAAG;AACtB,EAAE,CAAC;AACH,EAAE,YAAY;AACd,EAAE,kBAAkB;AACpB,EAAE,MAAM;AACR,EAAE,SAAS;AACX,EAAC;AACD;AACA,IAAI,eAAe,GAAG,GAAE;AACxB,eAAe,CAAC,YAAY,CAAC;AAC7B,eAAe,CAAC,QAAQ,CAAC;AACzB,eAAe,CAAC,kBAAkB,CAAC,GAAG,EAAC;AACvC,eAAe,CAAC,gBAAgB,CAAC;AACjC,eAAe,CAAC,kBAAkB,CAAC,GAAG,EAAC;AACvC,eAAe,CAAC,MAAM,CAAC;AACvB,eAAe,CAAC,WAAW,CAAC,GAAG,EAAC;AAChC,eAAe,CAAC,SAAS,CAAC;AAC1B,eAAe,CAAC,iBAAiB,CAAC,GAAG,EAAC;AACtC;AACA,SAAS,UAAU,EAAE,GAAG,EAAE;AAC1B,EAAE,OAAO,UAAU,GAAG,GAAG,GAAG,GAAG;AAC/B,CAAC;AACD;AACA,IAAI,YAAY,GAAG,UAAU,CAAC,mBAAmB,EAAC;AAClD,IAAI,qBAAqB,GAAG,UAAU,CAAC,iBAAiB,EAAC;AACzD,IAAI,eAAe,GAAG,UAAU,CAAC,0BAA0B,EAAC;AAC5D,IAAI,YAAY,GAAG,UAAU,CAAC,aAAa,EAAC;AAC5C,IAAI,WAAW,GAAG,UAAU,CAAC,kBAAkB,EAAC;AAChD,IAAI,WAAW,GAAG,UAAU,CAAC,kBAAkB,EAAC;AAChD;AACA,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AACnD,EAAE,YAAY;AACd,EAAE,qBAAqB;AACvB,EAAE,eAAe;AACjB,EAAE,YAAY;AACd,EAAE,WAAW;AACb,EAAE,WAAW;AACb,CAAC,EAAC;AACF;AACA;AACA;AACA,IAAI,UAAU,GAAG,GAAE;AACnB,UAAU,CAAC,kBAAkB,CAAC,GAAG,EAAC;AAClC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAC;AAC1B,UAAU,CAAC,mBAAmB,CAAC,GAAG,EAAC;AACnC;AACA,UAAU,CAAC,mBAAmB,CAAC,GAAG,EAAC;AACnC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAC;AACjC;AACA,IAAI,oBAAoB,GAAG,GAAE;AAC7B,oBAAoB,CAAC,QAAQ,CAAC,GAAG,EAAC;AAClC,oBAAoB,CAAC,UAAU,CAAC,GAAG,EAAC;AACpC,oBAAoB,CAAC,SAAS,CAAC,GAAG,EAAC;AACnC,oBAAoB,CAAC,gBAAgB,CAAC,GAAG,EAAC;AAC1C;AACA,oBAAoB,CAAC,+BAA+B,CAAC,GAAG,IAAG;AAC3D,oBAAoB,CAAC,gCAAgC,CAAC,GAAG,IAAG;AAC5D,oBAAoB,CAAC,gCAAgC,CAAC,GAAG,EAAC;AAC1D,oBAAoB,CAAC,gCAAgC,CAAC,GAAG,EAAC;AAC1D;AACA,oBAAoB,CAAC,2BAA2B,CAAC,GAAG,IAAG;AACvD,oBAAoB,CAAC,2CAA2C,CAAC,GAAG,EAAC;AACrE,oBAAoB,CAAC,+CAA+C,CAAC,GAAG,EAAC;AACzE;AACA,oBAAoB,CAAC,kCAAkC,CAAC,GAAG,IAAG;AAC9D,oBAAoB,CAAC,kCAAkC,CAAC,GAAG,KAAI;AAC/D,oBAAoB,CAAC,mCAAmC,CAAC,GAAG,IAAG;AAC/D,oBAAoB,CAAC,mCAAmC,CAAC,GAAG,KAAI;AAChE;AACA,oBAAoB,CAAC,4BAA4B,CAAC,GAAG,IAAG;AACxD;AACA,SAAS,cAAc,EAAE,GAAG,EAAE;AAC9B,EAAE;AACF,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACtB,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC;AACrB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;AAChC,CAAC;AACD;AACA,SAAS,WAAW,EAAE,GAAG,EAAE;AAC3B,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC3B,IAAI,OAAO,KAAK;AAChB,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC,OAAM;AACxB,EAAE,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3C,IAAI,OAAO,KAAK;AAChB,GAAG;AACH,EAAE,OAAO,IAAI;AACb,CAAC;AACD;AACA,SAAS,WAAW,EAAE,CAAC,EAAE;AACzB,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC;AACD;AACA,SAAS,eAAe,EAAE,MAAM,EAAE;AAClC,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,YAAY;AAC7C,CAAC;AACD;AACA,SAAS,iBAAiB,EAAE,MAAM,EAAE;AACpC,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,qBAAqB;AACtD,CAAC;AACD;AACA,SAAS,WAAW,EAAE,MAAM,EAAE;AAC9B,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,eAAe;AAChD,CAAC;AACD;AACA,SAAS,QAAQ,EAAE,MAAM,EAAE;AAC3B,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,YAAY;AAC7C,CAAC;AACD;AACA,SAAS,cAAc,EAAE,MAAM,EAAE;AACjC,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,WAAW;AAC5C,CAAC;AACD;AACA,SAAS,cAAc,EAAE,MAAM,EAAE;AACjC,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,WAAW;AAC5C,CAAC;AACD;AACA,SAAS,WAAW,EAAE,MAAM,EAAE;AAC9B,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,OAAO,KAAK;AAChB,GAAG;AACH,EAAE,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,EAAC;AACrC,EAAE,IAAI,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AAC7C,IAAI,OAAO,IAAI;AACf,GAAG;AACH,EAAE;AACF,IAAI,cAAc,CAAC,MAAM,CAAC;AAC1B,IAAI,WAAW,CAAC,MAAM,CAAC;AACvB,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC;AACD;AACA,SAAS,gBAAgB,EAAE,IAAI,EAAE;AACjC,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAC7D,CAAC;AACD;AACA,SAAS,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE;AACpC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,OAAM;AACrB,EAAE,QAAQ,MAAM,CAAC,IAAI;AACrB,IAAI,KAAK,kBAAkB,CAAC;AAC5B,IAAI,KAAK,mBAAmB,CAAC;AAC7B,IAAI,KAAK,iBAAiB,CAAC;AAC3B,IAAI,KAAK,UAAU;AACnB,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAC;AACpD,MAAM,SAAS,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB,MAAM,MAAM,CAAC,IAAI,GAAG,UAAS;AAC7B,MAAM,KAAK;AACX;AACA,IAAI,KAAK,mBAAmB;AAC5B,MAAM,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAC;AAC5C,MAAM,KAAK;AACX;AACA,IAAI;AACJ,MAAM,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAC;AAC3E,GAAG;AACH,CAAC;AACD;AACA,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;AAC/B,EAAE,OAAO,IAAI,CAAC,SAAS;AACvB,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;AACtC,QAAQ,UAAU;AAClB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACtB,CAAC;AACD;AACA,SAAS,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE;AACnC,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC1C,IAAI,KAAK,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAC;AACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC;AACvB,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,IAAI,GAAG,KAAI;AACrB,GAAG;AACH,CAAC;AACD;AACA,SAAS,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;AACzE,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,MAAK;AACrB,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAM;AACtB,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,SAAQ;AACxB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAC;AACnB,EAAE,IAAI,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,EAAC;AACjC;AACA,EAAE,IAAI,CAAC,GAAG,EAAC;AACX,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAChC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAClC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,MAAM,EAAC;AAC3E,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,EAAC;AAC1B,CAAC;AACD;AACA,SAAS,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;AACxE,EAAE,IAAI,EAAC;AACP,EAAE,IAAI,OAAO,oBAAoB,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE;AAC3D;AACA,IAAI,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAC;AACpC,GAAG,MAAM;AACT,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAC;AAClD,GAAG;AACH;AACA,EAAE,IAAI,MAAM,EAAE;AACd,IAAI,CAAC,IAAI,EAAC;AACV,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,EAAE;AAChB;AACA,IAAI,IAAI,KAAK,GAAG,EAAC;AACjB;AACA,IAAI,IAAI,CAAC,GAAG,MAAK;AACjB,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AACnB;AACA;AACA,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC;AACxB,MAAM,CAAC,IAAI,EAAC;AACZ,KAAK;AACL,IAAI,OAAO,KAAK;AAChB,GAAG,MAAM;AACT,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,MAAM;AAC7B,GAAG;AACH,CAAC;AACD;AACA,SAAS,gBAAgB;AACzB,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;AACjE;AACA;AACA;AACA,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,YAAY,EAAE,YAAY;AAC9B,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,MAAM,EAAE,UAAU;AACtB,IAAG;AACH;AACA,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,OAAO,EAAE,kBAAkB;AAC/B,IAAI,QAAQ,EAAE,kBAAkB;AAChC,IAAG;AACH;AACA,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAG;AACH;AACA,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC;AAC1B,IAAI,QAAQ,EAAE,yBAAyB;AACvC,IAAI,wBAAwB,EAAE,2BAA2B;AACzD,IAAI,uBAAuB,EAAE,0BAA0B;AACvD,IAAI,uBAAuB,EAAE,0BAA0B;AACvD,IAAI,sBAAsB,EAAE,yBAAyB;AACrD,GAAG,EAAE,UAAU,EAAC;AAChB;AACA,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,SAAS,EAAE,wBAAwB;AACvC,IAAG;AACH;AACA,EAAE,IAAI,YAAY,GAAG;AACrB,IAAI,OAAO,EAAE,kBAAkB;AAC/B,IAAI,OAAO,EAAE,2BAA2B;AACxC,IAAI,QAAQ,EAAE,yBAAyB;AACvC,IAAI,SAAS,EAAE,2BAA2B;AAC1C,IAAG;AACH;AACA,EAAE,IAAI,cAAc,GAAG;AACvB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,iBAAiB,EAAE,kBAAkB;AACzC,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAG;AACH;AACA,EAAE,IAAI,wBAAwB,GAAG,GAAE;AACnC;AACA,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE;AAC3B,IAAI,cAAc,CAAC,IAAI,GAAG,YAAW;AACrC,IAAI,cAAc,CAAC,KAAK,GAAG,kBAAiB;AAC5C,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,iBAAiB,EAAE;AACpC,IAAI,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,GAAG,WAAU;AAC1D,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,sBAAsB,EAAE;AACzC,IAAI,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,oBAAmB;AAC9E,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,mBAAmB,EAAE;AACtC,IAAI,MAAM,CAAC,cAAc,EAAE;AAC3B,MAAM,OAAO,EAAE,kBAAkB;AACjC,MAAM,eAAe,EAAE,gBAAgB;AACvC,KAAK,EAAC;AACN;AACA,IAAI,MAAM,CAAC,YAAY,EAAE;AACzB,MAAM,QAAQ,EAAE,mBAAmB;AACnC,MAAM,QAAQ,EAAE,iBAAiB;AACjC,MAAM,eAAe,EAAE,4BAA4B;AACnD,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,6BAA6B,EAAE;AAChD,IAAI,MAAM,CAAC,wBAAwB,EAAE;AACrC,MAAM,eAAe,EAAE,+BAA+B;AACtD,MAAM,gBAAgB,EAAE,gCAAgC;AACxD,MAAM,gBAAgB,EAAE,gCAAgC;AACxD,MAAM,gBAAgB,EAAE,gCAAgC;AACxD,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,4BAA4B,EAAE;AAC/C,IAAI,MAAM,CAAC,wBAAwB,EAAE;AACrC,MAAM,SAAS,EAAE,2BAA2B;AAC5C,MAAM,yBAAyB,EAAE,2CAA2C;AAC5E,MAAM,6BAA6B,EAAE,+CAA+C;AACpF,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,8BAA8B,EAAE;AACjD,IAAI,MAAM,CAAC,wBAAwB,EAAE;AACrC,MAAM,kBAAkB,EAAE,kCAAkC;AAC5D,MAAM,kBAAkB,EAAE,kCAAkC;AAC5D,MAAM,mBAAmB,EAAE,mCAAmC;AAC9D,MAAM,mBAAmB,EAAE,mCAAmC;AAC9D,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,6BAA6B,EAAE;AAChD,IAAI,wBAAwB,CAAC,UAAU,CAAC,GAAG,6BAA4B;AACvE,GAAG;AACH;AACA;AACA,EAAE,IAAI,0BAA0B,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI;AAC7D,IAAI,EAAE,CAAC,YAAY,CAAC,6BAA6B,CAAC,EAAC;AACnD,EAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAChE,IAAI,IAAI,MAAM,GAAG,wBAAwB,CAAC,IAAI,EAAC;AAC/C,IAAI,IAAI,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACzD,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,OAAM;AACnC,KAAK;AACL,GAAG,EAAC;AACJ;AACA,EAAE,IAAI,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAC;AACpD,EAAE,MAAM,CAAC,cAAc,GAAG,iBAAgB;AAC1C;AACA;AACA;AACA,EAAE,IAAI,oBAAoB,GAAG,GAAE;AAC/B,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACrD,IAAI,IAAI,GAAG,GAAG,cAAc,CAAC,GAAG,EAAC;AACjC,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,IAAG;AACnC,GAAG,EAAC;AACJ;AACA;AACA;AACA,EAAE,IAAI,kBAAkB,GAAG,GAAE;AAC7B,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACnD,IAAI,IAAI,GAAG,GAAG,YAAY,CAAC,GAAG,EAAC;AAC/B,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAG;AACjC,GAAG,EAAC;AACJ;AACA,EAAE,IAAI,gBAAgB,GAAG,GAAE;AAC3B,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACjD,IAAI,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAC;AAC7B,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAG;AAC/B,GAAG,EAAC;AACJ;AACA,EAAE,IAAI,gBAAgB,GAAG,GAAE;AAC3B,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACjD,IAAI,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAC;AAC7B,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAG;AAC/B,GAAG,EAAC;AACJ;AACA,EAAE,IAAI,eAAe,GAAG,GAAE;AAC1B,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAChD,IAAI,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAC;AAC5B,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,IAAG;AAC9B,GAAG,EAAC;AACJ;AACA;AACA;AACA,EAAE,IAAI,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,KAAK,EAAE,GAAG,EAAE;AACnE,IAAI,IAAI,MAAM,GAAG,cAAc,CAAC,GAAG,EAAC;AACpC,IAAI,IAAI,MAAM,KAAK,YAAY;AAC/B,QAAQ,MAAM,KAAK,QAAQ;AAC3B,QAAQ,MAAM,KAAK,YAAY;AAC/B,QAAQ,MAAM,KAAK,kBAAkB;AACrC,QAAQ,MAAM,KAAK,kBAAkB;AACrC,QAAQ,MAAM,KAAK,gBAAgB;AACnC,SAAS,UAAU,CAAC,QAAQ;AAC5B,iBAAiB,MAAM,KAAK,WAAW;AACvC,iBAAiB,MAAM,KAAK,iBAAiB,CAAC,CAAC,EAAE;AACjD,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,OAAM;AAC5B,KAAK,MAAM,IAAI,MAAM,KAAK,UAAU,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AAClE,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,UAAS;AAC/B,KAAK,MAAM;AACX,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,OAAM;AAC5B,KAAK;AACL,IAAI,OAAO,KAAK;AAChB,GAAG,EAAE,EAAE,EAAC;AACR;AACA,EAAE,SAAS,QAAQ,IAAI;AACvB;AACA,IAAI,IAAI,CAAC,cAAc,GAAG,UAAS;AACnC,IAAI,IAAI,CAAC,MAAM,GAAG,UAAS;AAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,mBAAkB;AAClC,IAAI,IAAI,CAAC,UAAU,GAAG,MAAK;AAC3B;AACA;AACA,IAAI,IAAI,CAAC,gBAAgB,GAAG,MAAK;AACjC,IAAI,IAAI,CAAC,KAAK,GAAG,MAAK;AACtB,IAAI,IAAI,CAAC,eAAe,GAAG,EAAC;AAC5B,IAAI,IAAI,CAAC,UAAU,GAAG,yBAAwB;AAC9C;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAC;AAClB,IAAI,IAAI,CAAC,MAAM,GAAG,EAAC;AACnB,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAC;AACrB,GAAG;AACH;AACA,EAAE,SAAS,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;AACrC,IAAI,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,eAAc;AAChD,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,OAAM;AAChC,IAAI,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,KAAI;AAC5B,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,WAAU;AACxC;AACA,IAAI,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,iBAAgB;AACpD,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,MAAK;AAC9B,IAAI,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,gBAAe;AAClD,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,WAAU;AACxC;AACA,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,MAAK;AAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,OAAM;AAChC,IAAI,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAQ;AACpC,GAAG;AACH;AACA,EAAE,SAAS,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;AACvC,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE;AACjD,MAAM,MAAM;AACZ,KAAK;AACL;AACA,IAAI,IAAI,kBAAkB,IAAI,OAAO,EAAE;AACvC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS;AACtD,QAAQ,0BAA0B,EAAC;AACnC,MAAM,KAAK,CAAC,gBAAgB,GAAG,OAAO,CAAC,iBAAgB;AACvD,KAAK;AACL;AACA,IAAI,IAAI,OAAO,IAAI,OAAO,EAAE;AAC5B,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS;AAC3C,QAAQ,sBAAsB,EAAC;AAC/B,MAAM,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,MAAK;AACjC,KAAK;AACL;AACA,IAAI,IAAI,WAAW,IAAI,OAAO,EAAE;AAChC,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACnD,QAAQ,kCAAkC,EAAC;AAC3C,MAAM,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,UAAS;AAC/C,KAAK;AACL;AACA,IAAI,IAAI,YAAY,IAAI,OAAO,EAAE;AACjC,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU;AACtD,QAAQ,oBAAoB,EAAC;AAC7B,MAAM,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAC;AACvD,KAAK;AACL;AACA,IAAI,IAAI,MAAM,IAAI,OAAO,EAAE;AAC3B,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC,KAAI;AAC7B,MAAM,OAAO,CAAC,UAAU,CAAC,iBAAiB;AAC1C,QAAQ,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,CAAC;AACjD,MAAM,0FAA0F,EAAC;AACjG,MAAM,OAAO,CAAC,UAAU,CAAC,sBAAsB;AAC/C,QAAQ,EAAE,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,SAAS,CAAC;AACtD,MAAM,sGAAsG,EAAC;AAC7G,MAAM,OAAO,CAAC,UAAU,CAAC,mBAAmB;AAC5C,QAAQ,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,eAAe,CAAC;AAC7E,MAAM,2FAA2F,EAAC;AAClG,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY;AAC1C,QAAQ,sBAAsB,EAAC;AAC/B,MAAM,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,EAAC;AACrC,KAAK;AACL;AACA,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,MAAK;AACvB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,OAAM;AACxB,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,SAAQ;AAC1B,IAAI,IAAI,WAAW,GAAG,MAAK;AAC3B,IAAI,IAAI,OAAO,IAAI,OAAO,EAAE;AAC5B,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;AACvE,QAAQ,wBAAwB,EAAC;AACjC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAC;AAC1B,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAC;AAC1B,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAC;AAC5B,QAAQ,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,4BAA4B,EAAC;AAC9D,QAAQ,WAAW,GAAG,KAAI;AAC1B,OAAO;AACP,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,eAAe,EAAC;AACpE,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,gBAAgB,EAAC;AACrE,KAAK,MAAM;AACX,MAAM,IAAI,QAAQ,IAAI,OAAO,EAAE;AAC/B,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAM;AAC9B,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,gBAAgB,EAAC;AACvE,OAAO;AACP,MAAM,IAAI,OAAO,IAAI,OAAO,EAAE;AAC9B,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAK;AACzB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,eAAe,EAAC;AACtE,OAAO;AACP,MAAM,IAAI,QAAQ,IAAI,OAAO,EAAE;AAC/B,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAM;AAC1B,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,gBAAgB,EAAC;AACvE,OAAO;AACP,MAAM,IAAI,UAAU,IAAI,OAAO,EAAE;AACjC,QAAQ,CAAC,GAAG,OAAO,CAAC,SAAQ;AAC5B,QAAQ,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,4BAA4B,EAAC;AAC9D,QAAQ,WAAW,GAAG,KAAI;AAC1B,OAAO;AACP,KAAK;AACL,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,EAAC;AACvB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,EAAC;AACxB,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,EAAC;AAC1B;AACA,IAAI,IAAI,SAAS,GAAG,MAAK;AACzB,IAAI,IAAI,QAAQ,IAAI,OAAO,EAAE;AAC7B,MAAM,IAAI,SAAS,GAAG,OAAO,CAAC,OAAM;AACpC,MAAM,OAAO,CAAC,UAAU,CAAC,mBAAmB;AAC5C,QAAQ,EAAE,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,eAAe,CAAC;AACjE,MAAM,2FAA2F,EAAC;AAClG,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,cAAc;AACjD,QAAQ,wBAAwB,EAAC;AACjC,MAAM,IAAI,cAAc,GAAG,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC,SAAS,EAAC;AAC3E,MAAM,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,cAAc,EAAC;AACjD,MAAM,IAAI,SAAS,IAAI,YAAY,EAAE;AACrC,QAAQ,IAAI,EAAE,MAAM,IAAI,OAAO,CAAC,EAAE;AAClC,UAAU,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,SAAS,EAAC;AAC9C,SAAS;AACT,OAAO;AACP,MAAM,IAAI,SAAS,IAAI,wBAAwB,EAAE;AACjD,QAAQ,KAAK,CAAC,UAAU,GAAG,KAAI;AAC/B,OAAO;AACP,MAAM,SAAS,GAAG,KAAI;AACtB,KAAK;AACL;AACA;AACA,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE;AACnC,MAAM,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,EAAC;AACpD,KAAK,MAAM,IAAI,WAAW,IAAI,CAAC,SAAS,EAAE;AAC1C,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC5D,QAAQ,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAC;AAC7E,OAAO;AACP,KAAK,MAAM,IAAI,SAAS,IAAI,WAAW,EAAE;AACzC,MAAM,OAAO;AACb,QAAQ,KAAK,CAAC,QAAQ,KAAK,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;AACxD,QAAQ,uDAAuD,EAAC;AAChE,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,EAAE,KAAK,EAAE;AAC5B,IAAI,EAAE,CAAC,WAAW,CAAC,sBAAsB,EAAE,KAAK,CAAC,KAAK,EAAC;AACvD,IAAI,EAAE,CAAC,WAAW,CAAC,iCAAiC,EAAE,KAAK,CAAC,gBAAgB,EAAC;AAC7E,IAAI,EAAE,CAAC,WAAW,CAAC,qCAAqC,EAAE,KAAK,CAAC,UAAU,EAAC;AAC3E,IAAI,EAAE,CAAC,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAC,eAAe,EAAC;AAC9D,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,SAAS,QAAQ,IAAI;AACvB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAC;AACvB;AACA,IAAI,IAAI,CAAC,OAAO,GAAG,EAAC;AACpB,IAAI,IAAI,CAAC,OAAO,GAAG,EAAC;AACpB;AACA;AACA,IAAI,IAAI,CAAC,IAAI,GAAG,KAAI;AACpB,IAAI,IAAI,CAAC,SAAS,GAAG,MAAK;AAC1B;AACA;AACA,IAAI,IAAI,CAAC,OAAO,GAAG,KAAI;AACvB;AACA;AACA,IAAI,IAAI,CAAC,SAAS,GAAG,MAAK;AAC1B,GAAG;AACH;AACA,EAAE,SAAS,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;AACvC,IAAI,IAAI,IAAI,GAAG,KAAI;AACnB,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;AAC9B,MAAM,IAAI,GAAG,QAAO;AACpB,KAAK,MAAM,IAAI,OAAO,EAAE;AACxB,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,yBAAyB,EAAC;AAChE,MAAM,UAAU,CAAC,KAAK,EAAE,OAAO,EAAC;AAChC,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE;AAC1B,QAAQ,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,EAAC;AACrC,OAAO;AACP,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE;AAC1B,QAAQ,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,EAAC;AACrC,OAAO;AACP,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACrC,QAAQ,IAAI,GAAG,OAAO,CAAC,KAAI;AAC3B,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO;AACX,MAAM,CAAC,KAAK,CAAC,UAAU;AACvB,MAAM,IAAI,YAAY,UAAU;AAChC,MAAM,wDAAwD,EAAC;AAC/D;AACA,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;AACtB,MAAM,OAAO,CAAC,CAAC,IAAI,EAAE,0DAA0D,EAAC;AAChF,MAAM,IAAI,KAAK,GAAG,YAAY,CAAC,cAAa;AAC5C,MAAM,IAAI,KAAK,GAAG,YAAY,CAAC,eAAc;AAC7C,MAAM,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,OAAO,EAAC;AAC1D,MAAM,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,GAAG,KAAK,CAAC,OAAO,EAAC;AAC5D,MAAM,KAAK,CAAC,SAAS,GAAG,KAAI;AAC5B,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK;AACzD,YAAY,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK;AACvD,YAAY,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK;AACnD,YAAY,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK;AACrD,MAAM,iCAAiC,EAAC;AACxC,KAAK,MAAM,IAAI,CAAC,IAAI,EAAE;AACtB,MAAM,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAC;AACpC,MAAM,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAC;AACtC,MAAM,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAC;AAC1C,KAAK,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;AACnC,MAAM,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAC;AAC1C,MAAM,KAAK,CAAC,IAAI,GAAG,KAAI;AACvB,MAAM,IAAI,EAAE,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;AACrE,QAAQ,KAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAC;AAC3C,OAAO;AACP,KAAK,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;AACrC,MAAM,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAC;AAC1C,MAAM,WAAW,CAAC,KAAK,EAAE,IAAI,EAAC;AAC9B,MAAM,KAAK,CAAC,SAAS,GAAG,EAAC;AACzB,MAAM,KAAK,CAAC,SAAS,GAAG,KAAI;AAC5B,KAAK,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;AACpC,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,KAAI;AAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;AACtE,QAAQ,KAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAC;AAC5C,OAAO;AACP,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,MAAK;AAC5B,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,OAAM;AAC9B,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAO;AAC3D,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,QAAQ,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AACzB,QAAQ,OAAO,GAAG,MAAM,CAAC,CAAC,EAAC;AAC3B,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,6CAA6C,EAAC;AAClF,QAAQ,MAAM,GAAG,EAAC;AAClB,QAAQ,OAAO,GAAG,EAAC;AACnB,OAAO;AACP,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AACvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AACvB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,EAAC;AACzB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,EAAC;AACzB,MAAM,KAAK,CAAC,SAAS,GAAG,EAAC;AACzB,MAAM,KAAK,CAAC,KAAK,GAAG,OAAM;AAC1B,MAAM,KAAK,CAAC,MAAM,GAAG,OAAM;AAC3B,MAAM,KAAK,CAAC,QAAQ,GAAG,OAAM;AAC7B,MAAM,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,GAAG,eAAe,CAAC,MAAM,EAAC;AACnE,MAAM,KAAK,CAAC,SAAS,GAAG,KAAI;AAC5B,MAAM,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAC;AACzE,KAAK,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;AACtF,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;AAC5D,QAAQ,KAAK,CAAC,OAAO,GAAG,KAAI;AAC5B,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAM;AACnC,OAAO;AACP,MAAM,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAK;AACvC,MAAM,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAM;AACzC,MAAM,KAAK,CAAC,QAAQ,GAAG,EAAC;AACxB,KAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC/B,MAAM,KAAK,CAAC,OAAO,GAAG,KAAI;AAC1B,MAAM,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAK;AAC9B,MAAM,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAM;AAChC,MAAM,KAAK,CAAC,QAAQ,GAAG,EAAC;AACxB,KAAK,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;AACrC,MAAM,KAAK,CAAC,OAAO,GAAG,KAAI;AAC1B,MAAM,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,aAAY;AACrC,MAAM,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAa;AACvC,MAAM,KAAK,CAAC,QAAQ,GAAG,EAAC;AACxB,KAAK,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;AACrC,MAAM,KAAK,CAAC,OAAO,GAAG,KAAI;AAC1B,MAAM,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,WAAU;AACnC,MAAM,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,YAAW;AACrC,MAAM,KAAK,CAAC,QAAQ,GAAG,EAAC;AACxB,KAAK,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;AAClC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAM;AAC3C,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAM;AACzC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,SAAQ;AAC5B,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACnC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM;AAClC,OAAO,MAAM;AACb,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAC;AAClB,OAAO;AACP,MAAM,IAAI,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAC;AAC/C,MAAM,IAAI,CAAC,GAAG,EAAC;AACf,MAAM,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACrD,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAE,EAAC;AAC3B,OAAO;AACP,MAAM,IAAI,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,EAAC;AAC1C,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAC;AAC3D,MAAM,WAAW,CAAC,KAAK,EAAE,SAAS,EAAC;AACnC,MAAM,KAAK,CAAC,SAAS,GAAG,EAAC;AACzB,MAAM,KAAK,CAAC,KAAK,GAAG,EAAC;AACrB,MAAM,KAAK,CAAC,MAAM,GAAG,EAAC;AACtB,MAAM,KAAK,CAAC,QAAQ,GAAG,EAAC;AACxB,MAAM,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,GAAG,eAAe,CAAC,CAAC,EAAC;AAC9D,MAAM,KAAK,CAAC,SAAS,GAAG,KAAI;AAC5B,KAAK;AACL;AACA,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;AACnC,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;AACjE,QAAQ,yCAAyC,EAAC;AAClD,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE;AACnD,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC;AACtE,QAAQ,8CAA8C,EAAC;AACvD,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC7C,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,QAAO;AAC9B,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;AACxB,IAAI,IAAI,cAAc,GAAG,IAAI,CAAC,eAAc;AAC5C,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,OAAM;AAC5B,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;AACxB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,MAAK;AAC1B,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,OAAM;AAC5B;AACA,IAAI,QAAQ,CAAC,IAAI,EAAC;AAClB;AACA,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC;AACpE,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AAChC,MAAM,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAC;AACvF,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/B,MAAM,QAAQ,GAAE;AAChB,MAAM,EAAE,CAAC,cAAc;AACvB,QAAQ,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAC;AAC/E,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAC;AAC3F,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE;AACtD,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,QAAO;AAC9B,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;AACxB,IAAI,IAAI,cAAc,GAAG,IAAI,CAAC,eAAc;AAC5C,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,OAAM;AAC5B,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;AACxB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,MAAK;AAC1B,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,OAAM;AAC5B;AACA,IAAI,QAAQ,CAAC,IAAI,EAAC;AAClB;AACA,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,EAAE,CAAC,aAAa;AACtB,QAAQ,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC;AACtD,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AAChC,MAAM,EAAE,CAAC,uBAAuB;AAChC,QAAQ,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAC;AACpE,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/B,MAAM,QAAQ,GAAE;AAChB,MAAM,EAAE,CAAC,iBAAiB;AAC1B,QAAQ,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAC;AAC1E,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,aAAa;AACtB,QAAQ,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAC;AAClE,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,IAAI,SAAS,GAAG,GAAE;AACpB;AACA,EAAE,SAAS,UAAU,IAAI;AACzB,IAAI,OAAO,SAAS,CAAC,GAAG,EAAE,IAAI,IAAI,QAAQ,EAAE;AAC5C,GAAG;AACH;AACA,EAAE,SAAS,SAAS,EAAE,KAAK,EAAE;AAC7B,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE;AACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAC;AAC/B,KAAK;AACL,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAC;AACxB,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAC;AACzB,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,SAAS,MAAM,IAAI;AACrB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAC;AACvB;AACA,IAAI,IAAI,CAAC,UAAU,GAAG,MAAK;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,aAAY;AAClC,IAAI,IAAI,CAAC,OAAO,GAAG,EAAC;AACpB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,EAAC;AAC3B,GAAG;AACH;AACA,EAAE,SAAS,oBAAoB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;AACxD,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,GAAE;AAC7C,IAAI,MAAM,CAAC,OAAO,GAAG,EAAC;AACtB,IAAI,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAK;AACpC,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,OAAM;AACvC,IAAI,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,GAAG,EAAC;AACtC,GAAG;AACH;AACA,EAAE,SAAS,qBAAqB,EAAE,MAAM,EAAE,OAAO,EAAE;AACnD,IAAI,IAAI,OAAO,GAAG,KAAI;AACtB,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;AAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,GAAE;AAC/C,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,EAAC;AAChC,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,EAAC;AAClC,MAAM,MAAM,CAAC,OAAO,GAAG,EAAC;AACxB,KAAK,MAAM;AACX,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,EAAC;AACjC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACzC,QAAQ,IAAI,OAAO,GAAG,OAAO,CAAC,OAAM;AACpC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACjD,UAAU,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,GAAE;AACnD,UAAU,SAAS,CAAC,OAAO,EAAE,MAAM,EAAC;AACpC,UAAU,OAAO,CAAC,KAAK,KAAK,EAAC;AAC7B,UAAU,OAAO,CAAC,MAAM,KAAK,EAAC;AAC9B,UAAU,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAC;AACzC,UAAU,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAC;AACpC,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,GAAE;AACjD,QAAQ,SAAS,CAAC,OAAO,EAAE,MAAM,EAAC;AAClC,QAAQ,UAAU,CAAC,OAAO,EAAE,OAAO,EAAC;AACpC,QAAQ,MAAM,CAAC,OAAO,GAAG,EAAC;AAC1B,OAAO;AACP,KAAK;AACL,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,MAAM,MAAM,CAAC,UAAU;AACvB;AACA,QAAQ,MAAM,CAAC,cAAc,KAAK,+BAA+B;AACjE,QAAQ,MAAM,CAAC,cAAc,KAAK,gCAAgC;AAClE,QAAQ,MAAM,CAAC,cAAc,KAAK,gCAAgC;AAClE,QAAQ,MAAM,CAAC,cAAc,KAAK,gCAAgC;AAClE,OAAO;AACP,MAAM;AACN,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AAC/D,QAAQ,oGAAoG,EAAC;AAC7G,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;AACtC,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,OAAM;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AACtB,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC;AACpC,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,OAAO,GAAG,GAAE;AAClB;AACA,EAAE,SAAS,WAAW,IAAI;AAC1B,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,IAAI,MAAM,GAAE;AAC9C,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAC;AACzB,IAAI,MAAM,CAAC,OAAO,GAAG,EAAC;AACtB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAI;AAC7B,KAAK;AACL,IAAI,OAAO,MAAM;AACjB,GAAG;AACH;AACA,EAAE,SAAS,UAAU,EAAE,MAAM,EAAE;AAC/B,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,OAAM;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;AACrB,QAAQ,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC;AAC5B,OAAO;AACP,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,KAAI;AACtB,KAAK;AACL,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAC;AACxB,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,SAAS,OAAO,IAAI;AACtB,IAAI,IAAI,CAAC,SAAS,GAAG,aAAY;AACjC,IAAI,IAAI,CAAC,SAAS,GAAG,aAAY;AACjC;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,mBAAkB;AACnC,IAAI,IAAI,CAAC,KAAK,GAAG,mBAAkB;AACnC;AACA,IAAI,IAAI,CAAC,WAAW,GAAG,EAAC;AACxB;AACA,IAAI,IAAI,CAAC,UAAU,GAAG,MAAK;AAC3B,IAAI,IAAI,CAAC,UAAU,GAAG,aAAY;AAClC,GAAG;AACH;AACA,EAAE,SAAS,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;AACxC,IAAI,IAAI,KAAK,IAAI,OAAO,EAAE;AAC1B,MAAM,IAAI,SAAS,GAAG,OAAO,CAAC,IAAG;AACjC,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,EAAC;AAC9C,MAAM,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,EAAC;AAC5C,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,EAAE;AAChF,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAI;AAC9B,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,KAAK,IAAI,OAAO,EAAE;AAC1B,MAAM,IAAI,SAAS,GAAG,OAAO,CAAC,IAAG;AACjC,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,EAAC;AAC9C,MAAM,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,EAAC;AAC5C,KAAK;AACL;AACA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,MAAK;AAC1B,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,MAAK;AAC1B,IAAI,IAAI,MAAM,IAAI,OAAO,EAAE;AAC3B,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC,KAAI;AAC7B,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACpC,QAAQ,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAC;AAC1C,QAAQ,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC,IAAI,EAAC;AACvC,OAAO,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACtC,QAAQ,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAC;AAC7C,QAAQ,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAC;AAC7C,QAAQ,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC;AAClC,QAAQ,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC;AAClC,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,OAAO,IAAI,OAAO,EAAE;AAC9B,QAAQ,IAAI,QAAQ,GAAG,OAAO,CAAC,MAAK;AACpC,QAAQ,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAC;AAC9C,QAAQ,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAC;AACnC,OAAO;AACP,MAAM,IAAI,OAAO,IAAI,OAAO,EAAE;AAC9B,QAAQ,IAAI,QAAQ,GAAG,OAAO,CAAC,MAAK;AACpC,QAAQ,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAC;AAC9C,QAAQ,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAC;AACnC,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,MAAK;AACtB,IAAI,IAAI,CAAC,KAAK,GAAG,MAAK;AACtB;AACA,IAAI,IAAI,aAAa,IAAI,OAAO,EAAE;AAClC,MAAM,IAAI,WAAW,GAAG,OAAO,CAAC,YAAW;AAC3C,MAAM,OAAO,CAAC,OAAO,WAAW,KAAK,QAAQ;AAC7C,SAAS,WAAW,IAAI,CAAC,IAAI,WAAW,IAAI,MAAM,CAAC,cAAc;AACjE,MAAM,sCAAsC,EAAC;AAC7C,MAAM,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,YAAW;AAC5C,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,IAAI,OAAO,EAAE;AAC7B,MAAM,IAAI,SAAS,GAAG,MAAK;AAC3B,MAAM,QAAQ,OAAO,OAAO,CAAC,MAAM;AACnC,QAAQ,KAAK,QAAQ;AACrB,UAAU,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU;AACtD,YAAY,qBAAqB,EAAC;AAClC,UAAU,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAC;AACtD,UAAU,IAAI,CAAC,UAAU,GAAG,KAAI;AAChC,UAAU,SAAS,GAAG,KAAI;AAC1B,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,SAAS;AACtB,UAAU,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,OAAM;AACtD,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,QAAQ;AACrB,UAAU,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,qBAAqB,EAAC;AACvE,UAAU,IAAI,CAAC,UAAU,GAAG,MAAK;AACjC,UAAU,SAAS,GAAG,KAAI;AAC1B,UAAU,KAAK;AACf;AACA,QAAQ;AACR,UAAU,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAC;AAC9C,OAAO;AACP,MAAM,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,OAAO,CAAC,EAAE;AAC5C,QAAQ,IAAI,CAAC,SAAS,GAAG,4BAA2B;AACpD,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;AACrC,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAAI,CAAC,SAAS,EAAC;AACnE,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAAI,CAAC,SAAS,EAAC;AACnE,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAC;AAC3D,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAC;AAC3D,IAAI,IAAI,UAAU,CAAC,8BAA8B,EAAE;AACnD,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,6BAA6B,EAAE,IAAI,CAAC,WAAW,EAAC;AAC/E,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,UAAU,EAAC;AACvD,MAAM,EAAE,CAAC,cAAc,CAAC,MAAM,EAAC;AAC/B,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,IAAI,YAAY,GAAG,EAAC;AACtB,EAAE,IAAI,UAAU,GAAG,GAAE;AACrB,EAAE,IAAI,WAAW,GAAG,MAAM,CAAC,gBAAe;AAC1C,EAAE,IAAI,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,YAAY;AACxD,IAAI,OAAO,IAAI;AACf,GAAG,EAAC;AACJ;AACA,EAAE,SAAS,WAAW,EAAE,MAAM,EAAE;AAChC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAC;AACvB,IAAI,IAAI,CAAC,OAAO,GAAG,EAAC;AACpB,IAAI,IAAI,CAAC,cAAc,GAAG,UAAS;AACnC;AACA,IAAI,IAAI,CAAC,EAAE,GAAG,YAAY,GAAE;AAC5B;AACA,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAC;AACrB;AACA,IAAI,IAAI,CAAC,MAAM,GAAG,OAAM;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,aAAa,GAAE;AACrC;AACA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAC;AAClB,IAAI,IAAI,CAAC,SAAS,GAAG,EAAC;AACtB;AACA,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,GAAE;AAChC;AACA,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AACxB,MAAM,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,GAAE;AAC9B,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,EAAE,OAAO,EAAE;AAC9B,IAAI,EAAE,CAAC,aAAa,CAAC,aAAa,EAAC;AACnC,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAC;AACnD,GAAG;AACH;AACA,EAAE,SAAS,WAAW,IAAI;AAC1B,IAAI,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,EAAC;AAC9B,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAC;AAC/C,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,EAAC;AAC3C,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,OAAO,EAAE,OAAO,EAAE;AAC7B,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,QAAO;AAChC,IAAI,OAAO,CAAC,MAAM,EAAE,iCAAiC,EAAC;AACtD,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,KAAI;AAC3B,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,OAAM;AAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE;AACnB,MAAM,EAAE,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,EAAC;AAC5C,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAC;AAClC,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,KAAI;AAC/B,KAAK;AACL,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,EAAC;AAC5B,IAAI,OAAO,CAAC,OAAO,GAAG,KAAI;AAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,KAAI;AACzB,IAAI,OAAO,CAAC,MAAM,GAAG,KAAI;AACzB,IAAI,OAAO,CAAC,QAAQ,GAAG,EAAC;AACxB,IAAI,OAAO,UAAU,CAAC,OAAO,CAAC,EAAE,EAAC;AACjC,IAAI,KAAK,CAAC,YAAY,GAAE;AACxB,GAAG;AACH;AACA,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE;AAChC,IAAI,IAAI,EAAE,YAAY;AACtB,MAAM,IAAI,OAAO,GAAG,KAAI;AACxB,MAAM,OAAO,CAAC,SAAS,IAAI,EAAC;AAC5B,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC,KAAI;AAC7B,MAAM,IAAI,IAAI,GAAG,CAAC,EAAE;AACpB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE;AAC9C,UAAU,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC,EAAC;AACrC,UAAU,IAAI,KAAK,EAAE;AACrB,YAAY,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE;AACrC,cAAc,QAAQ;AACtB,aAAa;AACb,YAAY,KAAK,CAAC,IAAI,GAAG,CAAC,EAAC;AAC3B,WAAW;AACX,UAAU,YAAY,CAAC,CAAC,CAAC,GAAG,QAAO;AACnC,UAAU,IAAI,GAAG,EAAC;AAClB,UAAU,KAAK;AACf,SAAS;AACT,QAAQ,IAAI,IAAI,IAAI,WAAW,EAAE;AACjC,UAAU,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAC;AAC/D,SAAS;AACT,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,eAAe,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE;AAClE,UAAU,KAAK,CAAC,eAAe,GAAG,IAAI,GAAG,EAAC;AAC1C,SAAS;AACT,QAAQ,OAAO,CAAC,IAAI,GAAG,KAAI;AAC3B,QAAQ,EAAE,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,EAAC;AAC9C,QAAQ,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAC;AACvD,OAAO;AACP,MAAM,OAAO,IAAI;AACjB,KAAK;AACL;AACA,IAAI,MAAM,EAAE,YAAY;AACxB,MAAM,IAAI,CAAC,SAAS,IAAI,EAAC;AACzB,KAAK;AACL;AACA,IAAI,MAAM,EAAE,YAAY;AACxB,MAAM,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AAChC,QAAQ,OAAO,CAAC,IAAI,EAAC;AACrB,OAAO;AACP,KAAK;AACL,GAAG,EAAC;AACJ;AACA,EAAE,SAAS,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,IAAI,IAAI,OAAO,GAAG,IAAI,WAAW,CAAC,eAAe,EAAC;AAClD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,QAAO;AACpC,IAAI,KAAK,CAAC,YAAY,GAAE;AACxB;AACA,IAAI,SAAS,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,MAAM,IAAI,OAAO,GAAG,OAAO,CAAC,QAAO;AACnC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAC;AAC3B,MAAM,IAAI,OAAO,GAAG,WAAW,GAAE;AACjC;AACA,MAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACjC,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACnC,UAAU,oBAAoB,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAC;AACrD,SAAS,MAAM;AACf,UAAU,oBAAoB,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAC;AACrD,SAAS;AACT,OAAO,MAAM,IAAI,CAAC,EAAE;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,mCAAmC,EAAC;AACtE,QAAQ,YAAY,CAAC,OAAO,EAAE,CAAC,EAAC;AAChC,QAAQ,qBAAqB,CAAC,OAAO,EAAE,CAAC,EAAC;AACzC,OAAO,MAAM;AACb;AACA,QAAQ,oBAAoB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAC;AAC3C,OAAO;AACP;AACA,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE;AAC9B,QAAQ,OAAO,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,EAAC;AAClD,OAAO;AACP,MAAM,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,QAAO;AACvC;AACA,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,EAAC;AACjC;AACA,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAC;AACjD,MAAM,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,eAAc;AACrD;AACA,MAAM,aAAa,CAAC,KAAK,GAAG,OAAO,CAAC,MAAK;AACzC,MAAM,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,OAAM;AAC3C;AACA,MAAM,QAAQ,CAAC,OAAO,EAAC;AACvB,MAAM,SAAS,CAAC,OAAO,EAAE,eAAe,EAAC;AACzC,MAAM,UAAU,CAAC,OAAO,EAAE,eAAe,EAAC;AAC1C,MAAM,WAAW,GAAE;AACnB;AACA,MAAM,UAAU,CAAC,OAAO,EAAC;AACzB;AACA,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AAC1B,QAAQ,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,cAAc;AAC3C,UAAU,OAAO,CAAC,cAAc;AAChC,UAAU,OAAO,CAAC,IAAI;AACtB,UAAU,OAAO,CAAC,KAAK;AACvB,UAAU,OAAO,CAAC,MAAM;AACxB,UAAU,OAAO,CAAC,UAAU;AAC5B,UAAU,KAAK,EAAC;AAChB,OAAO;AACP,MAAM,aAAa,CAAC,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,cAAc,EAAC;AACzE,MAAM,aAAa,CAAC,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAC;AAC3D;AACA,MAAM,aAAa,CAAC,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAC;AAC7D,MAAM,aAAa,CAAC,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAC;AAC7D;AACA,MAAM,aAAa,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAC;AAC1D,MAAM,aAAa,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAC;AAC1D;AACA,MAAM,OAAO,aAAa;AAC1B,KAAK;AACL;AACA,IAAI,SAAS,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;AAC9C,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,yBAAyB,EAAC;AACjD;AACA,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAC;AACpB,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAC;AACpB,MAAM,IAAI,KAAK,GAAG,MAAM,GAAG,EAAC;AAC5B;AACA,MAAM,IAAI,SAAS,GAAG,UAAU,GAAE;AAClC,MAAM,SAAS,CAAC,SAAS,EAAE,OAAO,EAAC;AACnC,MAAM,SAAS,CAAC,KAAK,GAAG,EAAC;AACzB,MAAM,SAAS,CAAC,MAAM,GAAG,EAAC;AAC1B,MAAM,UAAU,CAAC,SAAS,EAAE,KAAK,EAAC;AAClC,MAAM,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,EAAC;AACzE,MAAM,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,EAAC;AAC5E;AACA,MAAM,OAAO;AACb,QAAQ,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;AACvC,QAAQ,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;AAC3C,QAAQ,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,cAAc;AAC3D,QAAQ,0CAA0C,EAAC;AACnD,MAAM,OAAO;AACb,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;AAC5C,QAAQ,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;AAC9C,QAAQ,sCAAsC,EAAC;AAC/C,MAAM,OAAO;AACb,QAAQ,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC;AACtC,QAAQ,qBAAqB,EAAC;AAC9B,MAAM,OAAO;AACb,QAAQ,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,SAAS;AAClE,QAAQ,oBAAoB,EAAC;AAC7B;AACA,MAAM,QAAQ,CAAC,OAAO,EAAC;AACvB,MAAM,WAAW,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAC;AAC1D,MAAM,WAAW,GAAE;AACnB;AACA,MAAM,SAAS,CAAC,SAAS,EAAC;AAC1B;AACA,MAAM,OAAO,aAAa;AAC1B,KAAK;AACL;AACA,IAAI,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7B,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAC;AACpB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,EAAC;AAC3B,MAAM,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE;AACvD,QAAQ,OAAO,aAAa;AAC5B,OAAO;AACP;AACA,MAAM,aAAa,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,EAAC;AAC7C,MAAM,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAC;AAC/C;AACA,MAAM,QAAQ,CAAC,OAAO,EAAC;AACvB;AACA,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AACjD,QAAQ,IAAI,EAAE,GAAG,CAAC,IAAI,EAAC;AACvB,QAAQ,IAAI,EAAE,GAAG,CAAC,IAAI,EAAC;AACvB,QAAQ,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK;AAC7B,QAAQ,EAAE,CAAC,UAAU;AACrB,UAAU,eAAe;AACzB,UAAU,CAAC;AACX,UAAU,OAAO,CAAC,MAAM;AACxB,UAAU,EAAE;AACZ,UAAU,EAAE;AACZ,UAAU,CAAC;AACX,UAAU,OAAO,CAAC,MAAM;AACxB,UAAU,OAAO,CAAC,IAAI;AACtB,UAAU,IAAI,EAAC;AACf,OAAO;AACP,MAAM,WAAW,GAAE;AACnB;AACA;AACA,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AAC1B,QAAQ,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,cAAc;AAC3C,UAAU,OAAO,CAAC,cAAc;AAChC,UAAU,OAAO,CAAC,IAAI;AACtB,UAAU,CAAC;AACX,UAAU,CAAC;AACX,UAAU,KAAK;AACf,UAAU,KAAK,EAAC;AAChB,OAAO;AACP;AACA,MAAM,OAAO,aAAa;AAC1B,KAAK;AACL;AACA,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,EAAC;AACvB;AACA,IAAI,aAAa,CAAC,QAAQ,GAAG,SAAQ;AACrC,IAAI,aAAa,CAAC,MAAM,GAAG,OAAM;AACjC,IAAI,aAAa,CAAC,SAAS,GAAG,YAAW;AACzC,IAAI,aAAa,CAAC,QAAQ,GAAG,QAAO;AACpC,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AACxB,MAAM,aAAa,CAAC,KAAK,GAAG,OAAO,CAAC,MAAK;AACzC,KAAK;AACL,IAAI,aAAa,CAAC,OAAO,GAAG,YAAY;AACxC,MAAM,OAAO,CAAC,MAAM,GAAE;AACtB,MAAK;AACL;AACA,IAAI,OAAO,aAAa;AACxB,GAAG;AACH;AACA,EAAE,SAAS,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtD,IAAI,IAAI,OAAO,GAAG,IAAI,WAAW,CAAC,qBAAqB,EAAC;AACxD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,QAAO;AACpC,IAAI,KAAK,CAAC,SAAS,GAAE;AACrB;AACA,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,EAAC;AAC5B;AACA,IAAI,SAAS,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtD,MAAM,IAAI,EAAC;AACX,MAAM,IAAI,OAAO,GAAG,OAAO,CAAC,QAAO;AACnC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAC;AAC3B,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,GAAE;AAChC,OAAO;AACP;AACA,MAAM,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,EAAE;AACzC,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,EAAC;AAC7B,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAChC,UAAU,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;AAC9C,SAAS;AACT,OAAO,MAAM,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;AACzC,QAAQ,IAAI,EAAE,EAAE;AAChB,UAAU,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC;AAC7C,UAAU,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC;AAC7C,UAAU,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC;AAC7C,UAAU,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC;AAC7C,UAAU,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC;AAC7C,UAAU,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC;AAC7C,SAAS,MAAM;AACf,UAAU,YAAY,CAAC,OAAO,EAAE,EAAE,EAAC;AACnC,UAAU,UAAU,CAAC,OAAO,EAAE,EAAE,EAAC;AACjC,UAAU,IAAI,OAAO,IAAI,EAAE,EAAE;AAC7B,YAAY,IAAI,SAAS,GAAG,EAAE,CAAC,MAAK;AACpC,YAAY,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;AACtE,cAAc,qCAAqC,EAAC;AACpD,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACpC,cAAc,OAAO,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACxE,gBAAgB,iCAAiC,EAAC;AAClD,cAAc,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAC;AAC1C,cAAc,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAC;AAC3D,aAAa;AACb,WAAW,MAAM;AACjB,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACpC,cAAc,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC;AACjD,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAC;AACtD,OAAO;AACP;AACA,MAAM,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAC;AAClC,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY;AACnC,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;AACrC,UAAU,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,mEAAmE,EAAC;AAC3I,SAAS;AACT,OAAO,EAAC;AACR;AACA,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE;AAC9B,QAAQ,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,EAAC;AACnD,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAO;AAC1C,OAAO;AACP;AACA,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAC;AAC1D,MAAM,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,eAAc;AACtD;AACA,MAAM,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAK;AAC5C,MAAM,eAAe,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAM;AAC9C;AACA,MAAM,QAAQ,CAAC,OAAO,EAAC;AACvB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,gCAAgC,GAAG,CAAC,EAAC;AACjE,OAAO;AACP,MAAM,UAAU,CAAC,OAAO,EAAE,qBAAqB,EAAC;AAChD,MAAM,WAAW,GAAE;AACnB;AACA,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AAC1B,QAAQ,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,cAAc;AAC3C,UAAU,OAAO,CAAC,cAAc;AAChC,UAAU,OAAO,CAAC,IAAI;AACtB,UAAU,eAAe,CAAC,KAAK;AAC/B,UAAU,eAAe,CAAC,MAAM;AAChC,UAAU,OAAO,CAAC,UAAU;AAC5B,UAAU,IAAI,EAAC;AACf,OAAO;AACP;AACA,MAAM,eAAe,CAAC,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,cAAc,EAAC;AAC3E,MAAM,eAAe,CAAC,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAC;AAC7D;AACA,MAAM,eAAe,CAAC,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAC;AAC/D,MAAM,eAAe,CAAC,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAC;AAC/D;AACA,MAAM,eAAe,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAC;AAC5D,MAAM,eAAe,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAC;AAC5D;AACA,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC;AAC5B,OAAO;AACP;AACA,MAAM,OAAO,eAAe;AAC5B,KAAK;AACL;AACA,IAAI,SAAS,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;AACpD,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,yBAAyB,EAAC;AACjD,MAAM,OAAO,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC;AAC7D,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,cAAc,EAAC;AAC9C;AACA,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAC;AACpB,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAC;AACpB,MAAM,IAAI,KAAK,GAAG,MAAM,GAAG,EAAC;AAC5B;AACA,MAAM,IAAI,SAAS,GAAG,UAAU,GAAE;AAClC,MAAM,SAAS,CAAC,SAAS,EAAE,OAAO,EAAC;AACnC,MAAM,SAAS,CAAC,KAAK,GAAG,EAAC;AACzB,MAAM,SAAS,CAAC,MAAM,GAAG,EAAC;AAC1B,MAAM,UAAU,CAAC,SAAS,EAAE,KAAK,EAAC;AAClC,MAAM,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,EAAC;AACzE,MAAM,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,EAAC;AAC5E;AACA,MAAM,OAAO;AACb,QAAQ,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;AACvC,QAAQ,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;AAC3C,QAAQ,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,cAAc;AAC3D,QAAQ,0CAA0C,EAAC;AACnD,MAAM,OAAO;AACb,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;AAC5C,QAAQ,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;AAC9C,QAAQ,sCAAsC,EAAC;AAC/C,MAAM,OAAO;AACb,QAAQ,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC;AACtC,QAAQ,qBAAqB,EAAC;AAC9B,MAAM,OAAO;AACb,QAAQ,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,SAAS;AAClE,QAAQ,oBAAoB,EAAC;AAC7B;AACA,MAAM,QAAQ,CAAC,OAAO,EAAC;AACvB,MAAM,WAAW,CAAC,SAAS,EAAE,gCAAgC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAC;AAClF,MAAM,WAAW,GAAE;AACnB;AACA,MAAM,SAAS,CAAC,SAAS,EAAC;AAC1B;AACA,MAAM,OAAO,eAAe;AAC5B,KAAK;AACL;AACA,IAAI,SAAS,MAAM,EAAE,OAAO,EAAE;AAC9B,MAAM,IAAI,MAAM,GAAG,OAAO,GAAG,EAAC;AAC9B,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,KAAK,EAAE;AACpC,QAAQ,MAAM;AACd,OAAO;AACP;AACA,MAAM,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,OAAM;AACpD,MAAM,eAAe,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAM;AACtD;AACA,MAAM,QAAQ,CAAC,OAAO,EAAC;AACvB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAClC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AACnD,UAAU,EAAE,CAAC,UAAU;AACvB,YAAY,gCAAgC,GAAG,CAAC;AAChD,YAAY,CAAC;AACb,YAAY,OAAO,CAAC,MAAM;AAC1B,YAAY,MAAM,IAAI,CAAC;AACvB,YAAY,MAAM,IAAI,CAAC;AACvB,YAAY,CAAC;AACb,YAAY,OAAO,CAAC,MAAM;AAC1B,YAAY,OAAO,CAAC,IAAI;AACxB,YAAY,IAAI,EAAC;AACjB,SAAS;AACT,OAAO;AACP,MAAM,WAAW,GAAE;AACnB;AACA,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AAC1B,QAAQ,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,cAAc;AAC3C,UAAU,OAAO,CAAC,cAAc;AAChC,UAAU,OAAO,CAAC,IAAI;AACtB,UAAU,eAAe,CAAC,KAAK;AAC/B,UAAU,eAAe,CAAC,MAAM;AAChC,UAAU,KAAK;AACf,UAAU,IAAI,EAAC;AACf,OAAO;AACP;AACA,MAAM,OAAO,eAAe;AAC5B,KAAK;AACL;AACA,IAAI,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAC;AAC3C;AACA,IAAI,eAAe,CAAC,QAAQ,GAAG,SAAQ;AACvC,IAAI,eAAe,CAAC,MAAM,GAAG,OAAM;AACnC,IAAI,eAAe,CAAC,SAAS,GAAG,cAAa;AAC7C,IAAI,eAAe,CAAC,QAAQ,GAAG,QAAO;AACtC,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AACxB,MAAM,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,MAAK;AAC3C,KAAK;AACL,IAAI,eAAe,CAAC,OAAO,GAAG,YAAY;AAC1C,MAAM,OAAO,CAAC,MAAM,GAAE;AACtB,MAAK;AACL;AACA,IAAI,OAAO,eAAe;AAC1B,GAAG;AACH;AACA;AACA,EAAE,SAAS,eAAe,IAAI;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE;AAC1C,MAAM,EAAE,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,EAAC;AACzC,MAAM,EAAE,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,EAAC;AAC3C,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,KAAI;AAC5B,KAAK;AACL,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,EAAC;AACvC;AACA,IAAI,KAAK,CAAC,SAAS,GAAG,EAAC;AACvB,IAAI,KAAK,CAAC,YAAY,GAAG,EAAC;AAC1B,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE;AACtB,IAAI,KAAK,CAAC,mBAAmB,GAAG,YAAY;AAC5C,MAAM,IAAI,KAAK,GAAG,EAAC;AACnB,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACrD,QAAQ,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAI;AAC3C,OAAO,EAAC;AACR,MAAM,OAAO,KAAK;AAClB,MAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,eAAe,IAAI;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE;AAC1C,MAAM,IAAI,GAAG,GAAG,YAAY,CAAC,CAAC,EAAC;AAC/B,MAAM,IAAI,GAAG,EAAE;AACf,QAAQ,GAAG,CAAC,SAAS,GAAG,EAAC;AACzB,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,EAAC;AACrB,QAAQ,YAAY,CAAC,CAAC,CAAC,GAAG,KAAI;AAC9B,OAAO;AACP,KAAK;AACL;AACA,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE;AAClD,MAAM,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,aAAa,GAAE;AAC1C,MAAM,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAC;AACrD,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;AAChD,UAAU,QAAQ;AAClB,SAAS;AACT,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,EAAE;AAChD,UAAU,EAAE,CAAC,UAAU,CAAC,eAAe;AACvC,YAAY,CAAC;AACb,YAAY,OAAO,CAAC,cAAc;AAClC,YAAY,OAAO,CAAC,KAAK,IAAI,CAAC;AAC9B,YAAY,OAAO,CAAC,MAAM,IAAI,CAAC;AAC/B,YAAY,CAAC;AACb,YAAY,OAAO,CAAC,cAAc;AAClC,YAAY,OAAO,CAAC,IAAI;AACxB,YAAY,IAAI,EAAC;AACjB,SAAS,MAAM;AACf,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACtC,YAAY,EAAE,CAAC,UAAU,CAAC,gCAAgC,GAAG,CAAC;AAC9D,cAAc,CAAC;AACf,cAAc,OAAO,CAAC,cAAc;AACpC,cAAc,OAAO,CAAC,KAAK,IAAI,CAAC;AAChC,cAAc,OAAO,CAAC,MAAM,IAAI,CAAC;AACjC,cAAc,CAAC;AACf,cAAc,OAAO,CAAC,cAAc;AACpC,cAAc,OAAO,CAAC,IAAI;AAC1B,cAAc,IAAI,EAAC;AACnB,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAC;AACjD,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,eAAe,IAAI;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE;AAC1C,MAAM,IAAI,GAAG,GAAG,YAAY,CAAC,CAAC,EAAC;AAC/B,MAAM,IAAI,GAAG,EAAE;AACf,QAAQ,GAAG,CAAC,SAAS,GAAG,EAAC;AACzB,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,EAAC;AACrB,QAAQ,YAAY,CAAC,CAAC,CAAC,GAAG,KAAI;AAC9B,OAAO;AACP,MAAM,EAAE,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,EAAC;AACzC,MAAM,EAAE,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,EAAC;AAC3C,MAAM,EAAE,CAAC,WAAW,CAAC,qBAAqB,EAAE,IAAI,EAAC;AACjD,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,QAAQ,EAAE,eAAe;AAC7B,IAAI,UAAU,EAAE,iBAAiB;AACjC,IAAI,KAAK,EAAE,eAAe;AAC1B,IAAI,UAAU,EAAE,UAAU,OAAO,EAAE;AACnC,MAAM,OAAO,IAAI;AACjB,KAAK;AACL,IAAI,OAAO,EAAE,eAAe;AAC5B,IAAI,OAAO,EAAE,eAAe;AAC5B,GAAG;AACH,CAAC;AACD;AACA,IAAI,eAAe,GAAG,OAAM;AAC5B;AACA,IAAI,UAAU,GAAG,OAAM;AACvB,IAAI,YAAY,GAAG,OAAM;AACzB,IAAI,WAAW,GAAG,OAAM;AACxB,IAAI,oBAAoB,GAAG,OAAM;AACjC,IAAI,iBAAiB,GAAG,OAAM;AAC9B,IAAI,kBAAkB,GAAG,OAAM;AAC/B;AACA,IAAI,mBAAmB,GAAG,OAAM;AAChC;AACA,IAAI,cAAc,GAAG,OAAM;AAC3B;AACA,IAAI,cAAc,GAAG,OAAM;AAC3B,IAAI,aAAa,GAAG,OAAM;AAC1B;AACA,IAAI,YAAY,GAAG,GAAE;AACrB;AACA,YAAY,CAAC,UAAU,CAAC,GAAG,EAAC;AAC5B,YAAY,CAAC,YAAY,CAAC,GAAG,EAAC;AAC9B,YAAY,CAAC,WAAW,CAAC,GAAG,EAAC;AAC7B;AACA,YAAY,CAAC,oBAAoB,CAAC,GAAG,EAAC;AACtC,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAC;AACnC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAC;AACpC;AACA,YAAY,CAAC,mBAAmB,CAAC,GAAG,EAAC;AACrC,YAAY,CAAC,cAAc,CAAC,GAAG,GAAE;AACjC,YAAY,CAAC,cAAc,CAAC,GAAG,EAAC;AAChC,YAAY,CAAC,aAAa,CAAC,GAAG,EAAC;AAC/B;AACA,SAAS,mBAAmB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;AACrD,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,MAAM;AAC9C,CAAC;AACD;AACA,IAAI,iBAAiB,GAAG,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;AACzE,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,QAAQ,EAAE,WAAW;AACzB,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,OAAO,EAAE,oBAAoB;AACjC,IAAI,SAAS,EAAE,iBAAiB;AAChC,IAAI,eAAe,EAAE,kBAAkB;AACvC,IAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE;AAC3B,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,oBAAmB;AAC9C,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,2BAA2B,EAAE;AAC9C,IAAI,WAAW,CAAC,SAAS,CAAC,GAAG,eAAc;AAC3C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,cAAa;AACzC,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,wBAAwB,EAAE;AAC3C,IAAI,WAAW,CAAC,SAAS,CAAC,GAAG,eAAc;AAC3C,GAAG;AACH;AACA,EAAE,IAAI,iBAAiB,GAAG,GAAE;AAC5B,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAClD,IAAI,IAAI,GAAG,GAAG,WAAW,CAAC,GAAG,EAAC;AAC9B,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAG;AAChC,GAAG,EAAC;AACJ;AACA,EAAE,IAAI,iBAAiB,GAAG,EAAC;AAC3B,EAAE,IAAI,eAAe,GAAG,GAAE;AAC1B;AACA,EAAE,SAAS,gBAAgB,EAAE,YAAY,EAAE;AAC3C,IAAI,IAAI,CAAC,EAAE,GAAG,iBAAiB,GAAE;AACjC,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAC;AACrB;AACA,IAAI,IAAI,CAAC,YAAY,GAAG,aAAY;AACpC;AACA,IAAI,IAAI,CAAC,MAAM,GAAG,WAAU;AAC5B,IAAI,IAAI,CAAC,KAAK,GAAG,EAAC;AAClB,IAAI,IAAI,CAAC,MAAM,GAAG,EAAC;AACnB;AACA,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AACxB,MAAM,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,GAAE;AAC9B,KAAK;AACL,GAAG;AACH;AACA,EAAE,gBAAgB,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAClD,IAAI,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AAC9B,MAAM,OAAO,CAAC,IAAI,EAAC;AACnB,KAAK;AACL,IAAG;AACH;AACA,EAAE,SAAS,OAAO,EAAE,EAAE,EAAE;AACxB,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,aAAY;AAChC,IAAI,OAAO,CAAC,MAAM,EAAE,sCAAsC,EAAC;AAC3D,IAAI,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,EAAC;AAC9C,IAAI,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAC;AACjC,IAAI,EAAE,CAAC,YAAY,GAAG,KAAI;AAC1B,IAAI,EAAE,CAAC,QAAQ,GAAG,EAAC;AACnB,IAAI,OAAO,eAAe,CAAC,EAAE,CAAC,EAAE,EAAC;AACjC,IAAI,KAAK,CAAC,iBAAiB,GAAE;AAC7B,GAAG;AACH;AACA,EAAE,SAAS,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAAE;AACrC,IAAI,IAAI,YAAY,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAC;AACpE,IAAI,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,aAAY;AACnD,IAAI,KAAK,CAAC,iBAAiB,GAAE;AAC7B;AACA,IAAI,SAAS,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAE;AACrC,MAAM,IAAI,CAAC,GAAG,EAAC;AACf,MAAM,IAAI,CAAC,GAAG,EAAC;AACf,MAAM,IAAI,MAAM,GAAG,WAAU;AAC7B;AACA,MAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE;AACtC,QAAQ,IAAI,OAAO,GAAG,EAAC;AACvB,QAAQ,IAAI,OAAO,IAAI,OAAO,EAAE;AAChC,UAAU,IAAI,KAAK,GAAG,OAAO,CAAC,MAAK;AACnC,UAAU,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;AAC3D,YAAY,4BAA4B,EAAC;AACzC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAC;AAC1B,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAC;AAC1B,SAAS,MAAM;AACf,UAAU,IAAI,QAAQ,IAAI,OAAO,EAAE;AACnC,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,EAAC;AACtC,WAAW;AACX,UAAU,IAAI,OAAO,IAAI,OAAO,EAAE;AAClC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,EAAC;AACjC,WAAW;AACX,UAAU,IAAI,QAAQ,IAAI,OAAO,EAAE;AACnC,YAAY,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,EAAC;AAClC,WAAW;AACX,SAAS;AACT,QAAQ,IAAI,QAAQ,IAAI,OAAO,EAAE;AACjC,UAAU,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW;AACvD,YAAY,6BAA6B,EAAC;AAC1C,UAAU,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAC;AAC9C,SAAS;AACT,OAAO,MAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACxC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAC;AACjB,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACnC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAC;AACnB,SAAS,MAAM;AACf,UAAU,CAAC,GAAG,EAAC;AACf,SAAS;AACT,OAAO,MAAM,IAAI,CAAC,CAAC,EAAE;AACrB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAC;AACjB,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAC;AACtE,OAAO;AACP;AACA;AACA,MAAM,OAAO;AACb,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACtB,QAAQ,CAAC,IAAI,MAAM,CAAC,mBAAmB,IAAI,CAAC,IAAI,MAAM,CAAC,mBAAmB;AAC1E,QAAQ,2BAA2B,EAAC;AACpC;AACA,MAAM,IAAI,CAAC,KAAK,YAAY,CAAC,KAAK;AAClC,UAAU,CAAC,KAAK,YAAY,CAAC,MAAM;AACnC,UAAU,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE;AAC1C,QAAQ,MAAM;AACd,OAAO;AACP;AACA,MAAM,gBAAgB,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,GAAG,EAAC;AACrD,MAAM,gBAAgB,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,EAAC;AACvD,MAAM,YAAY,CAAC,MAAM,GAAG,OAAM;AAClC;AACA,MAAM,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,YAAY,CAAC,YAAY,EAAC;AACrE,MAAM,EAAE,CAAC,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAC;AAC3D;AACA,MAAM,OAAO;AACb,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC3B,QAAQ,8BAA8B,EAAC;AACvC;AACA,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AAC1B,QAAQ,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,EAAC;AACnH,OAAO;AACP,MAAM,gBAAgB,CAAC,MAAM,GAAG,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAC;AACtE;AACA,MAAM,OAAO,gBAAgB;AAC7B,KAAK;AACL;AACA,IAAI,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7B,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAC;AACpB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,EAAC;AAC3B;AACA,MAAM,IAAI,CAAC,KAAK,YAAY,CAAC,KAAK,IAAI,CAAC,KAAK,YAAY,CAAC,MAAM,EAAE;AACjE,QAAQ,OAAO,gBAAgB;AAC/B,OAAO;AACP;AACA;AACA,MAAM,OAAO;AACb,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACtB,QAAQ,CAAC,IAAI,MAAM,CAAC,mBAAmB,IAAI,CAAC,IAAI,MAAM,CAAC,mBAAmB;AAC1E,QAAQ,2BAA2B,EAAC;AACpC;AACA,MAAM,gBAAgB,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,GAAG,EAAC;AACrD,MAAM,gBAAgB,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,EAAC;AACvD;AACA,MAAM,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,YAAY,CAAC,YAAY,EAAC;AACrE,MAAM,EAAE,CAAC,mBAAmB,CAAC,eAAe,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAC;AACxE;AACA,MAAM,OAAO;AACb,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC3B,QAAQ,8BAA8B,EAAC;AACvC;AACA;AACA,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AAC1B,QAAQ,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,mBAAmB;AACrD,UAAU,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,EAAC;AACvE,OAAO;AACP;AACA,MAAM,OAAO,gBAAgB;AAC7B,KAAK;AACL;AACA,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAC;AAC1B;AACA,IAAI,gBAAgB,CAAC,MAAM,GAAG,OAAM;AACpC,IAAI,gBAAgB,CAAC,SAAS,GAAG,eAAc;AAC/C,IAAI,gBAAgB,CAAC,aAAa,GAAG,aAAY;AACjD,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AACxB,MAAM,gBAAgB,CAAC,KAAK,GAAG,YAAY,CAAC,MAAK;AACjD,KAAK;AACL,IAAI,gBAAgB,CAAC,OAAO,GAAG,YAAY;AAC3C,MAAM,YAAY,CAAC,MAAM,GAAE;AAC3B,MAAK;AACL;AACA,IAAI,OAAO,gBAAgB;AAC3B,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE;AACtB,IAAI,KAAK,CAAC,wBAAwB,GAAG,YAAY;AACjD,MAAM,IAAI,KAAK,GAAG,EAAC;AACnB,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAC1D,QAAQ,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAI;AAChD,OAAO,EAAC;AACR,MAAM,OAAO,KAAK;AAClB,MAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,oBAAoB,IAAI;AACnC,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;AAClD,MAAM,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,kBAAkB,GAAE;AAC/C,MAAM,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,EAAE,CAAC,YAAY,EAAC;AAC3D,MAAM,EAAE,CAAC,mBAAmB,CAAC,eAAe,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,EAAC;AAC7E,KAAK,EAAC;AACN,IAAI,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,EAAC;AAC9C,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,kBAAkB;AAC9B,IAAI,KAAK,EAAE,YAAY;AACvB,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,EAAC;AAC9C,KAAK;AACL,IAAI,OAAO,EAAE,oBAAoB;AACjC,GAAG;AACH,EAAC;AACD;AACA;AACA,IAAI,gBAAgB,GAAG,OAAM;AAC7B,IAAI,iBAAiB,GAAG,OAAM;AAC9B;AACA,IAAI,eAAe,GAAG,OAAM;AAC5B,IAAI,gCAAgC,GAAG,OAAM;AAC7C;AACA,IAAI,sBAAsB,GAAG,OAAM;AACnC,IAAI,mBAAmB,GAAG,OAAM;AAChC,IAAI,qBAAqB,GAAG,OAAM;AAClC,IAAI,2BAA2B,GAAG,OAAM;AACxC;AACA,IAAI,yBAAyB,GAAG,OAAM;AACtC,IAAI,oCAAoC,GAAG,OAAM;AACjD,IAAI,4CAA4C,GAAG,OAAM;AACzD,IAAI,oCAAoC,GAAG,OAAM;AACjD,IAAI,0BAA0B,GAAG,OAAM;AACvC;AACA,IAAI,mBAAmB,GAAG,OAAM;AAChC,IAAI,kBAAkB,GAAG,OAAM;AAC/B,IAAI,UAAU,GAAG,OAAM;AACvB;AACA,IAAI,QAAQ,GAAG,OAAM;AACrB,IAAI,SAAS,GAAG,OAAM;AACtB;AACA,IAAI,oBAAoB,GAAG,OAAM;AACjC;AACA,IAAI,uBAAuB,GAAG;AAC9B,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAC;AACD;AACA;AACA;AACA,IAAI,qBAAqB,GAAG,GAAE;AAC9B,qBAAqB,CAAC,SAAS,CAAC,GAAG,EAAC;AACpC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,EAAC;AACnC;AACA;AACA;AACA,IAAI,gBAAgB,GAAG,GAAE;AACzB,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,EAAC;AACxC,gBAAgB,CAAC,UAAU,CAAC,GAAG,EAAC;AAChC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,EAAC;AACzC;AACA,IAAI,UAAU,GAAG,OAAM;AACvB,IAAI,YAAY,GAAG,OAAM;AACzB,IAAI,WAAW,GAAG,OAAM;AACxB,IAAI,sBAAsB,GAAG,OAAM;AACnC,IAAI,mBAAmB,GAAG,OAAM;AAChC,IAAI,kBAAkB,GAAG,OAAM;AAC/B;AACA,IAAI,qBAAqB,GAAG,OAAM;AAClC;AACA,IAAI,gBAAgB,GAAG,OAAM;AAC7B;AACA,IAAI,gBAAgB,GAAG,OAAM;AAC7B,IAAI,eAAe,GAAG,OAAM;AAC5B;AACA,IAAI,4BAA4B,GAAG;AACnC,EAAE,UAAU;AACZ,EAAE,YAAY;AACd,EAAE,WAAW;AACb,EAAE,qBAAqB;AACvB,EAAE,gBAAgB;AAClB,EAAE,eAAe;AACjB,EAAE,gBAAgB;AAClB,EAAC;AACD;AACA,IAAI,UAAU,GAAG,GAAE;AACnB,UAAU,CAAC,yBAAyB,CAAC,GAAG,WAAU;AAClD,UAAU,CAAC,oCAAoC,CAAC,GAAG,wBAAuB;AAC1E,UAAU,CAAC,oCAAoC,CAAC,GAAG,wBAAuB;AAC1E,UAAU,CAAC,4CAA4C,CAAC,GAAG,iCAAgC;AAC3F,UAAU,CAAC,0BAA0B,CAAC,GAAG,cAAa;AACtD;AACA,SAAS,YAAY;AACrB,EAAE,EAAE;AACJ,EAAE,UAAU;AACZ,EAAE,MAAM;AACR,EAAE,YAAY;AACd,EAAE,iBAAiB;AACnB,EAAE,KAAK,EAAE;AACT,EAAE,IAAI,gBAAgB,GAAG;AACzB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,MAAM,EAAE,IAAI;AAChB,IAAG;AACH;AACA,EAAE,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAC;AACpC,EAAE,IAAI,wBAAwB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAC;AAC/D;AACA,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE;AAC3B,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAC;AAC1C,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,2BAA2B,EAAE;AAC9C,IAAI,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAC;AACtD,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,wBAAwB,EAAE;AAC3C,IAAI,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAC;AAC5C,GAAG;AACH;AACA,EAAE,IAAI,UAAU,GAAG,CAAC,OAAO,EAAC;AAC5B,EAAE,IAAI,UAAU,CAAC,sBAAsB,EAAE;AACzC,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAC;AAC5C,GAAG;AACH,EAAE,IAAI,UAAU,CAAC,iBAAiB,EAAE;AACpC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAC;AACvC,GAAG;AACH;AACA,EAAE,SAAS,qBAAqB,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE;AACjE,IAAI,IAAI,CAAC,MAAM,GAAG,OAAM;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,QAAO;AAC1B,IAAI,IAAI,CAAC,YAAY,GAAG,aAAY;AACpC;AACA,IAAI,IAAI,CAAC,GAAG,EAAC;AACb,IAAI,IAAI,CAAC,GAAG,EAAC;AACb,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,CAAC,GAAG,OAAO,CAAC,MAAK;AACvB,MAAM,CAAC,GAAG,OAAO,CAAC,OAAM;AACxB,KAAK,MAAM,IAAI,YAAY,EAAE;AAC7B,MAAM,CAAC,GAAG,YAAY,CAAC,MAAK;AAC5B,MAAM,CAAC,GAAG,YAAY,CAAC,OAAM;AAC7B,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,EAAC;AAClB,IAAI,IAAI,CAAC,MAAM,GAAG,EAAC;AACnB,GAAG;AACH;AACA,EAAE,SAAS,MAAM,EAAE,UAAU,EAAE;AAC/B,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE;AAC9B,QAAQ,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAE;AAC5C,OAAO;AACP,MAAM,IAAI,UAAU,CAAC,YAAY,EAAE;AACnC,QAAQ,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,GAAE;AACtD,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;AAC3D,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,OAAO,EAAE;AAC5B,MAAM,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,SAAQ;AAC/C,MAAM,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAC;AACzC,MAAM,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,EAAC;AAC1C,MAAM,OAAO,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,MAAM;AAC3C,QAAQ,gDAAgD,EAAC;AACzD,MAAM,OAAO,CAAC,QAAQ,IAAI,EAAC;AAC3B,KAAK,MAAM;AACX,MAAM,IAAI,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,cAAa;AAC9D,MAAM,OAAO;AACb,QAAQ,YAAY,CAAC,KAAK,KAAK,KAAK,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM;AACtE,QAAQ,4CAA4C,EAAC;AACrD,MAAM,YAAY,CAAC,QAAQ,IAAI,EAAC;AAChC,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE;AACzC,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE;AAC9B,QAAQ,EAAE,CAAC,oBAAoB;AAC/B,UAAU,gBAAgB;AAC1B,UAAU,QAAQ;AAClB,UAAU,UAAU,CAAC,MAAM;AAC3B,UAAU,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO;AAC7C,UAAU,CAAC,EAAC;AACZ,OAAO,MAAM;AACb,QAAQ,EAAE,CAAC,uBAAuB;AAClC,UAAU,gBAAgB;AAC1B,UAAU,QAAQ;AAClB,UAAU,iBAAiB;AAC3B,UAAU,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,EAAC;AAC7D,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,eAAe,EAAE,UAAU,EAAE;AACxC,IAAI,IAAI,MAAM,GAAG,gBAAe;AAChC,IAAI,IAAI,OAAO,GAAG,KAAI;AACtB,IAAI,IAAI,YAAY,GAAG,KAAI;AAC3B;AACA,IAAI,IAAI,IAAI,GAAG,WAAU;AACzB,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACxC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAI;AAC5B,MAAM,IAAI,QAAQ,IAAI,UAAU,EAAE;AAClC,QAAQ,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,EAAC;AACtC,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,yBAAyB,EAAC;AAC7D;AACA,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,UAAS;AAC7B,IAAI,IAAI,IAAI,KAAK,WAAW,EAAE;AAC9B,MAAM,OAAO,GAAG,KAAI;AACpB,MAAM,OAAO,CAAC,MAAM,KAAK,eAAe,EAAC;AACzC,KAAK,MAAM,IAAI,IAAI,KAAK,aAAa,EAAE;AACvC,MAAM,OAAO,GAAG,KAAI;AACpB,MAAM,OAAO;AACb,QAAQ,MAAM,IAAI,gCAAgC;AAClD,QAAQ,MAAM,GAAG,gCAAgC,GAAG,CAAC;AACrD,QAAQ,yBAAyB,EAAC;AAClC,KAAK,MAAM,IAAI,IAAI,KAAK,cAAc,EAAE;AACxC,MAAM,YAAY,GAAG,KAAI;AACzB,MAAM,MAAM,GAAG,kBAAiB;AAChC,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAC;AACzD,KAAK;AACL;AACA,IAAI,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC;AACnE,GAAG;AACH;AACA,EAAE,SAAS,eAAe;AAC1B,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,IAAI,EAAE;AACV,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC;AAC1C,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,IAAI,EAAE,IAAI;AAClB,OAAO,EAAC;AACR,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAC;AACnC,MAAM,OAAO,IAAI,qBAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC;AACtE,KAAK,MAAM;AACX,MAAM,IAAI,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC;AACxC,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,OAAO,EAAC;AACR,MAAM,EAAE,CAAC,aAAa,CAAC,QAAQ,GAAG,EAAC;AACnC,MAAM,OAAO,IAAI,qBAAqB,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;AACnE,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,gBAAgB,EAAE,UAAU,EAAE;AACzC,IAAI,OAAO,UAAU,KAAK,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC;AACxE,GAAG;AACH;AACA,EAAE,SAAS,gBAAgB,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/C,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE;AAC9B,QAAQ,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAC;AACvC,OAAO,MAAM,IAAI,UAAU,CAAC,YAAY,EAAE;AAC1C,QAAQ,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAC;AAC5C,OAAO;AACP,MAAM,UAAU,CAAC,KAAK,GAAG,EAAC;AAC1B,MAAM,UAAU,CAAC,MAAM,GAAG,EAAC;AAC3B,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,gBAAgB,GAAG,EAAC;AAC1B,EAAE,IAAI,cAAc,GAAG,GAAE;AACzB;AACA,EAAE,SAAS,eAAe,IAAI;AAC9B,IAAI,IAAI,CAAC,EAAE,GAAG,gBAAgB,GAAE;AAChC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAI;AAClC;AACA,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,iBAAiB,GAAE;AAC7C,IAAI,IAAI,CAAC,KAAK,GAAG,EAAC;AAClB,IAAI,IAAI,CAAC,MAAM,GAAG,EAAC;AACnB;AACA,IAAI,IAAI,CAAC,gBAAgB,GAAG,GAAE;AAC9B,IAAI,IAAI,CAAC,eAAe,GAAG,KAAI;AAC/B,IAAI,IAAI,CAAC,iBAAiB,GAAG,KAAI;AACjC,IAAI,IAAI,CAAC,sBAAsB,GAAG,KAAI;AACtC,GAAG;AACH;AACA,EAAE,SAAS,UAAU,EAAE,WAAW,EAAE;AACpC,IAAI,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAC;AAChD,IAAI,MAAM,CAAC,WAAW,CAAC,eAAe,EAAC;AACvC,IAAI,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAC;AACzC,IAAI,MAAM,CAAC,WAAW,CAAC,sBAAsB,EAAC;AAC9C,GAAG;AACH;AACA,EAAE,SAAS,OAAO,EAAE,WAAW,EAAE;AACjC,IAAI,IAAI,MAAM,GAAG,WAAW,CAAC,YAAW;AACxC,IAAI,OAAO,CAAC,MAAM,EAAE,qCAAqC,EAAC;AAC1D,IAAI,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAC;AAChC,IAAI,WAAW,CAAC,WAAW,GAAG,KAAI;AAClC,IAAI,KAAK,CAAC,gBAAgB,GAAE;AAC5B,IAAI,OAAO,cAAc,CAAC,WAAW,CAAC,EAAE,EAAC;AACzC,GAAG;AACH;AACA,EAAE,SAAS,iBAAiB,EAAE,WAAW,EAAE;AAC3C,IAAI,IAAI,EAAC;AACT;AACA,IAAI,EAAE,CAAC,eAAe,CAAC,gBAAgB,EAAE,WAAW,CAAC,WAAW,EAAC;AACjE,IAAI,IAAI,gBAAgB,GAAG,WAAW,CAAC,iBAAgB;AACvD,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAClD,MAAM,MAAM,CAAC,sBAAsB,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAC;AAC7D,KAAK;AACL,IAAI,KAAK,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC,EAAE;AAC3E,MAAM,EAAE,CAAC,oBAAoB;AAC7B,QAAQ,gBAAgB;AACxB,QAAQ,sBAAsB,GAAG,CAAC;AAClC,QAAQ,eAAe;AACvB,QAAQ,IAAI;AACZ,QAAQ,CAAC,EAAC;AACV,KAAK;AACL;AACA,IAAI,EAAE,CAAC,oBAAoB;AAC3B,MAAM,gBAAgB;AACtB,MAAM,2BAA2B;AACjC,MAAM,eAAe;AACrB,MAAM,IAAI;AACV,MAAM,CAAC,EAAC;AACR,IAAI,EAAE,CAAC,oBAAoB;AAC3B,MAAM,gBAAgB;AACtB,MAAM,mBAAmB;AACzB,MAAM,eAAe;AACrB,MAAM,IAAI;AACV,MAAM,CAAC,EAAC;AACR,IAAI,EAAE,CAAC,oBAAoB;AAC3B,MAAM,gBAAgB;AACtB,MAAM,qBAAqB;AAC3B,MAAM,eAAe;AACrB,MAAM,IAAI;AACV,MAAM,CAAC,EAAC;AACR;AACA,IAAI,MAAM,CAAC,mBAAmB,EAAE,WAAW,CAAC,eAAe,EAAC;AAC5D,IAAI,MAAM,CAAC,qBAAqB,EAAE,WAAW,CAAC,iBAAiB,EAAC;AAChE,IAAI,MAAM,CAAC,2BAA2B,EAAE,WAAW,CAAC,sBAAsB,EAAC;AAC3E;AACA;AACA,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,sBAAsB,CAAC,gBAAgB,EAAC;AAC5D,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,MAAM,KAAK,yBAAyB,EAAE;AACrE,MAAM,OAAO,CAAC,KAAK,CAAC,oDAAoD;AACxE,QAAQ,UAAU,CAAC,MAAM,CAAC,EAAC;AAC3B,KAAK;AACL;AACA,IAAI,EAAE,CAAC,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,EAAC;AAC1G,IAAI,gBAAgB,CAAC,GAAG,GAAG,gBAAgB,CAAC,KAAI;AAChD;AACA;AACA;AACA,IAAI,EAAE,CAAC,QAAQ,GAAE;AACjB,GAAG;AACH;AACA,EAAE,SAAS,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9B,IAAI,IAAI,WAAW,GAAG,IAAI,eAAe,GAAE;AAC3C,IAAI,KAAK,CAAC,gBAAgB,GAAE;AAC5B;AACA,IAAI,SAAS,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE;AACpC,MAAM,IAAI,EAAC;AACX;AACA,MAAM,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,WAAW;AACnD,QAAQ,sDAAsD,EAAC;AAC/D;AACA,MAAM,IAAI,KAAK,GAAG,EAAC;AACnB,MAAM,IAAI,MAAM,GAAG,EAAC;AACpB;AACA,MAAM,IAAI,UAAU,GAAG,KAAI;AAC3B,MAAM,IAAI,YAAY,GAAG,KAAI;AAC7B;AACA,MAAM,IAAI,WAAW,GAAG,KAAI;AAC5B,MAAM,IAAI,YAAY,GAAG,KAAI;AAC7B,MAAM,IAAI,WAAW,GAAG,OAAM;AAC9B,MAAM,IAAI,SAAS,GAAG,QAAO;AAC7B,MAAM,IAAI,UAAU,GAAG,EAAC;AACxB;AACA,MAAM,IAAI,WAAW,GAAG,KAAI;AAC5B,MAAM,IAAI,aAAa,GAAG,KAAI;AAC9B,MAAM,IAAI,kBAAkB,GAAG,KAAI;AACnC,MAAM,IAAI,mBAAmB,GAAG,MAAK;AACrC;AACA,MAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACjC,QAAQ,KAAK,GAAG,CAAC,GAAG,EAAC;AACrB,QAAQ,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,MAAK;AACjC,OAAO,MAAM,IAAI,CAAC,CAAC,EAAE;AACrB,QAAQ,KAAK,GAAG,MAAM,GAAG,EAAC;AAC1B,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,mCAAmC,EAAC;AACtE,QAAQ,IAAI,OAAO,GAAG,EAAC;AACvB;AACA,QAAQ,IAAI,OAAO,IAAI,OAAO,EAAE;AAChC,UAAU,IAAI,KAAK,GAAG,OAAO,CAAC,MAAK;AACnC,UAAU,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;AAC3D,YAAY,+BAA+B,EAAC;AAC5C,UAAU,KAAK,GAAG,KAAK,CAAC,CAAC,EAAC;AAC1B,UAAU,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AAC3B,SAAS,MAAM;AACf,UAAU,IAAI,QAAQ,IAAI,OAAO,EAAE;AACnC,YAAY,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,OAAM;AAC3C,WAAW;AACX,UAAU,IAAI,OAAO,IAAI,OAAO,EAAE;AAClC,YAAY,KAAK,GAAG,OAAO,CAAC,MAAK;AACjC,WAAW;AACX,UAAU,IAAI,QAAQ,IAAI,OAAO,EAAE;AACnC,YAAY,MAAM,GAAG,OAAO,CAAC,OAAM;AACnC,WAAW;AACX,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,IAAI,OAAO;AAC9B,YAAY,QAAQ,IAAI,OAAO,EAAE;AACjC,UAAU,WAAW;AACrB,YAAY,OAAO,CAAC,KAAK;AACzB,YAAY,OAAO,CAAC,OAAM;AAC1B,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC1C,YAAY,OAAO;AACnB,cAAc,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,kBAAkB;AACvE,cAAc,uCAAuC,EAAC;AACtD,WAAW;AACX,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,UAAU,IAAI,YAAY,IAAI,OAAO,EAAE;AACvC,YAAY,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,EAAC;AAC/C,YAAY,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,4BAA4B,EAAC;AACjE,WAAW;AACX;AACA,UAAU,IAAI,cAAc,IAAI,OAAO,EAAE;AACzC,YAAY,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,aAAY;AACjD,YAAY,WAAW,GAAG,QAAO;AACjC,WAAW;AACX;AACA,UAAU,IAAI,WAAW,IAAI,OAAO,EAAE;AACtC,YAAY,SAAS,GAAG,OAAO,CAAC,UAAS;AACzC,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,cAAc,IAAI,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,SAAS,EAAE;AACzE,gBAAgB,OAAO,CAAC,UAAU,CAAC,2BAA2B;AAC9D,kBAAkB,0EAA0E,EAAC;AAC7F,gBAAgB,WAAW,GAAG,UAAS;AACvC,eAAe,MAAM,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3E,gBAAgB,OAAO,CAAC,UAAU,CAAC,wBAAwB;AAC3D,kBAAkB,8FAA8F,EAAC;AACjH,gBAAgB,WAAW,GAAG,UAAS;AACvC,eAAe;AACf,aAAa,MAAM;AACnB,cAAc,OAAO,CAAC,UAAU,CAAC,iBAAiB;AAClD,gBAAgB,EAAE,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,SAAS,CAAC;AACnE,cAAc,sFAAsF,EAAC;AACrG,cAAc,OAAO,CAAC,UAAU,CAAC,sBAAsB;AACvD,gBAAgB,EAAE,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,SAAS,CAAC;AACxE,cAAc,kGAAkG,EAAC;AACjH,aAAa;AACb,YAAY,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAC;AACtE,WAAW;AACX;AACA,UAAU,IAAI,aAAa,IAAI,OAAO,EAAE;AACxC,YAAY,WAAW,GAAG,OAAO,CAAC,YAAW;AAC7C,YAAY,IAAI,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAC/D,cAAc,YAAY,GAAG,KAAI;AACjC,aAAa,MAAM,IAAI,wBAAwB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAC3E,cAAc,YAAY,GAAG,MAAK;AAClC,aAAa,MAAM;AACnB,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,IAAI,YAAY,EAAE;AAClC,kBAAkB,OAAO,CAAC,KAAK;AAC/B,oBAAoB,OAAO,CAAC,WAAW,EAAE,mBAAmB;AAC5D,oBAAoB,kCAAkC,EAAC;AACvD,iBAAiB,MAAM;AACvB,kBAAkB,OAAO,CAAC,KAAK;AAC/B,oBAAoB,OAAO,CAAC,WAAW,EAAE,wBAAwB;AACjE,oBAAoB,uCAAuC,EAAC;AAC5D,iBAAiB;AACjB,eAAe,EAAC;AAChB,aAAa;AACb,WAAW;AACX,SAAS;AACT;AACA,QAAQ,IAAI,cAAc,IAAI,OAAO,IAAI,qBAAqB,IAAI,OAAO,EAAE;AAC3E,UAAU,mBAAmB,GAAG,CAAC,EAAE,OAAO,CAAC,YAAY;AACvD,YAAY,OAAO,CAAC,mBAAmB,EAAC;AACxC,UAAU,OAAO,CAAC,CAAC,mBAAmB,IAAI,UAAU,CAAC,mBAAmB;AACxE,YAAY,6CAA6C,EAAC;AAC1D,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,IAAI,OAAO,EAAE;AAChC,UAAU,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;AAClD,YAAY,UAAU,GAAG,OAAO,CAAC,MAAK;AACtC,WAAW,MAAM;AACjB,YAAY,WAAW,GAAG,OAAO,CAAC,MAAK;AACvC,YAAY,YAAY,GAAG,MAAK;AAChC,WAAW;AACX,SAAS;AACT;AACA,QAAQ,IAAI,SAAS,IAAI,OAAO,EAAE;AAClC,UAAU,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;AACpD,YAAY,YAAY,GAAG,OAAO,CAAC,QAAO;AAC1C,WAAW,MAAM;AACjB,YAAY,aAAa,GAAG,OAAO,CAAC,QAAO;AAC3C,YAAY,UAAU,GAAG,MAAK;AAC9B,WAAW;AACX,SAAS;AACT;AACA,QAAQ,IAAI,cAAc,IAAI,OAAO,EAAE;AACvC,UAAU,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;AACzD,YAAY,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC,aAAY;AAC5D,WAAW,MAAM;AACjB,YAAY,kBAAkB,GAAG,OAAO,CAAC,aAAY;AACrD,YAAY,UAAU,GAAG,MAAK;AAC9B,YAAY,YAAY,GAAG,MAAK;AAChC,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA,MAAM,IAAI,gBAAgB,GAAG,KAAI;AACjC,MAAM,IAAI,eAAe,GAAG,KAAI;AAChC,MAAM,IAAI,iBAAiB,GAAG,KAAI;AAClC,MAAM,IAAI,sBAAsB,GAAG,KAAI;AACvC;AACA;AACA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACtC,QAAQ,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,eAAe,EAAC;AAC3D,OAAO,MAAM,IAAI,WAAW,EAAE;AAC9B,QAAQ,gBAAgB,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,EAAC;AACzD,OAAO,MAAM;AACb,QAAQ,gBAAgB,GAAG,IAAI,KAAK,CAAC,UAAU,EAAC;AAChD,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE;AACzC,UAAU,gBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe;AAC/C,YAAY,KAAK;AACjB,YAAY,MAAM;AAClB,YAAY,YAAY;AACxB,YAAY,WAAW;AACvB,YAAY,SAAS,EAAC;AACtB,SAAS;AACT,OAAO;AACP;AACA,MAAM,OAAO,CAAC,UAAU,CAAC,kBAAkB,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC;AAC3E,QAAQ,0FAA0F,EAAC;AACnG,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,IAAI,MAAM,CAAC,mBAAmB;AACnE,QAAQ,2CAA2C,EAAC;AACpD;AACA,MAAM,KAAK,GAAG,KAAK,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAK;AAChD,MAAM,MAAM,GAAG,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAM;AACnD;AACA,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,eAAe,GAAG,eAAe,CAAC,WAAW,EAAC;AACtD,OAAO,MAAM,IAAI,UAAU,IAAI,CAAC,YAAY,EAAE;AAC9C,QAAQ,eAAe,GAAG,eAAe;AACzC,UAAU,KAAK;AACf,UAAU,MAAM;AAChB,UAAU,mBAAmB;AAC7B,UAAU,OAAO;AACjB,UAAU,QAAQ,EAAC;AACnB,OAAO;AACP;AACA,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,iBAAiB,GAAG,eAAe,CAAC,aAAa,EAAC;AAC1D,OAAO,MAAM,IAAI,YAAY,IAAI,CAAC,UAAU,EAAE;AAC9C,QAAQ,iBAAiB,GAAG,eAAe;AAC3C,UAAU,KAAK;AACf,UAAU,MAAM;AAChB,UAAU,KAAK;AACf,UAAU,SAAS;AACnB,UAAU,OAAO,EAAC;AAClB,OAAO;AACP;AACA,MAAM,IAAI,kBAAkB,EAAE;AAC9B,QAAQ,sBAAsB,GAAG,eAAe,CAAC,kBAAkB,EAAC;AACpE,OAAO,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,IAAI,YAAY,IAAI,UAAU,EAAE;AAC/E,QAAQ,sBAAsB,GAAG,eAAe;AAChD,UAAU,KAAK;AACf,UAAU,MAAM;AAChB,UAAU,mBAAmB;AAC7B,UAAU,eAAe;AACzB,UAAU,eAAe,EAAC;AAC1B,OAAO;AACP;AACA,MAAM,OAAO;AACb,QAAQ,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC;AACzE,QAAQ,qFAAqF,EAAC;AAC9F;AACA,MAAM,IAAI,yBAAyB,GAAG,KAAI;AAC1C;AACA,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACpD,QAAQ,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC;AAC/D,QAAQ,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpC,WAAW,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO;AACtC,YAAY,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9F,WAAW,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY;AAC3C,YAAY,4BAA4B,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7G,QAAQ,+BAA+B,GAAG,CAAC,GAAG,aAAa,EAAC;AAC5D;AACA,QAAQ,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AAChE,UAAU,IAAI,mBAAmB;AACjC,cAAc,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;AAChF,cAAc,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAC;AACzE;AACA,UAAU,IAAI,yBAAyB,KAAK,IAAI,EAAE;AAClD,YAAY,yBAAyB,GAAG,oBAAmB;AAC3D,WAAW,MAAM;AACjB;AACA;AACA;AACA,YAAY,OAAO,CAAC,yBAAyB,KAAK,mBAAmB;AACrE,cAAc,oEAAoE,EAAC;AACnF,WAAW;AACX,SAAS;AACT,OAAO;AACP,MAAM,mBAAmB,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAC;AACzD,MAAM,OAAO,CAAC,CAAC,eAAe;AAC9B,SAAS,eAAe,CAAC,OAAO;AAChC,UAAU,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,oBAAoB,CAAC;AAC3E,SAAS,eAAe,CAAC,YAAY;AACrC,UAAU,eAAe,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,KAAK,sBAAsB,CAAC;AACvF,MAAM,iDAAiD,EAAC;AACxD,MAAM,mBAAmB,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAC;AAC3D,MAAM,OAAO,CAAC,CAAC,iBAAiB;AAChC,SAAS,iBAAiB,CAAC,YAAY;AACvC,UAAU,iBAAiB,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,KAAK,mBAAmB,CAAC;AACtF,MAAM,mDAAmD,EAAC;AAC1D,MAAM,mBAAmB,CAAC,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAC;AAChE,MAAM,OAAO,CAAC,CAAC,sBAAsB;AACrC,SAAS,sBAAsB,CAAC,OAAO;AACvC,UAAU,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,kBAAkB,CAAC;AAChF,SAAS,sBAAsB,CAAC,YAAY;AAC5C,UAAU,sBAAsB,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,KAAK,kBAAkB,CAAC;AAC1F,MAAM,yDAAyD,EAAC;AAChE;AACA;AACA,MAAM,UAAU,CAAC,WAAW,EAAC;AAC7B;AACA,MAAM,WAAW,CAAC,KAAK,GAAG,MAAK;AAC/B,MAAM,WAAW,CAAC,MAAM,GAAG,OAAM;AACjC;AACA,MAAM,WAAW,CAAC,gBAAgB,GAAG,iBAAgB;AACrD,MAAM,WAAW,CAAC,eAAe,GAAG,gBAAe;AACnD,MAAM,WAAW,CAAC,iBAAiB,GAAG,kBAAiB;AACvD,MAAM,WAAW,CAAC,sBAAsB,GAAG,uBAAsB;AACjE;AACA,MAAM,eAAe,CAAC,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,EAAC;AACpE,MAAM,eAAe,CAAC,KAAK,GAAG,gBAAgB,CAAC,eAAe,EAAC;AAC/D,MAAM,eAAe,CAAC,OAAO,GAAG,gBAAgB,CAAC,iBAAiB,EAAC;AACnE,MAAM,eAAe,CAAC,YAAY,GAAG,gBAAgB,CAAC,sBAAsB,EAAC;AAC7E;AACA,MAAM,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC,MAAK;AAC/C,MAAM,eAAe,CAAC,MAAM,GAAG,WAAW,CAAC,OAAM;AACjD;AACA,MAAM,iBAAiB,CAAC,WAAW,EAAC;AACpC;AACA,MAAM,OAAO,eAAe;AAC5B,KAAK;AACL;AACA,IAAI,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7B,MAAM,OAAO,CAAC,gBAAgB,CAAC,IAAI,KAAK,WAAW;AACnD,QAAQ,wDAAwD,EAAC;AACjE;AACA,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAC;AACjC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAC;AACxC,MAAM,IAAI,CAAC,KAAK,WAAW,CAAC,KAAK,IAAI,CAAC,KAAK,WAAW,CAAC,MAAM,EAAE;AAC/D,QAAQ,OAAO,eAAe;AAC9B,OAAO;AACP;AACA;AACA,MAAM,IAAI,gBAAgB,GAAG,WAAW,CAAC,iBAAgB;AACzD,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACxD,QAAQ,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC;AACnD,OAAO;AACP,MAAM,gBAAgB,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,EAAC;AACzD,MAAM,gBAAgB,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAC;AAC3D,MAAM,gBAAgB,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,EAAC;AAChE;AACA,MAAM,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,GAAG,EAAC;AACnD,MAAM,WAAW,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,GAAG,EAAC;AACrD;AACA,MAAM,iBAAiB,CAAC,WAAW,EAAC;AACpC;AACA,MAAM,OAAO,eAAe;AAC5B,KAAK;AACL;AACA,IAAI,eAAe,CAAC,EAAE,EAAE,EAAE,EAAC;AAC3B;AACA,IAAI,OAAO,MAAM,CAAC,eAAe,EAAE;AACnC,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,SAAS,EAAE,aAAa;AAC9B,MAAM,YAAY,EAAE,WAAW;AAC/B,MAAM,OAAO,EAAE,YAAY;AAC3B,QAAQ,OAAO,CAAC,WAAW,EAAC;AAC5B,QAAQ,UAAU,CAAC,WAAW,EAAC;AAC/B,OAAO;AACP,MAAM,GAAG,EAAE,UAAU,KAAK,EAAE;AAC5B,QAAQ,gBAAgB,CAAC,MAAM,CAAC;AAChC,UAAU,WAAW,EAAE,eAAe;AACtC,SAAS,EAAE,KAAK,EAAC;AACjB,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,aAAa,EAAE,OAAO,EAAE;AACnC,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,EAAC;AACxB;AACA,IAAI,SAAS,mBAAmB,EAAE,CAAC,EAAE;AACrC,MAAM,IAAI,EAAC;AACX;AACA,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;AACtD,QAAQ,sDAAsD,EAAC;AAC/D;AACA,MAAM,IAAI,MAAM,GAAG;AACnB,QAAQ,KAAK,EAAE,IAAI;AACnB,QAAO;AACP;AACA,MAAM,IAAI,MAAM,GAAG,EAAC;AACpB;AACA,MAAM,IAAI,WAAW,GAAG,KAAI;AAC5B,MAAM,IAAI,WAAW,GAAG,OAAM;AAC9B,MAAM,IAAI,SAAS,GAAG,QAAO;AAC7B,MAAM,IAAI,UAAU,GAAG,EAAC;AACxB;AACA,MAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACjC,QAAQ,MAAM,GAAG,CAAC,GAAG,EAAC;AACtB,OAAO,MAAM,IAAI,CAAC,CAAC,EAAE;AACrB,QAAQ,MAAM,GAAG,EAAC;AAClB,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,mCAAmC,EAAC;AACtE,QAAQ,IAAI,OAAO,GAAG,EAAC;AACvB;AACA,QAAQ,IAAI,OAAO,IAAI,OAAO,EAAE;AAChC,UAAU,IAAI,KAAK,GAAG,OAAO,CAAC,MAAK;AACnC,UAAU,OAAO;AACjB,YAAY,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;AACrD,YAAY,+BAA+B,EAAC;AAC5C,UAAU,OAAO;AACjB,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;AACjC,YAAY,iCAAiC,EAAC;AAC9C,UAAU,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AAC3B,SAAS,MAAM;AACf,UAAU,IAAI,QAAQ,IAAI,OAAO,EAAE;AACnC,YAAY,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAC;AACvC,WAAW;AACX,UAAU,IAAI,OAAO,IAAI,OAAO,EAAE;AAClC,YAAY,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,EAAC;AACtC,YAAY,IAAI,QAAQ,IAAI,OAAO,EAAE;AACrC,cAAc,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,gBAAgB,EAAC;AAClE,aAAa;AACb,WAAW,MAAM,IAAI,QAAQ,IAAI,OAAO,EAAE;AAC1C,YAAY,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAC;AACvC,WAAW;AACX,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,IAAI,OAAO;AAC9B,YAAY,QAAQ,IAAI,OAAO,EAAE;AACjC,UAAU,WAAW;AACrB,YAAY,OAAO,CAAC,KAAK;AACzB,YAAY,OAAO,CAAC,OAAM;AAC1B,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC1C,YAAY,OAAO;AACnB,cAAc,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,kBAAkB;AACvE,cAAc,uCAAuC,EAAC;AACtD,WAAW;AACX,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,UAAU,IAAI,YAAY,IAAI,OAAO,EAAE;AACvC,YAAY,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,EAAC;AAC/C,YAAY,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,4BAA4B,EAAC;AACjE,WAAW;AACX;AACA,UAAU,IAAI,WAAW,IAAI,OAAO,EAAE;AACtC,YAAY,OAAO,CAAC,KAAK;AACzB,cAAc,OAAO,CAAC,SAAS,EAAE,UAAU;AAC3C,cAAc,oBAAoB,EAAC;AACnC,YAAY,SAAS,GAAG,OAAO,CAAC,UAAS;AACzC,WAAW;AACX;AACA,UAAU,IAAI,aAAa,IAAI,OAAO,EAAE;AACxC,YAAY,WAAW,GAAG,OAAO,CAAC,YAAW;AAC7C,YAAY,OAAO,CAAC,KAAK;AACzB,cAAc,OAAO,CAAC,WAAW,EAAE,mBAAmB;AACtD,cAAc,kCAAkC,EAAC;AACjD,WAAW;AACX,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,IAAI,OAAO,EAAE;AAChC,UAAU,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,MAAK;AACtC,SAAS;AACT;AACA,QAAQ,IAAI,SAAS,IAAI,OAAO,EAAE;AAClC,UAAU,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,QAAO;AAC1C,SAAS;AACT;AACA,QAAQ,IAAI,cAAc,IAAI,OAAO,EAAE;AACvC,UAAU,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,aAAY;AACpD,SAAS;AACT,OAAO;AACP;AACA,MAAM,IAAI,WAAU;AACpB,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACxC,UAAU,UAAU,GAAG,GAAE;AACzB,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACnD,YAAY,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAC;AAC1C,WAAW;AACX,SAAS,MAAM;AACf,UAAU,UAAU,GAAG,EAAE,WAAW,GAAE;AACtC,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,UAAU,GAAG,KAAK,CAAC,UAAU,EAAC;AACtC,QAAQ,IAAI,aAAa,GAAG;AAC5B,UAAU,MAAM,EAAE,MAAM;AACxB,UAAU,MAAM,EAAE,WAAW;AAC7B,UAAU,IAAI,EAAE,SAAS;AACzB,UAAS;AACT,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE;AACzC,UAAU,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,aAAa,EAAC;AAChE,SAAS;AACT,OAAO;AACP;AACA;AACA,MAAM,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAC;AAC7C,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC9C,QAAQ,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,EAAC;AAChC,QAAQ,OAAO;AACf,UAAU,OAAO,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa;AACxE,UAAU,kBAAkB,EAAC;AAC7B,QAAQ,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,MAAK;AACrC,QAAQ,OAAO;AACf,UAAU,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;AACzD,UAAU,wBAAwB,EAAC;AACnC,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AAC1B,UAAU,MAAM,EAAE,gCAAgC;AAClD,UAAU,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;AAC7B,UAAS;AACT,OAAO;AACP;AACA,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACpD,UAAU,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,gCAAgC,GAAG,EAAC;AACvE,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;AACnB,UAAU,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAK;AACvC,UAAU,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAO;AAC3C,UAAU,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,aAAY;AACrD,SAAS;AACT,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AACtB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAC;AAC5B,SAAS,MAAM;AACf,UAAU,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,EAAC;AACtC,SAAS;AACT,OAAO;AACP;AACA,MAAM,OAAO,MAAM,CAAC,mBAAmB,EAAE;AACzC,QAAQ,KAAK,EAAE,MAAM;AACrB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,UAAU;AACzB,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,SAAS,MAAM,EAAE,OAAO,EAAE;AAC9B,MAAM,IAAI,EAAC;AACX,MAAM,IAAI,MAAM,GAAG,OAAO,GAAG,EAAC;AAC9B,MAAM,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc;AAC3D,QAAQ,6BAA6B,EAAC;AACtC;AACA,MAAM,IAAI,MAAM,KAAK,mBAAmB,CAAC,KAAK,EAAE;AAChD,QAAQ,OAAO,mBAAmB;AAClC,OAAO;AACP;AACA,MAAM,IAAI,MAAM,GAAG,mBAAmB,CAAC,MAAK;AAC5C,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC1C,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAC;AAChC,OAAO;AACP;AACA,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAC;AAC/B,OAAO;AACP;AACA,MAAM,mBAAmB,CAAC,KAAK,GAAG,mBAAmB,CAAC,MAAM,GAAG,OAAM;AACrE;AACA,MAAM,OAAO,mBAAmB;AAChC,KAAK;AACL;AACA,IAAI,mBAAmB,CAAC,OAAO,EAAC;AAChC;AACA,IAAI,OAAO,MAAM,CAAC,mBAAmB,EAAE;AACvC,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,SAAS,EAAE,iBAAiB;AAClC,MAAM,OAAO,EAAE,YAAY;AAC3B,QAAQ,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACnC,UAAU,CAAC,CAAC,OAAO,GAAE;AACrB,SAAS,EAAC;AACV,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,mBAAmB,IAAI;AAClC,IAAI,gBAAgB,CAAC,GAAG,GAAG,KAAI;AAC/B,IAAI,gBAAgB,CAAC,IAAI,GAAG,KAAI;AAChC,IAAI,gBAAgB,CAAC,KAAK,GAAG,KAAI;AACjC,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;AACjD,MAAM,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,iBAAiB,GAAE;AAC7C,MAAM,iBAAiB,CAAC,EAAE,EAAC;AAC3B,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,OAAO,MAAM,CAAC,gBAAgB,EAAE;AAClC,IAAI,cAAc,EAAE,UAAU,MAAM,EAAE;AACtC,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,KAAK,aAAa,EAAE;AAC9E,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,aAAY;AACrC,QAAQ,IAAI,GAAG,YAAY,eAAe,EAAE;AAC5C,UAAU,OAAO,GAAG;AACpB,SAAS;AACT,OAAO;AACP,MAAM,OAAO,IAAI;AACjB,KAAK;AACL,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,UAAU,EAAE,aAAa;AAC7B,IAAI,KAAK,EAAE,YAAY;AACvB,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,OAAO,EAAC;AAC7C,KAAK;AACL,IAAI,OAAO,EAAE,mBAAmB;AAChC,GAAG,CAAC;AACJ,CAAC;AACD;AACA,IAAI,UAAU,GAAG,KAAI;AACrB,IAAI,iBAAiB,GAAG,MAAK;AAC7B,IAAI,yBAAyB,GAAG,MAAK;AACrC;AACA,IAAI,WAAW,GAAG;AAClB,EAAE,YAAY;AACd,EAAE,UAAU;AACZ,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAC;AACD;AACA,SAAS,eAAe,IAAI;AAC5B,EAAE,IAAI,CAAC,KAAK,GAAG,EAAC;AAChB;AACA,EAAE,IAAI,CAAC,CAAC,GAAG,IAAG;AACd,EAAE,IAAI,CAAC,CAAC,GAAG,IAAG;AACd,EAAE,IAAI,CAAC,CAAC,GAAG,IAAG;AACd,EAAE,IAAI,CAAC,CAAC,GAAG,IAAG;AACd;AACA,EAAE,IAAI,CAAC,MAAM,GAAG,KAAI;AACpB,EAAE,IAAI,CAAC,IAAI,GAAG,EAAC;AACf,EAAE,IAAI,CAAC,UAAU,GAAG,MAAK;AACzB,EAAE,IAAI,CAAC,IAAI,GAAG,WAAU;AACxB,EAAE,IAAI,CAAC,MAAM,GAAG,EAAC;AACjB,EAAE,IAAI,CAAC,MAAM,GAAG,EAAC;AACjB,EAAE,IAAI,CAAC,OAAO,GAAG,EAAC;AAClB,CAAC;AACD;AACA,SAAS,kBAAkB;AAC3B,EAAE,EAAE;AACJ,EAAE,UAAU;AACZ,EAAE,MAAM;AACR,EAAE,KAAK;AACP,EAAE,WAAW;AACb,EAAE,YAAY;AACd,EAAE,SAAS,EAAE;AACb,EAAE,IAAI,cAAc,GAAG,MAAM,CAAC,cAAa;AAC3C,EAAE,IAAI,iBAAiB,GAAG,IAAI,KAAK,CAAC,cAAc,EAAC;AACnD,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,EAAE,CAAC,EAAE;AAC3C,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,eAAe,GAAE;AAChD,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG,EAAC;AAClB,EAAE,IAAI,MAAM,GAAG,GAAE;AACjB;AACA,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,MAAM,EAAE,eAAe;AAC3B,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,KAAK,EAAE,iBAAiB;AAC5B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,YAAY,EAAE;AACnD,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,aAAa,EAAE,aAAa;AAChC,IAAI,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,cAAc;AACjD,IAAI,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,YAAY,EAAE;AACpD,IAAG;AACH;AACA,EAAE,SAAS,aAAa,EAAE,MAAM,EAAE;AAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvD,MAAM,IAAI,MAAM,GAAG,iBAAiB,CAAC,CAAC,EAAC;AACvC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE;AACpC,QAAQ,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAC;AACtC,QAAQ,MAAM,CAAC,MAAM,GAAG,KAAI;AAC5B,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,MAAM,IAAI;AACrB,IAAI,OAAO,UAAU,CAAC,uBAAuB;AAC7C,GAAG;AACH;AACA,EAAE,SAAS,YAAY,IAAI;AAC3B,IAAI,OAAO,UAAU,CAAC,sBAAsB;AAC5C,GAAG;AACH;AACA,EAAE,SAAS,MAAM,EAAE,GAAG,EAAE;AACxB,IAAI,IAAI,OAAO,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,IAAI,EAAE;AAC/C,MAAM,OAAO,GAAG,CAAC,IAAI;AACrB,KAAK;AACL,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA,EAAE,SAAS,SAAS,EAAE,GAAG,EAAE;AAC3B,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,UAAU,EAAE;AAClC,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,GAAG,GAAG,MAAM,GAAE;AACtB,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAC;AACrC,KAAK,MAAM;AACX,MAAM,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAC;AAClC,KAAK;AACL,IAAI,KAAK,CAAC,UAAU,GAAG,IAAG;AAC1B,GAAG;AACH;AACA,EAAE,SAAS,cAAc,EAAE,GAAG,EAAE;AAChC,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,UAAU,EAAE;AAClC,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,GAAG,CAAC,SAAS,GAAE;AACrB,KAAK,MAAM;AACX,MAAM,IAAI,IAAI,GAAG,YAAY,GAAE;AAC/B,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACzD,QAAQ,IAAI,OAAO,GAAG,iBAAiB,CAAC,CAAC,EAAC;AAC1C,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE;AAC5B,UAAU,EAAE,CAAC,uBAAuB,CAAC,CAAC,EAAC;AACvC,UAAU,OAAO,CAAC,MAAM,CAAC,IAAI,GAAE;AAC/B,UAAU,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAC;AACpH,UAAU,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;AACvC,YAAY,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,EAAC;AAC7D,WAAW;AACX,SAAS,MAAM;AACf,UAAU,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAC;AACxC,UAAU,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAC;AAC1E,SAAS;AACT,OAAO;AACP,MAAM,IAAI,SAAS,CAAC,QAAQ,EAAE;AAC9B,QAAQ,EAAE,CAAC,UAAU,CAAC,yBAAyB,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAC;AAClF,OAAO,MAAM;AACb,QAAQ,EAAE,CAAC,UAAU,CAAC,yBAAyB,EAAE,IAAI,EAAC;AACtD,OAAO;AACP,KAAK;AACL,IAAI,KAAK,CAAC,UAAU,GAAG,IAAG;AAC1B,GAAG;AACH;AACA,EAAE,SAAS,aAAa,IAAI;AAC5B,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAC1C,MAAM,GAAG,CAAC,OAAO,GAAE;AACnB,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,OAAO,IAAI;AACtB,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,SAAQ;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,GAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAI;AACxB,IAAI,IAAI,CAAC,YAAY,GAAG,MAAK;AAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,EAAC;AAClB,IAAI,IAAI,CAAC,MAAM,GAAG,EAAC;AACnB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAC;AACvB,IAAI,IAAI,CAAC,SAAS,GAAG,EAAC;AACtB,IAAI,IAAI,SAAS,GAAG,MAAM,GAAE;AAC5B,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,oBAAoB,GAAE;AACjD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,GAAG,GAAG,KAAI;AACrB,KAAK;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAI;AAC1B,IAAI,IAAI,CAAC,OAAO,GAAG,GAAE;AACrB,GAAG;AACH;AACA,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;AAC5C,IAAI,IAAI,IAAI,GAAG,YAAY,GAAE;AAC7B,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,WAAU;AACpC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAChD,MAAM,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,EAAC;AAC9B,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACvB,QAAQ,EAAE,CAAC,uBAAuB,CAAC,CAAC,EAAC;AACrC,QAAQ,EAAE,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAC;AAC5D,QAAQ,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC;AAClG,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AAClC,UAAU,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAC;AACxD,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAC;AACtC,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAC;AAC5D,OAAO;AACP,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,cAAc,EAAE,EAAE,CAAC,EAAE;AAC7D,MAAM,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAC;AACpC,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAC;AAC1D,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,EAAE,CAAC,UAAU,CAAC,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAC;AACtE,KAAK,MAAM;AACX,MAAM,EAAE,CAAC,UAAU,CAAC,yBAAyB,EAAE,IAAI,EAAC;AACpD,KAAK;AACL,IAAG;AACH;AACA,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC1C,IAAI,IAAI,GAAG,GAAG,MAAM,GAAE;AACtB,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAC;AACtC,MAAM,IAAI,CAAC,SAAS,GAAE;AACtB,MAAM,KAAK,CAAC,UAAU,GAAG,KAAI;AAC7B,MAAM,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAC;AAClC,KAAK;AACL,IAAG;AACH;AACA,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC1C,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;AAClB,MAAM,IAAI,SAAS,GAAG,MAAM,GAAE;AAC9B,MAAM,IAAI,IAAI,KAAK,KAAK,CAAC,UAAU,EAAE;AACrC,QAAQ,KAAK,CAAC,UAAU,GAAG,KAAI;AAC/B,QAAQ,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAC;AAC1C,OAAO;AACP,MAAM,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAC;AAC9C,MAAM,IAAI,CAAC,GAAG,GAAG,KAAI;AACrB,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAE;AAC7B,MAAM,IAAI,CAAC,QAAQ,GAAG,KAAI;AAC1B,MAAM,IAAI,CAAC,YAAY,GAAG,MAAK;AAC/B,KAAK;AACL,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AACzB,MAAM,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,EAAC;AAC5B,MAAM,KAAK,CAAC,QAAQ,IAAI,EAAC;AACzB,KAAK;AACL,IAAG;AACH;AACA,EAAE,SAAS,UAAU,IAAI;AACzB,IAAI,IAAI,GAAG,GAAG,MAAM,GAAE;AACtB,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAC5C,QAAQ,GAAG,CAAC,OAAO,GAAE;AACrB,OAAO,EAAC;AACR,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,SAAS,EAAE,KAAK,EAAE;AAC7B,IAAI,IAAI,GAAG,GAAG,IAAI,OAAO,GAAE;AAC3B,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAC;AACvB;AACA,IAAI,SAAS,SAAS,EAAE,OAAO,EAAE;AACjC,MAAM,IAAI,WAAU;AACpB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAClC,QAAQ,UAAU,GAAG,QAAO;AAC5B,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,YAAY,EAAE;AAC9C,UAAU,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAE;AAChC,SAAS;AACT,QAAQ,GAAG,CAAC,QAAQ,GAAG,KAAI;AAC3B,QAAQ,GAAG,CAAC,YAAY,GAAG,MAAK;AAChC,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAC;AACtB,QAAQ,GAAG,CAAC,KAAK,GAAG,EAAC;AACrB,QAAQ,GAAG,CAAC,SAAS,GAAG,CAAC,EAAC;AAC1B,QAAQ,GAAG,CAAC,SAAS,GAAG,EAAC;AACzB,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,OAAO,OAAO,KAAK,QAAQ,EAAE,kCAAkC,EAAC;AAChF,QAAQ,OAAO,CAAC,YAAY,IAAI,OAAO,EAAE,iCAAiC,EAAC;AAC3E,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC9B,UAAU,IAAI,QAAQ,GAAG,OAAO,CAAC,SAAQ;AACzC,UAAU,IAAI,GAAG,CAAC,YAAY,EAAE;AAChC,YAAY,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,SAAS,KAAK,UAAU,EAAE;AACrF,cAAc,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAE;AACpC,cAAc,GAAG,CAAC,YAAY,GAAG,MAAK;AACtC,aAAa,MAAM;AACnB,cAAc,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAC;AACpC,cAAc,GAAG,CAAC,YAAY,GAAG,MAAK;AACtC,aAAa;AACb,WAAW,MAAM,IAAI,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACjE,YAAY,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,SAAQ;AAC3C,YAAY,GAAG,CAAC,YAAY,GAAG,MAAK;AACpC,WAAW,MAAM;AACjB,YAAY,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAC;AAChE,YAAY,GAAG,CAAC,YAAY,GAAG,KAAI;AACnC,WAAW;AACX,SAAS,MAAM;AACf,UAAU,GAAG,CAAC,QAAQ,GAAG,KAAI;AAC7B,UAAU,GAAG,CAAC,YAAY,GAAG,MAAK;AAClC,SAAS;AACT,QAAQ,UAAU,GAAG,OAAO,CAAC,WAAU;AACvC;AACA;AACA,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAC;AACtB,QAAQ,GAAG,CAAC,KAAK,GAAG,CAAC,EAAC;AACtB,QAAQ,GAAG,CAAC,SAAS,GAAG,CAAC,EAAC;AAC1B,QAAQ,GAAG,CAAC,SAAS,GAAG,EAAC;AACzB;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE;AAC1B,UAAU,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAS;AACtD,UAAU,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAQ;AACzD,SAAS;AACT;AACA,QAAQ,IAAI,QAAQ,IAAI,OAAO,EAAE;AACjC,UAAU,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAC;AACzC,SAAS;AACT,QAAQ,IAAI,OAAO,IAAI,OAAO,EAAE;AAChC,UAAU,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,EAAC;AACvC,SAAS;AACT,QAAQ,IAAI,WAAW,IAAI,OAAO,EAAE;AACpC,UAAU,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,EAAC;AAC/C,SAAS;AACT,QAAQ,IAAI,WAAW,IAAI,OAAO,EAAE;AACpC,UAAU,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE,sBAAsB,GAAG,OAAO,CAAC,SAAS,EAAC;AAC7F,UAAU,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAC;AACtD,SAAS;AACT;AACA,QAAQ,OAAO,CAAC,QAAQ,CAAC,MAAM;AAC/B,UAAU,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAC;AACzC,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAChD,YAAY,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,sBAAsB,GAAG,WAAW,EAAC;AACpI,WAAW;AACX,SAAS,EAAC;AACV,QAAQ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,6BAA6B,EAAC;AACzE,OAAO;AACP;AACA,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,cAAc,EAAE,qBAAqB,EAAC;AACxE,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,qCAAqC,EAAC;AAC3E;AACA,MAAM,IAAI,UAAU,GAAG,GAAE;AACzB,MAAM,IAAI,WAAW,GAAG,GAAG,CAAC,WAAU;AACtC,MAAM,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC,OAAM;AAC5C,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAClD,QAAQ,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,EAAC;AAChC,QAAQ,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,eAAe,GAAE;AACxD,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,KAAI;AACpC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;AAC9E,UAAU,IAAI,IAAG;AACjB,UAAU,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC9B,YAAY,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,EAAC;AAChC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;AACjF,cAAc,GAAG,CAAC,OAAO,CAAC,IAAI,EAAC;AAC/B,aAAa,MAAM;AACnB,cAAc,GAAG,CAAC,OAAO,GAAE;AAC3B,cAAc,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAI;AACnC,aAAa;AACb,WAAW;AACX,UAAU,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC/B,YAAY,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAC;AAC3F,WAAW;AACX,UAAU,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,EAAC;AACjD,UAAU,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,EAAC;AAC7C,UAAU,GAAG,CAAC,UAAU,GAAG,MAAK;AAChC,UAAU,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAK;AACrC,UAAU,GAAG,CAAC,MAAM,GAAG,EAAC;AACxB,UAAU,GAAG,CAAC,MAAM,GAAG,EAAC;AACxB,UAAU,GAAG,CAAC,OAAO,GAAG,EAAC;AACzB,UAAU,GAAG,CAAC,KAAK,GAAG,EAAC;AACvB,UAAU,UAAU,CAAC,CAAC,CAAC,GAAG,EAAC;AAC3B,SAAS,MAAM,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AAChD,UAAU,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,EAAC;AAClD,UAAU,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,EAAC;AAC7C,UAAU,GAAG,CAAC,UAAU,GAAG,MAAK;AAChC,UAAU,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAK;AACrC,UAAU,GAAG,CAAC,MAAM,GAAG,EAAC;AACxB,UAAU,GAAG,CAAC,MAAM,GAAG,EAAC;AACxB,UAAU,GAAG,CAAC,OAAO,GAAG,EAAC;AACzB,UAAU,GAAG,CAAC,KAAK,GAAG,EAAC;AACvB,SAAS,MAAM,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACvD,UAAU,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAC;AACzD,UAAU,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAC;AAC/D,UAAU,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,MAAK;AACrD,UAAU,IAAI,MAAM,IAAI,IAAI,EAAE;AAC9B,YAAY,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAC;AACxE,YAAY,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAC;AACzC,WAAW,MAAM;AACjB,YAAY,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAK;AACvC,WAAW;AACX,UAAU,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAC;AAC7C,UAAU,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAC;AAC7C,UAAU,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAC;AAC/C,UAAU,GAAG,CAAC,KAAK,GAAG,EAAC;AACvB;AACA,UAAU,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,8BAA8B,EAAC;AACjF,UAAU,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,gBAAgB,EAAC;AACpD,UAAU,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,kCAAkC,EAAC;AAC3F,UAAU,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,0BAA0B,EAAC;AAC/D,UAAU,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,CAAC,sBAAsB,EAAE,uDAAuD,EAAC;AAC/H,SAAS,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE;AAChC,UAAU,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,wCAAwC,EAAC;AAClE,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAC;AAC9B,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAC;AAC9B,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAC;AAC9B,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAC;AAC9B,UAAU,GAAG,CAAC,KAAK,GAAG,EAAC;AACvB,SAAS,MAAM;AACf,UAAU,OAAO,CAAC,KAAK,EAAE,sCAAsC,GAAG,CAAC,EAAC;AACpE,SAAS;AACT,OAAO;AACP;AACA;AACA,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACnD,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC9C,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAE;AAClC,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAI;AAC/B,SAAS;AACT,OAAO;AACP;AACA,MAAM,GAAG,CAAC,OAAO,GAAE;AACnB,MAAM,OAAO,SAAS;AACtB,KAAK;AACL;AACA,IAAI,SAAS,CAAC,OAAO,GAAG,YAAY;AACpC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACnD,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC5B,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAE;AAClC,SAAS;AACT,OAAO;AACP,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,EAAC;AAC5B;AACA,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE;AAC5B,QAAQ,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAE;AAC9B,QAAQ,GAAG,CAAC,QAAQ,GAAG,KAAI;AAC3B,QAAQ,GAAG,CAAC,YAAY,GAAG,MAAK;AAChC,OAAO;AACP;AACA,MAAM,GAAG,CAAC,OAAO,GAAE;AACnB,MAAK;AACL;AACA,IAAI,SAAS,CAAC,IAAI,GAAG,IAAG;AACxB,IAAI,SAAS,CAAC,SAAS,GAAG,MAAK;AAC/B;AACA,IAAI,OAAO,SAAS,CAAC,KAAK,CAAC;AAC3B,GAAG;AACH;AACA,EAAE,OAAO,KAAK;AACd,CAAC;AACD;AACA,IAAI,kBAAkB,GAAG,MAAK;AAC9B,IAAI,gBAAgB,GAAG,MAAK;AAC5B;AACA,IAAI,kBAAkB,GAAG,OAAM;AAC/B,IAAI,oBAAoB,GAAG,OAAM;AACjC;AACA,SAAS,eAAe,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;AAC1D;AACA;AACA;AACA,EAAE,IAAI,WAAW,GAAG,GAAE;AACtB,EAAE,IAAI,WAAW,GAAG,GAAE;AACtB;AACA,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;AACjD,IAAI,IAAI,CAAC,IAAI,GAAG,KAAI;AACpB,IAAI,IAAI,CAAC,EAAE,GAAG,GAAE;AAChB,IAAI,IAAI,CAAC,QAAQ,GAAG,SAAQ;AAC5B,IAAI,IAAI,CAAC,IAAI,GAAG,KAAI;AACpB,GAAG;AACH;AACA,EAAE,SAAS,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE;AACzC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC1C,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;AAClC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAQ;AACxC,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAC;AACnB,GAAG;AACH;AACA,EAAE,SAAS,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE;AACzC,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,kBAAkB,GAAG,WAAW,GAAG,YAAW;AACvE,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,EAAE,EAAC;AAC1B;AACA,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,EAAC;AACtC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAC;AACpC,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAC;AACrC,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,EAAC;AAC9B,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC;AAC5D,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,OAAM;AACxB,KAAK;AACL;AACA,IAAI,OAAO,MAAM;AACjB,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,IAAI,YAAY,GAAG,GAAE;AACvB,EAAE,IAAI,WAAW,GAAG,GAAE;AACtB;AACA,EAAE,IAAI,eAAe,GAAG,EAAC;AACzB;AACA,EAAE,SAAS,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE;AACxC,IAAI,IAAI,CAAC,EAAE,GAAG,eAAe,GAAE;AAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,OAAM;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG,OAAM;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,KAAI;AACvB,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAE;AACtB,IAAI,IAAI,CAAC,UAAU,GAAG,GAAE;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,EAAC;AACrB;AACA,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AACxB,MAAM,IAAI,CAAC,KAAK,GAAG;AACnB,QAAQ,aAAa,EAAE,CAAC;AACxB,QAAQ,eAAe,EAAE,CAAC;AAC1B,QAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE;AAC3D,IAAI,IAAI,CAAC,EAAE,KAAI;AACf;AACA;AACA;AACA;AACA,IAAI,IAAI,UAAU,GAAG,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,EAAC;AAC/D,IAAI,IAAI,UAAU,GAAG,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAC;AAC7D;AACA,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,aAAa,GAAE;AACnD,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,EAAC;AACxC,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,EAAC;AACxC,IAAI,IAAI,kBAAkB,EAAE;AAC5B,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACtD,QAAQ,IAAI,OAAO,GAAG,kBAAkB,CAAC,CAAC,EAAC;AAC3C,QAAQ,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAC;AAC9D,OAAO;AACP,KAAK;AACL;AACA,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,EAAC;AAC3B,IAAI,OAAO,CAAC,SAAS;AACrB,MAAM,EAAE;AACR,MAAM,OAAO;AACb,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAClC,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAClC,MAAM,OAAO,EAAC;AACd;AACA;AACA;AACA;AACA,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,EAAC;AACzE,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AACxB,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,YAAW;AAC5C,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAQ;AAChC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE;AACtC,MAAM,IAAI,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAC;AAC5C,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;AAC3B,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;AAC9C,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,EAAC;AAC9D,YAAY,gBAAgB,CAAC,QAAQ,EAAE,IAAI,UAAU;AACrD,cAAc,IAAI;AAClB,cAAc,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;AAClC,cAAc,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC;AAClD,cAAc,IAAI,CAAC,EAAC;AACpB,WAAW;AACX,SAAS;AACT,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,KAAI;AAC/B,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;AAC3B,UAAU,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAC;AAC9C,SAAS;AACT,QAAQ,gBAAgB,CAAC,QAAQ,EAAE,IAAI,UAAU;AACjD,UAAU,OAAO;AACjB,UAAU,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;AACjC,UAAU,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC;AACjD,UAAU,IAAI,CAAC,EAAC;AAChB,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,EAAC;AAC7E,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AACxB,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,cAAa;AAChD,KAAK;AACL;AACA,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,WAAU;AACpC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,EAAE,CAAC,EAAE;AACxC,MAAM,IAAI,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,EAAC;AAC3C,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,gBAAgB,CAAC,UAAU,EAAE,IAAI,UAAU;AACnD,UAAU,IAAI,CAAC,IAAI;AACnB,UAAU,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,UAAU,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;AAClD,UAAU,IAAI,CAAC,EAAC;AAChB,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE;AACtB,IAAI,KAAK,CAAC,mBAAmB,GAAG,YAAY;AAC5C,MAAM,IAAI,CAAC,GAAG,EAAC;AACf,MAAM,WAAW,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAC1C,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,EAAE;AAC1C,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAa;AACtC,SAAS;AACT,OAAO,EAAC;AACR,MAAM,OAAO,CAAC;AACd,MAAK;AACL;AACA,IAAI,KAAK,CAAC,qBAAqB,GAAG,YAAY;AAC9C,MAAM,IAAI,CAAC,GAAG,EAAC;AACf,MAAM,WAAW,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAC1C,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,EAAE;AAC5C,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAe;AACxC,SAAS;AACT,OAAO,EAAC;AACR,MAAM,OAAO,CAAC;AACd,MAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,cAAc,IAAI;AAC7B,IAAI,WAAW,GAAG,GAAE;AACpB,IAAI,WAAW,GAAG,GAAE;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACjD,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;AACtF,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;AACzC,OAAO,CAAC,EAAC;AACT,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,YAAY;AACvB,MAAM,IAAI,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAC;AACjD,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,YAAY,EAAC;AAC/C,MAAM,WAAW,GAAG,GAAE;AACtB,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,YAAY,EAAC;AAC/C,MAAM,WAAW,GAAG,GAAE;AACtB;AACA,MAAM,WAAW,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAC1C,QAAQ,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAC;AACtC,OAAO,EAAC;AACR,MAAM,WAAW,CAAC,MAAM,GAAG,EAAC;AAC5B,MAAM,YAAY,GAAG,GAAE;AACvB;AACA,MAAM,KAAK,CAAC,WAAW,GAAG,EAAC;AAC3B,KAAK;AACL;AACA,IAAI,OAAO,EAAE,UAAU,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE;AACjE,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,uBAAuB,EAAE,OAAO,EAAC;AACpE,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,yBAAyB,EAAE,OAAO,EAAC;AACtE;AACA,MAAM,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,EAAC;AACtC,MAAM,IAAI,CAAC,KAAK,EAAE;AAClB,QAAQ,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,GAAE;AACzC,OAAO;AACP,MAAM,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,EAAC;AACrC,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,WAAW,CAAC,QAAQ,GAAE;AAC9B,QAAQ,IAAI,CAAC,eAAe,EAAE;AAC9B,UAAU,OAAO,WAAW;AAC5B,SAAS;AACT,OAAO;AACP,MAAM,IAAI,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAC;AACnD,MAAM,KAAK,CAAC,WAAW,GAAE;AACzB,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAC;AACpD,MAAM,IAAI,CAAC,WAAW,EAAE;AACxB,QAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,QAAO;AAC/B,OAAO;AACP,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAC;AAC/B,MAAM,OAAO,MAAM,CAAC,OAAO,EAAE;AAC7B,QAAQ,OAAO,EAAE,YAAY;AAC7B,UAAU,OAAO,CAAC,QAAQ,GAAE;AAC5B,UAAU,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,EAAE;AACrC,YAAY,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAC;AAC7C,YAAY,IAAI,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,EAAC;AAClD,YAAY,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAC;AACtC,YAAY,KAAK,CAAC,WAAW,GAAE;AAC/B,WAAW;AACX;AACA,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE;AACnD,YAAY,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAC;AACxD,YAAY,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,EAAC;AAC9C,YAAY,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAC;AAC/D,WAAW;AACX;AACA,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE;AACjE,YAAY,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAC;AACxD,YAAY,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,EAAC;AAC9C,YAAY,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,EAAC;AAC/C,WAAW;AACX,SAAS;AACT,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,OAAO,EAAE,cAAc;AAC3B;AACA,IAAI,MAAM,EAAE,SAAS;AACrB;AACA,IAAI,IAAI,EAAE,CAAC,CAAC;AACZ,IAAI,IAAI,EAAE,CAAC,CAAC;AACZ,GAAG;AACH,CAAC;AACD;AACA,IAAI,SAAS,GAAG,KAAI;AACpB,IAAI,kBAAkB,GAAG,KAAI;AAC7B,IAAI,iBAAiB,GAAG,OAAM;AAC9B,IAAI,UAAU,GAAG,OAAM;AACvB;AACA,SAAS,cAAc;AACvB,EAAE,EAAE;AACJ,EAAE,gBAAgB;AAClB,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,EAAE,YAAY;AACd,EAAE,UAAU;AACZ,EAAE,MAAM,EAAE;AACV,EAAE,SAAS,cAAc,EAAE,KAAK,EAAE;AAClC,IAAI,IAAI,KAAI;AACZ,IAAI,IAAI,gBAAgB,CAAC,IAAI,KAAK,IAAI,EAAE;AACxC,MAAM,OAAO;AACb,QAAQ,YAAY,CAAC,qBAAqB;AAC1C,QAAQ,mHAAmH,EAAC;AAC5H,MAAM,IAAI,GAAG,mBAAkB;AAC/B,KAAK,MAAM;AACX,MAAM,OAAO;AACb,QAAQ,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI;AAClE,QAAQ,qCAAqC,EAAC;AAC9C,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAI;AAC5E;AACA,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY;AACnC,QAAQ,IAAI,UAAU,CAAC,iBAAiB,EAAE;AAC1C,UAAU,OAAO;AACjB,YAAY,IAAI,KAAK,kBAAkB,IAAI,IAAI,KAAK,UAAU;AAC9D,YAAY,kFAAkF,EAAC;AAC/F;AACA,UAAU,IAAI,IAAI,KAAK,UAAU,EAAE;AACnC,YAAY,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,sIAAsI,EAAC;AAC7K,WAAW;AACX,SAAS,MAAM;AACf,UAAU,OAAO;AACjB,YAAY,IAAI,KAAK,kBAAkB;AACvC,YAAY,mEAAmE,EAAC;AAChF,SAAS;AACT,OAAO,EAAC;AACR,KAAK;AACL;AACA,IAAI,IAAI,CAAC,GAAG,EAAC;AACb,IAAI,IAAI,CAAC,GAAG,EAAC;AACb,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,iBAAgB;AACxC,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,kBAAiB;AAC1C,IAAI,IAAI,IAAI,GAAG,KAAI;AACnB;AACA,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AAC7B,MAAM,IAAI,GAAG,MAAK;AAClB,KAAK,MAAM,IAAI,KAAK,EAAE;AACtB,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,kCAAkC,EAAC;AACvE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,EAAC;AACrB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,EAAC;AACrB,MAAM,OAAO;AACb,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,gBAAgB;AAC9C,QAAQ,gCAAgC,EAAC;AACzC,MAAM,OAAO;AACb,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,iBAAiB;AAC/C,QAAQ,gCAAgC,EAAC;AACzC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC,IAAI,EAAC;AACjE,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,IAAI,EAAC;AACpE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAI;AAC/B,KAAK;AACL;AACA;AACA,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,IAAI,KAAK,kBAAkB,EAAE;AACvC,QAAQ,OAAO;AACf,UAAU,IAAI,YAAY,UAAU;AACpC,UAAU,iFAAiF,EAAC;AAC5F,OAAO,MAAM,IAAI,IAAI,KAAK,UAAU,EAAE;AACtC,QAAQ,OAAO;AACf,UAAU,IAAI,YAAY,YAAY;AACtC,UAAU,mFAAmF,EAAC;AAC9F,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO;AACX,MAAM,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,gBAAgB;AACxD,MAAM,+BAA+B,EAAC;AACtC,IAAI,OAAO;AACX,MAAM,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,iBAAiB;AAC3D,MAAM,gCAAgC,EAAC;AACvC;AACA;AACA,IAAI,QAAQ,GAAE;AACd;AACA;AACA,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,EAAC;AACjC;AACA;AACA,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,IAAI,IAAI,KAAK,kBAAkB,EAAE;AACvC,QAAQ,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,EAAC;AACnC,OAAO,MAAM,IAAI,IAAI,KAAK,UAAU,EAAE;AACtC,QAAQ,IAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,IAAI,EAAC;AAC7C,OAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,kDAAkD,EAAC;AAClF,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,uCAAuC,EAAC;AAC7E;AACA;AACA,IAAI,EAAE,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,EAAC;AACxC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS;AAChD,MAAM,IAAI;AACV,MAAM,IAAI,EAAC;AACX;AACA,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA,EAAE,SAAS,aAAa,EAAE,OAAO,EAAE;AACnC,IAAI,IAAI,OAAM;AACd,IAAI,gBAAgB,CAAC,MAAM,CAAC;AAC5B,MAAM,WAAW,EAAE,OAAO,CAAC,WAAW;AACtC,KAAK,EAAE,YAAY;AACnB,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAC;AACtC,KAAK,EAAC;AACN,IAAI,OAAO,MAAM;AACjB,GAAG;AACH;AACA,EAAE,SAAS,UAAU,EAAE,OAAO,EAAE;AAChC,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,aAAa,IAAI,OAAO,CAAC,EAAE;AACjD,MAAM,OAAO,cAAc,CAAC,OAAO,CAAC;AACpC,KAAK,MAAM;AACX,MAAM,OAAO,aAAa,CAAC,OAAO,CAAC;AACnC,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,UAAU;AACnB,CAAC;AACD;AACA,SAAS,KAAK,EAAE,CAAC,EAAE;AACnB,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC;AACD;AACA,SAAS,IAAI,EAAE,CAAC,EAAE;AAClB,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B,CAAC;AACD;AACA,SAAS,iBAAiB,IAAI;AAC9B;AACA,EAAE,IAAI,UAAU,GAAG,EAAC;AACpB;AACA;AACA;AACA;AACA,EAAE,IAAI,WAAW,GAAG,GAAE;AACtB,EAAE,IAAI,YAAY,GAAG,GAAE;AACvB,EAAE,SAAS,IAAI,EAAE,KAAK,EAAE;AACxB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAClD,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;AACrC,QAAQ,OAAO,WAAW,CAAC,CAAC,CAAC;AAC7B,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,UAAU,EAAE,EAAC;AACnC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAC;AAC1B,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAC;AAC5B,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA;AACA,EAAE,SAAS,KAAK,IAAI;AACpB,IAAI,IAAI,IAAI,GAAG,GAAE;AACjB,IAAI,SAAS,IAAI,IAAI;AACrB,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,EAAC;AAC7C,KAAK;AACL;AACA,IAAI,IAAI,IAAI,GAAG,GAAE;AACjB,IAAI,SAAS,GAAG,IAAI;AACpB,MAAM,IAAI,IAAI,GAAG,GAAG,IAAI,UAAU,EAAE,EAAC;AACrC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAC;AACrB;AACA,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAC;AAC5B,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,EAAC;AAC/C,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC;AACtB,OAAO;AACP;AACA,MAAM,OAAO,IAAI;AACjB,KAAK;AACL;AACA,IAAI,OAAO,MAAM,CAAC,IAAI,EAAE;AACxB,MAAM,GAAG,EAAE,GAAG;AACd,MAAM,QAAQ,EAAE,YAAY;AAC5B,QAAQ,OAAO,IAAI,CAAC;AACpB,WAAW,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;AAC/D,UAAU,IAAI,CAAC,IAAI,CAAC;AACpB,SAAS,CAAC;AACV,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,KAAK,IAAI;AACpB,IAAI,IAAI,KAAK,GAAG,KAAK,GAAE;AACvB,IAAI,IAAI,IAAI,GAAG,KAAK,GAAE;AACtB;AACA,IAAI,IAAI,aAAa,GAAG,KAAK,CAAC,SAAQ;AACtC,IAAI,IAAI,YAAY,GAAG,IAAI,CAAC,SAAQ;AACpC;AACA,IAAI,SAAS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AACjC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAC;AAC3D,KAAK;AACL;AACA,IAAI,OAAO,MAAM,CAAC,YAAY;AAC9B,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAC;AAC1C,KAAK,EAAE;AACP,MAAM,GAAG,EAAE,KAAK,CAAC,GAAG;AACpB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,GAAG,EAAE,UAAU,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAC1C,QAAQ,IAAI,CAAC,MAAM,EAAE,IAAI,EAAC;AAC1B,QAAQ,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC;AAC5C,OAAO;AACP,MAAM,QAAQ,EAAE,YAAY;AAC5B,QAAQ,OAAO,aAAa,EAAE,GAAG,YAAY,EAAE;AAC/C,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,WAAW,IAAI;AAC1B,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAC;AAC9B,IAAI,IAAI,SAAS,GAAG,KAAK,GAAE;AAC3B,IAAI,IAAI,SAAS,GAAG,KAAK,GAAE;AAC3B;AACA,IAAI,IAAI,YAAY,GAAG,SAAS,CAAC,SAAQ;AACzC,IAAI,IAAI,YAAY,GAAG,SAAS,CAAC,SAAQ;AACzC;AACA,IAAI,OAAO,MAAM,CAAC,SAAS,EAAE;AAC7B,MAAM,IAAI,EAAE,YAAY;AACxB,QAAQ,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAAC;AACpD,QAAQ,OAAO,IAAI;AACnB,OAAO;AACP,MAAM,IAAI,EAAE,YAAY;AACxB,QAAQ,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAAC;AACpD,QAAQ,OAAO,IAAI;AACnB,OAAO;AACP,MAAM,QAAQ,EAAE,YAAY;AAC5B,QAAQ,IAAI,UAAU,GAAG,YAAY,GAAE;AACvC,QAAQ,IAAI,UAAU,EAAE;AACxB,UAAU,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,IAAG;AACjD,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,UAAU,KAAK,EAAE,IAAI,EAAE,IAAI;AAC3B,UAAU,YAAY,EAAE;AACxB,UAAU,GAAG,EAAE,UAAU;AACzB,SAAS,CAAC;AACV,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH;AACA;AACA,EAAE,IAAI,WAAW,GAAG,KAAK,GAAE;AAC3B,EAAE,IAAI,UAAU,GAAG,GAAE;AACrB,EAAE,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;AAC9B,IAAI,IAAI,IAAI,GAAG,GAAE;AACjB,IAAI,SAAS,GAAG,IAAI;AACpB,MAAM,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,OAAM;AAClC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAC;AACrB,MAAM,OAAO,IAAI;AACjB,KAAK;AACL;AACA,IAAI,KAAK,GAAG,KAAK,IAAI,EAAC;AACtB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,EAAE;AACpC,MAAM,GAAG,GAAE;AACX,KAAK;AACL;AACA,IAAI,IAAI,IAAI,GAAG,KAAK,GAAE;AACtB,IAAI,IAAI,YAAY,GAAG,IAAI,CAAC,SAAQ;AACpC;AACA,IAAI,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE;AACjD,MAAM,GAAG,EAAE,GAAG;AACd,MAAM,QAAQ,EAAE,YAAY;AAC5B,QAAQ,OAAO,IAAI,CAAC;AACpB,UAAU,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI;AACxC,UAAU,YAAY,EAAE;AACxB,UAAU,GAAG;AACb,SAAS,CAAC;AACV,OAAO;AACP,KAAK,EAAC;AACN;AACA,IAAI,OAAO,MAAM;AACjB,GAAG;AACH;AACA,EAAE,SAAS,OAAO,IAAI;AACtB,IAAI,IAAI,IAAI,GAAG,CAAC,eAAe;AAC/B,MAAM,WAAW;AACjB,MAAM,UAAU,EAAC;AACjB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACpD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAC;AAClE,KAAK,EAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC;AAClB,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;AACxB,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3B,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3B,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,EAAC;AAC3B,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC;AAC5D,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC;AACzC,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,IAAI,EAAE,WAAW;AACrB,IAAI,OAAO,EAAE,OAAO;AACpB,GAAG;AACH,CAAC;AACD;AACA;AACA,IAAI,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAC;AACtC;AACA,IAAI,kBAAkB,GAAG,KAAI;AAC7B;AACA,IAAI,oBAAoB,GAAG,EAAC;AAC5B,IAAI,qBAAqB,GAAG,EAAC;AAC7B;AACA,IAAI,UAAU,GAAG,EAAC;AAClB,IAAI,UAAU,GAAG,EAAC;AAClB,IAAI,aAAa,GAAG,EAAC;AACrB,IAAI,WAAW,GAAG,EAAC;AACnB,IAAI,SAAS,GAAG,EAAC;AACjB,IAAI,cAAc,GAAG,EAAC;AACtB,IAAI,WAAW,GAAG,EAAC;AACnB;AACA,IAAI,QAAQ,GAAG,SAAQ;AACvB,IAAI,cAAc,GAAG,eAAc;AACnC,IAAI,aAAa,GAAG,cAAa;AACjC,IAAI,gBAAgB,GAAG,iBAAgB;AACvC,IAAI,YAAY,GAAG,aAAY;AAC/B,IAAI,cAAc,GAAG,eAAc;AACnC,IAAI,YAAY,GAAG,aAAY;AAC/B,IAAI,aAAa,GAAG,cAAa;AACjC,IAAI,YAAY,GAAG,aAAY;AAC/B,IAAI,YAAY,GAAG,YAAW;AAC9B,IAAI,aAAa,GAAG,cAAa;AACjC,IAAI,WAAW,GAAG,YAAW;AAC7B,IAAI,YAAY,GAAG,YAAW;AAC9B,IAAI,YAAY,GAAG,YAAW;AAC9B,IAAI,uBAAuB,GAAG,uBAAsB;AACpD,IAAI,uBAAuB,GAAG,uBAAsB;AACpD,IAAI,cAAc,GAAG,eAAc;AACnC,IAAI,eAAe,GAAG,gBAAe;AACrC,IAAI,iBAAiB,GAAG,kBAAiB;AACzC,IAAI,gBAAgB,GAAG,iBAAgB;AACvC,IAAI,cAAc,GAAG,eAAc;AACnC,IAAI,cAAc,GAAG,eAAc;AACnC,IAAI,iBAAiB,GAAG,kBAAiB;AACzC,IAAI,gBAAgB,GAAG,iBAAgB;AACvC,IAAI,gBAAgB,GAAG,iBAAgB;AACvC,IAAI,aAAa,GAAG,cAAa;AACjC,IAAI,UAAU,GAAG,WAAU;AAC3B;AACA,IAAI,SAAS,GAAG,UAAS;AACzB;AACA,IAAI,aAAa,GAAG,cAAa;AACjC,IAAI,MAAM,GAAG,OAAM;AACnB,IAAI,MAAM,GAAG,OAAM;AACnB,IAAI,UAAU,GAAG,WAAU;AAC3B,IAAI,WAAW,GAAG,YAAW;AAC7B,IAAI,OAAO,GAAG,QAAO;AACrB,IAAI,QAAQ,GAAG,SAAQ;AACvB,IAAI,WAAW,GAAG,YAAW;AAC7B,IAAI,KAAK,GAAG,MAAK;AACjB;AACA,IAAI,YAAY,GAAG,QAAO;AAC1B,IAAI,aAAa,GAAG,SAAQ;AAC5B;AACA,IAAI,mBAAmB,GAAG,aAAa,GAAG,aAAY;AACtD,IAAI,oBAAoB,GAAG,aAAa,GAAG,cAAa;AACxD,IAAI,gBAAgB,GAAG,UAAU,GAAG,aAAY;AAChD,IAAI,iBAAiB,GAAG,UAAU,GAAG,cAAa;AAClD,IAAI,eAAe,GAAG,gBAAe;AACrC,IAAI,qBAAqB,GAAG,eAAe,GAAG,aAAY;AAC1D,IAAI,sBAAsB,GAAG,eAAe,GAAG,cAAa;AAC5D;AACA,IAAI,cAAc,GAAG;AACrB,EAAE,YAAY;AACd,EAAE,gBAAgB;AAClB,EAAE,cAAc;AAChB,EAAE,iBAAiB;AACnB,EAAE,gBAAgB;AAClB,EAAE,iBAAiB;AACnB,EAAE,UAAU;AACZ,EAAE,aAAa;AACf,EAAE,uBAAuB;AACzB,EAAC;AACD;AACA,IAAI,iBAAiB,GAAG,MAAK;AAC7B,IAAI,yBAAyB,GAAG,MAAK;AACrC;AACA,IAAI,oBAAoB,GAAG,MAAK;AAChC,IAAI,kBAAkB,GAAG,MAAK;AAC9B;AACA,IAAI,eAAe,GAAG,OAAM;AAC5B,IAAI,qBAAqB,GAAG,OAAM;AAClC;AACA,IAAI,YAAY,GAAG,OAAM;AACzB,IAAI,QAAQ,GAAG,OAAM;AACrB,IAAI,SAAS,GAAG,OAAM;AACtB,IAAI,eAAe,GAAG,OAAM;AAC5B,IAAI,aAAa,GAAG,OAAM;AAC1B,IAAI,eAAe,GAAG,OAAM;AAC5B,IAAI,sBAAsB,GAAG,OAAM;AACnC,IAAI,2BAA2B,GAAG,OAAM;AACxC,IAAI,kBAAkB,GAAG,OAAM;AAC/B;AACA,IAAI,UAAU,GAAG,KAAI;AACrB,IAAI,aAAa,GAAG,MAAK;AACzB,IAAI,aAAa,GAAG,MAAK;AACzB,IAAI,aAAa,GAAG,MAAK;AACzB,IAAI,QAAQ,GAAG,KAAI;AACnB,IAAI,WAAW,GAAG,MAAK;AACvB,IAAI,WAAW,GAAG,MAAK;AACvB,IAAI,WAAW,GAAG,MAAK;AACvB,IAAI,OAAO,GAAG,MAAK;AACnB,IAAI,YAAY,GAAG,MAAK;AACxB,IAAI,YAAY,GAAG,MAAK;AACxB,IAAI,YAAY,GAAG,MAAK;AACxB,IAAI,aAAa,GAAG,MAAK;AACzB,IAAI,aAAa,GAAG,MAAK;AACzB,IAAI,aAAa,GAAG,MAAK;AACzB,IAAI,aAAa,GAAG,MAAK;AACzB,IAAI,eAAe,GAAG,MAAK;AAC3B;AACA,IAAI,cAAc,GAAG,EAAC;AACtB;AACA,IAAI,QAAQ,GAAG,KAAI;AACnB,IAAI,OAAO,GAAG,KAAI;AAClB,IAAI,KAAK,GAAG,OAAM;AAClB,IAAI,MAAM,GAAG,OAAM;AACnB,IAAI,UAAU,GAAG,OAAM;AACvB,IAAI,UAAU,GAAG,OAAM;AACvB,IAAI,SAAS,GAAG,IAAG;AACnB,IAAI,OAAO,GAAG,KAAI;AAClB,IAAI,OAAO,GAAG,EAAC;AACf,IAAI,MAAM,GAAG,EAAC;AACd,IAAI,WAAW,GAAG,OAAM;AACxB,IAAI,OAAO,GAAG,IAAG;AACjB;AACA,IAAI,gBAAgB,GAAG,OAAM;AAC7B,IAAI,sBAAsB,GAAG,OAAM;AACnC;AACA,IAAI,UAAU,GAAG;AACjB,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,WAAW,EAAE,GAAG;AAClB,EAAE,qBAAqB,EAAE,GAAG;AAC5B,EAAE,WAAW,EAAE,GAAG;AAClB,EAAE,qBAAqB,EAAE,GAAG;AAC5B,EAAE,WAAW,EAAE,GAAG;AAClB,EAAE,qBAAqB,EAAE,GAAG;AAC5B,EAAE,WAAW,EAAE,GAAG;AAClB,EAAE,qBAAqB,EAAE,GAAG;AAC5B,EAAE,gBAAgB,EAAE,KAAK;AACzB,EAAE,0BAA0B,EAAE,KAAK;AACnC,EAAE,gBAAgB,EAAE,KAAK;AACzB,EAAE,0BAA0B,EAAE,KAAK;AACnC,EAAE,oBAAoB,EAAE,GAAG;AAC3B,EAAC;AACD;AACA;AACA;AACA;AACA,IAAI,wBAAwB,GAAG;AAC/B,EAAE,gCAAgC;AAClC,EAAE,0CAA0C;AAC5C,EAAE,0CAA0C;AAC5C,EAAE,oDAAoD;AACtD,EAAE,gCAAgC;AAClC,EAAE,0CAA0C;AAC5C,EAAE,0CAA0C;AAC5C,EAAE,oDAAoD;AACtD,EAAC;AACD;AACA,IAAI,YAAY,GAAG;AACnB,EAAE,OAAO,EAAE,GAAG;AACd,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,OAAO,EAAE,GAAG;AACd,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,QAAQ,EAAE,GAAG;AACf,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,SAAS,EAAE,GAAG;AAChB,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,UAAU,EAAE,GAAG;AACjB,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,KAAK,EAAE,GAAG;AACZ,EAAE,QAAQ,EAAE,GAAG;AACf,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,QAAQ,EAAE,GAAG;AACf,EAAC;AACD;AACA,IAAI,UAAU,GAAG;AACjB,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,gBAAgB,EAAE,KAAK;AACzB,EAAE,gBAAgB,EAAE,KAAK;AACzB,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAC;AACD;AACA,IAAI,UAAU,GAAG;AACjB,EAAE,MAAM,EAAE,oBAAoB;AAC9B,EAAE,MAAM,EAAE,kBAAkB;AAC5B,EAAC;AACD;AACA,IAAI,eAAe,GAAG;AACtB,EAAE,IAAI,EAAE,KAAK;AACb,EAAE,KAAK,EAAE,MAAM;AACf,EAAC;AACD;AACA,SAAS,YAAY,EAAE,CAAC,EAAE;AAC1B,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACzB,IAAI,YAAY,CAAC,CAAC,CAAC;AACnB,IAAI,aAAa,CAAC,CAAC,CAAC;AACpB,CAAC;AACD;AACA;AACA,SAAS,SAAS,EAAE,KAAK,EAAE;AAC3B,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACpC,IAAI,IAAI,CAAC,KAAK,UAAU,EAAE;AAC1B,MAAM,OAAO,CAAC,CAAC;AACf,KAAK,MAAM,IAAI,CAAC,KAAK,UAAU,EAAE;AACjC,MAAM,OAAO,CAAC;AACd,KAAK;AACL,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAC3B,GAAG,CAAC;AACJ,CAAC;AACD;AACA,SAAS,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE;AAC5D,EAAE,IAAI,CAAC,OAAO,GAAG,QAAO;AACxB,EAAE,IAAI,CAAC,UAAU,GAAG,WAAU;AAC9B,EAAE,IAAI,CAAC,OAAO,GAAG,QAAO;AACxB,EAAE,IAAI,CAAC,MAAM,GAAG,OAAM;AACtB,CAAC;AACD;AACA,SAAS,QAAQ,EAAE,IAAI,EAAE;AACzB,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC;AACnE,CAAC;AACD;AACA,SAAS,gBAAgB,EAAE,MAAM,EAAE;AACnC,EAAE,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;AACrD,CAAC;AACD;AACA,SAAS,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE;AACzC,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,KAAI;AACrB,EAAE,IAAI,IAAI,KAAK,UAAU,EAAE;AAC3B,IAAI,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,OAAM;AACjC,IAAI,OAAO,IAAI,WAAW;AAC1B,MAAM,IAAI;AACV,MAAM,OAAO,IAAI,CAAC;AAClB,MAAM,OAAO,IAAI,CAAC;AAClB,MAAM,MAAM,CAAC;AACb,GAAG,MAAM,IAAI,IAAI,KAAK,SAAS,EAAE;AACjC,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,KAAI;AACvB,IAAI,OAAO,IAAI,WAAW;AAC1B,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,IAAI,CAAC,UAAU;AACrB,MAAM,IAAI,CAAC,OAAO;AAClB,MAAM,MAAM,CAAC;AACb,GAAG,MAAM,IAAI,IAAI,KAAK,cAAc,EAAE;AACtC,IAAI,OAAO,IAAI,WAAW;AAC1B,MAAM,KAAK;AACX,MAAM,KAAK;AACX,MAAM,KAAK;AACX,MAAM,MAAM,CAAC;AACb,GAAG,MAAM,IAAI,IAAI,KAAK,WAAW,EAAE;AACnC,IAAI,IAAI,OAAO,GAAG,MAAK;AACvB,IAAI,IAAI,UAAU,GAAG,MAAK;AAC1B,IAAI,IAAI,OAAO,GAAG,MAAK;AACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC9C,MAAM,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAC;AAC9B,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;AACtC,QAAQ,OAAO,GAAG,KAAI;AACtB,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAChD,QAAQ,UAAU,GAAG,KAAI;AACzB,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9C,QAAQ,OAAO,GAAG,KAAI;AACtB,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;AAC7C,QAAQ,OAAO,GAAG,KAAI;AACtB,QAAQ,IAAI,OAAO,GAAG,MAAM,CAAC,KAAI;AACjC,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE;AAC1B,UAAU,UAAU,GAAG,KAAI;AAC3B,SAAS;AACT,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE;AAC1B,UAAU,OAAO,GAAG,KAAI;AACxB,SAAS;AACT,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC5C,QAAQ,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,QAAO;AAChD,QAAQ,UAAU,GAAG,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,WAAU;AACzD,QAAQ,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,QAAO;AAChD,OAAO;AACP,KAAK;AACL,IAAI,OAAO,IAAI,WAAW;AAC1B,MAAM,OAAO;AACb,MAAM,UAAU;AAChB,MAAM,OAAO;AACb,MAAM,MAAM,CAAC;AACb,GAAG,MAAM;AACT,IAAI,OAAO,IAAI,WAAW;AAC1B,MAAM,IAAI,KAAK,WAAW;AAC1B,MAAM,IAAI,KAAK,aAAa;AAC5B,MAAM,IAAI,KAAK,UAAU;AACzB,MAAM,MAAM,CAAC;AACb,GAAG;AACH,CAAC;AACD;AACA,IAAI,UAAU,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,EAAC;AACrE;AACA,SAAS,QAAQ;AACjB,EAAE,EAAE;AACJ,EAAE,WAAW;AACb,EAAE,UAAU;AACZ,EAAE,MAAM;AACR,EAAE,WAAW;AACb,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,gBAAgB;AAClB,EAAE,YAAY;AACd,EAAE,cAAc;AAChB,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,YAAY;AACd,EAAE,KAAK;AACP,EAAE,MAAM,EAAE;AACV,EAAE,IAAI,eAAe,GAAG,cAAc,CAAC,OAAM;AAC7C;AACA,EAAE,IAAI,cAAc,GAAG;AACvB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,UAAU,EAAE,KAAK;AACrB,IAAI,kBAAkB,EAAE,KAAK;AAC7B,IAAG;AACH,EAAE,IAAI,UAAU,CAAC,gBAAgB,EAAE;AACnC,IAAI,cAAc,CAAC,GAAG,GAAG,WAAU;AACnC,IAAI,cAAc,CAAC,GAAG,GAAG,WAAU;AACnC,GAAG;AACH;AACA,EAAE,IAAI,aAAa,GAAG,UAAU,CAAC,uBAAsB;AACvD,EAAE,IAAI,cAAc,GAAG,UAAU,CAAC,mBAAkB;AACpD,EAAE,IAAI,eAAe,GAAG,UAAU,CAAC,wBAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,YAAY,GAAG;AACrB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,OAAO,EAAE,MAAM,CAAC,OAAO;AAC3B,IAAG;AACH,EAAE,IAAI,SAAS,GAAG,GAAE;AACpB,EAAE,IAAI,cAAc,GAAG,GAAE;AACzB,EAAE,IAAI,QAAQ,GAAG,GAAE;AACnB,EAAE,IAAI,YAAY,GAAG,GAAE;AACvB;AACA,EAAE,SAAS,QAAQ,EAAE,IAAI,EAAE;AAC3B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AACjC,GAAG;AACH;AACA,EAAE,SAAS,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;AACxC,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAC;AAC9B,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAC;AAC9B,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAI;AACjD,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAG;AACxB,GAAG;AACH;AACA,EAAE,SAAS,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAC;AAC9B,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAC;AAC9B,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC7B,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,GAAE;AACvC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,GAAE;AACpC,KAAK,MAAM;AACX,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,KAAI;AACjD,KAAK;AACL,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,KAAI;AAC7B,GAAG;AACH;AACA;AACA,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAC;AAChC;AACA;AACA,EAAE,SAAS,CAAC,cAAc,EAAE,QAAQ,EAAC;AACrC,EAAE,aAAa,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC;AAC1D,EAAE,aAAa,CAAC,gBAAgB,EAAE,uBAAuB;AACzD,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAC;AAC/B,EAAE,aAAa,CAAC,YAAY,EAAE,mBAAmB;AACjD,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAC;AACvC;AACA;AACA,EAAE,SAAS,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,EAAC;AAChD,EAAE,aAAa,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAC;AACnD,EAAE,aAAa,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC;AACpD,EAAE,aAAa,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,EAAC;AAChD;AACA;AACA,EAAE,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAC;AACrE;AACA;AACA,EAAE,SAAS,CAAC,aAAa,EAAE,YAAY,EAAC;AACxC,EAAE,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAC;AACjD;AACA;AACA,EAAE,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAC;AACnD;AACA;AACA,EAAE,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,EAAC;AAC9C;AACA;AACA,EAAE,SAAS,CAAC,uBAAuB,EAAE,sBAAsB,EAAC;AAC5D,EAAE,aAAa,CAAC,uBAAuB,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC;AACjE;AACA;AACA,EAAE,SAAS,CAAC,cAAc,EAAE,2BAA2B,EAAC;AACxD,EAAE,SAAS,CAAC,eAAe,EAAE,kBAAkB,EAAC;AAChD,EAAE,aAAa,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,EAAC;AAChE;AACA;AACA,EAAE,SAAS,CAAC,gBAAgB,EAAE,eAAe,EAAC;AAC9C,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC,EAAC;AAClD,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC;AAClE,EAAE,aAAa,CAAC,iBAAiB,EAAE,mBAAmB;AACtD,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAC;AAC1C,EAAE,aAAa,CAAC,gBAAgB,EAAE,mBAAmB;AACrD,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAC;AACzC;AACA;AACA,EAAE,SAAS,CAAC,gBAAgB,EAAE,eAAe,EAAC;AAC9C,EAAE,aAAa,CAAC,aAAa,EAAE,SAAS;AACxC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAC;AAC1D;AACA;AACA,EAAE,aAAa,CAAC,UAAU,EAAE,UAAU;AACtC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,WAAW,GAAG;AACpB,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,OAAO,EAAE,YAAY;AACzB,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,OAAO,EAAE,YAAY;AACzB,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,UAAU,EAAE,cAAc,CAAC,KAAK;AACpC,IAAI,GAAG,EAAE,cAAc;AACvB,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,WAAW,EAAE,gBAAgB;AACjC,IAAI,UAAU,EAAE,UAAU;AAC1B;AACA,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,YAAY,EAAE,YAAY;AAC9B,IAAG;AACH;AACA,EAAE,IAAI,eAAe,GAAG;AACxB,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,YAAY,EAAE,YAAY;AAC9B,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,cAAc,EAAE,cAAc;AAClC,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,eAAe,EAAE,eAAe;AACpC,IAAG;AACH;AACA,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC/B,IAAI,WAAW,CAAC,WAAW,GAAG,YAAW;AACzC,GAAG,EAAC;AACJ;AACA,EAAE,IAAI,cAAc,EAAE;AACtB,IAAI,eAAe,CAAC,UAAU,GAAG,CAAC,OAAO,EAAC;AAC1C,IAAI,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE;AAC1E,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;AACnB,QAAQ,OAAO,CAAC,CAAC,CAAC;AAClB,OAAO;AACP,MAAM,OAAO,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;AAClC,QAAQ,OAAO,sBAAsB,GAAG,CAAC;AACzC,OAAO,CAAC;AACR,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,eAAe,GAAG,EAAC;AACzB,EAAE,SAAS,qBAAqB,IAAI;AACpC,IAAI,IAAI,GAAG,GAAG,iBAAiB,GAAE;AACjC,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,KAAI;AACvB,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC3B,IAAI,GAAG,CAAC,EAAE,GAAG,eAAe,GAAE;AAC9B;AACA,IAAI,GAAG,CAAC,OAAO,GAAG,IAAG;AACrB;AACA;AACA,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,EAAC;AAClC,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG;AAC9B,MAAM,KAAK,EAAE,IAAI;AACjB,MAAK;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACrD,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAC;AAClD,KAAK,EAAC;AACN;AACA;AACA,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY;AACjC,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAC;AAC/B,MAAM,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,YAAY,GAAE;AAC7C,MAAM,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAC;AACxC,MAAM,GAAG,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;AACnD,QAAQ,KAAK;AACb,UAAU,OAAO,EAAE,IAAI,EAAE,IAAI;AAC7B,UAAU,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAC;AAC/E,QAAO;AACP;AACA,MAAM,eAAe,CAAC,wBAAwB,GAAG,yBAAwB;AACzE,KAAK,EAAC;AACN;AACA;AACA,IAAI,IAAI,QAAQ,GAAG,GAAG,CAAC,IAAI,GAAG,GAAE;AAChC,IAAI,IAAI,WAAW,GAAG,GAAG,CAAC,OAAO,GAAG,GAAE;AACtC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;AAC1D,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE;AACjD,QAAQ,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAC;AACnE,QAAQ,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAC;AACzE,OAAO;AACP,KAAK,EAAC;AACN;AACA;AACA,IAAI,IAAI,SAAS,GAAG,GAAG,CAAC,SAAS,GAAG,GAAE;AACtC,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACzD,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAC;AACzE,KAAK,EAAC;AACN;AACA;AACA,IAAI,GAAG,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,CAAC,EAAE;AACrC,MAAM,QAAQ,CAAC,CAAC,IAAI;AACpB,QAAQ,KAAK,UAAU;AACvB,UAAU,IAAI,OAAO,GAAG;AACxB,YAAY,MAAM;AAClB,YAAY,MAAM,CAAC,OAAO;AAC1B,YAAY,MAAM,CAAC,KAAK;AACxB,YAAY,GAAG,CAAC,OAAO;AACvB,YAAW;AACX,UAAU,OAAO,KAAK,CAAC,GAAG;AAC1B,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ;AAClC,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5D,YAAY,GAAG,CAAC;AAChB,QAAQ,KAAK,UAAU;AACvB,UAAU,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;AAChD,QAAQ,KAAK,aAAa;AAC1B,UAAU,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC;AAClD,QAAQ,KAAK,WAAW;AACxB,UAAU,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;AAC1C,QAAQ,KAAK,SAAS;AACtB,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AACnC,UAAU,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG;AAC3B,QAAQ,KAAK,cAAc;AAC3B,UAAU,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClC,QAAQ,KAAK,WAAW;AACxB,UAAU,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AACzC,YAAY,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACvC,WAAW,CAAC;AACZ,OAAO;AACP,MAAK;AACL;AACA,IAAI,GAAG,CAAC,WAAW,GAAG,GAAE;AACxB;AACA,IAAI,IAAI,YAAY,GAAG,GAAE;AACzB,IAAI,GAAG,CAAC,WAAW,GAAG,UAAU,IAAI,EAAE;AACtC,MAAM,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,EAAC;AACnC,MAAM,IAAI,EAAE,IAAI,YAAY,EAAE;AAC9B,QAAQ,OAAO,YAAY,CAAC,EAAE,CAAC;AAC/B,OAAO;AACP,MAAM,IAAI,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,EAAC;AAC5C,MAAM,IAAI,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,eAAe,GAAE;AAClE,OAAO;AACP,MAAM,IAAI,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAC;AACnD,MAAM,OAAO,MAAM;AACnB,MAAK;AACL;AACA,IAAI,OAAO,GAAG;AACd,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,YAAY,EAAE,OAAO,EAAE;AAClC,IAAI,IAAI,aAAa,GAAG,OAAO,CAAC,OAAM;AACtC,IAAI,IAAI,cAAc,GAAG,OAAO,CAAC,QAAO;AACxC;AACA,IAAI,IAAI,cAAa;AACrB,IAAI,IAAI,SAAS,IAAI,aAAa,EAAE;AACpC,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,SAAS,EAAC;AAC5C,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE;AAC7D,QAAQ,OAAO,KAAK;AACpB,OAAO,EAAC;AACR,MAAM,aAAa,CAAC,MAAM,GAAG,MAAK;AAClC,KAAK,MAAM,IAAI,SAAS,IAAI,cAAc,EAAE;AAC5C,MAAM,IAAI,GAAG,GAAG,cAAc,CAAC,SAAS,EAAC;AACzC,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AACnE,QAAQ,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;AACrC,OAAO,EAAC;AACR,KAAK;AACL;AACA,IAAI,OAAO,aAAa;AACxB,GAAG;AACH;AACA,EAAE,SAAS,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE;AAC3C,IAAI,IAAI,aAAa,GAAG,OAAO,CAAC,OAAM;AACtC,IAAI,IAAI,cAAc,GAAG,OAAO,CAAC,QAAO;AACxC;AACA,IAAI,IAAI,aAAa,IAAI,aAAa,EAAE;AACxC,MAAM,IAAI,WAAW,GAAG,aAAa,CAAC,aAAa,EAAC;AACpD,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,WAAW,GAAG,gBAAgB,CAAC,cAAc,CAAC,WAAW,EAAC;AAClE,QAAQ,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,4BAA4B,EAAC;AAClE,QAAQ,OAAO,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE;AACtD,UAAU,IAAI,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAC;AACjD,UAAU,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AACjC,UAAU,KAAK,CAAC,GAAG;AACnB,YAAY,MAAM,CAAC,WAAW;AAC9B,YAAY,OAAO;AACnB,YAAY,WAAW,EAAC;AACxB,UAAU,IAAI,OAAO,GAAG,MAAM,CAAC,QAAO;AACtC,UAAU,KAAK,CAAC,GAAG;AACnB,YAAY,OAAO;AACnB,YAAY,GAAG,GAAG,mBAAmB;AACrC,YAAY,WAAW,GAAG,QAAQ,EAAC;AACnC,UAAU,KAAK,CAAC,GAAG;AACnB,YAAY,OAAO;AACnB,YAAY,GAAG,GAAG,oBAAoB;AACtC,YAAY,WAAW,GAAG,SAAS,EAAC;AACpC,UAAU,OAAO,WAAW;AAC5B,SAAS,CAAC;AACV,OAAO,MAAM;AACb,QAAQ,OAAO,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE;AACtD,UAAU,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AACjC,UAAU,KAAK,CAAC,GAAG;AACnB,YAAY,MAAM,CAAC,WAAW;AAC9B,YAAY,OAAO;AACnB,YAAY,MAAM,EAAC;AACnB,UAAU,IAAI,OAAO,GAAG,MAAM,CAAC,QAAO;AACtC,UAAU,KAAK,CAAC,GAAG;AACnB,YAAY,OAAO;AACnB,YAAY,GAAG,GAAG,mBAAmB;AACrC,YAAY,OAAO,GAAG,GAAG,GAAG,qBAAqB,EAAC;AAClD,UAAU,KAAK,CAAC,GAAG;AACnB,YAAY,OAAO;AACnB,YAAY,GAAG,GAAG,oBAAoB;AACtC,YAAY,OAAO,GAAG,GAAG,GAAG,sBAAsB,EAAC;AACnD,UAAU,OAAO,MAAM;AACvB,SAAS,CAAC;AACV,OAAO;AACP,KAAK,MAAM,IAAI,aAAa,IAAI,cAAc,EAAE;AAChD,MAAM,IAAI,GAAG,GAAG,cAAc,CAAC,aAAa,EAAC;AAC7C,MAAM,OAAO,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AAC1D,QAAQ,IAAI,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAC;AACrD,QAAQ,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC/B,QAAQ,IAAI,iBAAiB,GAAG,MAAM,CAAC,YAAW;AAClD,QAAQ,IAAI,WAAW,GAAG,KAAK,CAAC,GAAG;AACnC,UAAU,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,EAAC;AACvE;AACA,QAAQ,OAAO,CAAC,QAAQ,CAAC,YAAY;AACrC,UAAU,GAAG,CAAC,MAAM,CAAC,KAAK;AAC1B,YAAY,GAAG,GAAG,gBAAgB,GAAG,IAAI,GAAG,WAAW;AACvD,YAAY,4BAA4B,EAAC;AACzC,SAAS,EAAC;AACV;AACA,QAAQ,KAAK,CAAC,GAAG;AACjB,UAAU,iBAAiB;AAC3B,UAAU,OAAO;AACjB,UAAU,WAAW,EAAC;AACtB,QAAQ,IAAI,OAAO,GAAG,MAAM,CAAC,QAAO;AACpC,QAAQ,KAAK,CAAC,GAAG;AACjB,UAAU,OAAO;AACjB,UAAU,GAAG,GAAG,mBAAmB;AACnC,UAAU,WAAW,GAAG,GAAG,GAAG,WAAW,GAAG,SAAS;AACrD,UAAU,OAAO,GAAG,GAAG,GAAG,qBAAqB,EAAC;AAChD,QAAQ,KAAK,CAAC,GAAG;AACjB,UAAU,OAAO;AACjB,UAAU,GAAG,GAAG,oBAAoB;AACpC,UAAU,WAAW;AACrB,UAAU,GAAG,GAAG,WAAW,GAAG,UAAU;AACxC,UAAU,OAAO,GAAG,GAAG,GAAG,sBAAsB,EAAC;AACjD,QAAQ,OAAO,WAAW;AAC1B,OAAO,CAAC;AACR,KAAK,MAAM;AACX,MAAM,OAAO,IAAI;AACjB,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,oBAAoB,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE;AAC5D,IAAI,IAAI,aAAa,GAAG,OAAO,CAAC,OAAM;AACtC,IAAI,IAAI,cAAc,GAAG,OAAO,CAAC,QAAO;AACxC;AACA,IAAI,SAAS,QAAQ,EAAE,KAAK,EAAE;AAC9B,MAAM,IAAI,KAAK,IAAI,aAAa,EAAE;AAClC,QAAQ,IAAI,GAAG,GAAG,aAAa,CAAC,KAAK,EAAC;AACtC,QAAQ,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,CAAC,UAAU,EAAC;AAC9E;AACA,QAAQ,IAAI,QAAQ,GAAG,KAAI;AAC3B,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAC;AACzB,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAC;AACzB,QAAQ,IAAI,CAAC,EAAE,EAAC;AAChB,QAAQ,IAAI,OAAO,IAAI,GAAG,EAAE;AAC5B,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,EAAC;AAC3B,UAAU,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,CAAC,UAAU,EAAC;AACrE,SAAS,MAAM;AACf,UAAU,QAAQ,GAAG,MAAK;AAC1B,SAAS;AACT,QAAQ,IAAI,QAAQ,IAAI,GAAG,EAAE;AAC7B,UAAU,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,EAAC;AAC5B,UAAU,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,CAAC,UAAU,EAAC;AACrE,SAAS,MAAM;AACf,UAAU,QAAQ,GAAG,MAAK;AAC1B,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,WAAW;AAC9B,UAAU,CAAC,QAAQ,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO;AACzD,UAAU,CAAC,QAAQ,IAAI,WAAW,IAAI,WAAW,CAAC,UAAU;AAC5D,UAAU,CAAC,QAAQ,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO;AACzD,UAAU,UAAU,GAAG,EAAE,KAAK,EAAE;AAChC,YAAY,IAAI,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,QAAO;AAC5C,YAAY,IAAI,KAAK,GAAG,EAAC;AACzB,YAAY,IAAI,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE;AACnC,cAAc,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAC;AAC1E,aAAa;AACb,YAAY,IAAI,KAAK,GAAG,EAAC;AACzB,YAAY,IAAI,EAAE,QAAQ,IAAI,GAAG,CAAC,EAAE;AACpC,cAAc,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,EAAC;AAC3E,aAAa;AACb,YAAY,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;AACvC,WAAW,CAAC;AACZ,OAAO,MAAM,IAAI,KAAK,IAAI,cAAc,EAAE;AAC1C,QAAQ,IAAI,MAAM,GAAG,cAAc,CAAC,KAAK,EAAC;AAC1C,QAAQ,IAAI,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AACrE,UAAU,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAC;AAC7C;AACA,UAAU,OAAO,CAAC,QAAQ,CAAC,YAAY;AACvC,YAAY,GAAG,CAAC,MAAM,CAAC,KAAK;AAC5B,cAAc,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG,aAAa;AACrD,cAAc,UAAU,GAAG,KAAK,EAAC;AACjC,WAAW,EAAC;AACZ;AACA,UAAU,IAAI,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,QAAO;AAC1C,UAAU,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAC;AAC5C,UAAU,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAC;AAC5C,UAAU,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG;AAC/B,YAAY,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW;AACrD,YAAY,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC;AACpE,UAAU,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG;AAC/B,YAAY,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY;AACvD,YAAY,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC;AACrE;AACA,UAAU,OAAO,CAAC,QAAQ,CAAC,YAAY;AACvC,YAAY,GAAG,CAAC,MAAM,CAAC,KAAK;AAC5B,cAAc,KAAK,GAAG,OAAO;AAC7B,cAAc,KAAK,GAAG,KAAK;AAC3B,cAAc,UAAU,GAAG,KAAK,EAAC;AACjC,WAAW,EAAC;AACZ;AACA,UAAU,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAC7C,SAAS,EAAC;AACV,QAAQ,IAAI,WAAW,EAAE;AACzB,UAAU,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,WAAW,CAAC,QAAO;AAChE,UAAU,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,WAAW,CAAC,WAAU;AACzE,UAAU,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,WAAW,CAAC,QAAO;AAChE,SAAS;AACT,QAAQ,OAAO,MAAM;AACrB,OAAO,MAAM,IAAI,WAAW,EAAE;AAC9B,QAAQ,OAAO,IAAI,WAAW;AAC9B,UAAU,WAAW,CAAC,OAAO;AAC7B,UAAU,WAAW,CAAC,UAAU;AAChC,UAAU,WAAW,CAAC,OAAO;AAC7B,UAAU,UAAU,GAAG,EAAE,KAAK,EAAE;AAChC,YAAY,IAAI,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,QAAO;AAC5C,YAAY,OAAO;AACnB,cAAc,CAAC,EAAE,CAAC;AAClB,cAAc,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,mBAAmB,CAAC;AAC1D,cAAc,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;AAC5D,WAAW,CAAC;AACZ,OAAO,MAAM;AACb,QAAQ,OAAO,IAAI;AACnB,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAC;AACvC;AACA,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,IAAI,YAAY,GAAG,SAAQ;AACjC,MAAM,QAAQ,GAAG,IAAI,WAAW;AAChC,QAAQ,QAAQ,CAAC,OAAO;AACxB,QAAQ,QAAQ,CAAC,UAAU;AAC3B,QAAQ,QAAQ,CAAC,OAAO;AACxB,QAAQ,UAAU,GAAG,EAAE,KAAK,EAAE;AAC9B,UAAU,IAAI,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AACxD,UAAU,IAAI,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,QAAO;AAC1C,UAAU,KAAK,CAAC,GAAG;AACnB,YAAY,OAAO;AACnB,YAAY,GAAG,GAAG,gBAAgB;AAClC,YAAY,QAAQ,CAAC,CAAC,CAAC,EAAC;AACxB,UAAU,KAAK,CAAC,GAAG;AACnB,YAAY,OAAO;AACnB,YAAY,GAAG,GAAG,iBAAiB;AACnC,YAAY,QAAQ,CAAC,CAAC,CAAC,EAAC;AACxB,UAAU,OAAO,QAAQ;AACzB,SAAS,EAAC;AACV,KAAK;AACL;AACA,IAAI,OAAO;AACX,MAAM,QAAQ,EAAE,QAAQ;AACxB,MAAM,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC;AAC1C,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,oBAAoB,EAAE,OAAO,EAAE,UAAU,EAAE;AACtD,IAAI,IAAI,aAAa,GAAG,OAAO,CAAC,OAAM;AACtC,IAAI,IAAI,aAAa;AACrB,MAAM,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,QAAQ;AAC/C,MAAM,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,SAAQ;AAC/C,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACtD,QAAQ,OAAO,IAAI;AACnB,OAAO;AACP,MAAM,IAAI,gBAAgB,GAAG,UAAU,CAAC,OAAM;AAC9C,MAAM,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAC;AACrD,MAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC1F,QAAQ,IAAI,QAAQ,GAAG,GAAE;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACrD,UAAU,OAAO,CAAC,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,6DAA6D,EAAC;AACtI,UAAU,QAAQ,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAC;AAC/E,SAAS;AACT,QAAQ,OAAO,QAAQ;AACvB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA,EAAE,SAAS,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE;AACxD,IAAI,IAAI,aAAa,GAAG,OAAO,CAAC,OAAM;AACtC,IAAI,IAAI,cAAc,GAAG,OAAO,CAAC,QAAO;AACxC;AACA,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE;AAChC,MAAM,IAAI,IAAI,IAAI,aAAa,EAAE;AACjC,QAAQ,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC;AACpD,QAAQ,OAAO,CAAC,QAAQ,CAAC,YAAY;AACrC,UAAU,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,YAAY,EAAE,EAAC;AAC1E,SAAS,EAAC;AACV,QAAQ,IAAI,MAAM,GAAG,gBAAgB,CAAC,YAAY;AAClD,UAAU,OAAO,EAAE;AACnB,SAAS,EAAC;AACV,QAAQ,MAAM,CAAC,EAAE,GAAG,GAAE;AACtB,QAAQ,OAAO,MAAM;AACrB,OAAO,MAAM,IAAI,IAAI,IAAI,cAAc,EAAE;AACzC,QAAQ,IAAI,GAAG,GAAG,cAAc,CAAC,IAAI,EAAC;AACtC,QAAQ,OAAO,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AAC5D,UAAU,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAC;AAC1C,UAAU,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAC;AAClE,UAAU,OAAO,CAAC,QAAQ,CAAC,YAAY;AACvC,YAAY,KAAK;AACjB,cAAc,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU;AAC3C,cAAc,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG;AACnC,cAAc,EAAE,EAAE,GAAG;AACrB,cAAc,GAAG,CAAC,OAAO,EAAE,IAAI,EAAC;AAChC,WAAW,EAAC;AACZ,UAAU,OAAO,EAAE;AACnB,SAAS,CAAC;AACV,OAAO;AACP,MAAM,OAAO,IAAI;AACjB,KAAK;AACL;AACA,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC,MAAM,EAAC;AAClC,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC,MAAM,EAAC;AAClC;AACA,IAAI,IAAI,OAAO,GAAG,KAAI;AACtB,IAAI,IAAI,QAAO;AACf,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC1C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAC;AAC5E,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE;AACvD,QAAQ,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAChC,OAAO,EAAC;AACR,KAAK,MAAM;AACX,MAAM,OAAO,GAAG,IAAI,WAAW;AAC/B,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;AACxD,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;AAC9D,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;AACxD,QAAQ,UAAU,GAAG,EAAE,KAAK,EAAE;AAC9B,UAAU,IAAI,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,OAAM;AAC9C,UAAU,IAAI,OAAM;AACpB,UAAU,IAAI,IAAI,EAAE;AACpB,YAAY,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AAC5C,WAAW,MAAM;AACjB,YAAY,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,EAAC;AACzD,WAAW;AACX,UAAU,IAAI,OAAM;AACpB,UAAU,IAAI,IAAI,EAAE;AACpB,YAAY,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AAC5C,WAAW,MAAM;AACjB,YAAY,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,EAAC;AACzD,WAAW;AACX,UAAU,IAAI,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,MAAM,GAAG,GAAG,GAAG,OAAM;AAC1E,UAAU,OAAO,CAAC,QAAQ,CAAC,YAAY;AACvC,YAAY,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC,QAAO;AACxC,WAAW,EAAC;AACZ,UAAU,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;AACzC,SAAS,EAAC;AACV,KAAK;AACL;AACA,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,OAAO,EAAE,OAAO;AACtB,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE;AACpC,IAAI,IAAI,aAAa,GAAG,OAAO,CAAC,OAAM;AACtC,IAAI,IAAI,cAAc,GAAG,OAAO,CAAC,QAAO;AACxC;AACA;AACA;AACA;AACA,IAAI,IAAI,UAAU,GAAG,GAAE;AACvB,IAAI,IAAI,SAAS,GAAG,MAAK;AACzB;AACA,IAAI,SAAS,QAAQ,IAAI;AACzB,MAAM,IAAI,KAAK,IAAI,aAAa,EAAE;AAClC,QAAQ,IAAI,GAAG,GAAG,aAAa,CAAC,KAAK,EAAC;AACtC,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AACjE,UAAU,GAAG,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,EAAC;AAC7C,SAAS;AACT;AACA,QAAQ,SAAS,GAAG,KAAI;AACxB,QAAQ,UAAU,CAAC,GAAG,GAAG,IAAG;AAC5B;AACA,QAAQ,OAAO,gBAAgB,CAAC,UAAU,GAAG,EAAE;AAC/C,UAAU,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,EAAC;AACjD,UAAU,IAAI,MAAM,EAAE;AACtB,YAAY,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AACnC,WAAW,MAAM;AACjB,YAAY,OAAO,MAAM;AACzB,WAAW;AACX,SAAS,CAAC;AACV,OAAO,MAAM,IAAI,KAAK,IAAI,cAAc,EAAE;AAC1C,QAAQ,SAAS,GAAG,KAAI;AACxB,QAAQ,IAAI,GAAG,GAAG,cAAc,CAAC,KAAK,EAAC;AACvC,QAAQ,OAAO,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AAC5D,UAAU,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAC;AAC7C,UAAU,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,UAAU,GAAG,MAAM,GAAG,GAAG,CAAC;AACtE,SAAS,CAAC;AACV,OAAO;AACP,MAAM,OAAO,IAAI;AACjB,KAAK;AACL;AACA,IAAI,IAAI,GAAG,GAAG,QAAQ,GAAE;AACxB;AACA,IAAI,IAAI,cAAc,GAAG,MAAK;AAC9B;AACA,IAAI,SAAS,aAAa,IAAI;AAC9B,MAAM,IAAI,UAAU,IAAI,aAAa,EAAE;AACvC,QAAQ,IAAI,QAAQ,GAAG,aAAa,CAAC,UAAU,EAAC;AAChD,QAAQ,UAAU,CAAC,QAAQ,GAAG,SAAQ;AACtC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;AACpC,UAAU,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAC;AAC3E,UAAU,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC,EAAC;AAChD,UAAU,cAAc,GAAG,KAAI;AAC/B,SAAS,MAAM,IAAI,QAAQ,EAAE;AAC7B,UAAU,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAC;AACvD,UAAU,cAAc,GAAG,KAAI;AAC/B,UAAU,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,CAAC,UAAU,EAAC;AACvE,SAAS;AACT;AACA,QAAQ,IAAI,MAAM,GAAG,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE;AAC5D,UAAU,IAAI,QAAQ,EAAE;AACxB,YAAY,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAC;AAC3C,YAAY,GAAG,CAAC,QAAQ,GAAG,OAAM;AACjC,YAAY,OAAO,MAAM;AACzB,WAAW;AACX,UAAU,GAAG,CAAC,QAAQ,GAAG,KAAI;AAC7B,UAAU,OAAO,IAAI;AACrB,SAAS,EAAC;AACV,QAAQ,MAAM,CAAC,KAAK,GAAG,SAAQ;AAC/B,QAAQ,OAAO,MAAM;AACrB,OAAO,MAAM,IAAI,UAAU,IAAI,cAAc,EAAE;AAC/C,QAAQ,cAAc,GAAG,KAAI;AAC7B;AACA,QAAQ,IAAI,GAAG,GAAG,cAAc,CAAC,UAAU,EAAC;AAC5C,QAAQ,OAAO,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AAC5D,UAAU,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AACjC;AACA,UAAU,IAAI,cAAc,GAAG,MAAM,CAAC,aAAY;AAClD,UAAU,IAAI,aAAa,GAAG,MAAM,CAAC,SAAQ;AAC7C;AACA,UAAU,IAAI,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAC;AAClD,UAAU,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAC;AAC1C,UAAU,IAAI,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAC;AAC9E;AACA,UAAU,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;AAC5C,aAAa,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,CAAC;AACpF,aAAa,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,EAAC;AACnF;AACA,UAAU,OAAO,CAAC,QAAQ,CAAC,YAAY;AACvC,YAAY,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;AAChC,cAAc,GAAG,GAAG,WAAW,GAAG,IAAI,GAAG,QAAQ;AACjD,cAAc,kBAAkB,EAAC;AACjC,WAAW,EAAC;AACZ;AACA,UAAU,KAAK,CAAC,KAAK,CAAC,IAAI,EAAC;AAC3B,UAAU,KAAK,CAAC,IAAI;AACpB,YAAY,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;AACnC,eAAe,IAAI,CAAC,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAC;AACtE;AACA,UAAU,GAAG,CAAC,QAAQ,GAAG,SAAQ;AACjC;AACA,UAAU,OAAO,QAAQ;AACzB,SAAS,CAAC;AACV,OAAO,MAAM,IAAI,SAAS,EAAE;AAC5B,QAAQ,OAAO,IAAI,WAAW;AAC9B,UAAU,GAAG,CAAC,OAAO;AACrB,UAAU,GAAG,CAAC,UAAU;AACxB,UAAU,GAAG,CAAC,OAAO;AACrB,UAAU,UAAU,GAAG,EAAE,KAAK,EAAE;AAChC,YAAY,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,4BAA4B,CAAC;AACrJ,WAAW,CAAC;AACZ,OAAO;AACP,MAAM,OAAO,IAAI;AACjB,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,GAAG,aAAa,GAAE;AAClC;AACA,IAAI,SAAS,cAAc,IAAI;AAC/B,MAAM,IAAI,WAAW,IAAI,aAAa,EAAE;AACxC,QAAQ,IAAI,SAAS,GAAG,aAAa,CAAC,WAAW,EAAC;AAClD,QAAQ,UAAU,CAAC,SAAS,GAAG,UAAS;AACxC,QAAQ,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,CAAC,UAAU,EAAC;AAC1F,QAAQ,OAAO,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE;AACtD,UAAU,OAAO,SAAS,CAAC,SAAS,CAAC;AACrC,SAAS,CAAC;AACV,OAAO,MAAM,IAAI,WAAW,IAAI,cAAc,EAAE;AAChD,QAAQ,IAAI,YAAY,GAAG,cAAc,CAAC,WAAW,EAAC;AACtD,QAAQ,OAAO,iBAAiB,CAAC,YAAY,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AACrE,UAAU,IAAI,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,UAAS;AAClD,UAAU,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAC;AACpD,UAAU,OAAO,CAAC,QAAQ,CAAC,YAAY;AACvC,YAAY,GAAG,CAAC,MAAM,CAAC,KAAK;AAC5B,cAAc,IAAI,GAAG,MAAM,GAAG,UAAU;AACxC,cAAc,oCAAoC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC;AAC5E,WAAW,EAAC;AACZ,UAAU,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;AACtD,SAAS,CAAC;AACV,OAAO,MAAM,IAAI,cAAc,EAAE;AACjC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;AAChC,UAAU,IAAI,QAAQ,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE;AAC1D,cAAc,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC;AACzD,aAAa,CAAC;AACd,WAAW,MAAM;AACjB,YAAY,OAAO,gBAAgB,CAAC,YAAY;AAChD,cAAc,OAAO,cAAc;AACnC,aAAa,CAAC;AACd,WAAW;AACX,SAAS,MAAM;AACf,UAAU,OAAO,IAAI,WAAW;AAChC,YAAY,QAAQ,CAAC,OAAO;AAC5B,YAAY,QAAQ,CAAC,UAAU;AAC/B,YAAY,QAAQ,CAAC,OAAO;AAC5B,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE;AAClC,cAAc,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAQ;AACzC,cAAc,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,CAAC;AACrF,aAAa,CAAC;AACd,SAAS;AACT,OAAO,MAAM,IAAI,SAAS,EAAE;AAC5B,QAAQ,OAAO,IAAI,WAAW;AAC9B,UAAU,GAAG,CAAC,OAAO;AACrB,UAAU,GAAG,CAAC,UAAU;AACxB,UAAU,GAAG,CAAC,OAAO;AACrB,UAAU,UAAU,GAAG,EAAE,KAAK,EAAE;AAChC,YAAY,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,wBAAwB,GAAG,cAAc,CAAC;AAC1H,WAAW,CAAC;AACZ,OAAO;AACP,MAAM,OAAO,IAAI;AACjB,KAAK;AACL;AACA,IAAI,SAAS,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC1C,MAAM,IAAI,KAAK,IAAI,aAAa,EAAE;AAClC,QAAQ,IAAI,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,EAAC;AAC5C,QAAQ,IAAI,QAAQ,EAAE;AACtB,UAAU,UAAU,CAAC,MAAM,GAAG,MAAK;AACnC,SAAS,MAAM;AACf,UAAU,UAAU,CAAC,SAAS,GAAG,MAAK;AACtC,SAAS;AACT,QAAQ,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,CAAC,UAAU,EAAC;AACpF,QAAQ,OAAO,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE;AACtD,UAAU,IAAI,QAAQ,EAAE;AACxB,YAAY,GAAG,CAAC,MAAM,GAAG,MAAK;AAC9B,WAAW;AACX,UAAU,OAAO,KAAK;AACtB,SAAS,CAAC;AACV,OAAO,MAAM,IAAI,KAAK,IAAI,cAAc,EAAE;AAC1C,QAAQ,IAAI,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAC;AAC5C,QAAQ,OAAO,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AACjE,UAAU,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAC;AAClD,UAAU,IAAI,QAAQ,EAAE;AACxB,YAAY,GAAG,CAAC,MAAM,GAAG,OAAM;AAC/B,YAAY,OAAO,CAAC,QAAQ,CAAC,YAAY;AACzC,cAAc,GAAG,CAAC,MAAM,CAAC,KAAK;AAC9B,gBAAgB,MAAM,GAAG,KAAK;AAC9B,gBAAgB,UAAU,GAAG,KAAK,EAAC;AACnC,aAAa,EAAC;AACd,WAAW;AACX,UAAU,OAAO,MAAM;AACvB,SAAS,CAAC;AACV,OAAO,MAAM,IAAI,QAAQ,EAAE;AAC3B,QAAQ,IAAI,cAAc,EAAE;AAC5B,UAAU,OAAO,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE;AACxD,YAAY,GAAG,CAAC,MAAM,GAAG,EAAC;AAC1B,YAAY,OAAO,CAAC;AACpB,WAAW,CAAC;AACZ,SAAS,MAAM,IAAI,SAAS,EAAE;AAC9B,UAAU,OAAO,IAAI,WAAW;AAChC,YAAY,GAAG,CAAC,OAAO;AACvB,YAAY,GAAG,CAAC,UAAU;AAC1B,YAAY,GAAG,CAAC,OAAO;AACvB,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE;AAClC,cAAc,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,sBAAsB,CAAC;AACzG,aAAa,CAAC;AACd,SAAS;AACT,OAAO,MAAM,IAAI,SAAS,EAAE;AAC5B,QAAQ,OAAO,IAAI,WAAW;AAC9B,UAAU,GAAG,CAAC,OAAO;AACrB,UAAU,GAAG,CAAC,UAAU;AACxB,UAAU,GAAG,CAAC,OAAO;AACrB,UAAU,UAAU,GAAG,EAAE,KAAK,EAAE;AAChC,YAAY,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,0BAA0B,CAAC;AAC3G,WAAW,CAAC;AACZ,OAAO;AACP,MAAM,OAAO,IAAI;AACjB,KAAK;AACL;AACA,IAAI,IAAI,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAC;AAC3C;AACA,IAAI,SAAS,cAAc,IAAI;AAC/B,MAAM,IAAI,OAAO,IAAI,aAAa,EAAE;AACpC,QAAQ,IAAI,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAC;AAC9C,QAAQ,UAAU,CAAC,KAAK,GAAG,MAAK;AAChC,QAAQ,OAAO,CAAC,OAAO;AACvB,UAAU,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,EAAE,sBAAsB,EAAE,GAAG,CAAC,UAAU,EAAC;AAC1F,QAAQ,OAAO,gBAAgB,CAAC,YAAY;AAC5C,UAAU,OAAO,KAAK;AACtB,SAAS,CAAC;AACV,OAAO,MAAM,IAAI,OAAO,IAAI,cAAc,EAAE;AAC5C,QAAQ,IAAI,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAC;AAC9C,QAAQ,OAAO,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AACjE,UAAU,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAC;AAClD,UAAU,OAAO,CAAC,QAAQ,CAAC,YAAY;AACvC,YAAY,GAAG,CAAC,MAAM,CAAC,KAAK;AAC5B,cAAc,SAAS,GAAG,MAAM,GAAG,eAAe;AAClD,cAAc,MAAM,GAAG,OAAO;AAC9B,cAAc,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK;AAC9C,cAAc,sBAAsB,EAAC;AACrC,WAAW,EAAC;AACZ,UAAU,OAAO,MAAM;AACvB,SAAS,CAAC;AACV,OAAO,MAAM,IAAI,cAAc,EAAE;AACjC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;AAChC,UAAU,IAAI,QAAQ,EAAE;AACxB,YAAY,IAAI,MAAM,EAAE;AACxB,cAAc,OAAO,IAAI,WAAW;AACpC,gBAAgB,MAAM,CAAC,OAAO;AAC9B,gBAAgB,MAAM,CAAC,UAAU;AACjC,gBAAgB,MAAM,CAAC,OAAO;AAC9B,gBAAgB,UAAU,GAAG,EAAE,KAAK,EAAE;AACtC,kBAAkB,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG;AACxC,oBAAoB,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAC;AAC5D;AACA,kBAAkB,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC/C,oBAAoB,GAAG,CAAC,MAAM,CAAC,KAAK;AACpC,sBAAsB,MAAM,GAAG,KAAK;AACpC,sBAAsB,gDAAgD,EAAC;AACvE,mBAAmB,EAAC;AACpB;AACA,kBAAkB,OAAO,MAAM;AAC/B,iBAAiB,CAAC;AAClB,aAAa,MAAM;AACnB,cAAc,OAAO,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE;AAC5D,gBAAgB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC;AAC5D,eAAe,CAAC;AAChB,aAAa;AACb,WAAW,MAAM;AACjB,YAAY,IAAI,MAAM,GAAG,gBAAgB,CAAC,YAAY;AACtD,cAAc,OAAO,CAAC,CAAC;AACvB,aAAa,EAAC;AACd,YAAY,OAAO,CAAC,QAAQ,CAAC,YAAY;AACzC,cAAc,MAAM,CAAC,OAAO,GAAG,KAAI;AACnC,aAAa,EAAC;AACd,YAAY,OAAO,MAAM;AACzB,WAAW;AACX,SAAS,MAAM;AACf,UAAU,IAAI,QAAQ,GAAG,IAAI,WAAW;AACxC,YAAY,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO;AAC9C,YAAY,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU;AACpD,YAAY,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO;AAC9C,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE;AAClC,cAAc,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAQ;AACzC,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE;AAC9B,gBAAgB,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa;AACvE,kBAAkB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;AACpC,eAAe;AACf,cAAc,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,CAAC;AACxE,aAAa,EAAC;AACd,UAAU,OAAO,CAAC,QAAQ,CAAC,YAAY;AACvC,YAAY,QAAQ,CAAC,OAAO,GAAG,KAAI;AACnC,WAAW,EAAC;AACZ,UAAU,OAAO,QAAQ;AACzB,SAAS;AACT,OAAO,MAAM,IAAI,SAAS,EAAE;AAC5B,QAAQ,IAAI,aAAa,GAAG,IAAI,WAAW;AAC3C,UAAU,GAAG,CAAC,OAAO;AACrB,UAAU,GAAG,CAAC,UAAU;AACxB,UAAU,GAAG,CAAC,OAAO;AACrB,UAAU,UAAU,GAAG,EAAE,KAAK,EAAE;AAChC,YAAY,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,sBAAsB,CAAC;AACpG,WAAW,EAAC;AACZ,QAAQ,OAAO,aAAa;AAC5B,OAAO;AACP,MAAM,OAAO,IAAI;AACjB,KAAK;AACL;AACA,IAAI,IAAI,SAAS,GAAG,cAAc,GAAE;AACpC,IAAI,IAAI,KAAK,GAAG,cAAc,GAAE;AAChC,IAAI,IAAI,SAAS,GAAG,UAAU,CAAC,WAAW,EAAE,KAAK,EAAC;AAClD;AACA,IAAI,OAAO;AACX,MAAM,QAAQ,EAAE,QAAQ;AACxB,MAAM,SAAS,EAAE,SAAS;AAC1B,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,SAAS,EAAE,SAAS;AAC1B,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,GAAG,EAAE,GAAG;AACd;AACA,MAAM,SAAS,EAAE,SAAS;AAC1B,MAAM,cAAc,EAAE,cAAc;AACpC;AACA;AACA,MAAM,MAAM,EAAE,UAAU;AACxB,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE;AACvC,IAAI,IAAI,aAAa,GAAG,OAAO,CAAC,OAAM;AACtC,IAAI,IAAI,cAAc,GAAG,OAAO,CAAC,QAAO;AACxC;AACA,IAAI,IAAI,KAAK,GAAG,GAAE;AAClB;AACA,IAAI,cAAc,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAC3C,MAAM,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAC;AAChC;AACA,MAAM,SAAS,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE;AACtD,QAAQ,IAAI,IAAI,IAAI,aAAa,EAAE;AACnC,UAAU,IAAI,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC;AACtD,UAAU,KAAK,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,YAAY;AACtD,YAAY,OAAO,KAAK;AACxB,WAAW,EAAC;AACZ,SAAS,MAAM,IAAI,IAAI,IAAI,cAAc,EAAE;AAC3C,UAAU,IAAI,GAAG,GAAG,cAAc,CAAC,IAAI,EAAC;AACxC,UAAU,KAAK,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AACtE,YAAY,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACnE,WAAW,EAAC;AACZ,SAAS;AACT,OAAO;AACP;AACA,MAAM,QAAQ,IAAI;AAClB,QAAQ,KAAK,aAAa,CAAC;AAC3B,QAAQ,KAAK,cAAc,CAAC;AAC5B,QAAQ,KAAK,QAAQ,CAAC;AACtB,QAAQ,KAAK,gBAAgB,CAAC;AAC9B,QAAQ,KAAK,cAAc,CAAC;AAC5B,QAAQ,KAAK,gBAAgB,CAAC;AAC9B,QAAQ,KAAK,uBAAuB,CAAC;AACrC,QAAQ,KAAK,cAAc,CAAC;AAC5B,QAAQ,KAAK,eAAe,CAAC;AAC7B,QAAQ,KAAK,YAAY;AACzB,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACzE,cAAc,OAAO,KAAK;AAC1B,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,SAAS,GAAG,KAAK,GAAG,cAAc;AACpD,kBAAkB,eAAe,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACzD,eAAe,EAAC;AAChB,cAAc,OAAO,KAAK;AAC1B,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,YAAY;AACzB,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AAC9F,cAAc,OAAO,YAAY,CAAC,KAAK,CAAC;AACxC,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,IAAI,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,aAAY;AAC5D,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,KAAK,GAAG,MAAM,GAAG,aAAa;AAChD,kBAAkB,UAAU,GAAG,IAAI,GAAG,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAC;AACtF,eAAe,EAAC;AAChB,cAAc,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC;AAC9D,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,aAAa;AAC1B,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,OAAO;AAC7B,gBAAgB,WAAW,CAAC,KAAK,CAAC;AAClC,gBAAgB,KAAK,CAAC,MAAM,KAAK,CAAC;AAClC,gBAAgB,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;AAC5C,gBAAgB,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;AAC5C,gBAAgB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AACpC,gBAAgB,yBAAyB;AACzC,gBAAgB,GAAG,CAAC,UAAU,EAAC;AAC/B,cAAc,OAAO,KAAK;AAC1B,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK;AAC9D,kBAAkB,KAAK,GAAG,eAAe;AACzC,kBAAkB,SAAS,GAAG,KAAK,GAAG,kBAAkB;AACxD,kBAAkB,SAAS,GAAG,KAAK,GAAG,kBAAkB;AACxD,kBAAkB,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK;AACjD,kBAAkB,gCAAgC,EAAC;AACnD,eAAe,EAAC;AAChB;AACA,cAAc,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC;AACvD,cAAc,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC;AACtD,cAAc,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;AACpC,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,YAAY;AACzB,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,CAAC,UAAU,EAAC;AAChF,cAAc,IAAI,MAAM,IAAI,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAC;AACzE,cAAc,IAAI,QAAQ,IAAI,UAAU,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAC;AAC/E,cAAc,IAAI,MAAM,IAAI,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAC;AACzE,cAAc,IAAI,QAAQ,IAAI,UAAU,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAC;AAC/E,cAAc,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,SAAS,EAAE,GAAG,CAAC,UAAU,EAAC;AAC7F,cAAc,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,GAAG,WAAW,EAAE,GAAG,CAAC,UAAU,EAAC;AACjG,cAAc,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,SAAS,EAAE,GAAG,CAAC,UAAU,EAAC;AAC7F,cAAc,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,GAAG,WAAW,EAAE,GAAG,CAAC,UAAU,EAAC;AACjG;AACA,cAAc,OAAO,CAAC,OAAO;AAC7B,iBAAiB,wBAAwB,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAChF,gBAAgB,qDAAqD,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,UAAU,EAAC;AACrH;AACA,cAAc,OAAO;AACrB,gBAAgB,UAAU,CAAC,MAAM,CAAC;AAClC,gBAAgB,UAAU,CAAC,MAAM,CAAC;AAClC,gBAAgB,UAAU,CAAC,QAAQ,CAAC;AACpC,gBAAgB,UAAU,CAAC,QAAQ,CAAC;AACpC,eAAe;AACf,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,IAAI,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,WAAU;AACxD;AACA,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,aAAa;AAC7D,kBAAkB,uCAAuC,EAAC;AAC1D,eAAe,EAAC;AAChB;AACA,cAAc,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;AAC7C,gBAAgB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG;AACpC,kBAAkB,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AACrD,kBAAkB,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;AACjD,kBAAkB,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAC;AAC1C;AACA,gBAAgB,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC7C,kBAAkB,GAAG,CAAC,MAAM,CAAC,KAAK;AAClC,oBAAoB,IAAI,GAAG,MAAM,GAAG,WAAW;AAC/C,oBAAoB,UAAU,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAC;AAC9G,iBAAiB,EAAC;AAClB;AACA,gBAAgB,OAAO,IAAI;AAC3B,eAAe;AACf;AACA,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAC;AAC7C,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAC;AAC7C;AACA,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,IAAI,0BAA0B,GAAG,GAAG,CAAC,SAAS,CAAC,yBAAwB;AACvF;AACA,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,0BAA0B;AAC5C,2BAA2B,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW;AACjF,kBAAkB,qDAAqD;AACvE,kBAAiB;AACjB,eAAe,EAAC;AAChB;AACA,cAAc,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;AACpE,cAAc,IAAI,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,EAAC;AACpF,cAAc,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;AACpE,cAAc,IAAI,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,EAAC;AACpF;AACA,cAAc,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;AAC7D,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,gBAAgB;AAC7B,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7C,gBAAgB,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AAClG,gBAAgB,OAAO;AACvB,kBAAkB,cAAc,CAAC,KAAK,CAAC;AACvC,kBAAkB,cAAc,CAAC,KAAK,CAAC;AACvC,iBAAiB;AACjB,eAAe,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpD,gBAAgB,OAAO,CAAC,gBAAgB;AACxC,kBAAkB,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,CAAC,UAAU,EAAC;AAC3E,gBAAgB,OAAO,CAAC,gBAAgB;AACxC,kBAAkB,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,GAAG,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAC;AAC/E,gBAAgB,OAAO;AACvB,kBAAkB,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,kBAAkB,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7C,iBAAiB;AACjB,eAAe,MAAM;AACrB,gBAAgB,OAAO,CAAC,YAAY,CAAC,wBAAwB,EAAE,GAAG,CAAC,UAAU,EAAC;AAC9E,eAAe;AACf,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,IAAI,eAAe,GAAG,GAAG,CAAC,SAAS,CAAC,eAAc;AAChE;AACA,cAAc,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAE;AACnC,cAAc,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,GAAE;AACrC;AACA,cAAc,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,EAAC;AAClE;AACA,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,SAAS,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;AACxD,kBAAkB,GAAG,CAAC,MAAM,CAAC,KAAK;AAClC,oBAAoB,KAAK,GAAG,MAAM,GAAG,eAAe;AACpD,oBAAoB,UAAU,GAAG,IAAI,GAAG,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAC;AAC1F,iBAAiB;AACjB,gBAAgB,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC;AACjD;AACA,gBAAgB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;AACpC,kBAAkB,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,aAAa;AAC7D,kBAAkB,UAAU,GAAG,IAAI,EAAC;AACpC,gBAAgB,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,GAAG,MAAM,EAAC;AACnE,gBAAgB,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,KAAK,GAAG,QAAQ,EAAC;AACvE,eAAe,EAAC;AAChB;AACA,cAAc,IAAI,CAAC,IAAI;AACvB,gBAAgB,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAC;AACxE,cAAc,IAAI,CAAC,IAAI;AACvB,gBAAgB,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ;AAC/D,gBAAgB,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAC;AACpE;AACA,cAAc,KAAK,CAAC,IAAI,EAAC;AACzB;AACA,cAAc,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;AACjC,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,aAAa;AAC1B,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,OAAO;AAC7B,gBAAgB,WAAW,CAAC,KAAK,CAAC;AAClC,gBAAgB,KAAK,CAAC,MAAM,KAAK,CAAC;AAClC,gBAAgB,gCAAgC,EAAE,GAAG,CAAC,UAAU,EAAC;AACjE,cAAc,OAAO,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;AAC1C,gBAAgB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,eAAe,CAAC;AAChB,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK;AAC9D,kBAAkB,KAAK,GAAG,aAAa;AACvC,kBAAkB,gCAAgC,EAAC;AACnD,eAAe,EAAC;AAChB,cAAc,OAAO,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;AAC1C,gBAAgB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;AACzD,eAAe,CAAC;AAChB,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,cAAc;AAC3B,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAC;AACzE,cAAc,OAAO,KAAK,GAAG,CAAC;AAC9B,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,SAAS,GAAG,KAAK,GAAG,aAAa;AACnD,kBAAkB,sBAAsB,EAAC;AACzC,eAAe,EAAC;AAChB,cAAc,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;AAC3C,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,cAAc;AAC3B,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAC;AACzE,cAAc,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,OAAM;AAC3C,cAAc,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAC;AACtC,cAAc,IAAI,IAAI,GAAG,MAAM,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAC;AAC1D,cAAc,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,CAAC,UAAU,EAAC;AACxF,cAAc,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,CAAC,UAAU,EAAC;AAC/E,cAAc,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,OAAO,EAAE,GAAG,CAAC,UAAU,EAAC;AACjF,cAAc,OAAO;AACrB,gBAAgB,YAAY,CAAC,GAAG,CAAC;AACjC,gBAAgB,GAAG;AACnB,gBAAgB,IAAI;AACpB,eAAe;AACf,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,IAAI,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,aAAY;AAC5D,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,SAAS,MAAM,IAAI;AACnC,kBAAkB,GAAG,CAAC,MAAM,CAAC,KAAK;AAClC,oBAAoB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;AAC5D,oBAAoB,sBAAsB,EAAC;AAC3C,iBAAiB;AACjB,gBAAgB,MAAM,CAAC,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,aAAa,EAAC;AACjE,gBAAgB,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM;AACnD,kBAAkB,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,EAAC;AACxD,eAAe,EAAC;AAChB,cAAc,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG;AACjC,gBAAgB,WAAW,EAAE,KAAK;AAClC,gBAAgB,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO;AACvD,gBAAgB,GAAG,EAAE,OAAO,EAAC;AAC7B,cAAc,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAC;AAClD,cAAc,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG;AAClC,gBAAgB,YAAY,EAAE,KAAK;AACnC,gBAAgB,GAAG,EAAE,KAAK,EAAE,YAAY,EAAC;AACzC,cAAc,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;AACrC,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,iBAAiB,CAAC;AAC/B,QAAQ,KAAK,gBAAgB;AAC7B,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAC;AACzE,cAAc,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,OAAM;AAC7C,cAAc,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,OAAM;AAC/C,cAAc,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,OAAM;AAC/C,cAAc,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,GAAG,OAAO,EAAE,GAAG,CAAC,UAAU,EAAC;AACxF,cAAc,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAC;AAC1F,cAAc,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAC;AAC1F,cAAc,OAAO;AACrB,gBAAgB,IAAI,KAAK,gBAAgB,GAAG,OAAO,GAAG,QAAQ;AAC9D,gBAAgB,UAAU,CAAC,IAAI,CAAC;AAChC,gBAAgB,UAAU,CAAC,KAAK,CAAC;AACjC,gBAAgB,UAAU,CAAC,KAAK,CAAC;AACjC,eAAe;AACf,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,IAAI,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,WAAU;AACxD;AACA,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,aAAa;AAC7D,kBAAkB,UAAU,GAAG,IAAI,EAAC;AACpC,eAAe,EAAC;AAChB;AACA,cAAc,SAAS,IAAI,EAAE,IAAI,EAAE;AACnC,gBAAgB,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC7C,kBAAkB,GAAG,CAAC,MAAM,CAAC,KAAK;AAClC,oBAAoB,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK;AAC1D,oBAAoB,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,GAAG;AACzE,oBAAoB,UAAU,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAC;AACnG,iBAAiB,EAAC;AAClB;AACA,gBAAgB,OAAO,KAAK,CAAC,GAAG;AAChC,kBAAkB,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK;AAC3C,kBAAkB,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI;AAC/D,kBAAkB,OAAO,CAAC;AAC1B,eAAe;AACf;AACA,cAAc,OAAO;AACrB,gBAAgB,IAAI,KAAK,gBAAgB,GAAG,OAAO,GAAG,QAAQ;AAC9D,gBAAgB,IAAI,CAAC,MAAM,CAAC;AAC5B,gBAAgB,IAAI,CAAC,OAAO,CAAC;AAC7B,gBAAgB,IAAI,CAAC,OAAO,CAAC;AAC7B,eAAe;AACf,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,uBAAuB;AACpC,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAC;AACzE,cAAc,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,EAAC;AAC3C,cAAc,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,EAAC;AACzC,cAAc,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,EAAE,GAAG,CAAC,UAAU,EAAC;AACtF,cAAc,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAC;AACpF,cAAc,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;AACpC,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,aAAa;AAC7D,kBAAkB,UAAU,GAAG,IAAI,EAAC;AACpC,eAAe,EAAC;AAChB;AACA,cAAc,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAC;AACxD,cAAc,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAC;AACtD;AACA,cAAc,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;AACpC,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,WAAW;AACxB,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,IAAI,IAAI,GAAG,EAAC;AAC1B,cAAc,IAAI,KAAK,KAAK,OAAO,EAAE;AACrC,gBAAgB,IAAI,GAAG,SAAQ;AAC/B,eAAe,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE;AAC3C,gBAAgB,IAAI,GAAG,QAAO;AAC9B,eAAe;AACf,cAAc,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAC;AAC5D,cAAc,OAAO,IAAI;AACzB,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,KAAK,GAAG,cAAc;AACxC,kBAAkB,KAAK,GAAG,WAAW;AACrC,kBAAkB,mBAAmB,EAAC;AACtC,eAAe,EAAC;AAChB,cAAc,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC;AAC5E,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,YAAY;AACzB,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,OAAO;AAC7B,gBAAgB,OAAO,KAAK,KAAK,QAAQ;AACzC,gBAAgB,KAAK,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAChD,gBAAgB,KAAK,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAChD,gBAAgB,wDAAwD;AACxE,gBAAgB,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,EAAC;AAC5F,cAAc,OAAO,KAAK;AAC1B,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,SAAS,GAAG,KAAK,GAAG,eAAe;AACrD,kBAAkB,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;AAC/D,kBAAkB,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AACxD,kBAAkB,oBAAoB,EAAC;AACvC,eAAe,EAAC;AAChB;AACA,cAAc,OAAO,KAAK;AAC1B,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,YAAY;AACzB,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAC;AACrF,cAAc,OAAO,eAAe,CAAC,KAAK,CAAC;AAC3C,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,KAAK,GAAG,WAAW;AACrC,kBAAkB,KAAK,GAAG,UAAU;AACpC,kBAAkB,0CAA0C,EAAC;AAC7D,eAAe,EAAC;AAChB,cAAc,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC;AACzE,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,YAAY;AACzB,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,OAAO;AAC7B,gBAAgB,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AACxD,gBAAgB,mCAAmC,EAAE,GAAG,CAAC,UAAU,EAAC;AACpE,cAAc,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3D,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK;AAC9D,kBAAkB,KAAK,GAAG,aAAa;AACvC,kBAAkB,oBAAoB,EAAC;AACvC,eAAe,EAAC;AAChB,cAAc,OAAO,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;AAC1C,gBAAgB,OAAO,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;AACnD,eAAe,CAAC;AAChB,aAAa,CAAC;AACd;AACA,QAAQ,KAAK,iBAAiB;AAC9B,UAAU,OAAO,UAAU;AAC3B,YAAY,UAAU,KAAK,EAAE;AAC7B,cAAc,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAC;AACxF,cAAc,IAAI,WAAW,GAAG,OAAO,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,EAAC;AAClE,cAAc,IAAI,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAM;AAC/C,cAAc,OAAO,CAAC,OAAO;AAC7B,gBAAgB,OAAO,WAAW,KAAK,QAAQ;AAC/C,gBAAgB,WAAW,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC;AACpD,gBAAgB,wDAAwD,EAAE,GAAG,CAAC,UAAU,EAAC;AACzF,cAAc,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC;AAChD,aAAa;AACb,YAAY,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC,cAAc,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK;AAChC,kBAAkB,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,aAAa;AAC7D,kBAAkB,yBAAyB,EAAC;AAC5C,eAAe,EAAC;AAChB,cAAc,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG;AACnC,gBAAgB,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAC;AAC9D,cAAc,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC;AAC5D,cAAc,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;AACpC,aAAa,CAAC;AACd,OAAO;AACP,KAAK,EAAC;AACN;AACA,IAAI,OAAO,KAAK;AAChB,GAAG;AACH;AACA,EAAE,SAAS,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE;AACzC,IAAI,IAAI,cAAc,GAAG,QAAQ,CAAC,OAAM;AACxC,IAAI,IAAI,eAAe,GAAG,QAAQ,CAAC,QAAO;AAC1C;AACA,IAAI,IAAI,QAAQ,GAAG,GAAE;AACrB;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACxD,MAAM,IAAI,KAAK,GAAG,cAAc,CAAC,IAAI,EAAC;AACtC,MAAM,IAAI,OAAM;AAChB,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ;AACnC,UAAU,OAAO,KAAK,KAAK,SAAS,EAAE;AACtC,QAAQ,MAAM,GAAG,gBAAgB,CAAC,YAAY;AAC9C,UAAU,OAAO,KAAK;AACtB,SAAS,EAAC;AACV,OAAO,MAAM,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AAC9C,QAAQ,IAAI,QAAQ,GAAG,KAAK,CAAC,UAAS;AACtC,QAAQ,IAAI,QAAQ,KAAK,WAAW;AACpC,YAAY,QAAQ,KAAK,aAAa,EAAE;AACxC,UAAU,MAAM,GAAG,gBAAgB,CAAC,UAAU,GAAG,EAAE;AACnD,YAAY,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,WAAW,EAAC;AACZ,SAAS,MAAM,IAAI,QAAQ,KAAK,aAAa;AAC7C,mBAAmB,QAAQ,KAAK,iBAAiB,EAAE;AACnD,UAAU,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AAChD,YAAY,4DAA4D,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,UAAU,EAAC;AACtG,UAAU,MAAM,GAAG,gBAAgB,CAAC,UAAU,GAAG,EAAE;AACnD,YAAY,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,WAAW,EAAC;AACZ,SAAS,MAAM;AACf,UAAU,OAAO,CAAC,YAAY,CAAC,4BAA4B,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,UAAU,EAAC;AACzF,SAAS;AACT,OAAO,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;AACrC,QAAQ,MAAM,GAAG,gBAAgB,CAAC,UAAU,GAAG,EAAE;AACjD,UAAU,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;AACvC,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;AAC5C,cAAc,OAAO,CAAC,OAAO;AAC7B,gBAAgB,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;AAC5C,gBAAgB,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS;AAC7C,gBAAgB,kBAAkB,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AAC1D,cAAc,OAAO,KAAK,CAAC,CAAC,CAAC;AAC7B,aAAa,CAAC,EAAE,GAAG,EAAC;AACpB,UAAU,OAAO,IAAI;AACrB,SAAS,EAAC;AACV,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,YAAY,CAAC,uCAAuC,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,UAAU,EAAC;AAClG,OAAO;AACP,MAAM,MAAM,CAAC,KAAK,GAAG,MAAK;AAC1B,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAM;AAC7B,KAAK,EAAC;AACN;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACxD,MAAM,IAAI,GAAG,GAAG,eAAe,CAAC,GAAG,EAAC;AACpC,MAAM,QAAQ,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AACnE,QAAQ,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;AACrC,OAAO,EAAC;AACR,KAAK,EAAC;AACN;AACA,IAAI,OAAO,QAAQ;AACnB,GAAG;AACH;AACA,EAAE,SAAS,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE;AAC7C,IAAI,IAAI,gBAAgB,GAAG,UAAU,CAAC,OAAM;AAC5C,IAAI,IAAI,iBAAiB,GAAG,UAAU,CAAC,QAAO;AAC9C;AACA,IAAI,IAAI,aAAa,GAAG,GAAE;AAC1B;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAU,SAAS,EAAE;AAC/D,MAAM,IAAI,KAAK,GAAG,gBAAgB,CAAC,SAAS,EAAC;AAC7C,MAAM,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,SAAS,EAAC;AACxC;AACA,MAAM,IAAI,MAAM,GAAG,IAAI,eAAe,GAAE;AACxC,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AAC/B,QAAQ,MAAM,CAAC,KAAK,GAAG,qBAAoB;AAC3C,QAAQ,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,SAAS;AAC7C,UAAU,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,EAAC;AACpE,QAAQ,MAAM,CAAC,IAAI,GAAG,EAAC;AACvB,OAAO,MAAM;AACb,QAAQ,IAAI,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,EAAC;AACjD,QAAQ,IAAI,MAAM,EAAE;AACpB,UAAU,MAAM,CAAC,KAAK,GAAG,qBAAoB;AAC7C,UAAU,MAAM,CAAC,MAAM,GAAG,OAAM;AAChC,UAAU,MAAM,CAAC,IAAI,GAAG,EAAC;AACzB,SAAS,MAAM;AACf,UAAU,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK;AAC5D,YAAY,6BAA6B,GAAG,SAAS,EAAE,GAAG,CAAC,UAAU,EAAC;AACtE,UAAU,IAAI,UAAU,IAAI,KAAK,EAAE;AACnC,YAAY,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAQ;AACzC,YAAY,MAAM,CAAC,MAAM,GAAG,OAAM;AAClC,YAAY,MAAM,CAAC,KAAK,GAAG,sBAAqB;AAChD,YAAY,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAC9C,cAAc,MAAM,CAAC,CAAC,GAAG,SAAQ;AACjC,aAAa,MAAM;AACnB,cAAc,OAAO,CAAC,OAAO;AAC7B,gBAAgB,WAAW,CAAC,QAAQ,CAAC;AACrC,gBAAgB,QAAQ,CAAC,MAAM,GAAG,CAAC;AACnC,gBAAgB,QAAQ,CAAC,MAAM,IAAI,CAAC;AACpC,gBAAgB,iCAAiC,GAAG,SAAS,EAAE,GAAG,CAAC,UAAU,EAAC;AAC9E,cAAc,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACtD,gBAAgB,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE;AACzC,kBAAkB,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAC;AACzC,iBAAiB;AACjB,eAAe,EAAC;AAChB,aAAa;AACb,WAAW,MAAM;AACjB,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC5C,cAAc,MAAM,GAAG,WAAW,CAAC,SAAS;AAC5C,gBAAgB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,EAAC;AACjF,aAAa,MAAM;AACnB,cAAc,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAC;AAC1D,aAAa;AACb,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,gCAAgC,GAAG,SAAS,GAAG,GAAG,EAAE,GAAG,CAAC,UAAU,EAAC;AACzG;AACA,YAAY,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,EAAC;AACzC,YAAY,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;AACvC,cAAc,gCAAgC,GAAG,SAAS,GAAG,GAAG,EAAE,GAAG,CAAC,UAAU,EAAC;AACjF;AACA,YAAY,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,EAAC;AACzC,YAAY,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,GAAG,GAAG;AACvD,cAAc,gCAAgC,GAAG,SAAS,GAAG,sCAAsC,EAAE,GAAG,CAAC,UAAU,EAAC;AACpH;AACA,YAAY,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,EAAC;AACrC,YAAY,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AACzE,cAAc,8BAA8B,GAAG,SAAS,GAAG,oBAAoB,EAAE,GAAG,CAAC,UAAU,EAAC;AAChG;AACA,YAAY,IAAI,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,WAAU;AAC/C;AACA,YAAY,IAAI,IAAI,GAAG,EAAC;AACxB,YAAY,IAAI,MAAM,IAAI,KAAK,EAAE;AACjC,cAAc,OAAO,CAAC,gBAAgB;AACtC,gBAAgB,KAAK,CAAC,IAAI,EAAE,OAAO;AACnC,gBAAgB,6BAA6B,GAAG,SAAS,EAAE,GAAG,CAAC,UAAU,EAAC;AAC1E,cAAc,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAC;AACxC,aAAa;AACb;AACA,YAAY,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,EAAC;AAC3C,YAAY,OAAO,CAAC,QAAQ,CAAC,YAAY;AACzC,cAAc,IAAI,SAAS,IAAI,KAAK,EAAE;AACtC,gBAAgB,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,IAAI,aAAa;AAC9D,kBAAkB,wCAAwC,GAAG,SAAS,GAAG,6BAA6B,EAAE,GAAG,CAAC,UAAU,EAAC;AACvH,gBAAgB,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC;AAC5C,kBAAkB,iCAAiC,GAAG,SAAS,GAAG,GAAG,EAAE,GAAG,CAAC,UAAU,EAAC;AACtF,eAAe;AACf;AACA,cAAc,IAAI,OAAO,GAAG,GAAG,CAAC,WAAU;AAC1C;AACA,cAAc,IAAI,UAAU,GAAG;AAC/B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB,gBAAgB,YAAY;AAC5B,gBAAgB,MAAM;AACtB,gBAAgB,MAAM;AACtB,gBAAgB,QAAQ;AACxB,gBAAe;AACf;AACA,cAAc,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACzD,gBAAgB,OAAO,CAAC,OAAO;AAC/B,kBAAkB,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/C,kBAAkB,qBAAqB,GAAG,IAAI,GAAG,2BAA2B,GAAG,SAAS,GAAG,0BAA0B,GAAG,UAAU,GAAG,GAAG;AACxI,kBAAkB,OAAO,EAAC;AAC1B,eAAe,EAAC;AAChB,aAAa,EAAC;AACd;AACA,YAAY,MAAM,CAAC,MAAM,GAAG,OAAM;AAClC,YAAY,MAAM,CAAC,KAAK,GAAG,qBAAoB;AAC/C,YAAY,MAAM,CAAC,IAAI,GAAG,KAAI;AAC9B,YAAY,MAAM,CAAC,UAAU,GAAG,WAAU;AAC1C,YAAY,MAAM,CAAC,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,MAAK;AAC9C,YAAY,MAAM,CAAC,MAAM,GAAG,OAAM;AAClC,YAAY,MAAM,CAAC,MAAM,GAAG,OAAM;AAClC,YAAY,MAAM,CAAC,OAAO,GAAG,QAAO;AACpC,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA,MAAM,aAAa,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE;AACxE,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC,YAAW;AACnC,QAAQ,IAAI,EAAE,IAAI,KAAK,EAAE;AACzB,UAAU,OAAO,KAAK,CAAC,EAAE,CAAC;AAC1B,SAAS;AACT,QAAQ,IAAI,MAAM,GAAG;AACrB,UAAU,QAAQ,EAAE,KAAK;AACzB,UAAS;AACT,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACnD,UAAU,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,EAAC;AACnC,SAAS,EAAC;AACV,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE;AAC3B,UAAU,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAC;AACjD,UAAU,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,GAAG,QAAQ,EAAC;AACjE,SAAS;AACT,QAAQ,KAAK,CAAC,EAAE,CAAC,GAAG,OAAM;AAC1B,QAAQ,OAAO,MAAM;AACrB,OAAO,EAAC;AACR,KAAK,EAAC;AACN;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAU,SAAS,EAAE;AAChE,MAAM,IAAI,GAAG,GAAG,iBAAiB,CAAC,SAAS,EAAC;AAC5C;AACA,MAAM,SAAS,mBAAmB,EAAE,GAAG,EAAE,KAAK,EAAE;AAChD,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAC;AAC1C;AACA,QAAQ,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC/B,QAAQ,IAAI,SAAS,GAAG,GAAG,CAAC,UAAS;AACrC;AACA,QAAQ,IAAI,cAAc,GAAG,MAAM,CAAC,aAAY;AAChD,QAAQ,IAAI,YAAY,GAAG,MAAM,CAAC,OAAM;AACxC;AACA;AACA,QAAQ,OAAO,CAAC,QAAQ,CAAC,YAAY;AACrC,UAAU,GAAG,CAAC,MAAM,CAAC,KAAK;AAC1B,YAAY,KAAK,GAAG,YAAY,GAAG,KAAK,GAAG,sBAAsB;AACjE,YAAY,KAAK,GAAG,mBAAmB;AACvC,YAAY,cAAc,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK;AAChD,YAAY,YAAY,GAAG,aAAa,GAAG,KAAK,GAAG,KAAK;AACxD,YAAY,YAAY,GAAG,aAAa,GAAG,KAAK,GAAG,YAAY;AAC/D,YAAY,cAAc,GAAG,GAAG,GAAG,KAAK,GAAG,YAAY;AACvD,YAAY,iBAAiB,GAAG,KAAK;AACrC,YAAY,YAAY,GAAG,KAAK,GAAG,wBAAwB;AAC3D,YAAY,MAAM,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,GAAG,eAAe;AAC9D,YAAY,6BAA6B,GAAG,SAAS,GAAG,GAAG,EAAC;AAC5D,SAAS,EAAC;AACV;AACA;AACA,QAAQ,IAAI,MAAM,GAAG;AACrB,UAAU,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACpC,UAAS;AACT,QAAQ,IAAI,aAAa,GAAG,IAAI,eAAe,GAAE;AACjD,QAAQ,aAAa,CAAC,KAAK,GAAG,qBAAoB;AAClD,QAAQ,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAC1D,UAAU,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,EAAC;AAC1D,SAAS,EAAC;AACV;AACA,QAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,OAAM;AAClC,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,KAAI;AAC9B,QAAQ,KAAK;AACb,UAAU,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK;AAClD,UAAU,MAAM,CAAC,QAAQ,EAAE,QAAQ;AACnC,UAAU,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI;AAC1F,UAAU,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS;AACtC,UAAU,QAAQ;AAClB,UAAU,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI;AAC/D,UAAU,KAAK,EAAE,MAAM,EAAE,IAAI;AAC7B,UAAU,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS;AACtC,UAAU,yBAAyB,EAAE,KAAK,EAAE,IAAI;AAChD,UAAU,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG;AACvD,UAAU,YAAY,GAAG,KAAK,GAAG,0BAA0B;AAC3D,UAAU,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY;AAC9D,UAAU,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AACpD,YAAY,OAAO,MAAM,CAAC,CAAC,CAAC;AAC5B,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK;AAC7B,UAAU,QAAQ;AAClB,UAAU,eAAe,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE;AACjD,YAAY;AACZ,cAAc,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,mBAAmB,GAAG,CAAC;AAClE,cAAc,GAAG,GAAG,KAAK,GAAG,YAAY,GAAG,CAAC,GAAG,MAAM;AACrD,aAAa;AACb,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACrB,UAAU,SAAS;AACnB,UAAU,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY;AACzD,UAAU,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW;AACjG,UAAU,QAAQ;AAClB,UAAU,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW;AACtE,UAAU,GAAG;AACb,UAAU,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG;AACzC,UAAU,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS;AACrE,UAAU,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAC;AAC1D,QAAQ,SAAS,cAAc,EAAE,IAAI,EAAE;AACvC,UAAU,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAC;AAC3D,SAAS;AACT,QAAQ,cAAc,CAAC,MAAM,EAAC;AAC9B,QAAQ,cAAc,CAAC,QAAQ,EAAC;AAChC,QAAQ,cAAc,CAAC,QAAQ,EAAC;AAChC,QAAQ,cAAc,CAAC,SAAS,EAAC;AACjC;AACA,QAAQ,KAAK,CAAC,IAAI,EAAC;AACnB;AACA,QAAQ,KAAK,CAAC,IAAI;AAClB,UAAU,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI;AACtC,UAAU,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI;AACvD,UAAU,GAAG,EAAC;AACd;AACA,QAAQ,OAAO,MAAM;AACrB,OAAO;AACP;AACA,MAAM,aAAa,CAAC,SAAS,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,EAAC;AAC5E,KAAK,EAAC;AACN;AACA,IAAI,OAAO,aAAa;AACxB,GAAG;AACH;AACA,EAAE,SAAS,YAAY,EAAE,OAAO,EAAE;AAClC,IAAI,IAAI,aAAa,GAAG,OAAO,CAAC,OAAM;AACtC,IAAI,IAAI,cAAc,GAAG,OAAO,CAAC,QAAO;AACxC,IAAI,IAAI,MAAM,GAAG,GAAE;AACnB;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACvD,MAAM,IAAI,KAAK,GAAG,aAAa,CAAC,IAAI,EAAC;AACrC,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE;AAC5D,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;AACrE,UAAU,OAAO,EAAE,GAAG,KAAK;AAC3B,SAAS,MAAM;AACf,UAAU,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,SAAS;AACT,OAAO,EAAC;AACR,KAAK,EAAC;AACN;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACxD,MAAM,IAAI,GAAG,GAAG,cAAc,CAAC,IAAI,EAAC;AACpC,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AAClE,QAAQ,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;AACrC,OAAO,EAAC;AACR,KAAK,EAAC;AACN;AACA,IAAI,OAAO,MAAM;AACjB,GAAG;AACH;AACA,EAAE,SAAS,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;AACxE,IAAI,IAAI,aAAa,GAAG,OAAO,CAAC,OAAM;AACtC,IAAI,IAAI,cAAc,GAAG,OAAO,CAAC,QAAO;AACxC;AACA,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY;AACjC,MAAM,IAAI,SAAS,GAAG;AACtB,QAAQ,aAAa;AACrB,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,QAAQ,WAAW;AACnB,QAAQ,SAAS;AACjB,QAAQ,KAAK;AACb,OAAO,CAAC,MAAM,CAAC,cAAc,EAAC;AAC9B;AACA,MAAM,SAAS,SAAS,EAAE,IAAI,EAAE;AAChC,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACjD,UAAU,OAAO,CAAC,OAAO;AACzB,YAAY,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACvC,YAAY,qBAAqB,GAAG,GAAG,GAAG,GAAG;AAC7C,YAAY,GAAG,CAAC,UAAU,EAAC;AAC3B,SAAS,EAAC;AACV,OAAO;AACP;AACA,MAAM,SAAS,CAAC,aAAa,EAAC;AAC9B,MAAM,SAAS,CAAC,cAAc,EAAC;AAC/B,KAAK,EAAC;AACN;AACA,IAAI,IAAI,eAAe,GAAG,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAC;AACnE;AACA,IAAI,IAAI,WAAW,GAAG,gBAAgB,CAAC,OAAY,EAAC;AACpD,IAAI,IAAI,kBAAkB,GAAG,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAC;AAC5E,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,EAAC;AACtC,IAAI,IAAI,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,EAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,eAAe,EAAC;AAC5D;AACA,IAAI,SAAS,OAAO,EAAE,IAAI,EAAE;AAC5B,MAAM,IAAI,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAC;AACzC,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,KAAI;AAC1B,OAAO;AACP,KAAK;AACL,IAAI,OAAO,CAAC,UAAU,EAAC;AACvB,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAC;AACpC;AACA,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,EAAC;AAC7C;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,MAAM,WAAW,EAAE,WAAW;AAC9B,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,MAAM,EAAE,MAAM;AACpB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,OAAO,EAAE,IAAI;AACnB,MAAM,MAAM,EAAE,KAAK;AACnB,MAAM,UAAU,EAAE,EAAE;AACpB,MAAK;AACL;AACA,IAAI,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,OAAY,EAAC;AAC/C,IAAI,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAC;AAClD,IAAI,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAG;AAC/C;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AACvB,MAAM,MAAM,CAAC,OAAO;AACpB,MAAM,CAAC,eAAe;AACtB,MAAM,UAAU,CAAC,sBAAsB;AACvC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC5B,MAAM,IAAI,MAAM,GAAG,KAAI;AACvB,MAAM,IAAI,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;AACzE,QAAQ,IAAI,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAC;AAC7C,QAAQ,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,QAAO;AACpC,QAAQ,OAAO,OAAO;AACtB,OAAO,EAAC;AACR,MAAM,IAAI,MAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/C,QAAQ,IAAI,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC;AACjE,UAAU,UAAU,EAAE,cAAc;AACpC,UAAU,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;AACxC,SAAS,CAAC,EAAC;AACX,QAAQ,MAAM,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE,KAAK,EAAE;AACjF,UAAU,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B,SAAS,EAAC;AACV,QAAQ,MAAM,CAAC,MAAM,GAAG,KAAI;AAC5B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,eAAe,EAAE;AACzB,MAAM,MAAM,CAAC,MAAM,GAAG,KAAI;AAC1B,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,GAAG,EAAC;AAC1D,KAAK;AACL,IAAI,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,OAAY,EAAC;AAC/C,IAAI,OAAO,MAAM;AACjB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE;AAC7C,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC3B,IAAI,IAAI,OAAO,GAAG,MAAM,CAAC,QAAO;AAChC;AACA,IAAI,IAAI,YAAY,GAAG,GAAG,CAAC,KAAK,GAAE;AAClC;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACjD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,EAAC;AACrC,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,EAAC;AAC9B,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AACzC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,QAAQ,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAC;AAClE,OAAO,MAAM;AACb,QAAQ,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC;AACzD,OAAO;AACP,KAAK,EAAC;AACN;AACA,IAAI,KAAK,CAAC,YAAY,EAAC;AACvB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,mBAAmB,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE;AACpE,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC3B;AACA,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAE;AACtB,IAAI,IAAI,iBAAiB,GAAG,MAAM,CAAC,YAAW;AAC9C,IAAI,IAAI,iBAAgB;AACxB,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,qBAAqB,EAAC;AAC5E,KAAK;AACL;AACA,IAAI,IAAI,SAAS,GAAG,GAAG,CAAC,UAAS;AACjC;AACA,IAAI,IAAI,YAAY,GAAG,SAAS,CAAC,WAAU;AAC3C,IAAI,IAAI,WAAW,GAAG,SAAS,CAAC,WAAU;AAC1C;AACA,IAAI,IAAI,KAAI;AACZ,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AAC3C,KAAK,MAAM;AACX,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,EAAC;AAClD,KAAK;AACL;AACA,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAC;AAC5D,KAAK;AACL,IAAI,KAAK;AACT,MAAM,KAAK,EAAE,IAAI,EAAE,IAAI;AACvB,MAAM,EAAE,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAC;AAC7E,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,KAAK,CAAC,gBAAgB,EAAE,oBAAoB;AAClD,QAAQ,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,6BAA6B,EAAC;AAC/D,KAAK;AACL,IAAI,KAAK,CAAC,QAAQ;AAClB,MAAM,EAAE,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,SAAS,EAAC;AAC3D,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,WAAW,EAAE,IAAI,EAAC;AACtE,KAAK;AACL,IAAI,KAAK;AACT,MAAM,GAAG;AACT,MAAM,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAC;AAC5C,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,MAAM,KAAK,CAAC,GAAG,EAAC;AAChB,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5C,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC3B;AACA,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAE;AACtB;AACA,IAAI,IAAI,YAAY,GAAG,GAAG,CAAC,QAAO;AAClC,IAAI,IAAI,SAAS,GAAG,GAAG,CAAC,KAAI;AAC5B,IAAI,IAAI,aAAa,GAAG,MAAM,CAAC,QAAO;AACtC,IAAI,IAAI,UAAU,GAAG,MAAM,CAAC,KAAI;AAChC;AACA,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAC;AACjD;AACA,IAAI,cAAc,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAC3C,MAAM,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAC;AAChC,MAAM,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;AAC/B,QAAQ,MAAM;AACd,OAAO;AACP;AACA,MAAM,IAAI,IAAI,EAAE,QAAO;AACvB,MAAM,IAAI,KAAK,IAAI,SAAS,EAAE;AAC9B,QAAQ,IAAI,GAAG,SAAS,CAAC,KAAK,EAAC;AAC/B,QAAQ,OAAO,GAAG,YAAY,CAAC,KAAK,EAAC;AACrC,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;AAClE,UAAU,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;AAC7C,SAAS,EAAC;AACV,QAAQ,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACjD,UAAU,OAAO,CAAC,GAAG,KAAK,GAAG,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;AACpD,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,WAAW,IAAI;AACf,YAAY,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI;AAC1D,YAAY,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACtC,cAAc,OAAO,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;AACjD,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAC;AAC/B,OAAO,MAAM;AACb,QAAQ,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAC;AAChD,QAAQ,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,EAAC;AACnE,QAAQ,KAAK,CAAC,IAAI,EAAC;AACnB,QAAQ,IAAI,KAAK,IAAI,QAAQ,EAAE;AAC/B,UAAU,IAAI;AACd,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,eAAe,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;AAC1D,eAAe,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;AAC3D,YAAY,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC;AACtD,SAAS,MAAM;AACf,UAAU,IAAI;AACd,YAAY,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI;AACzD,YAAY,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC;AACtD,SAAS;AACT,OAAO;AACP,KAAK,EAAC;AACN,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9C,MAAM,KAAK,CAAC,aAAa,EAAE,eAAe,EAAC;AAC3C,KAAK;AACL,IAAI,KAAK,CAAC,KAAK,EAAC;AAChB,GAAG;AACH;AACA,EAAE,SAAS,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;AACxD,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC3B,IAAI,IAAI,YAAY,GAAG,GAAG,CAAC,QAAO;AAClC,IAAI,IAAI,aAAa,GAAG,MAAM,CAAC,QAAO;AACtC,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAE;AACtB,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AAC7D,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,EAAC;AAC/B,MAAM,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACnC,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AAC5C,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC3B,QAAQ,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAC;AAClC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC5B,UAAU,IAAI,QAAQ,EAAE;AACxB,YAAY,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAC;AAC7C,WAAW,MAAM;AACjB,YAAY,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAC;AAC9C,WAAW;AACX,SAAS,MAAM;AACf,UAAU,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClC,aAAa,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7C,aAAa,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,EAAC;AAC/C,SAAS;AACT,QAAQ,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAC;AAC5D,OAAO,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE;AACxC,QAAQ,IAAI,OAAO,GAAG,YAAY,CAAC,KAAK,EAAC;AACzC,QAAQ,KAAK;AACb,UAAU,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI;AAC3D,UAAU,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACvC,YAAY,OAAO,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;AAC/C,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAC;AAC5B,OAAO,MAAM;AACb,QAAQ,KAAK;AACb,UAAU,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI;AAC3D,UAAU,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAC;AACxD,OAAO;AACP,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,gBAAgB,EAAE,GAAG,EAAE,KAAK,EAAE;AACzC,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG;AAChC,QAAQ,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,yBAAyB,EAAC;AACzD,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE;AACtE,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC3B,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,MAAK;AACzB,IAAI,IAAI,aAAa,GAAG,MAAM,CAAC,QAAO;AACtC,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,MAAK;AAC5B,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,QAAO;AACjC;AACA,IAAI,SAAS,WAAW,IAAI;AAC5B,MAAM,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;AAC9C,QAAQ,OAAO,YAAY;AAC3B,OAAO,MAAM;AACb,QAAQ,OAAO,mBAAmB;AAClC,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,SAAS,EAAE,cAAa;AAChC,IAAI,SAAS,gBAAgB,EAAE,KAAK,EAAE;AACtC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,GAAE;AAC7B,MAAM,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,GAAG,EAAC;AAC/C,MAAM,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;AAChD,QAAQ,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,EAAC;AACvD,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,KAAK,EAAE,WAAW,EAAC;AACjC,OAAO;AACP,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,IAAI,QAAQ,EAAE;AACtB,UAAU,aAAa,GAAG,KAAK,CAAC,GAAG,GAAE;AACrC,UAAU,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAC;AACtE,SAAS,MAAM;AACf,UAAU,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAC;AACnD,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,IAAI,SAAS,cAAc,EAAE,KAAK,EAAE;AACpC,MAAM,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAC;AACpE,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,IAAI,QAAQ,EAAE;AACtB,UAAU,KAAK,CAAC,KAAK,EAAE,kBAAkB;AACzC,YAAY,aAAa,EAAE,GAAG;AAC9B,YAAY,KAAK,EAAE,0BAA0B;AAC7C,YAAY,KAAK,EAAE,IAAI,EAAC;AACxB,SAAS,MAAM;AACf,UAAU,KAAK,CAAC,KAAK,EAAE,cAAc,EAAC;AACtC,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,IAAI,SAAS,YAAY,EAAE,KAAK,EAAE;AAClC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,EAAC;AACrD,MAAM,KAAK,CAAC,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAC;AACnD,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAC;AACvD,KAAK;AACL;AACA,IAAI,IAAI,YAAW;AACnB,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE;AAChC,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE;AAC/B,UAAU,gBAAgB,CAAC,KAAK,EAAC;AACjC,UAAU,cAAc,CAAC,KAAK,CAAC,IAAI,EAAC;AACpC,UAAU,YAAY,CAAC,MAAM,EAAC;AAC9B,SAAS,MAAM;AACf,UAAU,YAAY,CAAC,OAAO,EAAC;AAC/B,SAAS;AACT,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AACjD,MAAM,YAAY,CAAC,WAAW,EAAC;AAC/B,KAAK,MAAM;AACX,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,EAAC;AACxD,KAAK;AACL;AACA,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,GAAE;AAC3B,IAAI,gBAAgB,CAAC,KAAK,EAAC;AAC3B,IAAI,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAC;AAC/C,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,GAAE;AACzB,IAAI,cAAc,CAAC,GAAG,EAAC;AACvB,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAC;AAClD,GAAG;AACH;AACA,EAAE,SAAS,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE;AACjE,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC3B;AACA,IAAI,SAAS,UAAU,EAAE,CAAC,EAAE;AAC5B,MAAM,QAAQ,CAAC;AACf,QAAQ,KAAK,aAAa,CAAC;AAC3B,QAAQ,KAAK,WAAW,CAAC;AACzB,QAAQ,KAAK,YAAY;AACzB,UAAU,OAAO,CAAC;AAClB,QAAQ,KAAK,aAAa,CAAC;AAC3B,QAAQ,KAAK,WAAW,CAAC;AACzB,QAAQ,KAAK,YAAY;AACzB,UAAU,OAAO,CAAC;AAClB,QAAQ,KAAK,aAAa,CAAC;AAC3B,QAAQ,KAAK,WAAW,CAAC;AACzB,QAAQ,KAAK,YAAY;AACzB,UAAU,OAAO,CAAC;AAClB,QAAQ;AACR,UAAU,OAAO,CAAC;AAClB,OAAO;AACP,KAAK;AACL;AACA,IAAI,SAAS,iBAAiB,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;AACzD,MAAM,IAAI,EAAE,GAAG,MAAM,CAAC,GAAE;AACxB;AACA,MAAM,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAC;AACtD,MAAM,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAC;AACpE;AACA,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,MAAK;AAC9B,MAAM,IAAI,MAAM,GAAG,MAAM,CAAC,OAAM;AAChC,MAAM,IAAI,gBAAgB,GAAG;AAC7B,QAAQ,MAAM,CAAC,CAAC;AAChB,QAAQ,MAAM,CAAC,CAAC;AAChB,QAAQ,MAAM,CAAC,CAAC;AAChB,QAAQ,MAAM,CAAC,CAAC;AAChB,QAAO;AACP;AACA,MAAM,IAAI,WAAW,GAAG;AACxB,QAAQ,QAAQ;AAChB,QAAQ,YAAY;AACpB,QAAQ,QAAQ;AAChB,QAAQ,QAAQ;AAChB,QAAO;AACP;AACA,MAAM,SAAS,UAAU,IAAI;AAC7B,QAAQ,KAAK;AACb,UAAU,MAAM,EAAE,OAAO,EAAE,WAAW;AACtC,UAAU,EAAE,EAAE,2BAA2B,EAAE,QAAQ,EAAE,KAAK,EAAC;AAC3D;AACA,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,KAAI;AAC9B,QAAQ,IAAI,KAAI;AAChB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC1B,UAAU,IAAI,GAAG,KAAI;AACrB,SAAS,MAAM;AACf,UAAU,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC;AACnD,SAAS;AACT;AACA,QAAQ,KAAK,CAAC,KAAK;AACnB,UAAU,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI;AACzC,UAAU,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI;AACzC,UAAU,WAAW,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE;AACzC,YAAY,OAAO,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;AAC5D,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,UAAU,IAAI;AACd,UAAU,EAAE,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW;AACzE,UAAU,EAAE,EAAE,uBAAuB,EAAE;AACvC,YAAY,QAAQ;AACpB,YAAY,IAAI;AAChB,YAAY,IAAI;AAChB,YAAY,MAAM,CAAC,UAAU;AAC7B,YAAY,MAAM,CAAC,MAAM;AACzB,YAAY,MAAM,CAAC,MAAM;AACzB,WAAW,EAAE,IAAI;AACjB,UAAU,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;AACtC,UAAU,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;AACtC,UAAU,WAAW,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE;AACzC,YAAY,OAAO,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG;AAChE,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACrB,UAAU,GAAG,EAAC;AACd;AACA,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,IAAI,OAAO,GAAG,MAAM,CAAC,QAAO;AACtC,UAAU,KAAK;AACf,YAAY,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI;AACxD,YAAY,GAAG,CAAC,UAAU,EAAE,4BAA4B,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI;AACnF,YAAY,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAC;AAChD,SAAS;AACT,OAAO;AACP;AACA,MAAM,SAAS,YAAY,IAAI;AAC/B,QAAQ,KAAK;AACb,UAAU,KAAK,EAAE,OAAO,EAAE,WAAW;AACrC,UAAU,EAAE,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI;AAC1D,UAAU,OAAO,EAAE,eAAe;AAClC,UAAU,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACtD,YAAY,OAAO,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC;AAClE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI;AAC7B,UAAU,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI;AACvE,UAAU,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AAC9C,YAAY,OAAO,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,GAAG;AACtE,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACrB,UAAU,GAAG,EAAC;AACd,OAAO;AACP;AACA,MAAM,IAAI,KAAK,KAAK,oBAAoB,EAAE;AAC1C,QAAQ,UAAU,GAAE;AACpB,OAAO,MAAM,IAAI,KAAK,KAAK,qBAAqB,EAAE;AAClD,QAAQ,YAAY,GAAE;AACtB,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAC;AAC9D,QAAQ,UAAU,GAAE;AACpB,QAAQ,KAAK,CAAC,QAAQ,EAAC;AACvB,QAAQ,YAAY,GAAE;AACtB,QAAQ,KAAK,CAAC,GAAG,EAAC;AAClB,OAAO;AACP,KAAK;AACL;AACA,IAAI,UAAU,CAAC,OAAO,CAAC,UAAU,SAAS,EAAE;AAC5C,MAAM,IAAI,IAAI,GAAG,SAAS,CAAC,KAAI;AAC/B,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAC;AACrC,MAAM,IAAI,OAAM;AAChB,MAAM,IAAI,GAAG,EAAE;AACf,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AAC1B,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AACvC,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACjC,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,EAAC;AAC/C,QAAQ,OAAO,CAAC,QAAQ,CAAC,YAAY;AACrC,UAAU,GAAG,CAAC,MAAM,CAAC,KAAK;AAC1B,YAAY,WAAW,GAAG,QAAQ;AAClC,YAAY,oBAAoB,GAAG,IAAI,EAAC;AACxC,SAAS,EAAC;AACV,QAAQ,MAAM,GAAG,GAAE;AACnB,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAClE,UAAU,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,EAAC;AACxD,SAAS,EAAC;AACV,OAAO;AACP,MAAM,iBAAiB;AACvB,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAC;AACrE,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE;AAC/E,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC3B,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAE;AACtB;AACA,IAAI,IAAI,kBAAkB,GAAG,GAAE;AAC/B,IAAI,IAAI,MAAK;AACb,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC9C,MAAM,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,EAAC;AAC/B,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC,KAAI;AAC7B,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAI;AAClC,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAI;AAClC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC;AACnC,MAAM,IAAI,IAAI,GAAG,CAAC,EAAE;AACpB;AACA,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,UAAU,QAAQ;AAClB,SAAS;AACT,QAAQ,IAAI,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAC;AACpD,QAAQ,IAAI,kBAAkB,CAAC,cAAc,CAAC,EAAE;AAChD,UAAU,QAAQ;AAClB,SAAS;AACT,QAAQ,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAC;AAC9C,OAAO;AACP,MAAM,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAC;AACrC,MAAM,IAAI,QAAQ,GAAG,OAAO,GAAG,YAAW;AAC1C;AACA,MAAM,IAAI,MAAK;AACf,MAAM,IAAI,GAAG,EAAE;AACf,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AAC1B,UAAU,QAAQ;AAClB,SAAS;AACT,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC3B,UAAU,IAAI,KAAK,GAAG,GAAG,CAAC,MAAK;AAC/B,UAAU,OAAO,CAAC,OAAO;AACzB,YAAY,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW;AAC1D,YAAY,mBAAmB,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,UAAU,EAAC;AAC7D,UAAU,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,eAAe,EAAE;AAClE,YAAY,OAAO,CAAC,OAAO;AAC3B,cAAc,OAAO,KAAK,KAAK,UAAU;AACzC,eAAe,CAAC,IAAI,KAAK,aAAa;AACtC,iBAAiB,KAAK,CAAC,SAAS,KAAK,WAAW;AAChD,gBAAgB,KAAK,CAAC,SAAS,KAAK,aAAa,CAAC;AAClD,eAAe,IAAI,KAAK,eAAe;AACvC,iBAAiB,KAAK,CAAC,SAAS,KAAK,aAAa;AAClD,gBAAgB,KAAK,CAAC,SAAS,KAAK,iBAAiB,CAAC,CAAC,CAAC;AACxD,cAAc,8BAA8B,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACpE,YAAY,IAAI,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAC;AAC/E,YAAY,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,GAAG,WAAW,EAAC;AAC5E,YAAY,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAC;AAC/C,WAAW,MAAM;AACjB,YAAY,IAAI,KAAK,aAAa;AAClC,YAAY,IAAI,KAAK,aAAa;AAClC,YAAY,IAAI,KAAK,aAAa,EAAE;AACpC,YAAY,OAAO,CAAC,QAAQ,CAAC,YAAY;AACzC,cAAc,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AAChD,gBAAgB,6BAA6B,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACrE,cAAc,OAAO,CAAC,OAAO;AAC7B,gBAAgB,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAC7D,iBAAiB,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9D,iBAAiB,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC;AAC/D,gBAAgB,oCAAoC,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AAC5E,aAAa,EAAC;AACd,YAAY,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB;AAC/D,cAAc,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,EAAC;AACvD,YAAY,IAAI,GAAG,GAAG,EAAC;AACvB,YAAY,IAAI,IAAI,KAAK,aAAa,EAAE;AACxC,cAAc,GAAG,GAAG,EAAC;AACrB,aAAa,MAAM,IAAI,IAAI,KAAK,aAAa,EAAE;AAC/C,cAAc,GAAG,GAAG,EAAC;AACrB,aAAa;AACb,YAAY,KAAK;AACjB,cAAc,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,KAAK;AAC9C,cAAc,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAC;AACnD,WAAW,MAAM;AACjB,YAAY,QAAQ,IAAI;AACxB,cAAc,KAAK,UAAU;AAC7B,gBAAgB,IAAI,IAAI,KAAK,CAAC,EAAE;AAChC,kBAAkB,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACzF,iBAAiB,MAAM;AACvB,kBAAkB,OAAO,CAAC,OAAO;AACjC,oBAAoB,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;AACjE,oBAAoB,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACtD,iBAAiB;AACjB,gBAAgB,KAAK,GAAG,KAAI;AAC5B,gBAAgB,KAAK;AACrB,cAAc,KAAK,aAAa;AAChC,gBAAgB,OAAO,CAAC,OAAO;AAC/B,kBAAkB,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC;AAC5G,kBAAkB,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACpD,gBAAgB,KAAK,GAAG,KAAI;AAC5B,gBAAgB,KAAK;AACrB,cAAc,KAAK,aAAa;AAChC,gBAAgB,OAAO,CAAC,OAAO;AAC/B,kBAAkB,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC;AAC5G,kBAAkB,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACpD,gBAAgB,KAAK,GAAG,KAAI;AAC5B,gBAAgB,KAAK;AACrB,cAAc,KAAK,aAAa;AAChC,gBAAgB,OAAO,CAAC,OAAO;AAC/B,kBAAkB,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC;AAC5G,kBAAkB,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACpD,gBAAgB,KAAK,GAAG,KAAI;AAC5B,gBAAgB,KAAK;AACrB,cAAc,KAAK,OAAO;AAC1B,gBAAgB,IAAI,IAAI,KAAK,CAAC,EAAE;AAChC,kBAAkB,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AAC1F,iBAAiB,MAAM;AACvB,kBAAkB,OAAO,CAAC,OAAO;AACjC,oBAAoB,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;AACjE,oBAAoB,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACtD,iBAAiB;AACjB,gBAAgB,KAAK,GAAG,KAAI;AAC5B,gBAAgB,KAAK;AACrB,cAAc,KAAK,QAAQ;AAC3B,gBAAgB,IAAI,IAAI,KAAK,CAAC,EAAE;AAChC,kBAAkB,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACzF,iBAAiB,MAAM;AACvB,kBAAkB,OAAO,CAAC,OAAO;AACjC,oBAAoB,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;AACjE,oBAAoB,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACtD,iBAAiB;AACjB,gBAAgB,KAAK,GAAG,KAAI;AAC5B,gBAAgB,KAAK;AACrB,cAAc,KAAK,YAAY;AAC/B,gBAAgB,OAAO,CAAC,OAAO;AAC/B,kBAAkB,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC;AAC5G,kBAAkB,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACpD,gBAAgB,KAAK,GAAG,KAAI;AAC5B,gBAAgB,KAAK;AACrB,cAAc,KAAK,WAAW;AAC9B,gBAAgB,OAAO,CAAC,OAAO;AAC/B,kBAAkB,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC;AAC5G,kBAAkB,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACpD,gBAAgB,KAAK,GAAG,KAAI;AAC5B,gBAAgB,KAAK;AACrB,cAAc,KAAK,YAAY;AAC/B,gBAAgB,OAAO,CAAC,OAAO;AAC/B,kBAAkB,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC;AAC5G,kBAAkB,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACpD,gBAAgB,KAAK,GAAG,KAAI;AAC5B,gBAAgB,KAAK;AACrB,cAAc,KAAK,WAAW;AAC9B,gBAAgB,OAAO,CAAC,OAAO;AAC/B,kBAAkB,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC;AAC5G,kBAAkB,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACpD,gBAAgB,KAAK,GAAG,KAAI;AAC5B,gBAAgB,KAAK;AACrB,cAAc,KAAK,YAAY;AAC/B,gBAAgB,OAAO,CAAC,OAAO;AAC/B,kBAAkB,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC;AAC5G,kBAAkB,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACpD,gBAAgB,KAAK,GAAG,KAAI;AAC5B,gBAAgB,KAAK;AACrB,cAAc,KAAK,WAAW;AAC9B,gBAAgB,OAAO,CAAC,OAAO;AAC/B,kBAAkB,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC;AAC5G,kBAAkB,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,UAAU,EAAC;AACpD,gBAAgB,KAAK,GAAG,KAAI;AAC5B,gBAAgB,KAAK;AACrB,aAAa;AACb,YAAY,IAAI,IAAI,GAAG,CAAC,EAAE;AAC1B,cAAc,KAAK,IAAI,IAAG;AAC1B,cAAc,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;AACxC,cAAc,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAC;AACtD,aAAa,MAAM;AACnB,cAAc,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAK;AACpF,aAAa;AACb,YAAY,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;AAC3D,cAAc,KAAK;AACnB,cAAc,IAAI,EAAC;AACnB,WAAW;AACX,UAAU,QAAQ;AAClB,SAAS,MAAM;AACf,UAAU,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AACxC,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACjC,UAAU,QAAQ;AAClB,SAAS;AACT,QAAQ,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAC;AAC1E,OAAO;AACP;AACA,MAAM,IAAI,IAAI,KAAK,aAAa,EAAE;AAClC,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,yCAAyC,EAAC;AACjF,QAAQ,KAAK;AACb,UAAU,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,8BAA8B;AACnE,UAAU,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY;AACzC,UAAU,GAAG,EAAC;AACd,OAAO,MAAM,IAAI,IAAI,KAAK,eAAe,EAAE;AAC3C,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,0CAA0C,EAAC;AAClF,QAAQ,KAAK;AACb,UAAU,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,kCAAkC;AACvE,UAAU,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY;AACzC,UAAU,GAAG,EAAC;AACd,OAAO;AACP;AACA;AACA,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY;AACnC,QAAQ,SAAS,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3C,UAAU,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI;AAChC,YAAY,mCAAmC,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,EAAC;AAC1E,SAAS;AACT;AACA,QAAQ,SAAS,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AACxC,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE;AAC1B,YAAY,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,4CAA4C,EAAC;AACxF,WAAW;AACX,UAAU,SAAS;AACnB,YAAY,gBAAgB,GAAG,KAAK,GAAG,cAAc,GAAG,KAAK,GAAG,UAAU,GAAG,IAAI,GAAG,GAAG;AACvF,YAAY,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG;AACvD,YAAY,yBAAyB,GAAG,IAAI,EAAC;AAC7C,SAAS;AACT;AACA,QAAQ,SAAS,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;AAC7C,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACpC,YAAY,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,EAAE,sBAAsB,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAC;AAChJ,WAAW,MAAM;AACjB,YAAY,SAAS;AACrB,cAAc,MAAM,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,aAAa,GAAG,KAAK,GAAG,YAAY,GAAG,CAAC,GAAG,QAAQ;AACpH,cAAc,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,CAAC,GAAG,IAAI;AACrD,cAAc,wCAAwC,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAiB,EAAC;AACxG,WAAW;AACX,SAAS;AACT;AACA,QAAQ,SAAS,YAAY,EAAE,MAAM,EAAE;AACvC,UAAU,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,+BAA+B,EAAC;AACzE,UAAU,SAAS;AACnB,YAAY,SAAS,GAAG,KAAK,GAAG,iBAAiB;AACjD,YAAY,KAAK,GAAG,uBAAuB;AAC3C,aAAa,MAAM,KAAK,eAAe,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG;AAC9D,YAAY,sBAAsC,EAAC;AACnD,SAAS;AACT;AACA,QAAQ,QAAQ,IAAI;AACpB,UAAU,KAAK,QAAQ;AACvB,YAAY,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAC;AACrC,YAAY,KAAK;AACjB,UAAU,KAAK,WAAW;AAC1B,YAAY,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC;AAC1C,YAAY,KAAK;AACjB,UAAU,KAAK,WAAW;AAC1B,YAAY,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC;AAC1C,YAAY,KAAK;AACjB,UAAU,KAAK,WAAW;AAC1B,YAAY,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC;AAC1C,YAAY,KAAK;AACjB,UAAU,KAAK,UAAU;AACzB,YAAY,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAC;AACrC,YAAY,KAAK;AACjB,UAAU,KAAK,aAAa;AAC5B,YAAY,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC;AAC1C,YAAY,KAAK;AACjB,UAAU,KAAK,aAAa;AAC5B,YAAY,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC;AAC1C,YAAY,KAAK;AACjB,UAAU,KAAK,aAAa;AAC5B,YAAY,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC;AAC1C,YAAY,KAAK;AACjB,UAAU,KAAK,OAAO;AACtB,YAAY,SAAS,CAAC,SAAS,EAAE,IAAI,EAAC;AACtC,YAAY,KAAK;AACjB,UAAU,KAAK,YAAY;AAC3B,YAAY,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAC;AAC3C,YAAY,KAAK;AACjB,UAAU,KAAK,YAAY;AAC3B,YAAY,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAC;AAC3C,YAAY,KAAK;AACjB,UAAU,KAAK,YAAY;AAC3B,YAAY,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAC;AAC3C,YAAY,KAAK;AACjB,UAAU,KAAK,aAAa;AAC5B,YAAY,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC;AAC1C,YAAY,KAAK;AACjB,UAAU,KAAK,aAAa;AAC5B,YAAY,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC;AAC1C,YAAY,KAAK;AACjB,UAAU,KAAK,aAAa;AAC5B,YAAY,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAC;AAC3C,YAAY,KAAK;AACjB,UAAU,KAAK,aAAa;AAC5B,YAAY,YAAY,CAAC,eAAe,EAAC;AACzC,YAAY,KAAK;AACjB,UAAU,KAAK,eAAe;AAC9B,YAAY,YAAY,CAAC,qBAAqB,EAAC;AAC/C,YAAY,KAAK;AACjB,SAAS;AACT,OAAO,EAAC;AACR;AACA,MAAM,IAAI,MAAM,GAAG,EAAC;AACpB,MAAM,QAAQ,IAAI;AAClB,QAAQ,KAAK,aAAa,CAAC;AAC3B,QAAQ,KAAK,eAAe;AAC5B,UAAU,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAC;AACjD,UAAU,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAC;AACnE,UAAU,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAC;AACvC,UAAU,QAAQ;AAClB;AACA,QAAQ,KAAK,QAAQ,CAAC;AACtB,QAAQ,KAAK,OAAO;AACpB,UAAU,KAAK,GAAG,KAAI;AACtB,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,WAAW,CAAC;AACzB,QAAQ,KAAK,YAAY;AACzB,UAAU,KAAK,GAAG,KAAI;AACtB,UAAU,MAAM,GAAG,EAAC;AACpB,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,WAAW,CAAC;AACzB,QAAQ,KAAK,YAAY;AACzB,UAAU,KAAK,GAAG,KAAI;AACtB,UAAU,MAAM,GAAG,EAAC;AACpB,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,WAAW,CAAC;AACzB,QAAQ,KAAK,YAAY;AACzB,UAAU,KAAK,GAAG,KAAI;AACtB,UAAU,MAAM,GAAG,EAAC;AACpB,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,UAAU;AACvB,UAAU,KAAK,GAAG,KAAI;AACtB,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,aAAa;AAC1B,UAAU,KAAK,GAAG,KAAI;AACtB,UAAU,MAAM,GAAG,EAAC;AACpB,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,aAAa;AAC1B,UAAU,KAAK,GAAG,KAAI;AACtB,UAAU,MAAM,GAAG,EAAC;AACpB,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,aAAa;AAC1B,UAAU,KAAK,GAAG,KAAI;AACtB,UAAU,MAAM,GAAG,EAAC;AACpB,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,aAAa;AAC1B,UAAU,KAAK,GAAG,YAAW;AAC7B,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,aAAa;AAC1B,UAAU,KAAK,GAAG,YAAW;AAC7B,UAAU,KAAK;AACf;AACA,QAAQ,KAAK,aAAa;AAC1B,UAAU,KAAK,GAAG,YAAW;AAC7B,UAAU,KAAK;AACf,OAAO;AACP;AACA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;AACtD,QAAQ,KAAK,IAAI,IAAG;AACpB,QAAQ,MAAM,GAAG,EAAC;AAClB,OAAO;AACP;AACA,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACnC,QAAQ,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAC;AACxD,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC,EAAC;AAC3D,QAAQ,IAAI,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,EAAE,GAAG,EAAC;AACvE,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAClC,UAAU,KAAK;AACf,YAAY,SAAS;AACrB,YAAY,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;AACvC,cAAc,OAAO,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AACxD,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAC;AAClC,SAAS,MAAM;AACf,UAAU,KAAK;AACf,YAAY,uBAAuB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,IAAI;AACnG,YAAY,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;AACvC,cAAc,OAAO,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;AACrE,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAC;AAClC,SAAS;AACT,QAAQ,KAAK,CAAC,IAAI,EAAC;AACnB,OAAO,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE;AAC7B,QAAQ,IAAI,IAAI,GAAG,GAAE;AACrB,QAAQ,IAAI,GAAG,GAAG,GAAE;AACpB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACzC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACpC,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC;AAC9B,WAAW,MAAM;AACjB,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,EAAC;AACtD,WAAW;AACX,UAAU,IAAI,gBAAgB,EAAE;AAChC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAC;AAClC,WAAW;AACX,SAAS;AACT,QAAQ,IAAI,gBAAgB,EAAE;AAC9B,UAAU,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACpE,YAAY,OAAO,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;AACrC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACxD,YAAY,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;AACzC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC;AACtB,SAAS;AACT,QAAQ,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAC;AAC7E,QAAQ,IAAI,gBAAgB,EAAE;AAC9B,UAAU,KAAK,CAAC,GAAG,EAAC;AACpB,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,oCAAoC,EAAC;AAC5E,QAAQ,IAAI,gBAAgB,EAAE;AAC9B,UAAU,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,GAAE;AACjC,UAAU,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI;AACpE,YAAY,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC;AACnC,SAAS;AACT,QAAQ,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAC;AACrE,QAAQ,IAAI,gBAAgB,EAAE;AAC9B,UAAU,KAAK,CAAC,GAAG,EAAC;AACpB,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;AAC9C,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC3B,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAE;AACtB,IAAI,IAAI,UAAU,GAAG,MAAM,CAAC,KAAI;AAChC;AACA,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC,KAAI;AAC/B;AACA,IAAI,SAAS,YAAY,IAAI;AAC7B,MAAM,IAAI,IAAI,GAAG,WAAW,CAAC,SAAQ;AACrC,MAAM,IAAI,SAAQ;AAClB,MAAM,IAAI,KAAK,GAAG,MAAK;AACvB,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,EAAE;AACtE,UAAU,KAAK,GAAG,MAAK;AACvB,SAAS;AACT,QAAQ,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AAC1C,QAAQ,IAAI,WAAW,CAAC,cAAc,EAAE;AACxC,UAAU,KAAK;AACf,YAAY,KAAK,GAAG,QAAQ,GAAG,GAAG;AAClC,YAAY,EAAE,GAAG,cAAc,GAAG,yBAAyB,GAAG,GAAG,GAAG,QAAQ,GAAG,kBAAkB,EAAC;AAClG,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAE;AAC9B,QAAQ,KAAK;AACb,UAAU,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;AACzD,UAAU,KAAK,EAAE,QAAQ,EAAE,IAAI;AAC/B,UAAU,EAAE,EAAE,cAAc,EAAE,yBAAyB,EAAE,GAAG,EAAE,QAAQ,EAAE,mBAAmB;AAC3F,UAAU,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,eAAe;AACjD,UAAU,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,eAAe,GAAG,MAAM,CAAC,GAAG,EAAE,wBAAwB;AACrG,WAAW,CAAC,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE,GAAG,cAAc,GAAG,yBAAyB,GAAG,GAAG,GAAG,QAAQ,GAAG,kBAAkB,GAAG,EAAE;AACjJ,UAAU,GAAG,EAAC;AACd,OAAO;AACP,MAAM,OAAO,QAAQ;AACrB,KAAK;AACL;AACA,IAAI,SAAS,SAAS,IAAI;AAC1B,MAAM,IAAI,IAAI,GAAG,WAAW,CAAC,MAAK;AAClC,MAAM,IAAI,MAAK;AACf,MAAM,IAAI,KAAK,GAAG,MAAK;AACvB,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,EAAE;AACtE,UAAU,KAAK,GAAG,MAAK;AACvB,SAAS;AACT,QAAQ,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AACvC,QAAQ,OAAO,CAAC,QAAQ,CAAC,YAAY;AACrC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE;AAC5B,YAAY,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAC;AAC9D,WAAW;AACX,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE;AAC5B,YAAY,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,sBAAsB,EAAC;AACpE,WAAW;AACX,SAAS,EAAC;AACV,OAAO,MAAM;AACb,QAAQ,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAC;AACnD,QAAQ,OAAO,CAAC,QAAQ,CAAC,YAAY;AACrC,UAAU,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,sBAAsB,EAAC;AAClE,SAAS,EAAC;AACV,OAAO;AACP,MAAM,OAAO,KAAK;AAClB,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,GAAG,YAAY,GAAE;AACjC,IAAI,SAAS,SAAS,EAAE,IAAI,EAAE;AAC9B,MAAM,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,EAAC;AAClC,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,EAAE;AACtE,UAAU,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;AACxC,SAAS,MAAM;AACf,UAAU,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;AACxC,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC;AAC/C,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,SAAS,GAAG,SAAS,CAAC,WAAW,EAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAC;AACpC;AACA,IAAI,IAAI,KAAK,GAAG,SAAS,GAAE;AAC3B,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,IAAI,KAAK,KAAK,CAAC,EAAE;AACvB,QAAQ,MAAM;AACd,OAAO;AACP,KAAK,MAAM;AACX,MAAM,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC;AAC/B,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC;AACrB,KAAK;AACL;AACA,IAAI,IAAI,SAAS,EAAE,eAAc;AACjC,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAC;AACxC,MAAM,cAAc,GAAG,GAAG,CAAC,WAAU;AACrC,KAAK;AACL;AACA,IAAI,IAAI,YAAY,GAAG,QAAQ,GAAG,QAAO;AACzC;AACA,IAAI,IAAI,cAAc,GAAG,WAAW,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAS;AACzG;AACA,IAAI,SAAS,cAAc,IAAI;AAC/B,MAAM,SAAS,YAAY,IAAI;AAC/B,QAAQ,KAAK,CAAC,cAAc,EAAE,8BAA8B,EAAE;AAC9D,UAAU,SAAS;AACnB,UAAU,KAAK;AACf,UAAU,YAAY;AACtB,UAAU,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,GAAG,GAAG,kBAAkB,GAAG,OAAO;AAC7E,UAAU,SAAS;AACnB,SAAS,EAAE,IAAI,EAAC;AAChB,OAAO;AACP;AACA,MAAM,SAAS,UAAU,IAAI;AAC7B,QAAQ,KAAK,CAAC,cAAc,EAAE,4BAA4B;AAC1D,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,EAAC;AACtD,OAAO;AACP;AACA,MAAM,IAAI,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE;AAC3C,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B,UAAU,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAC;AACtC,UAAU,YAAY,GAAE;AACxB,UAAU,KAAK,CAAC,QAAQ,EAAC;AACzB,UAAU,UAAU,GAAE;AACtB,UAAU,KAAK,CAAC,GAAG,EAAC;AACpB,SAAS,MAAM;AACf,UAAU,YAAY,GAAE;AACxB,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,UAAU,GAAE;AACpB,OAAO;AACP,KAAK;AACL;AACA,IAAI,SAAS,WAAW,IAAI;AAC5B,MAAM,SAAS,YAAY,IAAI;AAC/B,QAAQ,KAAK,CAAC,EAAE,GAAG,gBAAgB,GAAG;AACtC,UAAU,SAAS;AACnB,UAAU,KAAK;AACf,UAAU,YAAY;AACtB,UAAU,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,GAAG,GAAG,kBAAkB,GAAG,OAAO;AAC7E,SAAS,GAAG,IAAI,EAAC;AACjB,OAAO;AACP;AACA,MAAM,SAAS,UAAU,IAAI;AAC7B,QAAQ,KAAK,CAAC,EAAE,GAAG,cAAc,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,EAAC;AACtE,OAAO;AACP;AACA,MAAM,IAAI,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE;AAC3C,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B,UAAU,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAC;AACtC,UAAU,YAAY,GAAE;AACxB,UAAU,KAAK,CAAC,QAAQ,EAAC;AACzB,UAAU,UAAU,GAAE;AACtB,UAAU,KAAK,CAAC,GAAG,EAAC;AACpB,SAAS,MAAM;AACf,UAAU,YAAY,GAAE;AACxB,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,UAAU,GAAE;AACpB,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,aAAa,KAAK,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE;AAC5E,MAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACzC,QAAQ,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAC;AACvC,QAAQ,cAAc,GAAE;AACxB,QAAQ,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAC;AAC7C,QAAQ,WAAW,GAAE;AACrB,QAAQ,KAAK,CAAC,GAAG,EAAC;AAClB,OAAO,MAAM;AACb,QAAQ,cAAc,GAAE;AACxB,OAAO;AACP,KAAK,MAAM;AACX,MAAM,WAAW,GAAE;AACnB,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;AAClE,IAAI,IAAI,GAAG,GAAG,qBAAqB,GAAE;AACrC,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAC;AACvC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY;AACjC,MAAM,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,WAAU;AAC3C,MAAM,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAC;AAClD,KAAK,EAAC;AACN,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG;AAChC,QAAQ,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,yBAAyB,EAAC;AACzD,KAAK;AACL,IAAI,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAC;AACvC,IAAI,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI;AAC7B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AACnD,IAAI,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAC;AAC/B,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AACxB,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,EAAC;AAC9E,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,EAAC;AACxE,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAC;AAC5C,MAAM,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY;AACtE,QAAQ,OAAO,IAAI;AACnB,OAAO,EAAC;AACR,KAAK;AACL,IAAI,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,YAAY;AAChE,MAAM,OAAO,IAAI;AACjB,KAAK,EAAE,KAAK,EAAC;AACb,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC;AACnC,GAAG;AACH;AACA,EAAE,SAAS,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE;AACpC,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAC;AAClC;AACA,IAAI,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAC;AAC/B;AACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAC;AACxC,IAAI,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAC;AACpD;AACA,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAC;AAClC,IAAI,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAC;AACzC;AACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC;AAC7C;AACA,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAC;AACvD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAC;AAC9D;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC7B,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAC;AACxD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAC;AAC5C,MAAM,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAC;AAC1C,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAC;AAC5C,MAAM,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAC;AAC9D,MAAM,IAAI;AACV,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AAC7B,WAAW,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC;AAC/C,WAAW,IAAI;AACf,YAAY,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI;AAC3D,YAAY,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE;AACxC,cAAc,OAAO,UAAU,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACpE,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI;AAClC,YAAY,WAAW,EAAE,iBAAiB,CAAC,EAAC;AAC5C,KAAK;AACL;AACA,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAC;AAC9C,KAAK;AACL,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;AACxB,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAC;AAC5C,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,0BAA0B,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;AAClE,IAAI,GAAG,CAAC,OAAO,GAAG,KAAI;AACtB;AACA,IAAI,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAC;AAChC;AACA,IAAI,SAAS,GAAG,IAAI;AACpB,MAAM,OAAO,IAAI;AACjB,KAAK;AACL;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,EAAC;AAC7D,IAAI,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAC;AAChE,IAAI,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC;AACrC,GAAG;AACH;AACA,EAAE,SAAS,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;AACrD,IAAI,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAC;AAChC;AACA,IAAI,IAAI,cAAc,GAAG,IAAI,CAAC,WAAU;AACxC;AACA,IAAI,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAE;AAC9B,IAAI,IAAI,SAAS,GAAG,KAAI;AACxB,IAAI,IAAI,SAAS,GAAG,KAAI;AACxB,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,GAAE;AAC3B,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAK;AAC5B,IAAI,GAAG,CAAC,OAAO,GAAG,SAAQ;AAC1B;AACA,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,GAAE;AAC3B,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,GAAE;AAC3B;AACA,IAAI,KAAK;AACT,MAAM,KAAK,CAAC,KAAK;AACjB,MAAM,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI;AAC9E,MAAM,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI;AAChD,MAAM,KAAK;AACX,MAAM,GAAG;AACT,MAAM,KAAK,CAAC,IAAI,EAAC;AACjB;AACA,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE;AAChC,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,cAAc,KAAK,IAAI,CAAC,OAAO,CAAC;AAClE,KAAK;AACL;AACA,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE;AAChC,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAC3B,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAC;AAC3C,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC/B,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAC;AACvD,KAAK;AACL,IAAI,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAC;AACvD;AACA,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACnD,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC;AAChD,KAAK;AACL;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAC;AAC1C,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AAC1D,MAAM,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAC;AAC7C,MAAM,IAAI,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAC;AAC/D,MAAM,KAAK;AACX,QAAQ,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY;AAC5D,QAAQ,MAAM,EAAE,WAAW,EAAE,IAAI;AACjC,QAAQ,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI;AACvD,QAAQ,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE;AACpC,UAAU,OAAO,UAAU;AAC3B,YAAY,0BAA0B,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC9D,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK;AAC/B,QAAQ,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC;AACtE,KAAK,MAAM;AACX,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACvB,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1B,UAAU,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACzC;AACA,YAAY,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,EAAC;AACpF,WAAW,MAAM;AACjB;AACA,YAAY,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,EAAC;AACpF,WAAW;AACX,SAAS,MAAM;AACf;AACA,UAAU,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,EAAC;AAC3E,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAC;AAC/C,QAAQ,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,EAAC;AACzE,QAAQ,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,EAAC;AACzE,OAAO;AACP,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAC;AAC1E,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAC;AACzE,MAAM,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC;AACvC,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;AACrC,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAC;AACpC,IAAI,GAAG,CAAC,OAAO,GAAG,IAAG;AACrB;AACA,IAAI,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAC;AAChC;AACA;AACA,IAAI,IAAI,cAAc,GAAG,MAAK;AAC9B,IAAI,IAAI,YAAY,GAAG,KAAI;AAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACtD,MAAM,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAO;AACnE,KAAK,EAAC;AACN,IAAI,IAAI,CAAC,cAAc,EAAE;AACzB,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAC;AAC3C,MAAM,YAAY,GAAG,MAAK;AAC1B,KAAK;AACL;AACA;AACA,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC,YAAW;AACtC,IAAI,IAAI,gBAAgB,GAAG,MAAK;AAChC,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE;AAC/B,QAAQ,cAAc,GAAG,gBAAgB,GAAG,KAAI;AAChD,OAAO,MAAM,IAAI,WAAW,CAAC,UAAU,IAAI,cAAc,EAAE;AAC3D,QAAQ,gBAAgB,GAAG,KAAI;AAC/B,OAAO;AACP,MAAM,IAAI,CAAC,gBAAgB,EAAE;AAC7B,QAAQ,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAC;AACpD,OAAO;AACP,KAAK,MAAM;AACX,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAC;AAC3C,KAAK;AACL;AACA;AACA,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC5D,MAAM,cAAc,GAAG,KAAI;AAC3B,KAAK;AACL;AACA,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE;AAChC,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,cAAc,KAAK,IAAI,CAAC,OAAO;AAChE,KAAK;AACL;AACA;AACA,IAAI,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAC;AACnC,IAAI,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE;AAC3D,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;AAC/B,KAAK,EAAC;AACN;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACrD,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC;AAChD,KAAK;AACL;AACA;AACA,IAAI,IAAI,CAAC,UAAU,GAAG,eAAc;AACpC,IAAI,IAAI,CAAC,YAAY,GAAG,aAAY;AACpC,IAAI,IAAI,CAAC,gBAAgB,GAAG,iBAAgB;AAC5C;AACA;AACA,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAO;AACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,cAAc,KAAK,QAAQ,CAAC,OAAO,EAAE;AACrE,MAAM,aAAa;AACnB,QAAQ,GAAG;AACX,QAAQ,KAAK;AACb,QAAQ,IAAI;AACZ,QAAQ,IAAI,EAAC;AACb,KAAK,MAAM;AACX,MAAM,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AAC/C,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAC;AACjE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC/B,QAAQ,aAAa;AACrB,UAAU,GAAG;AACb,UAAU,KAAK;AACf,UAAU,IAAI;AACd,UAAU,IAAI,CAAC,MAAM,CAAC,OAAO,EAAC;AAC9B,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAC;AAC/C,QAAQ,IAAI,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAC;AAC7C,QAAQ,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAC;AAC/C,QAAQ,IAAI,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAC;AAClE,QAAQ,KAAK;AACb,UAAU,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/B,aAAa,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC;AACpD,aAAa,IAAI;AACjB,cAAc,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI;AAC9D,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE;AAC1C,gBAAgB,OAAO,UAAU,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACvE,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI;AACpC,cAAc,WAAW,EAAE,oBAAoB,CAAC,EAAC;AACjD,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAC;AAC/C,KAAK;AACL;AACA,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;AACxB,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAC;AAC7C,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;AACrC,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAC;AACpC,IAAI,GAAG,CAAC,OAAO,GAAG,KAAI;AACtB;AACA,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC3B,IAAI,IAAI,aAAa,GAAG,MAAM,CAAC,QAAO;AACtC;AACA,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAC;AACzC;AACA,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC1B,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AACzC,KAAK;AACL;AACA,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAC/D,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC;AACjC,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AACzC,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACtC,UAAU,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,EAAC;AACrD,SAAS,EAAC;AACV,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAC;AACjD,OAAO;AACP,KAAK,EAAC;AACN;AACA,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7C;AACA,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,OAAO;AACtE,MAAM,UAAU,GAAG,EAAE;AACrB,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC;AACrC,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAC;AAC3E,OAAO,EAAC;AACR;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACtD,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AACvD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChC,QAAQ,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,IAAG;AACxC,OAAO;AACP,MAAM,KAAK,CAAC,GAAG;AACf,QAAQ,MAAM,CAAC,QAAQ;AACvB,QAAQ,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG;AACvC,QAAQ,KAAK,EAAC;AACd,KAAK,EAAC;AACN;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACzD,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAC;AAC3D,MAAM,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,EAAC;AAC7C,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACjE,QAAQ,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,GAAG,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAC;AACxD,OAAO,EAAC;AACR,KAAK,EAAC;AACN;AACA,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAC;AAC3E,KAAK;AACL;AACA,IAAI,SAAS,UAAU,EAAE,IAAI,EAAE;AAC/B,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAC;AACpC,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAC;AACvE,OAAO;AACP,KAAK;AACL,IAAI,UAAU,CAAC,MAAM,EAAC;AACtB,IAAI,UAAU,CAAC,MAAM,EAAC;AACtB;AACA,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,MAAM,KAAK,CAAC,aAAa,EAAE,cAAc,EAAC;AAC1C,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,EAAC;AAC/C,KAAK;AACL;AACA,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAC;AAC/D,GAAG;AACH;AACA,EAAE,SAAS,eAAe,EAAE,MAAM,EAAE;AACpC,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;AAC3D,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAC;AACnC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC3C,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/C,QAAQ,OAAO,IAAI;AACnB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,KAAK;AAChB,GAAG;AACH;AACA,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5C,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAC;AACrC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;AAC7C,MAAM,MAAM;AACZ,KAAK;AACL;AACA,IAAI,IAAI,OAAO,GAAG,GAAG,CAAC,OAAM;AAC5B,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAC;AAClC,IAAI,IAAI,OAAO,GAAG,MAAK;AACvB,IAAI,IAAI,UAAU,GAAG,MAAK;AAC1B,IAAI,IAAI,OAAO,GAAG,MAAK;AACvB,IAAI,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAC;AACxC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAChC,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,EAAC;AAC7B,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACpC,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AACzC,UAAU,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAC;AACpD,SAAS;AACT,QAAQ,IAAI,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAC;AACjD,QAAQ,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,QAAO;AACzC,QAAQ,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,QAAO;AACzC,QAAQ,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,WAAU;AAClD,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAC;AACzC,QAAQ,QAAQ,OAAO,KAAK;AAC5B,UAAU,KAAK,QAAQ;AACvB,YAAY,OAAO,CAAC,KAAK,EAAC;AAC1B,YAAY,KAAK;AACjB,UAAU,KAAK,QAAQ;AACvB,YAAY,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC;AACpC,YAAY,KAAK;AACjB,UAAU,KAAK,QAAQ;AACvB,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtC,cAAc,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAC;AAC7C,aAAa;AACb,YAAY,KAAK;AACjB,UAAU;AACV,YAAY,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC;AACpC,YAAY,KAAK;AACjB,SAAS;AACT,QAAQ,OAAO,CAAC,GAAG,EAAC;AACpB,OAAO;AACP,KAAK,EAAC;AACN;AACA,IAAI,SAAS,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE;AACtC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAClC,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,EAAC;AAC/B,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACvC,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAC;AAC1C,QAAQ,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAC;AACjD,OAAO,EAAC;AACR,KAAK;AACL;AACA,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE;AACnE,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,UAAU,EAAE,UAAU;AAC5B,MAAM,OAAO,EAAE,OAAO;AACtB,MAAM,GAAG,EAAE,SAAS;AACpB,MAAM,MAAM,EAAE,WAAW;AACzB,KAAK,EAAC;AACN,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,EAAC;AAC/B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;AAC1E,IAAI,IAAI,GAAG,GAAG,qBAAqB,GAAE;AACrC;AACA;AACA,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAC;AAC/B;AACA;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAC1D,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAC;AACvC,KAAK,EAAC;AACN,IAAI,cAAc,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAC3C,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAC;AACrC,KAAK,EAAC;AACN;AACA,IAAI,IAAI,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAC;AAC1E;AACA,IAAI,YAAY,CAAC,GAAG,EAAE,IAAI,EAAC;AAC3B,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,EAAC;AAC5B,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,EAAC;AAC5B;AACA,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE;AACjC,MAAM,OAAO,EAAE,YAAY;AAC3B,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE;AACrC,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,OAAO,EAAE,YAAY;AACzB,IAAI,KAAK,EAAE,CAAC,YAAY;AACxB,MAAM,IAAI,GAAG,GAAG,qBAAqB,GAAE;AACvC,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAC;AACjC,MAAM,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAC;AACvC,MAAM,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,GAAE;AAC9B,MAAM,IAAI,CAAC,MAAM,EAAC;AAClB,MAAM,OAAO,CAAC,MAAM,EAAC;AACrB;AACA,MAAM,IAAI,MAAM,GAAG,GAAG,CAAC,OAAM;AAC7B,MAAM,IAAI,EAAE,GAAG,MAAM,CAAC,GAAE;AACxB,MAAM,IAAI,UAAU,GAAG,MAAM,CAAC,KAAI;AAClC,MAAM,IAAI,aAAa,GAAG,MAAM,CAAC,QAAO;AACxC;AACA,MAAM,MAAM,CAAC,aAAa,EAAE,eAAe,EAAC;AAC5C;AACA,MAAM,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAC;AACpC,MAAM,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAC;AACnD;AACA;AACA,MAAM,IAAI,WAAU;AACpB,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,EAAC;AAC5C,OAAO;AACP;AACA;AACA,MAAM,IAAI,UAAU,CAAC,uBAAuB,EAAE;AAC9C,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,4BAA4B,EAAC;AAC3F,OAAO;AACP,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE;AACrD,QAAQ,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAC;AACjE,QAAQ,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAC;AAC/C,QAAQ,IAAI,CAAC,IAAI;AACjB,UAAU,EAAE,EAAE,2BAA2B,EAAE,CAAC,EAAE,IAAI;AAClD,UAAU,EAAE,EAAE,cAAc;AAC5B,UAAU,iBAAiB,EAAE,GAAG;AAChC,UAAU,OAAO,EAAE,kBAAkB;AACrC,UAAU,EAAE,EAAE,uBAAuB;AACrC,UAAU,CAAC,EAAE,GAAG;AAChB,UAAU,OAAO,EAAE,QAAQ;AAC3B,UAAU,OAAO,EAAE,QAAQ;AAC3B,UAAU,OAAO,EAAE,cAAc;AACjC,UAAU,OAAO,EAAE,UAAU;AAC7B,UAAU,OAAO,EAAE,WAAW;AAC9B,SAAS,CAAC,IAAI;AACd,UAAU,EAAE,EAAE,4BAA4B,EAAE,CAAC,EAAE,IAAI;AACnD,UAAU,EAAE,EAAE,kBAAkB;AAChC,UAAU,CAAC,EAAE,GAAG;AAChB,UAAU,OAAO,EAAE,KAAK;AACxB,UAAU,OAAO,EAAE,KAAK;AACxB,UAAU,OAAO,EAAE,KAAK;AACxB,UAAU,OAAO,EAAE,MAAM;AACzB,UAAU,OAAO,EAAE,eAAe,EAAC;AACnC,QAAQ,OAAO,CAAC,IAAI,EAAC;AACrB,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,OAAO;AACjB,YAAY,UAAU,EAAE,4BAA4B;AACpD,YAAY,CAAC,EAAE,GAAG;AAClB,YAAY,OAAO,EAAE,YAAY,EAAC;AAClC,SAAS;AACT,OAAO;AACP,MAAM,OAAO;AACb,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,mBAAmB;AAC3C,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,EAAC;AACnE;AACA,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACpD,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAC;AAChC,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAC;AACpD,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,GAAE;AAC/B,QAAQ,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI;AAC/B,UAAU,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS;AACxC,UAAU,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI;AACpC,UAAU,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC;AACnD,QAAQ,OAAO,CAAC,KAAK,EAAC;AACtB,QAAQ,IAAI;AACZ,UAAU,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI;AAC5D,UAAU,KAAK;AACf,UAAU,GAAG,EAAC;AACd,OAAO,EAAC;AACR;AACA,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACxD,QAAQ,IAAI,IAAI,GAAG,YAAY,CAAC,IAAI,EAAC;AACrC,QAAQ,IAAI,IAAI,GAAG,YAAY,CAAC,IAAI,EAAC;AACrC,QAAQ,IAAI,IAAI,EAAE,QAAO;AACzB,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,GAAE;AAC/B,QAAQ,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC;AACjC,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;AAC/B,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,OAAM;AAC7B,UAAU,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAC;AACtD,UAAU,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,EAAC;AAC5D,UAAU,KAAK;AACf,YAAY,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;AACjC,cAAc,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;AACzC,aAAa,CAAC,EAAE,IAAI;AACpB,YAAY,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;AACjC,cAAc,OAAO,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI;AACrE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC;AACxB,UAAU,IAAI;AACd,YAAY,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;AACxC,cAAc,OAAO,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;AACtE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI;AAC/B,YAAY,KAAK;AACjB,YAAY,GAAG,EAAC;AAChB,SAAS,MAAM;AACf,UAAU,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAC;AAClD,UAAU,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,EAAC;AACxD,UAAU,KAAK;AACf,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC;AACrD,UAAU,IAAI;AACd,YAAY,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI;AAC7C,YAAY,KAAK;AACjB,YAAY,GAAG,EAAC;AAChB,SAAS;AACT,QAAQ,OAAO,CAAC,KAAK,EAAC;AACtB,OAAO,EAAC;AACR;AACA,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE;AAC1B,KAAK,GAAG;AACR,IAAI,OAAO,EAAE,cAAc;AAC3B,GAAG;AACH,CAAC;AACD;AACA,SAAS,KAAK,IAAI;AAClB,EAAE,OAAO;AACT,IAAI,QAAQ,EAAE,CAAC;AACf,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,aAAa,EAAE,CAAC;AACpB,IAAI,gBAAgB,EAAE,CAAC;AACvB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,SAAS,EAAE,CAAC;AAChB,IAAI,iBAAiB,EAAE,CAAC;AACxB,IAAI,eAAe,EAAE,CAAC;AACtB,GAAG;AACH,CAAC;AACD;AACA,IAAI,mBAAmB,GAAG,OAAM;AAChC,IAAI,6BAA6B,GAAG,OAAM;AAC1C,IAAI,mBAAmB,GAAG,OAAM;AAChC;AACA,IAAI,WAAW,GAAG,UAAU,EAAE,EAAE,UAAU,EAAE;AAC5C,EAAE,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE;AAC5C,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA;AACA,EAAE,IAAI,SAAS,GAAG,GAAE;AACpB,EAAE,SAAS,UAAU,IAAI;AACzB,IAAI,OAAO,SAAS,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,wBAAwB,CAAC,cAAc,EAAE;AAClF,GAAG;AACH,EAAE,SAAS,SAAS,EAAE,KAAK,EAAE;AAC7B,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAC;AACzB,GAAG;AACH;AACA;AACA,EAAE,IAAI,cAAc,GAAG,GAAE;AACzB,EAAE,SAAS,UAAU,EAAE,KAAK,EAAE;AAC9B,IAAI,IAAI,KAAK,GAAG,UAAU,GAAE;AAC5B,IAAI,UAAU,CAAC,wBAAwB,CAAC,aAAa,CAAC,mBAAmB,EAAE,KAAK,EAAC;AACjF,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAC;AAC9B,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,EAAC;AAC3E,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,IAAI;AACvB,IAAI,UAAU,CAAC,wBAAwB,CAAC,WAAW,CAAC,mBAAmB,EAAC;AACxE,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,SAAS,YAAY,IAAI;AAC3B,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAC;AAC7B,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAC;AAC3B,IAAI,IAAI,CAAC,GAAG,GAAG,EAAC;AAChB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAI;AACrB,GAAG;AACH,EAAE,IAAI,gBAAgB,GAAG,GAAE;AAC3B,EAAE,SAAS,iBAAiB,IAAI;AAChC,IAAI,OAAO,gBAAgB,CAAC,GAAG,EAAE,IAAI,IAAI,YAAY,EAAE;AACvD,GAAG;AACH,EAAE,SAAS,gBAAgB,EAAE,YAAY,EAAE;AAC3C,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAC;AACvC,GAAG;AACH;AACA;AACA,EAAE,IAAI,YAAY,GAAG,GAAE;AACvB,EAAE,SAAS,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AAC9C,IAAI,IAAI,EAAE,GAAG,iBAAiB,GAAE;AAChC,IAAI,EAAE,CAAC,eAAe,GAAG,MAAK;AAC9B,IAAI,EAAE,CAAC,aAAa,GAAG,IAAG;AAC1B,IAAI,EAAE,CAAC,GAAG,GAAG,EAAC;AACd,IAAI,EAAE,CAAC,KAAK,GAAG,MAAK;AACpB,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,EAAC;AACzB,GAAG;AACH;AACA;AACA;AACA,EAAE,IAAI,OAAO,GAAG,GAAE;AAClB,EAAE,IAAI,QAAQ,GAAG,GAAE;AACnB,EAAE,SAAS,MAAM,IAAI;AACrB,IAAI,IAAI,GAAG,EAAE,EAAC;AACd;AACA,IAAI,IAAI,CAAC,GAAG,cAAc,CAAC,OAAM;AACjC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,MAAM,MAAM;AACZ,KAAK;AACL;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAC;AACtD,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAC;AACpD,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,EAAC;AAClB,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAC;AACnB;AACA;AACA,IAAI,IAAI,SAAS,GAAG,EAAC;AACrB,IAAI,GAAG,GAAG,EAAC;AACX,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAChD,MAAM,IAAI,KAAK,GAAG,cAAc,CAAC,CAAC,EAAC;AACnC,MAAM,IAAI,UAAU,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,KAAK,EAAE,6BAA6B,CAAC,EAAE;AACvG,QAAQ,SAAS,IAAI,UAAU,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,EAAC;AACtG,QAAQ,SAAS,CAAC,KAAK,EAAC;AACxB,OAAO,MAAM;AACb,QAAQ,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,MAAK;AACrC,OAAO;AACP,MAAM,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAS;AAChC,MAAM,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAG;AAC3B,KAAK;AACL,IAAI,cAAc,CAAC,MAAM,GAAG,IAAG;AAC/B;AACA;AACA,IAAI,GAAG,GAAG,EAAC;AACX,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC9C,MAAM,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC,EAAC;AACjC,MAAM,IAAI,KAAK,GAAG,KAAK,CAAC,gBAAe;AACvC,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,cAAa;AACnC,MAAM,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,EAAC;AAChD,MAAM,IAAI,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAC;AACpC,MAAM,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAC;AAChC,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;AAC/B,QAAQ,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,GAAG,IAAG;AAC9C,QAAQ,gBAAgB,CAAC,KAAK,EAAC;AAC/B,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,eAAe,GAAG,SAAQ;AACxC,QAAQ,KAAK,CAAC,aAAa,GAAG,OAAM;AACpC,QAAQ,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,MAAK;AACnC,OAAO;AACP,KAAK;AACL,IAAI,YAAY,CAAC,MAAM,GAAG,IAAG;AAC7B,GAAG;AACH;AACA,EAAE,OAAO;AACT,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,cAAc,EAAE,cAAc;AAClC,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,oBAAoB,EAAE,YAAY;AACtC,MAAM,OAAO,cAAc,CAAC,MAAM;AAClC,KAAK;AACL,IAAI,KAAK,EAAE,YAAY;AACvB,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,EAAC;AACrD,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,QAAQ,UAAU,CAAC,wBAAwB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC;AACxE,OAAO;AACP,MAAM,cAAc,CAAC,MAAM,GAAG,EAAC;AAC/B,MAAM,SAAS,CAAC,MAAM,GAAG,EAAC;AAC1B,KAAK;AACL,IAAI,OAAO,EAAE,YAAY;AACzB,MAAM,cAAc,CAAC,MAAM,GAAG,EAAC;AAC/B,MAAM,SAAS,CAAC,MAAM,GAAG,EAAC;AAC1B,KAAK;AACL,GAAG;AACH,EAAC;AACD;AACA,IAAI,mBAAmB,GAAG,MAAK;AAC/B,IAAI,mBAAmB,GAAG,IAAG;AAC7B,IAAI,qBAAqB,GAAG,KAAI;AAChC;AACA,IAAI,eAAe,GAAG,MAAK;AAC3B;AACA,IAAI,kBAAkB,GAAG,mBAAkB;AAC3C,IAAI,sBAAsB,GAAG,uBAAsB;AACnD;AACA,IAAI,QAAQ,GAAG,EAAC;AAChB,IAAI,WAAW,GAAG,EAAC;AACnB,IAAI,SAAS,GAAG,EAAC;AACjB;AACA,SAAS,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;AACjC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;AAChC,MAAM,OAAO,CAAC;AACd,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC,CAAC;AACX,CAAC;AACD;AACA,SAAS,QAAQ,EAAE,IAAI,EAAE;AACzB,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,IAAI,EAAC;AAC9B,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,GAAE;AACpB,EAAE,IAAI,YAAY,GAAG,EAAE,CAAC,oBAAoB,GAAE;AAC9C,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,aAAa,GAAE;AACtC;AACA,EAAE,IAAI,cAAc,GAAG,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAC;AACvD,EAAE,IAAI,CAAC,cAAc,EAAE;AACvB,IAAI,OAAO,IAAI;AACf,GAAG;AACH;AACA,EAAE,IAAI,WAAW,GAAG,iBAAiB,GAAE;AACvC,EAAE,IAAI,QAAQ,GAAG,KAAK,GAAE;AACxB,EAAE,IAAI,UAAU,GAAG,cAAc,CAAC,WAAU;AAC5C,EAAE,IAAI,KAAK,GAAG,WAAW,CAAC,EAAE,EAAE,UAAU,EAAC;AACzC;AACA,EAAE,IAAI,UAAU,GAAG,KAAK,GAAE;AAC1B,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC,mBAAkB;AACnC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,oBAAmB;AACrC;AACA,EAAE,IAAI,YAAY,GAAG;AACrB,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,aAAa,EAAE,KAAK;AACxB,IAAI,cAAc,EAAE,MAAM;AAC1B,IAAI,gBAAgB,EAAE,KAAK;AAC3B,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,kBAAkB,EAAE,KAAK;AAC7B,IAAI,mBAAmB,EAAE,MAAM;AAC/B,IAAI,UAAU,EAAE,MAAM,CAAC,UAAU;AACjC,IAAG;AACH,EAAE,IAAI,YAAY,GAAG,GAAE;AACvB,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,SAAS,EAAE,CAAC;AAChB,IAAI,KAAK,EAAE,CAAC,CAAC;AACb,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,SAAS,EAAE,CAAC,CAAC;AACjB,IAAG;AACH;AACA,EAAE,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE,EAAE,UAAU,EAAC;AACzC,EAAE,IAAI,WAAW,GAAG,eAAe;AACnC,IAAI,EAAE;AACN,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,aAAa,EAAC;AAClB,EAAE,IAAI,YAAY,GAAG,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAC;AAC7E,EAAE,IAAI,cAAc,GAAG,kBAAkB;AACzC,IAAI,EAAE;AACN,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,SAAS,EAAC;AACd,EAAE,SAAS,aAAa,EAAE,MAAM,EAAE;AAClC,IAAI,OAAO,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC;AAC/C,GAAG;AACH,EAAE,IAAI,WAAW,GAAG,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAC;AACtE,EAAE,IAAI,YAAY,GAAG,gBAAgB;AACrC,IAAI,EAAE;AACN,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAE,EAAE;AACrC,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,MAAM,EAAC;AACX,EAAE,IAAI,iBAAiB,GAAG,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAC;AACrF,EAAE,IAAI,gBAAgB,GAAG,YAAY;AACrC,IAAI,EAAE;AACN,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,YAAY;AAChB,IAAI,iBAAiB;AACrB,IAAI,QAAQ,EAAC;AACb,EAAE,IAAI,IAAI,GAAG,QAAQ;AACrB,IAAI,EAAE;AACN,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,YAAY;AAChB,IAAI,gBAAgB;AACpB,IAAI,YAAY;AAChB,IAAI,cAAc;AAClB,IAAI,WAAW;AACf,IAAI,SAAS;AACb,IAAI,YAAY;AAChB,IAAI,KAAK;AACT,IAAI,MAAM,EAAC;AACX,EAAE,IAAI,UAAU,GAAG,cAAc;AACjC,IAAI,EAAE;AACN,IAAI,gBAAgB;AACpB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;AACnB,IAAI,YAAY;AAChB,IAAI,YAAY,EAAE,UAAU,EAAE,MAAM,EAAC;AACrC;AACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,KAAI;AAC3B,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,OAAM;AACxB;AACA,EAAE,IAAI,YAAY,GAAG,GAAE;AACvB,EAAE,IAAI,aAAa,GAAG,GAAE;AACxB,EAAE,IAAI,gBAAgB,GAAG,GAAE;AAC3B,EAAE,IAAI,gBAAgB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAC;AAC3C;AACA,EAAE,IAAI,SAAS,GAAG,KAAI;AACtB,EAAE,SAAS,SAAS,IAAI;AACxB,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,KAAK,CAAC,MAAM,GAAE;AACtB,OAAO;AACP,MAAM,SAAS,GAAG,KAAI;AACtB,MAAM,MAAM;AACZ,KAAK;AACL;AACA;AACA,IAAI,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAC;AACnC;AACA;AACA,IAAI,IAAI,GAAE;AACV;AACA;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AACvD,MAAM,IAAI,EAAE,GAAG,YAAY,CAAC,CAAC,EAAC;AAC9B,MAAM,IAAI,EAAE,EAAE;AACd,QAAQ,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,EAAC;AACjC,OAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,EAAE,CAAC,KAAK,GAAE;AACd;AACA;AACA,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,KAAK,CAAC,MAAM,GAAE;AACpB,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,IAAI;AACvB,IAAI,IAAI,CAAC,SAAS,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/C,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAC;AACrC,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,OAAO,IAAI;AACtB,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,EAAC;AAC3B,MAAM,SAAS,GAAG,KAAI;AACtB,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,iBAAiB,EAAE,KAAK,EAAE;AACrC,IAAI,KAAK,CAAC,cAAc,GAAE;AAC1B;AACA;AACA,IAAI,WAAW,GAAG,KAAI;AACtB;AACA;AACA,IAAI,OAAO,GAAE;AACb;AACA;AACA,IAAI,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;AACxC,MAAM,EAAE,GAAE;AACV,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,qBAAqB,EAAE,KAAK,EAAE;AACzC;AACA,IAAI,EAAE,CAAC,QAAQ,GAAE;AACjB;AACA;AACA,IAAI,WAAW,GAAG,MAAK;AACvB;AACA;AACA,IAAI,cAAc,CAAC,OAAO,GAAE;AAC5B,IAAI,WAAW,CAAC,OAAO,GAAE;AACzB,IAAI,WAAW,CAAC,OAAO,GAAE;AACzB,IAAI,YAAY,CAAC,OAAO,GAAE;AAC1B,IAAI,iBAAiB,CAAC,OAAO,GAAE;AAC/B,IAAI,gBAAgB,CAAC,OAAO,GAAE;AAC9B,IAAI,cAAc,CAAC,OAAO,GAAE;AAC5B,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,KAAK,CAAC,OAAO,GAAE;AACrB,KAAK;AACL;AACA;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,GAAE;AACxB;AACA;AACA,IAAI,QAAQ,GAAE;AACd;AACA;AACA,IAAI,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;AAC3C,MAAM,EAAE,GAAE;AACV,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,MAAM,EAAE;AACd,IAAI,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,KAAK,EAAC;AACzE,IAAI,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,qBAAqB,EAAE,KAAK,EAAC;AACjF,GAAG;AACH;AACA,EAAE,SAAS,OAAO,IAAI;AACtB,IAAI,YAAY,CAAC,MAAM,GAAG,EAAC;AAC3B,IAAI,OAAO,GAAE;AACb;AACA,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,iBAAiB,EAAC;AACvE,MAAM,MAAM,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,qBAAqB,EAAC;AAC/E,KAAK;AACL;AACA,IAAI,WAAW,CAAC,KAAK,GAAE;AACvB,IAAI,gBAAgB,CAAC,KAAK,GAAE;AAC5B,IAAI,iBAAiB,CAAC,KAAK,GAAE;AAC7B,IAAI,cAAc,CAAC,KAAK,GAAE;AAC1B,IAAI,YAAY,CAAC,KAAK,GAAE;AACxB,IAAI,YAAY,CAAC,KAAK,GAAE;AACxB,IAAI,WAAW,CAAC,KAAK,GAAE;AACvB;AACA,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,KAAK,CAAC,KAAK,GAAE;AACnB,KAAK;AACL;AACA,IAAI,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;AAC3C,MAAM,EAAE,GAAE;AACV,KAAK,EAAC;AACN,GAAG;AACH;AACA,EAAE,SAAS,gBAAgB,EAAE,OAAO,EAAE;AACtC,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,6BAA6B,EAAC;AACrD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,6BAA6B,EAAC;AAClE;AACA,IAAI,SAAS,oBAAoB,EAAE,OAAO,EAAE;AAC5C,MAAM,IAAI,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,OAAO,EAAC;AACtC,MAAM,OAAO,MAAM,CAAC,SAAQ;AAC5B,MAAM,OAAO,MAAM,CAAC,WAAU;AAC9B,MAAM,OAAO,MAAM,CAAC,QAAO;AAC3B,MAAM,OAAO,MAAM,CAAC,IAAG;AACvB;AACA,MAAM,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE;AACpD,QAAQ,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAE;AAC1E,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,GAAE;AAChC,OAAO;AACP;AACA,MAAM,SAAS,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAQ,IAAI,IAAI,IAAI,MAAM,EAAE;AAC5B,UAAU,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,EAAC;AAClC,UAAU,OAAO,MAAM,CAAC,IAAI,EAAC;AAC7B,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACrD,YAAY,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAC;AACnD,WAAW,EAAC;AACZ,SAAS;AACT,OAAO;AACP,MAAM,KAAK,CAAC,OAAO,EAAC;AACpB,MAAM,KAAK,CAAC,OAAO,EAAC;AACpB,MAAM,KAAK,CAAC,MAAM,EAAC;AACnB,MAAM,KAAK,CAAC,SAAS,EAAC;AACtB,MAAM,KAAK,CAAC,eAAe,EAAC;AAC5B,MAAM,KAAK,CAAC,SAAS,EAAC;AACtB,MAAM,KAAK,CAAC,QAAQ,EAAC;AACrB;AACA,MAAM,IAAI,KAAK,IAAI,OAAO,EAAE;AAC5B,QAAQ,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,IAAG;AAChC,OAAO;AACP;AACA,MAAM,OAAO,MAAM;AACnB,KAAK;AACL;AACA,IAAI,SAAS,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE;AACjD,MAAM,IAAI,WAAW,GAAG,GAAE;AAC1B,MAAM,IAAI,YAAY,GAAG,GAAE;AAC3B,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;AACpD,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,EAAC;AAClC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACtC,UAAU,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAC;AAC7D,UAAU,MAAM;AAChB,SAAS,MAAM,IAAI,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtD,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACjD,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7C,cAAc,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAC;AACjE,cAAc,MAAM;AACpB,aAAa;AACb,WAAW;AACX,SAAS;AACT,QAAQ,WAAW,CAAC,MAAM,CAAC,GAAG,MAAK;AACnC,OAAO,EAAC;AACR,MAAM,OAAO;AACb,QAAQ,OAAO,EAAE,YAAY;AAC7B,QAAQ,MAAM,EAAE,WAAW;AAC3B,OAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,IAAI,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAC;AAC9D,IAAI,IAAI,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,EAAC;AAChE,IAAI,IAAI,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,KAAK,EAAC;AACrE,IAAI,IAAI,IAAI,GAAG,eAAe,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAC;AACpE;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,MAAM,OAAO,EAAE,GAAG;AAClB,MAAM,OAAO,EAAE,GAAG;AAClB,MAAM,KAAK,EAAE,CAAC;AACd,MAAK;AACL;AACA,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAC;AAC9E;AACA,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAI;AAC5B,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAK;AAC9B,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAK;AAC9B;AACA;AACA;AACA,IAAI,IAAI,WAAW,GAAG,GAAE;AACxB,IAAI,SAAS,OAAO,EAAE,KAAK,EAAE;AAC7B,MAAM,OAAO,WAAW,CAAC,MAAM,GAAG,KAAK,EAAE;AACzC,QAAQ,WAAW,CAAC,IAAI,CAAC,IAAI,EAAC;AAC9B,OAAO;AACP,MAAM,OAAO,WAAW;AACxB,KAAK;AACL;AACA,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;AACtC,MAAM,IAAI,EAAC;AACX,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,OAAO,CAAC,KAAK,CAAC,cAAc,EAAC;AACrC,OAAO;AACP,MAAM,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACtC,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C,OAAO,MAAM,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AAC7C,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACtC,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;AACrC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAC;AAC3C,WAAW;AACX,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACxC,UAAU,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAC;AAC9C,WAAW;AACX,SAAS,MAAM;AACf,UAAU,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAChD,SAAS;AACT,OAAO,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC3C,QAAQ,IAAI,IAAI,GAAG,CAAC,EAAE;AACtB,UAAU,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;AAC9D,SAAS;AACT,OAAO,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACtC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,UAAU,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;AACpD,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AACpC,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,MAAM,CAAC,WAAW,EAAE;AAC/B,MAAM,KAAK,EAAE,QAAQ;AACrB,MAAM,OAAO,EAAE,YAAY;AAC3B,QAAQ,QAAQ,CAAC,OAAO,GAAE;AAC1B,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,MAAM,GAAG,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC;AAC1D,IAAI,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;AACnE,GAAG,EAAC;AACJ;AACA,EAAE,SAAS,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE;AAClC,IAAI,IAAI,UAAU,GAAG,EAAC;AACtB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAE;AACrB;AACA,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC,MAAK;AACzB,IAAI,IAAI,CAAC,EAAE;AACX,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAC;AACnE,MAAM,UAAU,IAAI,oBAAmB;AACvC,KAAK;AACL,IAAI,IAAI,OAAO,IAAI,OAAO,EAAE;AAC5B,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC;AACnC,MAAM,UAAU,IAAI,oBAAmB;AACvC,KAAK;AACL,IAAI,IAAI,SAAS,IAAI,OAAO,EAAE;AAC9B,MAAM,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,EAAC;AAC1C,MAAM,UAAU,IAAI,sBAAqB;AACzC,KAAK;AACL;AACA,IAAI,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,4CAA4C,EAAC;AACvE,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,EAAC;AACxB,GAAG;AACH;AACA,EAAE,SAAS,KAAK,EAAE,OAAO,EAAE;AAC3B,IAAI,OAAO;AACX,MAAM,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO;AAC5C,MAAM,uCAAuC,EAAC;AAC9C,IAAI,IAAI,aAAa,IAAI,OAAO,EAAE;AAClC,MAAM,IAAI,OAAO,CAAC,WAAW;AAC7B,UAAU,OAAO,CAAC,oBAAoB,KAAK,iBAAiB,EAAE;AAC9D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AACpC,UAAU,MAAM,CAAC,MAAM,CAAC;AACxB,YAAY,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,WAAW,EAAE,OAAO,CAAC,EAAE,SAAS,EAAC;AACjC,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,MAAM,CAAC,OAAO,EAAE,SAAS,EAAC;AAClC,OAAO;AACP,KAAK,MAAM;AACX,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAC;AAC9B,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,KAAK,EAAE,EAAE,EAAE;AACtB,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,0CAA0C,EAAC;AAC5E,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,EAAC;AACzB;AACA,IAAI,SAAS,MAAM,IAAI;AACvB;AACA;AACA;AACA,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,EAAC;AACpC,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,6BAA6B,EAAC;AACpD,MAAM,SAAS,aAAa,IAAI;AAChC,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,EAAC;AACrD,QAAQ,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAC;AACnE,QAAQ,YAAY,CAAC,MAAM,IAAI,EAAC;AAChC,QAAQ,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;AACtC,UAAU,OAAO,GAAE;AACnB,SAAS;AACT,OAAO;AACP,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,cAAa;AACrC,KAAK;AACL;AACA,IAAI,QAAQ,GAAE;AACd;AACA,IAAI,OAAO;AACX,MAAM,MAAM,EAAE,MAAM;AACpB,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,SAAS,YAAY,IAAI;AAC3B,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,SAAQ;AACrC,IAAI,IAAI,UAAU,GAAG,SAAS,CAAC,YAAW;AAC1C,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,EAAC;AACjE,IAAI,YAAY,CAAC,aAAa;AAC9B,MAAM,YAAY,CAAC,gBAAgB;AACnC,MAAM,YAAY,CAAC,kBAAkB;AACrC,MAAM,QAAQ,CAAC,CAAC,CAAC;AACjB,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,mBAAkB;AAC3C,IAAI,YAAY,CAAC,cAAc;AAC/B,MAAM,YAAY,CAAC,iBAAiB;AACpC,MAAM,YAAY,CAAC,mBAAmB;AACtC,MAAM,QAAQ,CAAC,CAAC,CAAC;AACjB,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,oBAAmB;AAC5C,GAAG;AACH;AACA,EAAE,SAAS,IAAI,IAAI;AACnB,IAAI,YAAY,CAAC,IAAI,IAAI,EAAC;AAC1B,IAAI,YAAY,CAAC,IAAI,GAAG,GAAG,GAAE;AAC7B,IAAI,YAAY,GAAE;AAClB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAE;AACrB,GAAG;AACH;AACA,EAAE,SAAS,OAAO,IAAI;AACtB,IAAI,YAAY,CAAC,OAAO,GAAE;AAC1B,IAAI,YAAY,GAAE;AAClB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,GAAE;AACxB,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,KAAK,CAAC,MAAM,GAAE;AACpB,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,GAAG,IAAI;AAClB,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,UAAU,IAAI,MAAM;AAC1C,GAAG;AACH;AACA,EAAE,OAAO,GAAE;AACX;AACA,EAAE,SAAS,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;AACzC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,sCAAsC,EAAC;AAC9E;AACA,IAAI,IAAI,UAAS;AACjB,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,KAAK,CAAC,QAAQ,CAAC;AAC9B,MAAM,KAAK,MAAM;AACjB,QAAQ,SAAS,GAAG,cAAa;AACjC,QAAQ,KAAK;AACb,MAAM,KAAK,SAAS;AACpB,QAAQ,SAAS,GAAG,iBAAgB;AACpC,QAAQ,KAAK;AACb,MAAM,KAAK,SAAS;AACpB,QAAQ,SAAS,GAAG,iBAAgB;AACpC,QAAQ,KAAK;AACb,MAAM;AACN,QAAQ,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAC;AACjF,KAAK;AACL;AACA,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAC;AAC5B,IAAI,OAAO;AACX,MAAM,MAAM,EAAE,YAAY;AAC1B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACnD,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACzC,YAAY,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAC;AAC1D,YAAY,SAAS,CAAC,GAAG,GAAE;AAC3B,YAAY,MAAM;AAClB,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,gBAAgB,EAAE;AACtC;AACA,IAAI,KAAK,EAAE,KAAK;AAChB;AACA;AACA,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC7C,IAAI,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;AACnD,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;AAC9C;AACA;AACA,IAAI,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC;AAC9B;AACA;AACA,IAAI,MAAM,EAAE,UAAU,OAAO,EAAE;AAC/B,MAAM,OAAO,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC;AACvE,KAAK;AACL,IAAI,QAAQ,EAAE,UAAU,OAAO,EAAE;AACjC,MAAM,OAAO,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;AAChD,KAAK;AACL,IAAI,OAAO,EAAE,YAAY,CAAC,QAAQ;AAClC,IAAI,IAAI,EAAE,YAAY,CAAC,UAAU;AACjC,IAAI,YAAY,EAAE,iBAAiB,CAAC,MAAM;AAC1C,IAAI,WAAW,EAAE,gBAAgB,CAAC,MAAM;AACxC,IAAI,eAAe,EAAE,gBAAgB,CAAC,UAAU;AAChD,IAAI,GAAG,EAAE,cAAc,CAAC,SAAS;AACjC;AACA;AACA,IAAI,UAAU,EAAE,YAAY;AAC5B;AACA;AACA,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,EAAE,EAAE,WAAW;AACnB;AACA;AACA,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,YAAY,EAAE,UAAU,IAAI,EAAE;AAClC,MAAM,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC;AAC/D,KAAK;AACL;AACA;AACA,IAAI,IAAI,EAAE,UAAU;AACpB;AACA;AACA,IAAI,OAAO,EAAE,OAAO;AACpB;AACA;AACA,IAAI,GAAG,EAAE,EAAE;AACX,IAAI,QAAQ,EAAE,OAAO;AACrB;AACA,IAAI,IAAI,EAAE,YAAY;AACtB,MAAM,IAAI,GAAE;AACZ,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,KAAK,CAAC,MAAM,GAAE;AACtB,OAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,GAAG,EAAE,GAAG;AACZ;AACA;AACA,IAAI,KAAK,EAAE,QAAQ;AACnB,GAAG,EAAC;AACJ;AACA,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAC;AAC3B;AACA,EAAE,OAAO,IAAI;AACb,CAAC;AACD;AACA,OAAO,QAAQ,CAAC;AAChB;AACA,CAAC,EAAE,EAAE;AACL;;;AC5xUA,eAAc,GAAGC,WAAS,CAAC;AAC3B;AACA,SAASA,WAAS,EAAE,GAAG,EAAE,GAAG,EAAE;AAC9B,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,MAAM,KAAK,CAAC,6BAA6B,CAAC;AAC3E;AACA,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,EAAC;AACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAC;AAC3B;AACA,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAC;AAC5B;AACA,CAAC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE;AAC9C,EAAE,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;AAClE;AACA,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;AACxB,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,GAAG;AACH;AACA,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAG;AACtB,EAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAG;AAC5B,EAAE;AACF;AACA,CAAC,OAAO,MAAM,CAAC;AACf;;ACrBA,kBAAc,GAAG,SAAS,CAAC;AAC3B;AACA,SAAS,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE;AACtC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,MAAM,KAAK,CAAC,6BAA6B,CAAC;AAC3E;AACA,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,EAAC;AACzB,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,MAAM,GAAGC,WAAS,CAAC,GAAG,EAAE,GAAG,EAAC;AACjD;AACA,CAAC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE;AAC9C,EAAE,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;AACnF;AACA,EAAE,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE;AAC7C,GAAG,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;AACnC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAE;AACzD,IAAI;AACJ,GAAG;AACH,OAAO,IAAI,GAAG,KAAK,QAAQ,EAAE;AAC7B,GAAG,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;AACnC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,EAAC;AACnC,IAAI;AACJ,GAAG;AACH,OAAO,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE;AAC9B,GAAG,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;AACnC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,EAAC;AACnC,IAAI;AACJ,GAAG;AACH,OAAO;AACP,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,IAAG;AACxB,GAAG,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;AACnC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACxB,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,MAAK;AACvD,KAAK;AACL,IAAI;AACJ,GAAG;AACH,EAAE;AACF;AACA,CAAC,OAAO,GAAG,CAAC;AACZ;;ACvCA,aAAc,GAAG;AACjB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AACtB,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9B,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACzB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACzB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC1B,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAClC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AACpB,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;AAC7B,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AACvB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;AAC5B,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AAC5B,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AACxB,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAClC,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC5B,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AACzB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AACtB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AACxB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AAC1B,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AAChC,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC5B,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACzB,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC5B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;AAC7B,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;AAChC,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5B,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;AAC7B,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACvB,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9B,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChC,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AAC/B,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC9B,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC9B,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AAC/B,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;AAC5B,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;AAC3B,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3B,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3B,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AAC3B,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC/B,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;AAC7B,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;AACzB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9B,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACtB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AAC5B,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACxB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACrB,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AAC9B,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACxB,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC5B,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AAC3B,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;AACvB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACzB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACzB,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC5B,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACjC,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3B,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChC,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACxC,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC/B,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;AAChC,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChC,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAClC,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAClC,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAClC,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC/B,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACpB,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;AAC3B,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACzB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;AACzB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACpC,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AAC1B,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;AAC/B,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAChC,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;AACjC,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACnC,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AACnC,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;AAClC,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;AAClC,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AAC9B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC5B,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC/B,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AACpB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3B,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACvB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AAC5B,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACxB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1B,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC1B,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACjC,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACjC,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACjC,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AACvB,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACxB,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACxB,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9B,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;AACxB,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;AAChC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACnB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;AAC5B,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AAC7B,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC1B,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AAC7B,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;AAC1B,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC5B,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AACxB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC1B,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;AAC5B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACxB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7B,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;AAC5B,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACvB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AACtB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3B,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AACxB,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;AAC5B,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC1B,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACzB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACzB,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9B,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACxB,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AAC9B,CAAC;;AC/ID,cAAc,GAAG,MAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG;AACf,CAAC,GAAG,EAAE,CAAC;AACP,CAAC,MAAM,EAAE,EAAE;AACX,CAAC,MAAM,EAAE,GAAG;AACZ,CAAC,KAAK,EAAE,GAAG;AACX,CAAC,IAAI,EAAE,GAAG;AACV,CAAC,MAAM,EAAE,GAAG;AACZ,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK,EAAE,IAAI,EAAE;AACtB,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,MAAK;AACpC;AACA,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC/B;AACA,EAAE,IAAIC,SAAK,CAAC,IAAI,CAAC,EAAE;AACnB,GAAG,KAAK,GAAGA,SAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAE;AAC9B,GAAG,KAAK,GAAG,MAAK;AAChB,GAAG;AACH;AACA;AACA,OAAO,IAAI,IAAI,KAAK,aAAa,EAAE;AACnC,GAAG,KAAK,GAAG,EAAC;AACZ,GAAG,KAAK,GAAG,MAAK;AAChB,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC;AAClB,GAAG;AACH;AACA;AACA,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACzC,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC;AAC3B,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC,OAAM;AACzB,GAAG,IAAI,OAAO,GAAG,IAAI,IAAI,EAAC;AAC1B,GAAG,KAAK,GAAG,EAAC;AACZ;AACA,GAAG,IAAI,OAAO,EAAE;AAChB,IAAI,KAAK,GAAG;AACZ,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpC,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpC,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpC,MAAK;AACL,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAG;AAClD,KAAK;AACL,IAAI;AACJ,QAAQ;AACR,IAAI,KAAK,GAAG;AACZ,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpC,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpC,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpC,MAAK;AACL,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAG;AAClD,KAAK;AACL,IAAI;AACJ;AACA,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAC;AAC9B,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAC;AAC9B,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAC;AAC9B;AACA,GAAG,KAAK,GAAG,MAAK;AAChB,GAAG;AACH;AACA;AACA,OAAO,IAAI,CAAC,GAAG,kFAAkF,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9G,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAC;AAClB,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK,MAAK;AAC7B,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAC;AACpC,GAAG,KAAK,GAAG,KAAI;AACf,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,GAAG,CAAC,GAAG,IAAI,KAAK,MAAM,GAAG,CAAC,GAAG,EAAC;AAC3D,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACtB,KAAK,KAAK,CAAC,iBAAiB,CAAC;AAC7B,KAAK,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACzB;AACA,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACvB;AACA,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG;AAChD;AACA,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG;AAC1D,MAAM,OAAO,UAAU,CAAC,CAAC,CAAC;AAC1B,MAAM;AACN;AACA,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC/B;AACA,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC1B,OAAO,OAAO,UAAU,CAAC,CAAC,CAAC;AAC3B,OAAO;AACP;AACA,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;AAC1C,OAAO,OAAO,QAAQ,CAAC,CAAC,CAAC;AACzB,OAAO;AACP,MAAM;AACN,KAAK,OAAO,UAAU,CAAC,CAAC,CAAC;AACzB,KAAK,EAAC;AACN;AACA,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAC;AACnC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAC;AACtE,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAC;AAC/B,GAAG;AACH;AACA;AACA,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC5D,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE;AACxD,IAAI,OAAO,UAAU,CAAC,KAAK,CAAC;AAC5B,IAAI,EAAC;AACL;AACA,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,GAAE;AACzD,GAAG;AACH,EAAE;AACF;AACA;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACxB,EAAE,KAAK,GAAG,MAAK;AACf,EAAE,KAAK,GAAG,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,QAAQ,MAAM,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAC;AACjE,EAAE;AACF;AACA;AACA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;AAC9C,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAC;AACrC,EAAE,KAAK,GAAG,MAAK;AACf,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAC;AACzC,EAAE;AACF;AACA;AACA,MAAM,IAAI,IAAI,YAAY,MAAM,EAAE;AAClC,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE;AAC5D,GAAG,KAAK,GAAG,MAAK;AAChB,GAAG,KAAK,GAAG;AACX,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;AACrC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;AACvC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;AACtC,KAAI;AACJ,GAAG;AACH,OAAO;AACP,GAAG,KAAK,GAAG,MAAK;AAChB,GAAG,KAAK,GAAG;AACX,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;AACrC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;AAC5C,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU;AACnE,KAAI;AACJ,GAAG;AACH;AACA,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,EAAC;AACnD;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,KAAK,IAAI,IAAG;AACxC,EAAE;AACF;AACA,CAAC,OAAO;AACR,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,MAAM,EAAE,KAAK;AACf,EAAE,KAAK,EAAE,KAAK;AACd,EAAE;AACF;;ACpKA,aAAc,GAAG,SAAS,IAAI,EAAE,KAAK,EAAE;AACvC;AACA,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAC;AACjF;AACA,KAAK,MAAM,CAAM;AACjB;AACA;AACA,CAAC,IAAI,MAAM,GAAGC,UAAK,CAAC,KAAK,EAAC;AAC1B;AACA,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B;AACA,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAC;AACjF;AACA,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,EAAC;AAClB,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAC;AACjE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAC;AACjE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAC;AACjE;AACA,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAC;AACtD;AACA,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC;AACpD;AACA,CAAC,OAAO,MAAM;AACd,EAAC;AACD;AACA;AACA;AACA,SAAS,OAAO,CAAC,GAAG,EAAE;AACtB,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/E;AACA,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpD;AACA,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACjB;AACA,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjB,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;AACb,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AACjC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;AAC5C,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;AACjB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;AACjD,EAAE,EAAE,CAAC;AACL,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AACvB,EAAE;AACF;AACA,CAAC,OAAO,GAAG,CAAC;AACZ;;ACrDA,SAAc,GAAG,SAAS,KAAK,EAAE;AACjC,EAAE,QAAQ,KAAK;AACf,IAAI,KAAK,MAAM;AACf,MAAM,OAAO,SAAS;AACtB,IAAI,KAAK,OAAO;AAChB,MAAM,OAAO,UAAU;AACvB,IAAI,KAAK,OAAO;AAChB,MAAM,OAAO,UAAU;AACvB,IAAI,KAAK,OAAO;AAChB,MAAM,OAAO,UAAU;AACvB,IAAI,KAAK,QAAQ;AACjB,MAAM,OAAO,WAAW;AACxB,IAAI,KAAK,QAAQ;AACjB,MAAM,OAAO,WAAW;AACxB,IAAI,KAAK,SAAS;AAClB,MAAM,OAAO,YAAY;AACzB,IAAI,KAAK,SAAS;AAClB,MAAM,OAAO,YAAY;AACzB,IAAI,KAAK,OAAO;AAChB,MAAM,OAAO,KAAK;AAClB,IAAI,KAAK,eAAe;AACxB,MAAM,OAAO,iBAAiB;AAC9B,GAAG;AACH;;AChBA,kBAAc,GAAG,SAAS,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;AAClD,CAAC,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,QAAO;AAC9C,CAAC,IAAI,IAAI,KAAK,MAAM,EAAE,IAAI,GAAG,QAAO;AACpC,CAAC,IAAI,IAAI,KAAK,cAAc,EAAE,IAAI,GAAG,gBAAe;AACpD,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,EAAC;AACvB,CAAC,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,EAAC;AACzB;AACA,CAAC,IAAI,SAAS,GAAG,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,gBAAe;AAC7D;AACA;AACA,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjD,EAAE,KAAK,GAAGC,SAAI,CAAC,KAAK,EAAC;AACrB,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,IAAG;AACjB,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,IAAG;AACjB,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,IAAG;AACjB,EAAE;AACF;AACA;AACA;AACA;AACA,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AACnB,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAC;AACtB,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAC;AACtB,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAC;AACtB,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAG;AAC/C;AACA,EAAE,IAAI,SAAS,EAAE;AACjB,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAG;AACnB,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAG;AACnB,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAG;AACnB,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAG;AACnB,GAAG;AACH;AACA,EAAE,OAAO,MAAM;AACf,EAAE;AACF;AACA,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAC;AACpE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAC;AACpE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAC;AACpE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAC;AAC7F,EAAE,MAAM;AACR,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAC;AACtB,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAC;AACtB,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAC;AACtB,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAC;AAC7C,EAAE;AACF;AACA,CAAC,OAAO,MAAM;AACd,EAAC;AACD;AACA,SAAS,KAAK,CAAC,KAAK,EAAE;AACtB,CAAC,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,YAAY,iBAAiB,EAAE,OAAO,IAAI;AACnF;AACA,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACzB,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,GAAG,OAAO,IAAI;AACd;AACA,CAAC,OAAO,KAAK;AACb;;ACnEA,YAAc,GAAG,MAAM,CAAC;AACxB,YAAsB,GAAG,MAAM,CAAC;AAChC;AACA,SAAS,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;AACxC;AACA,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;AACnB;AACA,IAAI,IAAI,QAAQ,GAAG,WAAW,IAAI,WAAW,CAAC,MAAM;AACpD,QAAQ,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;AAChE,QAAQ,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC;AAC5D,QAAQ,SAAS,GAAG,EAAE,CAAC;AACvB;AACA,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,OAAO,SAAS,CAAC;AAC1E;AACA,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;AAC9C;AACA,IAAI,IAAI,QAAQ,EAAE,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAChF;AACA;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE;AAChC,QAAQ,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAQ,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,GAAG,EAAE;AAClD,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;AACnC,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;AACnC,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;AACnC,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;AACnC,SAAS;AACT;AACA;AACA,QAAQ,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AACrD,QAAQ,OAAO,GAAG,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;AAClD,KAAK;AACL;AACA,IAAI,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACjE;AACA,IAAI,OAAO,SAAS,CAAC;AACrB,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE;AACtD,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC;AAChB;AACA,IAAI,IAAI,SAAS,MAAM,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/D,QAAQ,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5F,KAAK,MAAM;AACX,QAAQ,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACnG,KAAK;AACL;AACA,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;AACzC,QAAQ,UAAU,CAAC,IAAI,CAAC,CAAC;AACzB,QAAQ,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE;AAClC,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC;AAC1B;AACA,IAAI,IAAI,CAAC,GAAG,KAAK;AACjB,QAAQ,KAAK,CAAC;AACd,IAAI,GAAG;AACP,QAAQ,KAAK,GAAG,KAAK,CAAC;AACtB;AACA,QAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAChF,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1B,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;AAC7B,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM;AACpC,YAAY,KAAK,GAAG,IAAI,CAAC;AACzB;AACA,SAAS,MAAM;AACf,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACvB,SAAS;AACT,KAAK,QAAQ,KAAK,IAAI,CAAC,KAAK,GAAG,EAAE;AACjC;AACA,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;AACtE,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO;AACrB;AACA;AACA,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/D;AACA,IAAI,IAAI,IAAI,GAAG,GAAG;AAClB,QAAQ,IAAI,EAAE,IAAI,CAAC;AACnB;AACA;AACA,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE;AAClC,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACxB,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACxB;AACA,QAAQ,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE;AAC1E;AACA,YAAY,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACzC,YAAY,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACxC,YAAY,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACzC;AACA,YAAY,UAAU,CAAC,GAAG,CAAC,CAAC;AAC5B;AACA;AACA,YAAY,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;AAC5B,YAAY,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC7B;AACA,YAAY,SAAS;AACrB,SAAS;AACT;AACA,QAAQ,GAAG,GAAG,IAAI,CAAC;AACnB;AACA;AACA,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;AAC1B;AACA,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB,gBAAgB,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AACxF;AACA;AACA,aAAa,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE;AACnC,gBAAgB,GAAG,GAAG,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAChF,gBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1E;AACA;AACA,aAAa,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE;AACnC,gBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACtE,aAAa;AACb;AACA,YAAY,MAAM;AAClB,SAAS;AACT,KAAK;AACL,CAAC;AACD;AACA;AACA,SAAS,KAAK,CAAC,GAAG,EAAE;AACpB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI;AACpB,QAAQ,CAAC,GAAG,GAAG;AACf,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AACrB;AACA,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACzC;AACA;AACA,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B;AACA,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE;AAC3B,QAAQ,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACvD,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD;AACA,SAAS,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AAC/C,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI;AACpB,QAAQ,CAAC,GAAG,GAAG;AACf,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AACrB;AACA,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACzC;AACA;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7E,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7E,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7E,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E;AACA;AACA,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;AACxD,QAAQ,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACzD;AACA,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK;AACrB,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;AACtB;AACA;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AACjD,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI;AAC5C,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACvD,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACpB;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI;AAC5C,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACvD,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACpB,KAAK;AACL;AACA;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI;AAC5C,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACvD,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACpB,KAAK;AACL;AACA;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI;AAC5C,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACvD,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACpB,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD;AACA;AACA,SAAS,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE;AACvD,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AAClB,IAAI,GAAG;AACP,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;AACtB,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACxG;AACA,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACtC,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACtC,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACtC;AACA;AACA,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1B,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/B;AACA,YAAY,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAC1B,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,KAAK,EAAE;AAC1B;AACA,IAAI,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AACjE;AACA,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AAClB,IAAI,GAAG;AACP,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,QAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;AAC7B,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACtD;AACA,gBAAgB,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C;AACA;AACA,gBAAgB,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,gBAAgB,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C;AACA;AACA,gBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACrE,gBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACrE,gBAAgB,OAAO;AACvB,aAAa;AACb,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACvB,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,KAAK,EAAE;AAC1B,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE;AAC3D,IAAI,IAAI,KAAK,GAAG,EAAE;AAClB,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC;AACjC;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACxD,QAAQ,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACrC,QAAQ,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AACnE,QAAQ,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpD,QAAQ,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,KAAK;AACL;AACA,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB;AACA;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,QAAQ,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACvD,QAAQ,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5D,KAAK;AACL;AACA,IAAI,OAAO,SAAS,CAAC;AACrB,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AACxB,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE;AACxC,IAAI,IAAI,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,OAAO,SAAS,CAAC;AACzB,KAAK;AACL;AACA,IAAI,IAAI,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACnD;AACA;AACA,IAAI,IAAI,cAAc,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AACpD;AACA;AACA,IAAI,OAAO,SAAS,KAAK,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;AAC7D,CAAC;AACD;AACA;AACA,SAAS,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;AACzC,IAAI,IAAI,CAAC,GAAG,SAAS;AACrB,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;AACnB,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;AACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;AACtB,QAAQ,CAAC,CAAC;AACV;AACA;AACA;AACA,IAAI,GAAG;AACP,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC7D,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,YAAY,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;AACnC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AACvB,gBAAgB,IAAI,CAAC,KAAK,EAAE,EAAE;AAC9B,oBAAoB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7C,oBAAoB,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AACvD,iBAAiB;AACjB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAChD,aAAa;AACb,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,SAAS,EAAE;AAC9B;AACA,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AACxB;AACA,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,IAAI,GAAG,CAAC;AAChB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAChB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAChB,QAAQ,MAAM,GAAG,QAAQ;AACzB,QAAQ,GAAG,CAAC;AACZ;AACA,IAAI,CAAC,GAAG,CAAC,CAAC;AACV;AACA,IAAI,GAAG;AACP,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAChD,gBAAgB,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACjG;AACA,YAAY,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD;AACA,YAAY,IAAI,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC;AACtC,iBAAiB,GAAG,GAAG,MAAM,KAAK,GAAG,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAClH,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAgB,MAAM,GAAG,GAAG,CAAC;AAC7B,aAAa;AACb,SAAS;AACT;AACA,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,IAAI,EAAE;AACzB;AACA,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AACD;AACA;AACA,SAAS,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE;AACpC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtE,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AAChD,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC;AAClB,IAAI,GAAG;AACP,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACtE,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;AACzB,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,KAAK,EAAE;AAC1B;AACA,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AACzB,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;AACnB;AACA,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD;AACA;AACA;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK;AACjD,QAAQ,MAAM,GAAG,CAAC,CAAC;AACnB;AACA,IAAI,GAAG;AACP,QAAQ,CAAC,GAAG,IAAI,CAAC;AACjB,QAAQ,IAAI,GAAG,IAAI,CAAC;AACpB,QAAQ,IAAI,GAAG,IAAI,CAAC;AACpB,QAAQ,SAAS,GAAG,CAAC,CAAC;AACtB;AACA,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,SAAS,EAAE,CAAC;AACxB,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,YAAY,KAAK,GAAG,CAAC,CAAC;AACtB,YAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAC5B,gBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM;AAC9B,aAAa;AACb,YAAY,KAAK,GAAG,MAAM,CAAC;AAC3B;AACA,YAAY,OAAO,KAAK,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AAClD;AACA,gBAAgB,IAAI,KAAK,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACtE,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,oBAAoB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAChC,oBAAoB,KAAK,EAAE,CAAC;AAC5B,iBAAiB,MAAM;AACvB,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,oBAAoB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAChC,oBAAoB,KAAK,EAAE,CAAC;AAC5B,iBAAiB;AACjB;AACA,gBAAgB,IAAI,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACzC,qBAAqB,IAAI,GAAG,CAAC,CAAC;AAC9B;AACA,gBAAgB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;AAC/B,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,aAAa;AACb;AACA,YAAY,CAAC,GAAG,CAAC,CAAC;AAClB,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAC1B,QAAQ,MAAM,IAAI,CAAC,CAAC;AACpB;AACA,KAAK,QAAQ,SAAS,GAAG,CAAC,EAAE;AAC5B;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACD;AACA;AACA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3C;AACA,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;AACrC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;AACrC;AACA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC;AACA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACpC;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxB,CAAC;AACD;AACA;AACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B,IAAI,IAAI,CAAC,GAAG,KAAK;AACjB,QAAQ,QAAQ,GAAG,KAAK,CAAC;AACzB,IAAI,GAAG;AACP,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;AACvF,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,KAAK,EAAE;AAC1B;AACA,IAAI,OAAO,QAAQ,CAAC;AACpB,CAAC;AACD;AACA;AACA,SAAS,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACzD,IAAI,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;AAC7D,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;AAC7D,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AACD;AACA;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3E,YAAY,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,aAAa,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3D,YAAY,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxF,CAAC;AACD;AACA;AACA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvB,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AACD;AACA;AACA,SAAS,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;AACxB,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACpC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACpC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACpC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACpC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACpC;AACA,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC;AAC5C;AACA,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACvD,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACvD,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACvD,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACvD;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACD;AACA;AACA,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5H,CAAC;AACD;AACA,SAAS,IAAI,CAAC,GAAG,EAAE;AACnB,IAAI,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AACjC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,GAAG;AACP,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,gBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AACzD,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE;AACtB;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACD;AACA;AACA,SAAS,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACtC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC1D,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC;AACD;AACA;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,QAAQ,MAAM,GAAG,KAAK;AACtB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,IAAI,GAAG;AACP,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7E,YAAY,MAAM,GAAG,CAAC,MAAM,CAAC;AAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACnB,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE;AACtB;AACA,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD;AACA;AACA;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI;AACnB,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;AACpB;AACA,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACf,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACf;AACA,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB;AACA,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB;AACA,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB;AACA,IAAI,OAAO,EAAE,CAAC;AACd,CAAC;AACD;AACA;AACA,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;AACnC,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B;AACA,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACnB,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AACnB;AACA,KAAK,MAAM;AACX,QAAQ,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3B,QAAQ,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AACtB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACtB,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AACD;AACA,SAAS,UAAU,CAAC,CAAC,EAAE;AACvB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACzB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACzB;AACA,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AACzC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AACzC,CAAC;AACD;AACA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvB;AACA,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACf;AACA;AACA,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACf;AACA;AACA,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB;AACA;AACA,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAClB;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB;AACA;AACA,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACzB,CAAC;AACD;AACA;AACA;AACA,MAAM,CAAC,SAAS,GAAG,UAAU,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE;AAChE,IAAI,IAAI,QAAQ,GAAG,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC;AACrD,IAAI,IAAI,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AACjE;AACA,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAChE,YAAY,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7C,YAAY,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3E,YAAY,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACvE,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,aAAa,GAAG,CAAC,CAAC;AAC1B,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC9C,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACnC,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACvC,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACvC,QAAQ,aAAa,IAAI,IAAI,CAAC,GAAG;AACjC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,KAAK;AACL;AACA,IAAI,OAAO,WAAW,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,GAAG,CAAC;AACvD,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,WAAW,IAAI,WAAW,CAAC,CAAC;AAC9D,CAAC,CAAC;AACF;AACA,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;AAC3C,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE;AAC1D,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA,MAAM,CAAC,OAAO,GAAG,UAAU,IAAI,EAAE;AACjC,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAC/B,QAAQ,MAAM,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC;AAC3D,QAAQ,SAAS,GAAG,CAAC,CAAC;AACtB;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;AACnB,YAAY,SAAS,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AAC5C,YAAY,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;;;AC3qBD,MAAMC,YAAU,GAAG,utCAAutC;;;;;;;ACA1uC,MAAMC,YAAU,GAAG,8ZAA8Z;;;;;;;;;;;;ACCjb,IAAI,eAAe,GAAG,CAACP,cAAI,IAAIA,cAAI,CAAC,eAAe,KAAK,UAAU,GAAG,EAAE;AACvE,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC9D,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,wBAAwB,GAAG,KAAK,CAAC,CAAC;AAClC,MAAM,aAAa,GAAG,eAAe,CAACQ,YAAwB,CAAC,CAAC;AAChE,MAAM,aAAa,GAAG,eAAe,CAACC,YAAwB,CAAC,CAAC;AAChE,SAAS,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE;AAC3D,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO;AAClG,QAAQ,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE;AACjD;AACA,YAAY,OAAO,EAAE;AACrB,gBAAgB,MAAM,EAAE,YAAY;AACpC,gBAAgB,OAAO,EAAE,CAAC;AAC1B,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,aAAa;AACb;AACA,YAAY,OAAO,EAAE;AACrB,gBAAgB,MAAM,EAAE,YAAY;AACpC,gBAAgB,OAAO,EAAE,CAAC;AAC1B,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,aAAa;AACb;AACA,YAAY,MAAM,EAAE;AACpB,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,cAAc;AAC1D,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb;AACA,YAAY,MAAM,EAAE;AACpB,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,cAAc;AAC1D,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,EAAE;AAC1B,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb,YAAY,WAAW,EAAE;AACzB,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,mBAAmB;AAC/D,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb,YAAY,WAAW,EAAE;AACzB,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,mBAAmB;AAC/D,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,EAAE;AAC1B,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb,YAAY,KAAK,EAAE;AACnB,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,WAAW;AACvD,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb,SAAS,EAAE,CAAC,CAAC;AACb,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5B,CAAC;AACD,wBAAwB,GAAG,gBAAgB;;;AC5D3C,MAAMH,YAAU,GAAG,ouQAAouQ;;;;;;;ACAvvQ,MAAMC,YAAU,GAAG,sjEAAsjE;;;;;;;;;;;;ACCzkE,IAAI,eAAe,GAAG,CAACP,cAAI,IAAIA,cAAI,CAAC,eAAe,KAAK,UAAU,GAAG,EAAE;AACvE,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC9D,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,yBAAyB,GAAG,KAAK,CAAC,CAAC;AACnC,MAAM,aAAa,GAAG,eAAe,CAACQ,YAAwB,CAAC,CAAC;AAChE,MAAM,aAAa,GAAG,eAAe,CAACC,YAAwB,CAAC,CAAC;AAChE,SAAS,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE;AAC5D,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE;AACrE;AACA,QAAQ,IAAI,EAAE;AACd,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,IAAI,EAAE,MAAM;AACxB,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO;AACtC,QAAQ,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE;AACjD;AACA,YAAY,OAAO,EAAE;AACrB,gBAAgB,MAAM,EAAE,YAAY;AACpC,gBAAgB,OAAO,EAAE,CAAC;AAC1B,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,aAAa;AACb;AACA,YAAY,OAAO,EAAE;AACrB,gBAAgB,MAAM,EAAE,YAAY;AACpC,gBAAgB,OAAO,EAAE,CAAC;AAC1B,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,aAAa;AACb;AACA,YAAY,MAAM,EAAE;AACpB,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,WAAW;AACvD,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb;AACA,YAAY,MAAM,EAAE;AACpB,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,WAAW;AACvD,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb,YAAY,SAAS,EAAE;AACvB,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,cAAc;AAC1D,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb,YAAY,MAAM,EAAE;AACpB,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,cAAc;AAC1D,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb,YAAY,MAAM,EAAE;AACpB,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,cAAc;AAC1D,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,EAAE;AAC1B,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb,YAAY,SAAS,EAAE;AACvB,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,cAAc;AAC1D,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,EAAE;AAC1B,gBAAgB,OAAO,EAAE,CAAC;AAC1B,aAAa;AACb,SAAS,EAAE,CAAC,CAAC;AACb,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5B,CAAC;AACD,yBAAyB,GAAG,iBAAiB;;;ACvE7C,MAAM,UAAU,GAAG,gkBAAgkB;;;;;;;ACAnlB,MAAM,UAAU,GAAG,oGAAoG;;;;;;;;;;;;ACCvH,IAAI,eAAe,GAAG,CAACT,cAAI,IAAIA,cAAI,CAAC,eAAe,KAAK,UAAU,GAAG,EAAE;AACvE,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC9D,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,wBAAwB,GAAG,KAAK,CAAC,CAAC;AAClC,MAAM,aAAa,GAAG,eAAe,CAAC,UAAwB,CAAC,CAAC;AAChE,MAAM,aAAa,GAAG,eAAe,CAAC,UAAwB,CAAC,CAAC;AAChE,SAAS,gBAAgB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;AACjF,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB,QAAQ,SAAS,EAAE,WAAW;AAC9B,QAAQ,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS;AACvC,QAAQ,MAAM,EAAE,CAAC;AACjB,QAAQ,IAAI,EAAE,aAAa,CAAC,OAAO;AACnC,QAAQ,IAAI,EAAE,aAAa,CAAC,OAAO;AACnC,QAAQ,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;AAC9F,QAAQ,UAAU,EAAE;AACpB,YAAY,QAAQ,EAAE;AACtB,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,cAAc;AAClD,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,aAAa;AACb,YAAY,aAAa,EAAE;AAC3B,gBAAgB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,mBAAmB;AACvD,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,aAAa;AACb,SAAS;AACT,QAAQ,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AAChC,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5B,CAAC;AACD,wBAAwB,GAAG,gBAAgB;;;;ACnC3C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,qBAAqB,GAAG,KAAK,CAAC,CAAC;AACL;AACqB;AACE;AACF;AAC/C,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,IAAI,OAAO;AACX,QAAQ,SAAS,EAAE,gBAAgB;AACnC,QAAQ,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK;AACpC,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,MAAM,EAAE,CAAC;AACjB,QAAQ,QAAQ,EAAE;AAClB,YAAY,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,IAAI,CAAC,IAAI,KAAKU,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/E,YAAY,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,UAAU;AAC9C,YAAY,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK;AACpC,YAAY,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,UAAU;AAC9C,YAAY,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,cAAc;AACtD,YAAY,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS;AAC5C,YAAY,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS;AAC5C,YAAY,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW;AAChD,YAAY,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO;AACxC,YAAY,UAAU,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU;AAC/C,YAAY,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,UAAU;AAC5C,YAAY,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK;AACrF,gBAAgB,CAAC,IAAI,CAAC;AACtB,gBAAgB,CAAC,IAAI,CAAC;AACtB,gBAAgB,aAAa;AAC7B,gBAAgB,cAAc;AAC9B,aAAa;AACb,YAAY,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK;AACpC,SAAS;AACT,QAAQ,KAAK,EAAE;AACf,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,YAAY,QAAQ,EAAE;AACtB,gBAAgB,GAAG,EAAE,KAAK;AAC1B,gBAAgB,KAAK,EAAE,KAAK;AAC5B,aAAa;AACb,YAAY,IAAI,EAAE;AAClB,gBAAgB,MAAM,EAAE,WAAW;AACnC,gBAAgB,MAAM,EAAE,qBAAqB;AAC7C,gBAAgB,QAAQ,EAAE,qBAAqB;AAC/C,gBAAgB,QAAQ,EAAE,KAAK;AAC/B,aAAa;AACb,SAAS;AACT,QAAQ,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM;AAC1B,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO;AAC9B,SAAS,CAAC;AACV,QAAQ,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AAClC,QAAQ,OAAO,EAAE;AACjB,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ;AACrC,SAAS;AACT,QAAQ,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ;AACtC,KAAK,CAAC;AACN,CAAC;AACD,SAAS,aAAa,CAAC,IAAI,EAAE;AAC7B,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;AACrC,QAAQ,KAAK,EAAE,QAAQ;AACvB,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtC,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,WAAW,GAAG,iBAAiB,CAAK,CAAC,CAAC;AAChD,IAAI,MAAM,IAAI,GAAGC,UAAa,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AACjF,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI;AACR,QAAQ,KAAK,GAAGC,WAAc,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AAClF,KAAK;AACL,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,KAAK,GAAG,IAAI,CAAC;AACrB,QAAQ,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,MAAM,IAAI,GAAGC,UAAa,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACnE,IAAI,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AACD,qBAAqB,GAAG,aAAa;;;;AC5ErC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,qCAAqC,GAAG,KAAK,CAAC,CAAC;AAC/C,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,SAAS,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE;AACxD,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,QAAQ,UAAU,GAAG,CAAC,CAAC;AACvB,QAAQ,QAAQ,GAAG,eAAe,CAAC;AACnC,KAAK;AACL,SAAS;AACT,QAAQ,UAAU,GAAG,CAAC,CAAC;AACvB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAChD,YAAY,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,SAAS;AACT,QAAQ,QAAQ,GAAG,IAAI,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;AACzD,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC;AACpB,QAAQ,IAAI,SAAS,GAAG,GAAG,CAAC;AAC5B;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACpC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACpD,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC5E,oBAAoB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;AAChD,iBAAiB;AACjB,gBAAgB,SAAS,IAAI,GAAG,CAAC;AACjC,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC;AACZ,QAAQ,QAAQ,EAAE,CAAC;AACnB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,QAAQ,CAAC,MAAM;AAC9B,QAAQ,MAAM,EAAE,CAAC;AACjB,QAAQ,GAAG,EAAE,QAAQ;AACrB,QAAQ,GAAG,EAAE,QAAQ;AACrB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,UAAU,CAAC;AACtB,CAAC;AACD,qCAAqC,GAAG,6BAA6B;;;;ACvCrE,IAAI,eAAe,GAAG,CAACb,cAAI,IAAIA,cAAI,CAAC,eAAe,KAAK,UAAU,GAAG,EAAE;AACvE,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC9D,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,yBAAyB,GAAG,KAAK,CAAC,CAAC;AACnC,MAAM,iBAAiB,GAAG,eAAe,CAACQ,cAA0B,CAAC,CAAC;AACtE,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AACD,SAAS,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;AAClE,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;AAC/B,QAAQ,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL,SAAS;AACT,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACxC,YAAY,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAClE,YAAY,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,SAAS;AACT,QAAQ,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AAChF,KAAK;AACL,IAAI,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AACD,yBAAyB,GAAG,iBAAiB;;;;ACzB7C,IAAI,eAAe,GAAG,CAACR,cAAI,IAAIA,cAAI,CAAC,eAAe,KAAK,UAAU,GAAG,EAAE;AACvE,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC9D,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,iBAAiB,GAAG,KAAK,CAAC,CAAC;AAC3B,MAAM,cAAc,GAAG,eAAe,CAACQ,WAAuB,CAAC,CAAC;AAChE,MAAM,iBAAiB,GAAG,eAAe,CAACC,cAA0B,CAAC,CAAC;AACtE,MAAM,iBAAiB,GAAG,eAAe,CAACK,cAA0B,CAAC,CAAC;AACtE,MAAMC,UAAQ,GAAG,eAAe,CAACC,QAAiB,CAAC,CAAC;AACb;AACwB;AACA;AAC/D,IAAI,SAAS,CAAC;AACd,CAAC,UAAU,SAAS,EAAE;AACtB,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AACjC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AACjC,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAC/B,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9D,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,IAAI,MAAMC,SAAO,GAAGC,OAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAClD,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC;AACvB,IAAI,OAAO;AACX,QAAQ,WAAW,CAAC,MAAM,EAAE,mBAAmB,EAAE;AACjD,YAAY,MAAM,EAAE,GAAG,UAAU,CAAC;AAClC,YAAY,UAAU,EAAE,CAAC;AACzB,YAAY,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/D,YAAY,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnE,YAAY,MAAM,iBAAiB,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC1E,YAAY,MAAM,sBAAsB,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC/E,YAAY,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpE,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;AAC5C,gBAAgB,KAAK,EAAE,SAAS;AAChC,gBAAgB,IAAI,EAAE,OAAO;AAC7B,gBAAgB,IAAI,EAAE,SAAS;AAC/B,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/C,gBAAgB,KAAK,EAAE,SAAS;AAChC,gBAAgB,IAAI,EAAE,OAAO;AAC7B,gBAAgB,IAAI,EAAE,iBAAiB;AACvC,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC;AACpD,gBAAgB,KAAK,EAAE,SAAS;AAChC,gBAAgB,IAAI,EAAE,OAAO;AAC7B,gBAAgB,IAAI,EAAE,sBAAsB;AAC5C,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;AAC7C,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,GAAG,EAAE,QAAQ;AAC7B,gBAAgB,GAAG,EAAE,QAAQ;AAC7B,aAAa,CAAC,CAAC;AACf,YAAY,OAAO,CAAC,YAAY,KAAK;AACrC,gBAAgB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE;AAC3Q,wBAAwB,CAAC,EAAE,CAAC;AAC5B,wBAAwB,CAAC,EAAE,CAAC;AAC5B,wBAAwB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB;AAC1D,wBAAwB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB;AAC5D,qBAAqB,EAAE,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,mBAAmB,CAAC,EAAE,YAAY,CAAC,CAAC;AAChF,gBAAgB,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAC/E;AACA,gBAAgB,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC;AAC5C,gBAAgB,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AAC1H,gBAAgB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACvC,gBAAgB,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACjE,gBAAgB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;AACtE,oBAAoB,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACxD;AACA,gBAAgB,IAAI,KAAK,EAAE;AAC3B,oBAAoB,IAAI,UAAU,EAAE;AACpC,wBAAwB,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAClE,wBAAwB,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAClE,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAClE,wBAAwB,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAClE,qBAAqB;AACrB,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAClD,oBAAoB,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAClD,iBAAiB;AACjB,gBAAgB,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAC9C;AACA,gBAAgB,IAAI,KAAK,EAAE;AAC3B;AACA,oBAAoB,IAAI,UAAU,EAAE;AACpC,wBAAwB,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAClE,wBAAwB,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAClE,wBAAwB,KAAK,EAAE,CAAC;AAChC,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAClE,wBAAwB,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAClE,wBAAwB,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAClE,wBAAwB,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAClE,qBAAqB;AACrB,iBAAiB;AACjB;AACA,qBAAqB;AACrB,oBAAoB,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAC1E,oBAAoB,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAC1E,oBAAoB,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAC1E,oBAAoB,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAC1E,iBAAiB;AACjB,gBAAgB,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAClD,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;AAClD,oBAAoB,sBAAsB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACrF,gBAAgB,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC1D,gBAAgB,mBAAmB,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACpE,gBAAgB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtD,gBAAgB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtD,gBAAgB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD,gBAAgB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD,gBAAgB,MAAM,KAAK,GAAG,CAAC,OAAO,GAAG,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;AACnE,gBAAgB,MAAM,SAAS,GAAG;AAClC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;AAChE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;AAChE,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACxD,gBAAgB,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,gBAAgB,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;AAChE,gBAAgB,MAAM,cAAc,GAAG;AACvC,oBAAoB,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;AACjD,oBAAoB,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;AACjD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,UAAU,GAAG,MAAM;AACzC,sBAAsBC,iBAAqB,CAAC,6BAA6B,CAAC,WAAW,EAAE,MAAM,CAAC;AAC9F,sBAAsB,CAAC,CAAC;AACxB,gBAAgB,IAAI,KAAK;AACzB,oBAAoBC,mBAAqB,CAAC,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAClG,gBAAgB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS;AACvF,oBAAoB,cAAc;AAClC,oBAAoB,KAAK;AACzB,oBAAoB,UAAU;AAC9B,oBAAoB,WAAW;AAC/B,oBAAoB,cAAc;AAClC,oBAAoB,mBAAmB;AACvC,oBAAoB,UAAU;AAC9B,oBAAoB,WAAW,EAAE,SAAS,EAAE,IAAI,GAAGL,UAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACzJ,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChC,gBAAgB,IAAI,IAAI;AACxB,oBAAoBE,SAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9C,gBAAgB,IAAI,IAAI,KAAK,SAAS,CAAC,IAAI;AAC3C,oBAAoBA,SAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9C;AACA,oBAAoBA,SAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC/C,aAAa,CAAC;AACd,SAAS;AACT,KAAK,CAAC;AACN,CAAC;AACD,eAAe,GAAG,SAAS;;;;;SCvJX,iBAAiB,CAAC,GAAkB;EAClD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAc,CAAC,CAAC;AACvE;;MCasB,QAAQ;EAO5B,YACY,WAAwB,EAC3B,UAAkB,EAClB,MAAS,EACT,YAAoB,EACpB,SAAkB,EAClB,aAAkC,EAAE,EACpC,WAAoB,KAAK;IANtB,gBAAW,GAAX,WAAW,CAAa;IAC3B,eAAU,GAAV,UAAU,CAAQ;IAClB,WAAM,GAAN,MAAM,CAAG;IACT,iBAAY,GAAZ,YAAY,CAAQ;IACpB,cAAS,GAAT,SAAS,CAAS;IAClB,eAAU,GAAV,UAAU,CAA0B;IACpC,aAAQ,GAAR,QAAQ,CAAiB;IAEhC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAEvC,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,iBAAiB,CAAC,aAAa,CAAC,CAAC,OAAO,CACtC,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CACpC,CAAC;IAEF,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAElC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,kBACtC,KAAK,EAAE,aAAa,CAAC,MAAM,EAC3B,SAAS,EAAE,CAAC,EACZ,IAAI,EAAE,MAAmB,EACzB,IAAI,EAAE,IAAI,CAAC,SAAS,EACpB,KAAK,EAAE,IAAI,CAAC,YAAY,IACrB,UAAU,EACb,CAAC;GACJ;EAEM,eAAe,CAACI,OAA4B;IACjD,IAAIA,OAAK,IAAI,IAAI,EAAE;MACjB,IAAI,CAAC,SAAS;QACZ,OAAOA,OAAK,KAAK,QAAQ,GAAGA,OAAK,GAAGC,KAAK,CAAC,WAAW,CAACD,OAAK,CAAC,CAAC;KAChE;GACF;EAEM,kBAAkB,CAACA,OAA4B;IACpD,IAAIA,OAAK,IAAI,IAAI,EAAE;MACjB,IAAI,CAAC,YAAY;QACf,OAAOA,OAAK,KAAK,QAAQ,GAAGA,OAAK,GAAGC,KAAK,CAAC,WAAW,CAACD,OAAK,CAAC,CAAC;KAChE;GACF;EAEM,YAAY,CAAC,MAAU;IAC5B,IAAI,MAAM,IAAI,IAAI,EAAE;MAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;MACrB,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CACzC,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CACpC,CAAC;KACH;GACF;CACF;SAEe,uBAAuB,CACrC,QAAkB,EAClB,GAAG,QAAoB;EAEvB,IAAI,GAAG,GAAGE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;EACzE,IAAI,GAAG,GAAGA,KAAK,CAAC,MAAM,EAAE,CAAC;EAEzB,QAAQ;KACL,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAC7B,OAAO,CAAC,CAAC,CAAC;IACT,CAAC,CAAC,MAAM;OACL,OAAO,EAAE;OACT,GAAG,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;OACrD,OAAO,CAAC,CAAC,EAAE;MACV,GAAG,GAAGA,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;MACjE,GAAG,GAAGA,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAClE,CAAC,CAAC;GACN,CAAC,CAAC;EAEL,OAAOC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACxC;;MCzFa,cAAc;EACzB,YACS,KAAc,EACd,WAA4B,EAC5B,QAAyB,EACzB,MAAmB,EACnB,GAAgB;IAJhB,UAAK,GAAL,KAAK,CAAS;IACd,gBAAW,GAAX,WAAW,CAAiB;IAC5B,aAAQ,GAAR,QAAQ,CAAiB;IACzB,WAAM,GAAN,MAAM,CAAa;IACnB,QAAG,GAAH,GAAG,CAAa;GACrB;EAEG,oBAAoB,CAAC,MAAuB;IACjD,OAAO,IAAI,CAAC,YAAY,EAAE;OACvB,GAAG,CAAC,CAAC,CAAC,KAAKC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;OACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;GAC7B;EAEM,YAAY;IACjB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;GAC1C;EAEM,OAAO;IACZ,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;GAChC;CACF;MAEY,QAAS,SAAQ,QAAwB;EACpD,YACE,WAAwB,EACxB,UAAkB,EAClB,MAAsB,EACtB,eAAqC,SAAS,EAC9C,YAAkC,SAAS,EAC3C,aAAkC,EAAE,SAAS,EAAE,CAAC,EAAE;IAElD,KAAK,CACH,WAAW,EACX,UAAU,EACV,MAAM,EACN,OAAO,YAAY,KAAK,QAAQ;QAC5B,YAAY;QACZH,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,EACnC,OAAO,SAAS,KAAK,QAAQ,GAAG,SAAS,GAAGA,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,EACxE,UAAU,CACX,CAAC;GACH;CACF;MAEY,kBAAkB;EAC7B,YACS,KAAc,EACd,KAAwB,EACxB,GAAsB;IAFtB,UAAK,GAAL,KAAK,CAAS;IACd,UAAK,GAAL,KAAK,CAAmB;IACxB,QAAG,GAAH,GAAG,CAAmB;GAC3B;EAEG,oBAAoB,CAAC,MAAuB;IACjD,OAAO,IAAI,CAAC,YAAY,EAAE;OACvB,GAAG,CAAC,CAAC,CAAC,KAAKG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;OACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;GAC7B;EAEM,YAAY;IACjB,OAAO,IAAI,CAAC,KAAK,CAAC;GACnB;EAEM,OAAO;IACZ,OAAO,IAAI,CAAC,GAAG,CAAC;GACjB;CACF;MAEY,YAAa,SAAQ,QAA4B;EAC5D,YACE,WAAwB,EACxB,UAAkB,EAClB,MAA0B,EAC1B,eAAqC,SAAS,EAC9C,aAAkC;IAChC,IAAI,EAAE,OAAoB;GAC3B,EACM,WAAoB,KAAK;IAEhC,KAAK,CACH,WAAW,EACX,UAAU,EACV,MAAM,EACN,OAAO,YAAY,KAAK,QAAQ;QAC5B,YAAY;QACZH,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,EACnC,SAAS,EACT,UAAU,CACX,CAAC;IAXK,aAAQ,GAAR,QAAQ,CAAiB;GAYjC;EAEM,WAAW,CAAC,QAAiB;IAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;GAC1B;;;SC9Fa,aAAa,CAC3B,eAAgC,EAChC,MAAuB,EACvB,SAAuB;EAEvB,MAAM,QAAQ,GAAGG,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;EAC7D,OAAO,IAAI,cAAc,CACvB,SAAS,CAAC,MAAM,CAAC,KAAK,EACtB,QAAQ,EACR,SAAS,CAAC,MAAM,CAAC,SAAS,EAC1BA,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAC9D,SAAS,CAAC,MAAM,CAAC,IAAI,CACtB,CAAC;AACJ,CAAC;SAEe,qBAAqB,CACnC,MAAuB,EACvB,YAA2B,EAC3B,WAA6B,EAC7B,YAAY,GAAG,CAAC;EAEhB,IAAI,YAAY,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,EAAE;IAC/C,MAAM,YAAY,GAAGA,OAAO,CAAC,QAAQ,CACnC,YAAY,CAAC,MAAM,CAAC,SAAS,EAC7B,WAAW,CACZ,CAAC;IACF,MAAM,WAAW,GAAGA,OAAO,CAAC,QAAQ,CAClC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAC5B,WAAW,CACZ,CAAC;IAEF,MAAM,MAAM,GACV,YAAY,GAAG,WAAW;QACtB,YAAY,CAAC,MAAM,CAAC,SAAS;QAC7B,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;IACnC,MAAM,MAAM,GAAGA,OAAO,CAAC,KAAK,CAAC,GAAG,EAAEA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAEpE,MAAM,cAAc,GAAGC,GAAG,CAAC,MAAM,CAAC;MAChC,MAAM,EAAE,MAAM;MACd,SAAS,EAAED,OAAO,CAAC,SAAS,CAC1BA,OAAO,CAAC,QAAQ,CACd,YAAY,CAAC,MAAM,CAAC,UAAU,EAC9B,YAAY,CAAC,MAAM,CAAC,SAAS,CAC9B,CACF;KACF,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAC7C,gCAAgC,CAC9B,MAAM,EACNC,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,GAAG,CAAC,CAAC,EACxC,WAAW,EACX,CAAC,CACF,CACF,CAAC;IAEF,OAAO,IAAI,kBAAkB,CAC3B,YAAY,CAAC,MAAM,CAAC,KAAK,EACzB,WAAW,EACX,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAChBD,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,CACxD,CACF,CAAC;GACH;EACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gCAAgC,CACvC,KAAsB,EACtB,OAAwB,EACxB,GAAoB,EACpB,QAAgB;EAEhB,MAAM,eAAe,GAAG,CAAC,GAAG,QAAQ,CAAC;EACrC,MAAM,WAAW,GAAG,eAAe,GAAG,eAAe,CAAC;EACtD,MAAM,aAAa,GAAG,CAAC,GAAG,eAAe,GAAG,QAAQ,CAAC;EACrD,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;EAEtC,OAAOA,OAAO,CAAC,MAAM,CACnB,WAAW,GAAG,KAAK,CAAC,CAAC,GAAG,aAAa,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,EACrE,WAAW,GAAG,KAAK,CAAC,CAAC,GAAG,aAAa,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,EACrE,WAAW,GAAG,KAAK,CAAC,CAAC,GAAG,aAAa,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,CACtE,CAAC;AACJ;;MClFa,UAAU;EACrB,YACS,KAAc,EACd,KAAwB,EACxB,MAAqB,EACpB,uBAA6D;IAH9D,UAAK,GAAL,KAAK,CAAS;IACd,UAAK,GAAL,KAAK,CAAmB;IACxB,WAAM,GAAN,MAAM,CAAe;IACpB,4BAAuB,GAAvB,uBAAuB,CAAsC;GACnE;EAEG,oBAAoB,CAAC,MAAuB;IACjD,OAAO,IAAI,CAAC,uBAAuB,IAAI,IAAI;QACvC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,YAAY,EAAE;SAChB,GAAG,CAAC,CAAC,CAAC,KAAKA,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;SACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;GACjC;EAEM,YAAY;IACjB,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;GACvC;EAEM,OAAO;IACZ,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;GACzC;CACF;MAEY,IAAK,SAAQ,QAAoB;EAC5C,YACE,WAAwB,EACxB,UAAkB,EAClB,MAAkB,EAClB,eAAqC,SAAS,EAC9C,YAAkC,SAAS,EAC3C,aAAkC,EAAE;IAEpC,KAAK,CACH,WAAW,EACX,UAAU,EACV,MAAM,EACN,OAAO,YAAY,KAAK,QAAQ;QAC5B,YAAY;QACZH,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,EACnC,OAAO,SAAS,KAAK,QAAQ,GAAG,SAAS,GAAGA,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,EACxE,UAAU,CACX,CAAC;GACH;CACF;MAEY,kBAAkB;EAC7B,YACS,KAAc,EACd,SAA0B,EAC1B,SAA0B,EAC1B,UAA2B,EAC3B,QAAyB,EACzB,IAAiB,EACjB,IAAiB,EACjB,KAAkB,EAClB,GAAgB;IARhB,UAAK,GAAL,KAAK,CAAS;IACd,cAAS,GAAT,SAAS,CAAiB;IAC1B,cAAS,GAAT,SAAS,CAAiB;IAC1B,eAAU,GAAV,UAAU,CAAiB;IAC3B,aAAQ,GAAR,QAAQ,CAAiB;IACzB,SAAI,GAAJ,IAAI,CAAa;IACjB,SAAI,GAAJ,IAAI,CAAa;IACjB,UAAK,GAAL,KAAK,CAAa;IAClB,QAAG,GAAH,GAAG,CAAa;GACrB;EAEG,oBAAoB,CAAC,MAAuB;IACjD,OAAO,IAAI,CAAC,YAAY,EAAE;OACvB,GAAG,CAAC,CAAC,CAAC,KAAKG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;OACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;GAC7B;EAEM,YAAY;IACjB,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;GACzE;EAEM,OAAO;IACZ,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;GAChE;CACF;MAEY,YAAa,SAAQ,QAA4B;EAC5D,YACE,WAAwB,EACxB,UAAkB,EAClB,MAA0B,EAC1B,eAAqC,SAAS,EAC9C,YAAkC,SAAS,EAC3C,aAAkC,EAAE,EAC7B,WAAoB,KAAK;IAEhC,KAAK,CACH,WAAW,EACX,UAAU,EACV,MAAM,EACN,OAAO,YAAY,KAAK,QAAQ;QAC5B,YAAY;QACZH,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,EACnC,OAAO,SAAS,KAAK,QAAQ,GAAG,SAAS,GAAGA,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,EACxE,UAAU,CACX,CAAC;IAXK,aAAQ,GAAR,QAAQ,CAAiB;GAYjC;EAEM,WAAW,CAAC,QAAiB;IAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;GAC1B;EAEM,UAAU;IACf,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;GACxB;;;SCzGa,mBAAmB,CACjC,eAAgC,EAChC,MAAuB,EACvB,YAAY,GAAG,CAAC;EAEhB,OAAO,qBAAqB,CAC1B,eAAe,EACf,MAAM,EACNG,OAAO,CAAC,KAAK,EAAE,EACf,YAAY,CACb,CAAC;AACJ,CAAC;SAEe,mBAAmB,CACjC,eAAgC,EAChC,MAAuB,EACvB,YAAY,GAAG,CAAC;EAEhB,OAAO,qBAAqB,CAC1B,eAAe,EACf,MAAM,EACNA,OAAO,CAAC,EAAE,EAAE,EACZ,YAAY,CACb,CAAC;AACJ,CAAC;SAEe,mBAAmB,CACjC,eAAgC,EAChC,MAAuB,EACvB,YAAY,GAAG,CAAC;EAEhB,OAAO,qBAAqB,CAC1B,eAAe,EACf,MAAM,EACNA,OAAO,CAAC,IAAI,EAAE,EACd,YAAY,CACb,CAAC;AACJ,CAAC;SAEe,qBAAqB,CACnC,eAAgC,EAChC,MAAuB,EACvB,SAA0B,EAC1B,YAAoB;EAEpB,MAAM,oBAAoB,GAAGA,OAAO,CAAC,eAAe,CAClD,SAAS,EACTE,OAAO,CAAC,YAAY,CAACC,UAAU,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CACrE,CAAC;EAEF,MAAM,YAAY,GAAGH,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;EACjE,MAAM,QAAQ,GAAGA,OAAO,CAAC,GAAG,CAC1B,YAAY,EACZA,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,oBAAoB,CAAC,CACtD,CAAC;EAEF,MAAM,MAAM,GAAGA,OAAO,CAAC,SAAS,CAC9BA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAEA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAC1E,CAAC;EACF,MAAM,IAAI,GAAGC,GAAG,CAAC,MAAM,CAAC;IACtB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,MAAM;GAClB,CAAC,CAAC;EACH,MAAM,IAAI,GAAGA,GAAG,CAAC,MAAM,CAAC;IACtB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,oBAAoB;GAChC,CAAC,CAAC;EAEH,MAAM,IAAI,GAAGA,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;EAClD,MAAM,KAAK,GAAGA,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;EAChD,MAAM,EAAE,GAAGA,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;EAE1C,OAAO,IAAI,kBAAkB,CAC3B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAChB,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,EAAE,EACFD,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAC9DA,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAC1DA,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAC3DA,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC,CACzD,CAAC;AACJ;;ACjFA;AACA;AACA;AACA;AACO,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAErD;AACA;AACA;AACA;AACO,MAAM,gCAAgC,GAAG,OAAO,CAAC;MAElC,aAAa;EAUjC,YAA6B,aAAgC;IAAhC,kBAAa,GAAb,aAAa,CAAmB;IANnD,sBAAiB,GAAe,EAAE,CAAC;IACnC,qBAAgB,GAAe,EAAE,CAAC;IAM1C,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;GACzE;EAEM,OAAO;;IACZ,MAAA,IAAI,CAAC,mBAAmB,0CAAE,MAAM,EAAE,CAAC;GACpC;EAEM,WAAW,CAAC,KAAY,EAAE,MAAM,GAAG,IAAI;IAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAEnB,IAAI,MAAM,EAAE;MACV,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;GACF;EAEM,gBAAgB,CAAC,aAAgC;IACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAExE,IAAI,CAAC,sBAAsB,EAAE,CAAC;GAC/B;EAEM,aAAa;IAClB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;MACxC,IAAI,CAAC,sBAAsB,EAAE,CAAC;MAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;MACvD,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;GACF;;;;EAKM,mBAAmB;IACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC;GAC9B;EAES,IAAI;;IACZ,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,EAAE;MACpC,IAAI,CAAC,mBAAmB,GAAG,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,KAC/B,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,CAAC;UACP,IAAI,EAAE,EAAE,CAAC,SAAS;UAClB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC;SACjC,CAAC,CACH,CAAC;OACH,CAAC,CAAC;KACJ;GACF;EAES,KAAK;;IACb,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK,CAAC;MACtB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACpB,CAAC,CAAC;GACJ;EAES,UAAU,CAClB,KAAY,EACZ,GAAG,gBAA6C;IAEhD,MAAM,OAAO,GAAG,CAAC,EAAY,EAAE,EAAY,KACzC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;MAC3D,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;;;IAI9D,IAAI,CAAC,gBAAgB,GACnB,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,CAC3C;OACE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;OAC/B,IAAI,CAAC,OAAO,CAAC;OACb,OAAO,EAAE,CAAC;GACd;EAES,mBAAmB,CAC3B,QAAyB,EACzB,KAAY;IAEZ,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;QACtC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,gCAAgC;QAC/DA,OAAO,CAAC,SAAS,CACfA,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CACxD,GAAG,+BAA+B,CAAC;GACzC;;;;;","names":["this","normalize","getBounds","names","parse","rgba","shaderVert","shaderFrag","require$$0","require$$1","__1","rect_shader_1","miter_shader_1","fill_shader_1","require$$2","earcut_1","require$$3","shaders","shaders_1","update_dash_texture_1","update_color_buffer_1","color","Color","Point","Rectangle","Vector3","Ray","Matrix4","Quaternion"],"sources":["../../node_modules/regl/dist/regl.js","../../node_modules/array-bounds/index.js","../../node_modules/array-normalize/index.js","../../node_modules/color-name/index.js","../../node_modules/color-parse/index.js","../../node_modules/color-rgba/index.js","../../node_modules/dtype/index.js","../../node_modules/color-normalize/index.js","../../node_modules/earcut/src/earcut.js","../../node_modules/regl-shape/lib/shaders/rect-shader/shader.vert","../../node_modules/regl-shape/lib/shaders/rect-shader/shader.frag","../../node_modules/regl-shape/lib/shaders/rect-shader/index.js","../../node_modules/regl-shape/lib/shaders/miter-shader/shader.vert","../../node_modules/regl-shape/lib/shaders/miter-shader/shader.frag","../../node_modules/regl-shape/lib/shaders/miter-shader/index.js","../../node_modules/regl-shape/lib/shaders/fill-shader/shader.vert","../../node_modules/regl-shape/lib/shaders/fill-shader/shader.frag","../../node_modules/regl-shape/lib/shaders/fill-shader/index.js","../../node_modules/regl-shape/lib/shaders/index.js","../../node_modules/regl-shape/lib/update-dash-texture.js","../../node_modules/regl-shape/lib/update-color-buffer.js","../../node_modules/regl-shape/lib/index.js","./src/lib/transforms/util.ts","./src/lib/transforms/drawable.ts","./src/lib/transforms/line.ts","./src/lib/transforms/axis-lines.ts","./src/lib/transforms/mesh.ts","./src/lib/transforms/axis-translation.ts","./src/lib/webgl/regl-component.ts"],"sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.createREGL = factory());\n}(this, (function () { 'use strict';\n\nvar isTypedArray = function (x) {\n return (\n x instanceof Uint8Array ||\n x instanceof Uint16Array ||\n x instanceof Uint32Array ||\n x instanceof Int8Array ||\n x instanceof Int16Array ||\n x instanceof Int32Array ||\n x instanceof Float32Array ||\n x instanceof Float64Array ||\n x instanceof Uint8ClampedArray\n )\n}\n\nvar extend = function (base, opts) {\n var keys = Object.keys(opts)\n for (var i = 0; i < keys.length; ++i) {\n base[keys[i]] = opts[keys[i]]\n }\n return base\n}\n\n// Error checking and parameter validation.\n//\n// Statements for the form `check.someProcedure(...)` get removed by\n// a browserify transform for optimized/minified bundles.\n//\n/* globals atob */\nvar endl = '\\n'\n\n// only used for extracting shader names. if atob not present, then errors\n// will be slightly crappier\nfunction decodeB64 (str) {\n if (typeof atob !== 'undefined') {\n return atob(str)\n }\n return 'base64:' + str\n}\n\nfunction raise (message) {\n var error = new Error('(regl) ' + message)\n console.error(error)\n throw error\n}\n\nfunction check (pred, message) {\n if (!pred) {\n raise(message)\n }\n}\n\nfunction encolon (message) {\n if (message) {\n return ': ' + message\n }\n return ''\n}\n\nfunction checkParameter (param, possibilities, message) {\n if (!(param in possibilities)) {\n raise('unknown parameter (' + param + ')' + encolon(message) +\n '. possible values: ' + Object.keys(possibilities).join())\n }\n}\n\nfunction checkIsTypedArray (data, message) {\n if (!isTypedArray(data)) {\n raise(\n 'invalid parameter type' + encolon(message) +\n '. must be a typed array')\n }\n}\n\nfunction standardTypeEh (value, type) {\n switch (type) {\n case 'number': return typeof value === 'number'\n case 'object': return typeof value === 'object'\n case 'string': return typeof value === 'string'\n case 'boolean': return typeof value === 'boolean'\n case 'function': return typeof value === 'function'\n case 'undefined': return typeof value === 'undefined'\n case 'symbol': return typeof value === 'symbol'\n }\n}\n\nfunction checkTypeOf (value, type, message) {\n if (!standardTypeEh(value, type)) {\n raise(\n 'invalid parameter type' + encolon(message) +\n '. expected ' + type + ', got ' + (typeof value))\n }\n}\n\nfunction checkNonNegativeInt (value, message) {\n if (!((value >= 0) &&\n ((value | 0) === value))) {\n raise('invalid parameter type, (' + value + ')' + encolon(message) +\n '. must be a nonnegative integer')\n }\n}\n\nfunction checkOneOf (value, list, message) {\n if (list.indexOf(value) < 0) {\n raise('invalid value' + encolon(message) + '. must be one of: ' + list)\n }\n}\n\nvar constructorKeys = [\n 'gl',\n 'canvas',\n 'container',\n 'attributes',\n 'pixelRatio',\n 'extensions',\n 'optionalExtensions',\n 'profile',\n 'onDone'\n]\n\nfunction checkConstructor (obj) {\n Object.keys(obj).forEach(function (key) {\n if (constructorKeys.indexOf(key) < 0) {\n raise('invalid regl constructor argument \"' + key + '\". must be one of ' + constructorKeys)\n }\n })\n}\n\nfunction leftPad (str, n) {\n str = str + ''\n while (str.length < n) {\n str = ' ' + str\n }\n return str\n}\n\nfunction ShaderFile () {\n this.name = 'unknown'\n this.lines = []\n this.index = {}\n this.hasErrors = false\n}\n\nfunction ShaderLine (number, line) {\n this.number = number\n this.line = line\n this.errors = []\n}\n\nfunction ShaderError (fileNumber, lineNumber, message) {\n this.file = fileNumber\n this.line = lineNumber\n this.message = message\n}\n\nfunction guessCommand () {\n var error = new Error()\n var stack = (error.stack || error).toString()\n var pat = /compileProcedure.*\\n\\s*at.*\\((.*)\\)/.exec(stack)\n if (pat) {\n return pat[1]\n }\n var pat2 = /compileProcedure.*\\n\\s*at\\s+(.*)(\\n|$)/.exec(stack)\n if (pat2) {\n return pat2[1]\n }\n return 'unknown'\n}\n\nfunction guessCallSite () {\n var error = new Error()\n var stack = (error.stack || error).toString()\n var pat = /at REGLCommand.*\\n\\s+at.*\\((.*)\\)/.exec(stack)\n if (pat) {\n return pat[1]\n }\n var pat2 = /at REGLCommand.*\\n\\s+at\\s+(.*)\\n/.exec(stack)\n if (pat2) {\n return pat2[1]\n }\n return 'unknown'\n}\n\nfunction parseSource (source, command) {\n var lines = source.split('\\n')\n var lineNumber = 1\n var fileNumber = 0\n var files = {\n unknown: new ShaderFile(),\n 0: new ShaderFile()\n }\n files.unknown.name = files[0].name = command || guessCommand()\n files.unknown.lines.push(new ShaderLine(0, ''))\n for (var i = 0; i < lines.length; ++i) {\n var line = lines[i]\n var parts = /^\\s*#\\s*(\\w+)\\s+(.+)\\s*$/.exec(line)\n if (parts) {\n switch (parts[1]) {\n case 'line':\n var lineNumberInfo = /(\\d+)(\\s+\\d+)?/.exec(parts[2])\n if (lineNumberInfo) {\n lineNumber = lineNumberInfo[1] | 0\n if (lineNumberInfo[2]) {\n fileNumber = lineNumberInfo[2] | 0\n if (!(fileNumber in files)) {\n files[fileNumber] = new ShaderFile()\n }\n }\n }\n break\n case 'define':\n var nameInfo = /SHADER_NAME(_B64)?\\s+(.*)$/.exec(parts[2])\n if (nameInfo) {\n files[fileNumber].name = (nameInfo[1]\n ? decodeB64(nameInfo[2])\n : nameInfo[2])\n }\n break\n }\n }\n files[fileNumber].lines.push(new ShaderLine(lineNumber++, line))\n }\n Object.keys(files).forEach(function (fileNumber) {\n var file = files[fileNumber]\n file.lines.forEach(function (line) {\n file.index[line.number] = line\n })\n })\n return files\n}\n\nfunction parseErrorLog (errLog) {\n var result = []\n errLog.split('\\n').forEach(function (errMsg) {\n if (errMsg.length < 5) {\n return\n }\n var parts = /^ERROR:\\s+(\\d+):(\\d+):\\s*(.*)$/.exec(errMsg)\n if (parts) {\n result.push(new ShaderError(\n parts[1] | 0,\n parts[2] | 0,\n parts[3].trim()))\n } else if (errMsg.length > 0) {\n result.push(new ShaderError('unknown', 0, errMsg))\n }\n })\n return result\n}\n\nfunction annotateFiles (files, errors) {\n errors.forEach(function (error) {\n var file = files[error.file]\n if (file) {\n var line = file.index[error.line]\n if (line) {\n line.errors.push(error)\n file.hasErrors = true\n return\n }\n }\n files.unknown.hasErrors = true\n files.unknown.lines[0].errors.push(error)\n })\n}\n\nfunction checkShaderError (gl, shader, source, type, command) {\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n var errLog = gl.getShaderInfoLog(shader)\n var typeName = type === gl.FRAGMENT_SHADER ? 'fragment' : 'vertex'\n checkCommandType(source, 'string', typeName + ' shader source must be a string', command)\n var files = parseSource(source, command)\n var errors = parseErrorLog(errLog)\n annotateFiles(files, errors)\n\n Object.keys(files).forEach(function (fileNumber) {\n var file = files[fileNumber]\n if (!file.hasErrors) {\n return\n }\n\n var strings = ['']\n var styles = ['']\n\n function push (str, style) {\n strings.push(str)\n styles.push(style || '')\n }\n\n push('file number ' + fileNumber + ': ' + file.name + '\\n', 'color:red;text-decoration:underline;font-weight:bold')\n\n file.lines.forEach(function (line) {\n if (line.errors.length > 0) {\n push(leftPad(line.number, 4) + '| ', 'background-color:yellow; font-weight:bold')\n push(line.line + endl, 'color:red; background-color:yellow; font-weight:bold')\n\n // try to guess token\n var offset = 0\n line.errors.forEach(function (error) {\n var message = error.message\n var token = /^\\s*'(.*)'\\s*:\\s*(.*)$/.exec(message)\n if (token) {\n var tokenPat = token[1]\n message = token[2]\n switch (tokenPat) {\n case 'assign':\n tokenPat = '='\n break\n }\n offset = Math.max(line.line.indexOf(tokenPat, offset), 0)\n } else {\n offset = 0\n }\n\n push(leftPad('| ', 6))\n push(leftPad('^^^', offset + 3) + endl, 'font-weight:bold')\n push(leftPad('| ', 6))\n push(message + endl, 'font-weight:bold')\n })\n push(leftPad('| ', 6) + endl)\n } else {\n push(leftPad(line.number, 4) + '| ')\n push(line.line + endl, 'color:red')\n }\n })\n if (typeof document !== 'undefined' && !window.chrome) {\n styles[0] = strings.join('%c')\n console.log.apply(console, styles)\n } else {\n console.log(strings.join(''))\n }\n })\n\n check.raise('Error compiling ' + typeName + ' shader, ' + files[0].name)\n }\n}\n\nfunction checkLinkError (gl, program, fragShader, vertShader, command) {\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n var errLog = gl.getProgramInfoLog(program)\n var fragParse = parseSource(fragShader, command)\n var vertParse = parseSource(vertShader, command)\n\n var header = 'Error linking program with vertex shader, \"' +\n vertParse[0].name + '\", and fragment shader \"' + fragParse[0].name + '\"'\n\n if (typeof document !== 'undefined') {\n console.log('%c' + header + endl + '%c' + errLog,\n 'color:red;text-decoration:underline;font-weight:bold',\n 'color:red')\n } else {\n console.log(header + endl + errLog)\n }\n check.raise(header)\n }\n}\n\nfunction saveCommandRef (object) {\n object._commandRef = guessCommand()\n}\n\nfunction saveDrawCommandInfo (opts, uniforms, attributes, stringStore) {\n saveCommandRef(opts)\n\n function id (str) {\n if (str) {\n return stringStore.id(str)\n }\n return 0\n }\n opts._fragId = id(opts.static.frag)\n opts._vertId = id(opts.static.vert)\n\n function addProps (dict, set) {\n Object.keys(set).forEach(function (u) {\n dict[stringStore.id(u)] = true\n })\n }\n\n var uniformSet = opts._uniformSet = {}\n addProps(uniformSet, uniforms.static)\n addProps(uniformSet, uniforms.dynamic)\n\n var attributeSet = opts._attributeSet = {}\n addProps(attributeSet, attributes.static)\n addProps(attributeSet, attributes.dynamic)\n\n opts._hasCount = (\n 'count' in opts.static ||\n 'count' in opts.dynamic ||\n 'elements' in opts.static ||\n 'elements' in opts.dynamic)\n}\n\nfunction commandRaise (message, command) {\n var callSite = guessCallSite()\n raise(message +\n ' in command ' + (command || guessCommand()) +\n (callSite === 'unknown' ? '' : ' called from ' + callSite))\n}\n\nfunction checkCommand (pred, message, command) {\n if (!pred) {\n commandRaise(message, command || guessCommand())\n }\n}\n\nfunction checkParameterCommand (param, possibilities, message, command) {\n if (!(param in possibilities)) {\n commandRaise(\n 'unknown parameter (' + param + ')' + encolon(message) +\n '. possible values: ' + Object.keys(possibilities).join(),\n command || guessCommand())\n }\n}\n\nfunction checkCommandType (value, type, message, command) {\n if (!standardTypeEh(value, type)) {\n commandRaise(\n 'invalid parameter type' + encolon(message) +\n '. expected ' + type + ', got ' + (typeof value),\n command || guessCommand())\n }\n}\n\nfunction checkOptional (block) {\n block()\n}\n\nfunction checkFramebufferFormat (attachment, texFormats, rbFormats) {\n if (attachment.texture) {\n checkOneOf(\n attachment.texture._texture.internalformat,\n texFormats,\n 'unsupported texture format for attachment')\n } else {\n checkOneOf(\n attachment.renderbuffer._renderbuffer.format,\n rbFormats,\n 'unsupported renderbuffer format for attachment')\n }\n}\n\nvar GL_CLAMP_TO_EDGE = 0x812F\n\nvar GL_NEAREST = 0x2600\nvar GL_NEAREST_MIPMAP_NEAREST = 0x2700\nvar GL_LINEAR_MIPMAP_NEAREST = 0x2701\nvar GL_NEAREST_MIPMAP_LINEAR = 0x2702\nvar GL_LINEAR_MIPMAP_LINEAR = 0x2703\n\nvar GL_BYTE = 5120\nvar GL_UNSIGNED_BYTE = 5121\nvar GL_SHORT = 5122\nvar GL_UNSIGNED_SHORT = 5123\nvar GL_INT = 5124\nvar GL_UNSIGNED_INT = 5125\nvar GL_FLOAT = 5126\n\nvar GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033\nvar GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034\nvar GL_UNSIGNED_SHORT_5_6_5 = 0x8363\nvar GL_UNSIGNED_INT_24_8_WEBGL = 0x84FA\n\nvar GL_HALF_FLOAT_OES = 0x8D61\n\nvar TYPE_SIZE = {}\n\nTYPE_SIZE[GL_BYTE] =\nTYPE_SIZE[GL_UNSIGNED_BYTE] = 1\n\nTYPE_SIZE[GL_SHORT] =\nTYPE_SIZE[GL_UNSIGNED_SHORT] =\nTYPE_SIZE[GL_HALF_FLOAT_OES] =\nTYPE_SIZE[GL_UNSIGNED_SHORT_5_6_5] =\nTYPE_SIZE[GL_UNSIGNED_SHORT_4_4_4_4] =\nTYPE_SIZE[GL_UNSIGNED_SHORT_5_5_5_1] = 2\n\nTYPE_SIZE[GL_INT] =\nTYPE_SIZE[GL_UNSIGNED_INT] =\nTYPE_SIZE[GL_FLOAT] =\nTYPE_SIZE[GL_UNSIGNED_INT_24_8_WEBGL] = 4\n\nfunction pixelSize (type, channels) {\n if (type === GL_UNSIGNED_SHORT_5_5_5_1 ||\n type === GL_UNSIGNED_SHORT_4_4_4_4 ||\n type === GL_UNSIGNED_SHORT_5_6_5) {\n return 2\n } else if (type === GL_UNSIGNED_INT_24_8_WEBGL) {\n return 4\n } else {\n return TYPE_SIZE[type] * channels\n }\n}\n\nfunction isPow2 (v) {\n return !(v & (v - 1)) && (!!v)\n}\n\nfunction checkTexture2D (info, mipData, limits) {\n var i\n var w = mipData.width\n var h = mipData.height\n var c = mipData.channels\n\n // Check texture shape\n check(w > 0 && w <= limits.maxTextureSize &&\n h > 0 && h <= limits.maxTextureSize,\n 'invalid texture shape')\n\n // check wrap mode\n if (info.wrapS !== GL_CLAMP_TO_EDGE || info.wrapT !== GL_CLAMP_TO_EDGE) {\n check(isPow2(w) && isPow2(h),\n 'incompatible wrap mode for texture, both width and height must be power of 2')\n }\n\n if (mipData.mipmask === 1) {\n if (w !== 1 && h !== 1) {\n check(\n info.minFilter !== GL_NEAREST_MIPMAP_NEAREST &&\n info.minFilter !== GL_NEAREST_MIPMAP_LINEAR &&\n info.minFilter !== GL_LINEAR_MIPMAP_NEAREST &&\n info.minFilter !== GL_LINEAR_MIPMAP_LINEAR,\n 'min filter requires mipmap')\n }\n } else {\n // texture must be power of 2\n check(isPow2(w) && isPow2(h),\n 'texture must be a square power of 2 to support mipmapping')\n check(mipData.mipmask === (w << 1) - 1,\n 'missing or incomplete mipmap data')\n }\n\n if (mipData.type === GL_FLOAT) {\n if (limits.extensions.indexOf('oes_texture_float_linear') < 0) {\n check(info.minFilter === GL_NEAREST && info.magFilter === GL_NEAREST,\n 'filter not supported, must enable oes_texture_float_linear')\n }\n check(!info.genMipmaps,\n 'mipmap generation not supported with float textures')\n }\n\n // check image complete\n var mipimages = mipData.images\n for (i = 0; i < 16; ++i) {\n if (mipimages[i]) {\n var mw = w >> i\n var mh = h >> i\n check(mipData.mipmask & (1 << i), 'missing mipmap data')\n\n var img = mipimages[i]\n\n check(\n img.width === mw &&\n img.height === mh,\n 'invalid shape for mip images')\n\n check(\n img.format === mipData.format &&\n img.internalformat === mipData.internalformat &&\n img.type === mipData.type,\n 'incompatible type for mip image')\n\n if (img.compressed) {\n // TODO: check size for compressed images\n } else if (img.data) {\n // check(img.data.byteLength === mw * mh *\n // Math.max(pixelSize(img.type, c), img.unpackAlignment),\n var rowSize = Math.ceil(pixelSize(img.type, c) * mw / img.unpackAlignment) * img.unpackAlignment\n check(img.data.byteLength === rowSize * mh,\n 'invalid data for image, buffer size is inconsistent with image format')\n } else if (img.element) {\n // TODO: check element can be loaded\n } else if (img.copy) {\n // TODO: check compatible format and type\n }\n } else if (!info.genMipmaps) {\n check((mipData.mipmask & (1 << i)) === 0, 'extra mipmap data')\n }\n }\n\n if (mipData.compressed) {\n check(!info.genMipmaps,\n 'mipmap generation for compressed images not supported')\n }\n}\n\nfunction checkTextureCube (texture, info, faces, limits) {\n var w = texture.width\n var h = texture.height\n var c = texture.channels\n\n // Check texture shape\n check(\n w > 0 && w <= limits.maxTextureSize && h > 0 && h <= limits.maxTextureSize,\n 'invalid texture shape')\n check(\n w === h,\n 'cube map must be square')\n check(\n info.wrapS === GL_CLAMP_TO_EDGE && info.wrapT === GL_CLAMP_TO_EDGE,\n 'wrap mode not supported by cube map')\n\n for (var i = 0; i < faces.length; ++i) {\n var face = faces[i]\n check(\n face.width === w && face.height === h,\n 'inconsistent cube map face shape')\n\n if (info.genMipmaps) {\n check(!face.compressed,\n 'can not generate mipmap for compressed textures')\n check(face.mipmask === 1,\n 'can not specify mipmaps and generate mipmaps')\n } else {\n // TODO: check mip and filter mode\n }\n\n var mipmaps = face.images\n for (var j = 0; j < 16; ++j) {\n var img = mipmaps[j]\n if (img) {\n var mw = w >> j\n var mh = h >> j\n check(face.mipmask & (1 << j), 'missing mipmap data')\n check(\n img.width === mw &&\n img.height === mh,\n 'invalid shape for mip images')\n check(\n img.format === texture.format &&\n img.internalformat === texture.internalformat &&\n img.type === texture.type,\n 'incompatible type for mip image')\n\n if (img.compressed) {\n // TODO: check size for compressed images\n } else if (img.data) {\n check(img.data.byteLength === mw * mh *\n Math.max(pixelSize(img.type, c), img.unpackAlignment),\n 'invalid data for image, buffer size is inconsistent with image format')\n } else if (img.element) {\n // TODO: check element can be loaded\n } else if (img.copy) {\n // TODO: check compatible format and type\n }\n }\n }\n }\n}\n\nvar check$1 = extend(check, {\n optional: checkOptional,\n raise: raise,\n commandRaise: commandRaise,\n command: checkCommand,\n parameter: checkParameter,\n commandParameter: checkParameterCommand,\n constructor: checkConstructor,\n type: checkTypeOf,\n commandType: checkCommandType,\n isTypedArray: checkIsTypedArray,\n nni: checkNonNegativeInt,\n oneOf: checkOneOf,\n shaderError: checkShaderError,\n linkError: checkLinkError,\n callSite: guessCallSite,\n saveCommandRef: saveCommandRef,\n saveDrawInfo: saveDrawCommandInfo,\n framebufferFormat: checkFramebufferFormat,\n guessCommand: guessCommand,\n texture2D: checkTexture2D,\n textureCube: checkTextureCube\n});\n\nvar VARIABLE_COUNTER = 0\n\nvar DYN_FUNC = 0\nvar DYN_CONSTANT = 5\nvar DYN_ARRAY = 6\n\nfunction DynamicVariable (type, data) {\n this.id = (VARIABLE_COUNTER++)\n this.type = type\n this.data = data\n}\n\nfunction escapeStr (str) {\n return str.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')\n}\n\nfunction splitParts (str) {\n if (str.length === 0) {\n return []\n }\n\n var firstChar = str.charAt(0)\n var lastChar = str.charAt(str.length - 1)\n\n if (str.length > 1 &&\n firstChar === lastChar &&\n (firstChar === '\"' || firstChar === \"'\")) {\n return ['\"' + escapeStr(str.substr(1, str.length - 2)) + '\"']\n }\n\n var parts = /\\[(false|true|null|\\d+|'[^']*'|\"[^\"]*\")\\]/.exec(str)\n if (parts) {\n return (\n splitParts(str.substr(0, parts.index))\n .concat(splitParts(parts[1]))\n .concat(splitParts(str.substr(parts.index + parts[0].length)))\n )\n }\n\n var subparts = str.split('.')\n if (subparts.length === 1) {\n return ['\"' + escapeStr(str) + '\"']\n }\n\n var result = []\n for (var i = 0; i < subparts.length; ++i) {\n result = result.concat(splitParts(subparts[i]))\n }\n return result\n}\n\nfunction toAccessorString (str) {\n return '[' + splitParts(str).join('][') + ']'\n}\n\nfunction defineDynamic (type, data) {\n return new DynamicVariable(type, toAccessorString(data + ''))\n}\n\nfunction isDynamic (x) {\n return (typeof x === 'function' && !x._reglType) || (x instanceof DynamicVariable)\n}\n\nfunction unbox (x, path) {\n if (typeof x === 'function') {\n return new DynamicVariable(DYN_FUNC, x)\n } else if (typeof x === 'number' || typeof x === 'boolean') {\n return new DynamicVariable(DYN_CONSTANT, x)\n } else if (Array.isArray(x)) {\n return new DynamicVariable(DYN_ARRAY, x.map(function (y, i) { return unbox(y, path + '[' + i + ']') }))\n } else if (x instanceof DynamicVariable) {\n return x\n }\n check$1(false, 'invalid option type in uniform ' + path)\n}\n\nvar dynamic = {\n DynamicVariable: DynamicVariable,\n define: defineDynamic,\n isDynamic: isDynamic,\n unbox: unbox,\n accessor: toAccessorString\n};\n\n/* globals requestAnimationFrame, cancelAnimationFrame */\nvar raf = {\n next: typeof requestAnimationFrame === 'function'\n ? function (cb) { return requestAnimationFrame(cb) }\n : function (cb) { return setTimeout(cb, 16) },\n cancel: typeof cancelAnimationFrame === 'function'\n ? function (raf) { return cancelAnimationFrame(raf) }\n : clearTimeout\n};\n\n/* globals performance */\nvar clock = (typeof performance !== 'undefined' && performance.now)\n ? function () { return performance.now() }\n : function () { return +(new Date()) };\n\nfunction createStringStore () {\n var stringIds = { '': 0 }\n var stringValues = ['']\n return {\n id: function (str) {\n var result = stringIds[str]\n if (result) {\n return result\n }\n result = stringIds[str] = stringValues.length\n stringValues.push(str)\n return result\n },\n\n str: function (id) {\n return stringValues[id]\n }\n }\n}\n\n// Context and canvas creation helper functions\nfunction createCanvas (element, onDone, pixelRatio) {\n var canvas = document.createElement('canvas')\n extend(canvas.style, {\n border: 0,\n margin: 0,\n padding: 0,\n top: 0,\n left: 0,\n width: '100%',\n height: '100%'\n })\n element.appendChild(canvas)\n\n if (element === document.body) {\n canvas.style.position = 'absolute'\n extend(element.style, {\n margin: 0,\n padding: 0\n })\n }\n\n function resize () {\n var w = window.innerWidth\n var h = window.innerHeight\n if (element !== document.body) {\n var bounds = canvas.getBoundingClientRect()\n w = bounds.right - bounds.left\n h = bounds.bottom - bounds.top\n }\n canvas.width = pixelRatio * w\n canvas.height = pixelRatio * h\n }\n\n var resizeObserver\n if (element !== document.body && typeof ResizeObserver === 'function') {\n // ignore 'ResizeObserver' is not defined\n // eslint-disable-next-line\n resizeObserver = new ResizeObserver(function () {\n // setTimeout to avoid flicker\n setTimeout(resize)\n })\n resizeObserver.observe(element)\n } else {\n window.addEventListener('resize', resize, false)\n }\n\n function onDestroy () {\n if (resizeObserver) {\n resizeObserver.disconnect()\n } else {\n window.removeEventListener('resize', resize)\n }\n element.removeChild(canvas)\n }\n\n resize()\n\n return {\n canvas: canvas,\n onDestroy: onDestroy\n }\n}\n\nfunction createContext (canvas, contextAttributes) {\n function get (name) {\n try {\n return canvas.getContext(name, contextAttributes)\n } catch (e) {\n return null\n }\n }\n return (\n get('webgl') ||\n get('experimental-webgl') ||\n get('webgl-experimental')\n )\n}\n\nfunction isHTMLElement (obj) {\n return (\n typeof obj.nodeName === 'string' &&\n typeof obj.appendChild === 'function' &&\n typeof obj.getBoundingClientRect === 'function'\n )\n}\n\nfunction isWebGLContext (obj) {\n return (\n typeof obj.drawArrays === 'function' ||\n typeof obj.drawElements === 'function'\n )\n}\n\nfunction parseExtensions (input) {\n if (typeof input === 'string') {\n return input.split()\n }\n check$1(Array.isArray(input), 'invalid extension array')\n return input\n}\n\nfunction getElement (desc) {\n if (typeof desc === 'string') {\n check$1(typeof document !== 'undefined', 'not supported outside of DOM')\n return document.querySelector(desc)\n }\n return desc\n}\n\nfunction parseArgs (args_) {\n var args = args_ || {}\n var element, container, canvas, gl\n var contextAttributes = {}\n var extensions = []\n var optionalExtensions = []\n var pixelRatio = (typeof window === 'undefined' ? 1 : window.devicePixelRatio)\n var profile = false\n var onDone = function (err) {\n if (err) {\n check$1.raise(err)\n }\n }\n var onDestroy = function () {}\n if (typeof args === 'string') {\n check$1(\n typeof document !== 'undefined',\n 'selector queries only supported in DOM enviroments')\n element = document.querySelector(args)\n check$1(element, 'invalid query string for element')\n } else if (typeof args === 'object') {\n if (isHTMLElement(args)) {\n element = args\n } else if (isWebGLContext(args)) {\n gl = args\n canvas = gl.canvas\n } else {\n check$1.constructor(args)\n if ('gl' in args) {\n gl = args.gl\n } else if ('canvas' in args) {\n canvas = getElement(args.canvas)\n } else if ('container' in args) {\n container = getElement(args.container)\n }\n if ('attributes' in args) {\n contextAttributes = args.attributes\n check$1.type(contextAttributes, 'object', 'invalid context attributes')\n }\n if ('extensions' in args) {\n extensions = parseExtensions(args.extensions)\n }\n if ('optionalExtensions' in args) {\n optionalExtensions = parseExtensions(args.optionalExtensions)\n }\n if ('onDone' in args) {\n check$1.type(\n args.onDone, 'function',\n 'invalid or missing onDone callback')\n onDone = args.onDone\n }\n if ('profile' in args) {\n profile = !!args.profile\n }\n if ('pixelRatio' in args) {\n pixelRatio = +args.pixelRatio\n check$1(pixelRatio > 0, 'invalid pixel ratio')\n }\n }\n } else {\n check$1.raise('invalid arguments to regl')\n }\n\n if (element) {\n if (element.nodeName.toLowerCase() === 'canvas') {\n canvas = element\n } else {\n container = element\n }\n }\n\n if (!gl) {\n if (!canvas) {\n check$1(\n typeof document !== 'undefined',\n 'must manually specify webgl context outside of DOM environments')\n var result = createCanvas(container || document.body, onDone, pixelRatio)\n if (!result) {\n return null\n }\n canvas = result.canvas\n onDestroy = result.onDestroy\n }\n // workaround for chromium bug, premultiplied alpha value is platform dependent\n if (contextAttributes.premultipliedAlpha === undefined) contextAttributes.premultipliedAlpha = true\n gl = createContext(canvas, contextAttributes)\n }\n\n if (!gl) {\n onDestroy()\n onDone('webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org')\n return null\n }\n\n return {\n gl: gl,\n canvas: canvas,\n container: container,\n extensions: extensions,\n optionalExtensions: optionalExtensions,\n pixelRatio: pixelRatio,\n profile: profile,\n onDone: onDone,\n onDestroy: onDestroy\n }\n}\n\nfunction createExtensionCache (gl, config) {\n var extensions = {}\n\n function tryLoadExtension (name_) {\n check$1.type(name_, 'string', 'extension name must be string')\n var name = name_.toLowerCase()\n var ext\n try {\n ext = extensions[name] = gl.getExtension(name)\n } catch (e) {}\n return !!ext\n }\n\n for (var i = 0; i < config.extensions.length; ++i) {\n var name = config.extensions[i]\n if (!tryLoadExtension(name)) {\n config.onDestroy()\n config.onDone('\"' + name + '\" extension is not supported by the current WebGL context, try upgrading your system or a different browser')\n return null\n }\n }\n\n config.optionalExtensions.forEach(tryLoadExtension)\n\n return {\n extensions: extensions,\n restore: function () {\n Object.keys(extensions).forEach(function (name) {\n if (extensions[name] && !tryLoadExtension(name)) {\n throw new Error('(regl): error restoring extension ' + name)\n }\n })\n }\n }\n}\n\nfunction loop (n, f) {\n var result = Array(n)\n for (var i = 0; i < n; ++i) {\n result[i] = f(i)\n }\n return result\n}\n\nvar GL_BYTE$1 = 5120\nvar GL_UNSIGNED_BYTE$2 = 5121\nvar GL_SHORT$1 = 5122\nvar GL_UNSIGNED_SHORT$1 = 5123\nvar GL_INT$1 = 5124\nvar GL_UNSIGNED_INT$1 = 5125\nvar GL_FLOAT$2 = 5126\n\nfunction nextPow16 (v) {\n for (var i = 16; i <= (1 << 28); i *= 16) {\n if (v <= i) {\n return i\n }\n }\n return 0\n}\n\nfunction log2 (v) {\n var r, shift\n r = (v > 0xFFFF) << 4\n v >>>= r\n shift = (v > 0xFF) << 3\n v >>>= shift; r |= shift\n shift = (v > 0xF) << 2\n v >>>= shift; r |= shift\n shift = (v > 0x3) << 1\n v >>>= shift; r |= shift\n return r | (v >> 1)\n}\n\nfunction createPool () {\n var bufferPool = loop(8, function () {\n return []\n })\n\n function alloc (n) {\n var sz = nextPow16(n)\n var bin = bufferPool[log2(sz) >> 2]\n if (bin.length > 0) {\n return bin.pop()\n }\n return new ArrayBuffer(sz)\n }\n\n function free (buf) {\n bufferPool[log2(buf.byteLength) >> 2].push(buf)\n }\n\n function allocType (type, n) {\n var result = null\n switch (type) {\n case GL_BYTE$1:\n result = new Int8Array(alloc(n), 0, n)\n break\n case GL_UNSIGNED_BYTE$2:\n result = new Uint8Array(alloc(n), 0, n)\n break\n case GL_SHORT$1:\n result = new Int16Array(alloc(2 * n), 0, n)\n break\n case GL_UNSIGNED_SHORT$1:\n result = new Uint16Array(alloc(2 * n), 0, n)\n break\n case GL_INT$1:\n result = new Int32Array(alloc(4 * n), 0, n)\n break\n case GL_UNSIGNED_INT$1:\n result = new Uint32Array(alloc(4 * n), 0, n)\n break\n case GL_FLOAT$2:\n result = new Float32Array(alloc(4 * n), 0, n)\n break\n default:\n return null\n }\n if (result.length !== n) {\n return result.subarray(0, n)\n }\n return result\n }\n\n function freeType (array) {\n free(array.buffer)\n }\n\n return {\n alloc: alloc,\n free: free,\n allocType: allocType,\n freeType: freeType\n }\n}\n\nvar pool = createPool()\n\n// zero pool for initial zero data\npool.zero = createPool()\n\nvar GL_SUBPIXEL_BITS = 0x0D50\nvar GL_RED_BITS = 0x0D52\nvar GL_GREEN_BITS = 0x0D53\nvar GL_BLUE_BITS = 0x0D54\nvar GL_ALPHA_BITS = 0x0D55\nvar GL_DEPTH_BITS = 0x0D56\nvar GL_STENCIL_BITS = 0x0D57\n\nvar GL_ALIASED_POINT_SIZE_RANGE = 0x846D\nvar GL_ALIASED_LINE_WIDTH_RANGE = 0x846E\n\nvar GL_MAX_TEXTURE_SIZE = 0x0D33\nvar GL_MAX_VIEWPORT_DIMS = 0x0D3A\nvar GL_MAX_VERTEX_ATTRIBS = 0x8869\nvar GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB\nvar GL_MAX_VARYING_VECTORS = 0x8DFC\nvar GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D\nvar GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C\nvar GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872\nvar GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD\nvar GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C\nvar GL_MAX_RENDERBUFFER_SIZE = 0x84E8\n\nvar GL_VENDOR = 0x1F00\nvar GL_RENDERER = 0x1F01\nvar GL_VERSION = 0x1F02\nvar GL_SHADING_LANGUAGE_VERSION = 0x8B8C\n\nvar GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF\n\nvar GL_MAX_COLOR_ATTACHMENTS_WEBGL = 0x8CDF\nvar GL_MAX_DRAW_BUFFERS_WEBGL = 0x8824\n\nvar GL_TEXTURE_2D = 0x0DE1\nvar GL_TEXTURE_CUBE_MAP = 0x8513\nvar GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515\nvar GL_TEXTURE0 = 0x84C0\nvar GL_RGBA = 0x1908\nvar GL_FLOAT$1 = 0x1406\nvar GL_UNSIGNED_BYTE$1 = 0x1401\nvar GL_FRAMEBUFFER = 0x8D40\nvar GL_FRAMEBUFFER_COMPLETE = 0x8CD5\nvar GL_COLOR_ATTACHMENT0 = 0x8CE0\nvar GL_COLOR_BUFFER_BIT$1 = 0x4000\n\nvar wrapLimits = function (gl, extensions) {\n var maxAnisotropic = 1\n if (extensions.ext_texture_filter_anisotropic) {\n maxAnisotropic = gl.getParameter(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT)\n }\n\n var maxDrawbuffers = 1\n var maxColorAttachments = 1\n if (extensions.webgl_draw_buffers) {\n maxDrawbuffers = gl.getParameter(GL_MAX_DRAW_BUFFERS_WEBGL)\n maxColorAttachments = gl.getParameter(GL_MAX_COLOR_ATTACHMENTS_WEBGL)\n }\n\n // detect if reading float textures is available (Safari doesn't support)\n var readFloat = !!extensions.oes_texture_float\n if (readFloat) {\n var readFloatTexture = gl.createTexture()\n gl.bindTexture(GL_TEXTURE_2D, readFloatTexture)\n gl.texImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_FLOAT$1, null)\n\n var fbo = gl.createFramebuffer()\n gl.bindFramebuffer(GL_FRAMEBUFFER, fbo)\n gl.framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, readFloatTexture, 0)\n gl.bindTexture(GL_TEXTURE_2D, null)\n\n if (gl.checkFramebufferStatus(GL_FRAMEBUFFER) !== GL_FRAMEBUFFER_COMPLETE) readFloat = false\n\n else {\n gl.viewport(0, 0, 1, 1)\n gl.clearColor(1.0, 0.0, 0.0, 1.0)\n gl.clear(GL_COLOR_BUFFER_BIT$1)\n var pixels = pool.allocType(GL_FLOAT$1, 4)\n gl.readPixels(0, 0, 1, 1, GL_RGBA, GL_FLOAT$1, pixels)\n\n if (gl.getError()) readFloat = false\n else {\n gl.deleteFramebuffer(fbo)\n gl.deleteTexture(readFloatTexture)\n\n readFloat = pixels[0] === 1.0\n }\n\n pool.freeType(pixels)\n }\n }\n\n // detect non power of two cube textures support (IE doesn't support)\n var isIE = typeof navigator !== 'undefined' && (/MSIE/.test(navigator.userAgent) || /Trident\\//.test(navigator.appVersion) || /Edge/.test(navigator.userAgent))\n\n var npotTextureCube = true\n\n if (!isIE) {\n var cubeTexture = gl.createTexture()\n var data = pool.allocType(GL_UNSIGNED_BYTE$1, 36)\n gl.activeTexture(GL_TEXTURE0)\n gl.bindTexture(GL_TEXTURE_CUBE_MAP, cubeTexture)\n gl.texImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, GL_RGBA, 3, 3, 0, GL_RGBA, GL_UNSIGNED_BYTE$1, data)\n pool.freeType(data)\n gl.bindTexture(GL_TEXTURE_CUBE_MAP, null)\n gl.deleteTexture(cubeTexture)\n npotTextureCube = !gl.getError()\n }\n\n return {\n // drawing buffer bit depth\n colorBits: [\n gl.getParameter(GL_RED_BITS),\n gl.getParameter(GL_GREEN_BITS),\n gl.getParameter(GL_BLUE_BITS),\n gl.getParameter(GL_ALPHA_BITS)\n ],\n depthBits: gl.getParameter(GL_DEPTH_BITS),\n stencilBits: gl.getParameter(GL_STENCIL_BITS),\n subpixelBits: gl.getParameter(GL_SUBPIXEL_BITS),\n\n // supported extensions\n extensions: Object.keys(extensions).filter(function (ext) {\n return !!extensions[ext]\n }),\n\n // max aniso samples\n maxAnisotropic: maxAnisotropic,\n\n // max draw buffers\n maxDrawbuffers: maxDrawbuffers,\n maxColorAttachments: maxColorAttachments,\n\n // point and line size ranges\n pointSizeDims: gl.getParameter(GL_ALIASED_POINT_SIZE_RANGE),\n lineWidthDims: gl.getParameter(GL_ALIASED_LINE_WIDTH_RANGE),\n maxViewportDims: gl.getParameter(GL_MAX_VIEWPORT_DIMS),\n maxCombinedTextureUnits: gl.getParameter(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS),\n maxCubeMapSize: gl.getParameter(GL_MAX_CUBE_MAP_TEXTURE_SIZE),\n maxRenderbufferSize: gl.getParameter(GL_MAX_RENDERBUFFER_SIZE),\n maxTextureUnits: gl.getParameter(GL_MAX_TEXTURE_IMAGE_UNITS),\n maxTextureSize: gl.getParameter(GL_MAX_TEXTURE_SIZE),\n maxAttributes: gl.getParameter(GL_MAX_VERTEX_ATTRIBS),\n maxVertexUniforms: gl.getParameter(GL_MAX_VERTEX_UNIFORM_VECTORS),\n maxVertexTextureUnits: gl.getParameter(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS),\n maxVaryingVectors: gl.getParameter(GL_MAX_VARYING_VECTORS),\n maxFragmentUniforms: gl.getParameter(GL_MAX_FRAGMENT_UNIFORM_VECTORS),\n\n // vendor info\n glsl: gl.getParameter(GL_SHADING_LANGUAGE_VERSION),\n renderer: gl.getParameter(GL_RENDERER),\n vendor: gl.getParameter(GL_VENDOR),\n version: gl.getParameter(GL_VERSION),\n\n // quirks\n readFloat: readFloat,\n npotTextureCube: npotTextureCube\n }\n}\n\nfunction isNDArrayLike (obj) {\n return (\n !!obj &&\n typeof obj === 'object' &&\n Array.isArray(obj.shape) &&\n Array.isArray(obj.stride) &&\n typeof obj.offset === 'number' &&\n obj.shape.length === obj.stride.length &&\n (Array.isArray(obj.data) ||\n isTypedArray(obj.data)))\n}\n\nvar values = function (obj) {\n return Object.keys(obj).map(function (key) { return obj[key] })\n}\n\nvar flattenUtils = {\n shape: arrayShape$1,\n flatten: flattenArray\n};\n\nfunction flatten1D (array, nx, out) {\n for (var i = 0; i < nx; ++i) {\n out[i] = array[i]\n }\n}\n\nfunction flatten2D (array, nx, ny, out) {\n var ptr = 0\n for (var i = 0; i < nx; ++i) {\n var row = array[i]\n for (var j = 0; j < ny; ++j) {\n out[ptr++] = row[j]\n }\n }\n}\n\nfunction flatten3D (array, nx, ny, nz, out, ptr_) {\n var ptr = ptr_\n for (var i = 0; i < nx; ++i) {\n var row = array[i]\n for (var j = 0; j < ny; ++j) {\n var col = row[j]\n for (var k = 0; k < nz; ++k) {\n out[ptr++] = col[k]\n }\n }\n }\n}\n\nfunction flattenRec (array, shape, level, out, ptr) {\n var stride = 1\n for (var i = level + 1; i < shape.length; ++i) {\n stride *= shape[i]\n }\n var n = shape[level]\n if (shape.length - level === 4) {\n var nx = shape[level + 1]\n var ny = shape[level + 2]\n var nz = shape[level + 3]\n for (i = 0; i < n; ++i) {\n flatten3D(array[i], nx, ny, nz, out, ptr)\n ptr += stride\n }\n } else {\n for (i = 0; i < n; ++i) {\n flattenRec(array[i], shape, level + 1, out, ptr)\n ptr += stride\n }\n }\n}\n\nfunction flattenArray (array, shape, type, out_) {\n var sz = 1\n if (shape.length) {\n for (var i = 0; i < shape.length; ++i) {\n sz *= shape[i]\n }\n } else {\n sz = 0\n }\n var out = out_ || pool.allocType(type, sz)\n switch (shape.length) {\n case 0:\n break\n case 1:\n flatten1D(array, shape[0], out)\n break\n case 2:\n flatten2D(array, shape[0], shape[1], out)\n break\n case 3:\n flatten3D(array, shape[0], shape[1], shape[2], out, 0)\n break\n default:\n flattenRec(array, shape, 0, out, 0)\n }\n return out\n}\n\nfunction arrayShape$1 (array_) {\n var shape = []\n for (var array = array_; array.length; array = array[0]) {\n shape.push(array.length)\n }\n return shape\n}\n\nvar arrayTypes = {\n\t\"[object Int8Array]\": 5120,\n\t\"[object Int16Array]\": 5122,\n\t\"[object Int32Array]\": 5124,\n\t\"[object Uint8Array]\": 5121,\n\t\"[object Uint8ClampedArray]\": 5121,\n\t\"[object Uint16Array]\": 5123,\n\t\"[object Uint32Array]\": 5125,\n\t\"[object Float32Array]\": 5126,\n\t\"[object Float64Array]\": 5121,\n\t\"[object ArrayBuffer]\": 5121\n};\n\nvar int8 = 5120;\nvar int16 = 5122;\nvar int32 = 5124;\nvar uint8 = 5121;\nvar uint16 = 5123;\nvar uint32 = 5125;\nvar float = 5126;\nvar float32 = 5126;\nvar glTypes = {\n\tint8: int8,\n\tint16: int16,\n\tint32: int32,\n\tuint8: uint8,\n\tuint16: uint16,\n\tuint32: uint32,\n\tfloat: float,\n\tfloat32: float32\n};\n\nvar dynamic$1 = 35048;\nvar stream = 35040;\nvar usageTypes = {\n\tdynamic: dynamic$1,\n\tstream: stream,\n\t\"static\": 35044\n};\n\nvar arrayFlatten = flattenUtils.flatten\nvar arrayShape = flattenUtils.shape\n\nvar GL_STATIC_DRAW = 0x88E4\nvar GL_STREAM_DRAW = 0x88E0\n\nvar GL_UNSIGNED_BYTE$3 = 5121\nvar GL_FLOAT$3 = 5126\n\nvar DTYPES_SIZES = []\nDTYPES_SIZES[5120] = 1 // int8\nDTYPES_SIZES[5122] = 2 // int16\nDTYPES_SIZES[5124] = 4 // int32\nDTYPES_SIZES[5121] = 1 // uint8\nDTYPES_SIZES[5123] = 2 // uint16\nDTYPES_SIZES[5125] = 4 // uint32\nDTYPES_SIZES[5126] = 4 // float32\n\nfunction typedArrayCode (data) {\n return arrayTypes[Object.prototype.toString.call(data)] | 0\n}\n\nfunction copyArray (out, inp) {\n for (var i = 0; i < inp.length; ++i) {\n out[i] = inp[i]\n }\n}\n\nfunction transpose (\n result, data, shapeX, shapeY, strideX, strideY, offset) {\n var ptr = 0\n for (var i = 0; i < shapeX; ++i) {\n for (var j = 0; j < shapeY; ++j) {\n result[ptr++] = data[strideX * i + strideY * j + offset]\n }\n }\n}\n\nfunction wrapBufferState (gl, stats, config, destroyBuffer) {\n var bufferCount = 0\n var bufferSet = {}\n\n function REGLBuffer (type) {\n this.id = bufferCount++\n this.buffer = gl.createBuffer()\n this.type = type\n this.usage = GL_STATIC_DRAW\n this.byteLength = 0\n this.dimension = 1\n this.dtype = GL_UNSIGNED_BYTE$3\n\n this.persistentData = null\n\n if (config.profile) {\n this.stats = { size: 0 }\n }\n }\n\n REGLBuffer.prototype.bind = function () {\n gl.bindBuffer(this.type, this.buffer)\n }\n\n REGLBuffer.prototype.destroy = function () {\n destroy(this)\n }\n\n var streamPool = []\n\n function createStream (type, data) {\n var buffer = streamPool.pop()\n if (!buffer) {\n buffer = new REGLBuffer(type)\n }\n buffer.bind()\n initBufferFromData(buffer, data, GL_STREAM_DRAW, 0, 1, false)\n return buffer\n }\n\n function destroyStream (stream$$1) {\n streamPool.push(stream$$1)\n }\n\n function initBufferFromTypedArray (buffer, data, usage) {\n buffer.byteLength = data.byteLength\n gl.bufferData(buffer.type, data, usage)\n }\n\n function initBufferFromData (buffer, data, usage, dtype, dimension, persist) {\n var shape\n buffer.usage = usage\n if (Array.isArray(data)) {\n buffer.dtype = dtype || GL_FLOAT$3\n if (data.length > 0) {\n var flatData\n if (Array.isArray(data[0])) {\n shape = arrayShape(data)\n var dim = 1\n for (var i = 1; i < shape.length; ++i) {\n dim *= shape[i]\n }\n buffer.dimension = dim\n flatData = arrayFlatten(data, shape, buffer.dtype)\n initBufferFromTypedArray(buffer, flatData, usage)\n if (persist) {\n buffer.persistentData = flatData\n } else {\n pool.freeType(flatData)\n }\n } else if (typeof data[0] === 'number') {\n buffer.dimension = dimension\n var typedData = pool.allocType(buffer.dtype, data.length)\n copyArray(typedData, data)\n initBufferFromTypedArray(buffer, typedData, usage)\n if (persist) {\n buffer.persistentData = typedData\n } else {\n pool.freeType(typedData)\n }\n } else if (isTypedArray(data[0])) {\n buffer.dimension = data[0].length\n buffer.dtype = dtype || typedArrayCode(data[0]) || GL_FLOAT$3\n flatData = arrayFlatten(\n data,\n [data.length, data[0].length],\n buffer.dtype)\n initBufferFromTypedArray(buffer, flatData, usage)\n if (persist) {\n buffer.persistentData = flatData\n } else {\n pool.freeType(flatData)\n }\n } else {\n check$1.raise('invalid buffer data')\n }\n }\n } else if (isTypedArray(data)) {\n buffer.dtype = dtype || typedArrayCode(data)\n buffer.dimension = dimension\n initBufferFromTypedArray(buffer, data, usage)\n if (persist) {\n buffer.persistentData = new Uint8Array(new Uint8Array(data.buffer))\n }\n } else if (isNDArrayLike(data)) {\n shape = data.shape\n var stride = data.stride\n var offset = data.offset\n\n var shapeX = 0\n var shapeY = 0\n var strideX = 0\n var strideY = 0\n if (shape.length === 1) {\n shapeX = shape[0]\n shapeY = 1\n strideX = stride[0]\n strideY = 0\n } else if (shape.length === 2) {\n shapeX = shape[0]\n shapeY = shape[1]\n strideX = stride[0]\n strideY = stride[1]\n } else {\n check$1.raise('invalid shape')\n }\n\n buffer.dtype = dtype || typedArrayCode(data.data) || GL_FLOAT$3\n buffer.dimension = shapeY\n\n var transposeData = pool.allocType(buffer.dtype, shapeX * shapeY)\n transpose(transposeData,\n data.data,\n shapeX, shapeY,\n strideX, strideY,\n offset)\n initBufferFromTypedArray(buffer, transposeData, usage)\n if (persist) {\n buffer.persistentData = transposeData\n } else {\n pool.freeType(transposeData)\n }\n } else if (data instanceof ArrayBuffer) {\n buffer.dtype = GL_UNSIGNED_BYTE$3\n buffer.dimension = dimension\n initBufferFromTypedArray(buffer, data, usage)\n if (persist) {\n buffer.persistentData = new Uint8Array(new Uint8Array(data))\n }\n } else {\n check$1.raise('invalid buffer data')\n }\n }\n\n function destroy (buffer) {\n stats.bufferCount--\n\n // remove attribute link\n destroyBuffer(buffer)\n\n var handle = buffer.buffer\n check$1(handle, 'buffer must not be deleted already')\n gl.deleteBuffer(handle)\n buffer.buffer = null\n delete bufferSet[buffer.id]\n }\n\n function createBuffer (options, type, deferInit, persistent) {\n stats.bufferCount++\n\n var buffer = new REGLBuffer(type)\n bufferSet[buffer.id] = buffer\n\n function reglBuffer (options) {\n var usage = GL_STATIC_DRAW\n var data = null\n var byteLength = 0\n var dtype = 0\n var dimension = 1\n if (Array.isArray(options) ||\n isTypedArray(options) ||\n isNDArrayLike(options) ||\n options instanceof ArrayBuffer) {\n data = options\n } else if (typeof options === 'number') {\n byteLength = options | 0\n } else if (options) {\n check$1.type(\n options, 'object',\n 'buffer arguments must be an object, a number or an array')\n\n if ('data' in options) {\n check$1(\n data === null ||\n Array.isArray(data) ||\n isTypedArray(data) ||\n isNDArrayLike(data),\n 'invalid data for buffer')\n data = options.data\n }\n\n if ('usage' in options) {\n check$1.parameter(options.usage, usageTypes, 'invalid buffer usage')\n usage = usageTypes[options.usage]\n }\n\n if ('type' in options) {\n check$1.parameter(options.type, glTypes, 'invalid buffer type')\n dtype = glTypes[options.type]\n }\n\n if ('dimension' in options) {\n check$1.type(options.dimension, 'number', 'invalid dimension')\n dimension = options.dimension | 0\n }\n\n if ('length' in options) {\n check$1.nni(byteLength, 'buffer length must be a nonnegative integer')\n byteLength = options.length | 0\n }\n }\n\n buffer.bind()\n if (!data) {\n // #475\n if (byteLength) gl.bufferData(buffer.type, byteLength, usage)\n buffer.dtype = dtype || GL_UNSIGNED_BYTE$3\n buffer.usage = usage\n buffer.dimension = dimension\n buffer.byteLength = byteLength\n } else {\n initBufferFromData(buffer, data, usage, dtype, dimension, persistent)\n }\n\n if (config.profile) {\n buffer.stats.size = buffer.byteLength * DTYPES_SIZES[buffer.dtype]\n }\n\n return reglBuffer\n }\n\n function setSubData (data, offset) {\n check$1(offset + data.byteLength <= buffer.byteLength,\n 'invalid buffer subdata call, buffer is too small. ' + ' Can\\'t write data of size ' + data.byteLength + ' starting from offset ' + offset + ' to a buffer of size ' + buffer.byteLength)\n\n gl.bufferSubData(buffer.type, offset, data)\n }\n\n function subdata (data, offset_) {\n var offset = (offset_ || 0) | 0\n var shape\n buffer.bind()\n if (isTypedArray(data) || data instanceof ArrayBuffer) {\n setSubData(data, offset)\n } else if (Array.isArray(data)) {\n if (data.length > 0) {\n if (typeof data[0] === 'number') {\n var converted = pool.allocType(buffer.dtype, data.length)\n copyArray(converted, data)\n setSubData(converted, offset)\n pool.freeType(converted)\n } else if (Array.isArray(data[0]) || isTypedArray(data[0])) {\n shape = arrayShape(data)\n var flatData = arrayFlatten(data, shape, buffer.dtype)\n setSubData(flatData, offset)\n pool.freeType(flatData)\n } else {\n check$1.raise('invalid buffer data')\n }\n }\n } else if (isNDArrayLike(data)) {\n shape = data.shape\n var stride = data.stride\n\n var shapeX = 0\n var shapeY = 0\n var strideX = 0\n var strideY = 0\n if (shape.length === 1) {\n shapeX = shape[0]\n shapeY = 1\n strideX = stride[0]\n strideY = 0\n } else if (shape.length === 2) {\n shapeX = shape[0]\n shapeY = shape[1]\n strideX = stride[0]\n strideY = stride[1]\n } else {\n check$1.raise('invalid shape')\n }\n var dtype = Array.isArray(data.data)\n ? buffer.dtype\n : typedArrayCode(data.data)\n\n var transposeData = pool.allocType(dtype, shapeX * shapeY)\n transpose(transposeData,\n data.data,\n shapeX, shapeY,\n strideX, strideY,\n data.offset)\n setSubData(transposeData, offset)\n pool.freeType(transposeData)\n } else {\n check$1.raise('invalid data for buffer subdata')\n }\n return reglBuffer\n }\n\n if (!deferInit) {\n reglBuffer(options)\n }\n\n reglBuffer._reglType = 'buffer'\n reglBuffer._buffer = buffer\n reglBuffer.subdata = subdata\n if (config.profile) {\n reglBuffer.stats = buffer.stats\n }\n reglBuffer.destroy = function () { destroy(buffer) }\n\n return reglBuffer\n }\n\n function restoreBuffers () {\n values(bufferSet).forEach(function (buffer) {\n buffer.buffer = gl.createBuffer()\n gl.bindBuffer(buffer.type, buffer.buffer)\n gl.bufferData(\n buffer.type, buffer.persistentData || buffer.byteLength, buffer.usage)\n })\n }\n\n if (config.profile) {\n stats.getTotalBufferSize = function () {\n var total = 0\n // TODO: Right now, the streams are not part of the total count.\n Object.keys(bufferSet).forEach(function (key) {\n total += bufferSet[key].stats.size\n })\n return total\n }\n }\n\n return {\n create: createBuffer,\n\n createStream: createStream,\n destroyStream: destroyStream,\n\n clear: function () {\n values(bufferSet).forEach(destroy)\n streamPool.forEach(destroy)\n },\n\n getBuffer: function (wrapper) {\n if (wrapper && wrapper._buffer instanceof REGLBuffer) {\n return wrapper._buffer\n }\n return null\n },\n\n restore: restoreBuffers,\n\n _initBuffer: initBufferFromData\n }\n}\n\nvar points = 0;\nvar point = 0;\nvar lines = 1;\nvar line = 1;\nvar triangles = 4;\nvar triangle = 4;\nvar primTypes = {\n\tpoints: points,\n\tpoint: point,\n\tlines: lines,\n\tline: line,\n\ttriangles: triangles,\n\ttriangle: triangle,\n\t\"line loop\": 2,\n\t\"line strip\": 3,\n\t\"triangle strip\": 5,\n\t\"triangle fan\": 6\n};\n\nvar GL_POINTS = 0\nvar GL_LINES = 1\nvar GL_TRIANGLES = 4\n\nvar GL_BYTE$2 = 5120\nvar GL_UNSIGNED_BYTE$4 = 5121\nvar GL_SHORT$2 = 5122\nvar GL_UNSIGNED_SHORT$2 = 5123\nvar GL_INT$2 = 5124\nvar GL_UNSIGNED_INT$2 = 5125\n\nvar GL_ELEMENT_ARRAY_BUFFER = 34963\n\nvar GL_STREAM_DRAW$1 = 0x88E0\nvar GL_STATIC_DRAW$1 = 0x88E4\n\nfunction wrapElementsState (gl, extensions, bufferState, stats) {\n var elementSet = {}\n var elementCount = 0\n\n var elementTypes = {\n 'uint8': GL_UNSIGNED_BYTE$4,\n 'uint16': GL_UNSIGNED_SHORT$2\n }\n\n if (extensions.oes_element_index_uint) {\n elementTypes.uint32 = GL_UNSIGNED_INT$2\n }\n\n function REGLElementBuffer (buffer) {\n this.id = elementCount++\n elementSet[this.id] = this\n this.buffer = buffer\n this.primType = GL_TRIANGLES\n this.vertCount = 0\n this.type = 0\n }\n\n REGLElementBuffer.prototype.bind = function () {\n this.buffer.bind()\n }\n\n var bufferPool = []\n\n function createElementStream (data) {\n var result = bufferPool.pop()\n if (!result) {\n result = new REGLElementBuffer(bufferState.create(\n null,\n GL_ELEMENT_ARRAY_BUFFER,\n true,\n false)._buffer)\n }\n initElements(result, data, GL_STREAM_DRAW$1, -1, -1, 0, 0)\n return result\n }\n\n function destroyElementStream (elements) {\n bufferPool.push(elements)\n }\n\n function initElements (\n elements,\n data,\n usage,\n prim,\n count,\n byteLength,\n type) {\n elements.buffer.bind()\n var dtype\n if (data) {\n var predictedType = type\n if (!type && (\n !isTypedArray(data) ||\n (isNDArrayLike(data) && !isTypedArray(data.data)))) {\n predictedType = extensions.oes_element_index_uint\n ? GL_UNSIGNED_INT$2\n : GL_UNSIGNED_SHORT$2\n }\n bufferState._initBuffer(\n elements.buffer,\n data,\n usage,\n predictedType,\n 3)\n } else {\n gl.bufferData(GL_ELEMENT_ARRAY_BUFFER, byteLength, usage)\n elements.buffer.dtype = dtype || GL_UNSIGNED_BYTE$4\n elements.buffer.usage = usage\n elements.buffer.dimension = 3\n elements.buffer.byteLength = byteLength\n }\n\n dtype = type\n if (!type) {\n switch (elements.buffer.dtype) {\n case GL_UNSIGNED_BYTE$4:\n case GL_BYTE$2:\n dtype = GL_UNSIGNED_BYTE$4\n break\n\n case GL_UNSIGNED_SHORT$2:\n case GL_SHORT$2:\n dtype = GL_UNSIGNED_SHORT$2\n break\n\n case GL_UNSIGNED_INT$2:\n case GL_INT$2:\n dtype = GL_UNSIGNED_INT$2\n break\n\n default:\n check$1.raise('unsupported type for element array')\n }\n elements.buffer.dtype = dtype\n }\n elements.type = dtype\n\n // Check oes_element_index_uint extension\n check$1(\n dtype !== GL_UNSIGNED_INT$2 ||\n !!extensions.oes_element_index_uint,\n '32 bit element buffers not supported, enable oes_element_index_uint first')\n\n // try to guess default primitive type and arguments\n var vertCount = count\n if (vertCount < 0) {\n vertCount = elements.buffer.byteLength\n if (dtype === GL_UNSIGNED_SHORT$2) {\n vertCount >>= 1\n } else if (dtype === GL_UNSIGNED_INT$2) {\n vertCount >>= 2\n }\n }\n elements.vertCount = vertCount\n\n // try to guess primitive type from cell dimension\n var primType = prim\n if (prim < 0) {\n primType = GL_TRIANGLES\n var dimension = elements.buffer.dimension\n if (dimension === 1) primType = GL_POINTS\n if (dimension === 2) primType = GL_LINES\n if (dimension === 3) primType = GL_TRIANGLES\n }\n elements.primType = primType\n }\n\n function destroyElements (elements) {\n stats.elementsCount--\n\n check$1(elements.buffer !== null, 'must not double destroy elements')\n delete elementSet[elements.id]\n elements.buffer.destroy()\n elements.buffer = null\n }\n\n function createElements (options, persistent) {\n var buffer = bufferState.create(null, GL_ELEMENT_ARRAY_BUFFER, true)\n var elements = new REGLElementBuffer(buffer._buffer)\n stats.elementsCount++\n\n function reglElements (options) {\n if (!options) {\n buffer()\n elements.primType = GL_TRIANGLES\n elements.vertCount = 0\n elements.type = GL_UNSIGNED_BYTE$4\n } else if (typeof options === 'number') {\n buffer(options)\n elements.primType = GL_TRIANGLES\n elements.vertCount = options | 0\n elements.type = GL_UNSIGNED_BYTE$4\n } else {\n var data = null\n var usage = GL_STATIC_DRAW$1\n var primType = -1\n var vertCount = -1\n var byteLength = 0\n var dtype = 0\n if (Array.isArray(options) ||\n isTypedArray(options) ||\n isNDArrayLike(options)) {\n data = options\n } else {\n check$1.type(options, 'object', 'invalid arguments for elements')\n if ('data' in options) {\n data = options.data\n check$1(\n Array.isArray(data) ||\n isTypedArray(data) ||\n isNDArrayLike(data),\n 'invalid data for element buffer')\n }\n if ('usage' in options) {\n check$1.parameter(\n options.usage,\n usageTypes,\n 'invalid element buffer usage')\n usage = usageTypes[options.usage]\n }\n if ('primitive' in options) {\n check$1.parameter(\n options.primitive,\n primTypes,\n 'invalid element buffer primitive')\n primType = primTypes[options.primitive]\n }\n if ('count' in options) {\n check$1(\n typeof options.count === 'number' && options.count >= 0,\n 'invalid vertex count for elements')\n vertCount = options.count | 0\n }\n if ('type' in options) {\n check$1.parameter(\n options.type,\n elementTypes,\n 'invalid buffer type')\n dtype = elementTypes[options.type]\n }\n if ('length' in options) {\n byteLength = options.length | 0\n } else {\n byteLength = vertCount\n if (dtype === GL_UNSIGNED_SHORT$2 || dtype === GL_SHORT$2) {\n byteLength *= 2\n } else if (dtype === GL_UNSIGNED_INT$2 || dtype === GL_INT$2) {\n byteLength *= 4\n }\n }\n }\n initElements(\n elements,\n data,\n usage,\n primType,\n vertCount,\n byteLength,\n dtype)\n }\n\n return reglElements\n }\n\n reglElements(options)\n\n reglElements._reglType = 'elements'\n reglElements._elements = elements\n reglElements.subdata = function (data, offset) {\n buffer.subdata(data, offset)\n return reglElements\n }\n reglElements.destroy = function () {\n destroyElements(elements)\n }\n\n return reglElements\n }\n\n return {\n create: createElements,\n createStream: createElementStream,\n destroyStream: destroyElementStream,\n getElements: function (elements) {\n if (typeof elements === 'function' &&\n elements._elements instanceof REGLElementBuffer) {\n return elements._elements\n }\n return null\n },\n clear: function () {\n values(elementSet).forEach(destroyElements)\n }\n }\n}\n\nvar FLOAT = new Float32Array(1)\nvar INT = new Uint32Array(FLOAT.buffer)\n\nvar GL_UNSIGNED_SHORT$4 = 5123\n\nfunction convertToHalfFloat (array) {\n var ushorts = pool.allocType(GL_UNSIGNED_SHORT$4, array.length)\n\n for (var i = 0; i < array.length; ++i) {\n if (isNaN(array[i])) {\n ushorts[i] = 0xffff\n } else if (array[i] === Infinity) {\n ushorts[i] = 0x7c00\n } else if (array[i] === -Infinity) {\n ushorts[i] = 0xfc00\n } else {\n FLOAT[0] = array[i]\n var x = INT[0]\n\n var sgn = (x >>> 31) << 15\n var exp = ((x << 1) >>> 24) - 127\n var frac = (x >> 13) & ((1 << 10) - 1)\n\n if (exp < -24) {\n // round non-representable denormals to 0\n ushorts[i] = sgn\n } else if (exp < -14) {\n // handle denormals\n var s = -14 - exp\n ushorts[i] = sgn + ((frac + (1 << 10)) >> s)\n } else if (exp > 15) {\n // round overflow to +/- Infinity\n ushorts[i] = sgn + 0x7c00\n } else {\n // otherwise convert directly\n ushorts[i] = sgn + ((exp + 15) << 10) + frac\n }\n }\n }\n\n return ushorts\n}\n\nfunction isArrayLike (s) {\n return Array.isArray(s) || isTypedArray(s)\n}\n\nvar isPow2$1 = function (v) {\n return !(v & (v - 1)) && (!!v)\n}\n\nvar GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3\n\nvar GL_TEXTURE_2D$1 = 0x0DE1\nvar GL_TEXTURE_CUBE_MAP$1 = 0x8513\nvar GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 = 0x8515\n\nvar GL_RGBA$1 = 0x1908\nvar GL_ALPHA = 0x1906\nvar GL_RGB = 0x1907\nvar GL_LUMINANCE = 0x1909\nvar GL_LUMINANCE_ALPHA = 0x190A\n\nvar GL_RGBA4 = 0x8056\nvar GL_RGB5_A1 = 0x8057\nvar GL_RGB565 = 0x8D62\n\nvar GL_UNSIGNED_SHORT_4_4_4_4$1 = 0x8033\nvar GL_UNSIGNED_SHORT_5_5_5_1$1 = 0x8034\nvar GL_UNSIGNED_SHORT_5_6_5$1 = 0x8363\nvar GL_UNSIGNED_INT_24_8_WEBGL$1 = 0x84FA\n\nvar GL_DEPTH_COMPONENT = 0x1902\nvar GL_DEPTH_STENCIL = 0x84F9\n\nvar GL_SRGB_EXT = 0x8C40\nvar GL_SRGB_ALPHA_EXT = 0x8C42\n\nvar GL_HALF_FLOAT_OES$1 = 0x8D61\n\nvar GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0\nvar GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1\nvar GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2\nvar GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3\n\nvar GL_COMPRESSED_RGB_ATC_WEBGL = 0x8C92\nvar GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 0x8C93\nvar GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 0x87EE\n\nvar GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00\nvar GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01\nvar GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02\nvar GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03\n\nvar GL_COMPRESSED_RGB_ETC1_WEBGL = 0x8D64\n\nvar GL_UNSIGNED_BYTE$5 = 0x1401\nvar GL_UNSIGNED_SHORT$3 = 0x1403\nvar GL_UNSIGNED_INT$3 = 0x1405\nvar GL_FLOAT$4 = 0x1406\n\nvar GL_TEXTURE_WRAP_S = 0x2802\nvar GL_TEXTURE_WRAP_T = 0x2803\n\nvar GL_REPEAT = 0x2901\nvar GL_CLAMP_TO_EDGE$1 = 0x812F\nvar GL_MIRRORED_REPEAT = 0x8370\n\nvar GL_TEXTURE_MAG_FILTER = 0x2800\nvar GL_TEXTURE_MIN_FILTER = 0x2801\n\nvar GL_NEAREST$1 = 0x2600\nvar GL_LINEAR = 0x2601\nvar GL_NEAREST_MIPMAP_NEAREST$1 = 0x2700\nvar GL_LINEAR_MIPMAP_NEAREST$1 = 0x2701\nvar GL_NEAREST_MIPMAP_LINEAR$1 = 0x2702\nvar GL_LINEAR_MIPMAP_LINEAR$1 = 0x2703\n\nvar GL_GENERATE_MIPMAP_HINT = 0x8192\nvar GL_DONT_CARE = 0x1100\nvar GL_FASTEST = 0x1101\nvar GL_NICEST = 0x1102\n\nvar GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE\n\nvar GL_UNPACK_ALIGNMENT = 0x0CF5\nvar GL_UNPACK_FLIP_Y_WEBGL = 0x9240\nvar GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241\nvar GL_UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243\n\nvar GL_BROWSER_DEFAULT_WEBGL = 0x9244\n\nvar GL_TEXTURE0$1 = 0x84C0\n\nvar MIPMAP_FILTERS = [\n GL_NEAREST_MIPMAP_NEAREST$1,\n GL_NEAREST_MIPMAP_LINEAR$1,\n GL_LINEAR_MIPMAP_NEAREST$1,\n GL_LINEAR_MIPMAP_LINEAR$1\n]\n\nvar CHANNELS_FORMAT = [\n 0,\n GL_LUMINANCE,\n GL_LUMINANCE_ALPHA,\n GL_RGB,\n GL_RGBA$1\n]\n\nvar FORMAT_CHANNELS = {}\nFORMAT_CHANNELS[GL_LUMINANCE] =\nFORMAT_CHANNELS[GL_ALPHA] =\nFORMAT_CHANNELS[GL_DEPTH_COMPONENT] = 1\nFORMAT_CHANNELS[GL_DEPTH_STENCIL] =\nFORMAT_CHANNELS[GL_LUMINANCE_ALPHA] = 2\nFORMAT_CHANNELS[GL_RGB] =\nFORMAT_CHANNELS[GL_SRGB_EXT] = 3\nFORMAT_CHANNELS[GL_RGBA$1] =\nFORMAT_CHANNELS[GL_SRGB_ALPHA_EXT] = 4\n\nfunction objectName (str) {\n return '[object ' + str + ']'\n}\n\nvar CANVAS_CLASS = objectName('HTMLCanvasElement')\nvar OFFSCREENCANVAS_CLASS = objectName('OffscreenCanvas')\nvar CONTEXT2D_CLASS = objectName('CanvasRenderingContext2D')\nvar BITMAP_CLASS = objectName('ImageBitmap')\nvar IMAGE_CLASS = objectName('HTMLImageElement')\nvar VIDEO_CLASS = objectName('HTMLVideoElement')\n\nvar PIXEL_CLASSES = Object.keys(arrayTypes).concat([\n CANVAS_CLASS,\n OFFSCREENCANVAS_CLASS,\n CONTEXT2D_CLASS,\n BITMAP_CLASS,\n IMAGE_CLASS,\n VIDEO_CLASS\n])\n\n// for every texture type, store\n// the size in bytes.\nvar TYPE_SIZES = []\nTYPE_SIZES[GL_UNSIGNED_BYTE$5] = 1\nTYPE_SIZES[GL_FLOAT$4] = 4\nTYPE_SIZES[GL_HALF_FLOAT_OES$1] = 2\n\nTYPE_SIZES[GL_UNSIGNED_SHORT$3] = 2\nTYPE_SIZES[GL_UNSIGNED_INT$3] = 4\n\nvar FORMAT_SIZES_SPECIAL = []\nFORMAT_SIZES_SPECIAL[GL_RGBA4] = 2\nFORMAT_SIZES_SPECIAL[GL_RGB5_A1] = 2\nFORMAT_SIZES_SPECIAL[GL_RGB565] = 2\nFORMAT_SIZES_SPECIAL[GL_DEPTH_STENCIL] = 4\n\nFORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_S3TC_DXT1_EXT] = 0.5\nFORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_S3TC_DXT1_EXT] = 0.5\nFORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_S3TC_DXT3_EXT] = 1\nFORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_S3TC_DXT5_EXT] = 1\n\nFORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_ATC_WEBGL] = 0.5\nFORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL] = 1\nFORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL] = 1\n\nFORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG] = 0.5\nFORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG] = 0.25\nFORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG] = 0.5\nFORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG] = 0.25\n\nFORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_ETC1_WEBGL] = 0.5\n\nfunction isNumericArray (arr) {\n return (\n Array.isArray(arr) &&\n (arr.length === 0 ||\n typeof arr[0] === 'number'))\n}\n\nfunction isRectArray (arr) {\n if (!Array.isArray(arr)) {\n return false\n }\n var width = arr.length\n if (width === 0 || !isArrayLike(arr[0])) {\n return false\n }\n return true\n}\n\nfunction classString (x) {\n return Object.prototype.toString.call(x)\n}\n\nfunction isCanvasElement (object) {\n return classString(object) === CANVAS_CLASS\n}\n\nfunction isOffscreenCanvas (object) {\n return classString(object) === OFFSCREENCANVAS_CLASS\n}\n\nfunction isContext2D (object) {\n return classString(object) === CONTEXT2D_CLASS\n}\n\nfunction isBitmap (object) {\n return classString(object) === BITMAP_CLASS\n}\n\nfunction isImageElement (object) {\n return classString(object) === IMAGE_CLASS\n}\n\nfunction isVideoElement (object) {\n return classString(object) === VIDEO_CLASS\n}\n\nfunction isPixelData (object) {\n if (!object) {\n return false\n }\n var className = classString(object)\n if (PIXEL_CLASSES.indexOf(className) >= 0) {\n return true\n }\n return (\n isNumericArray(object) ||\n isRectArray(object) ||\n isNDArrayLike(object))\n}\n\nfunction typedArrayCode$1 (data) {\n return arrayTypes[Object.prototype.toString.call(data)] | 0\n}\n\nfunction convertData (result, data) {\n var n = data.length\n switch (result.type) {\n case GL_UNSIGNED_BYTE$5:\n case GL_UNSIGNED_SHORT$3:\n case GL_UNSIGNED_INT$3:\n case GL_FLOAT$4:\n var converted = pool.allocType(result.type, n)\n converted.set(data)\n result.data = converted\n break\n\n case GL_HALF_FLOAT_OES$1:\n result.data = convertToHalfFloat(data)\n break\n\n default:\n check$1.raise('unsupported texture type, must specify a typed array')\n }\n}\n\nfunction preConvert (image, n) {\n return pool.allocType(\n image.type === GL_HALF_FLOAT_OES$1\n ? GL_FLOAT$4\n : image.type, n)\n}\n\nfunction postConvert (image, data) {\n if (image.type === GL_HALF_FLOAT_OES$1) {\n image.data = convertToHalfFloat(data)\n pool.freeType(data)\n } else {\n image.data = data\n }\n}\n\nfunction transposeData (image, array, strideX, strideY, strideC, offset) {\n var w = image.width\n var h = image.height\n var c = image.channels\n var n = w * h * c\n var data = preConvert(image, n)\n\n var p = 0\n for (var i = 0; i < h; ++i) {\n for (var j = 0; j < w; ++j) {\n for (var k = 0; k < c; ++k) {\n data[p++] = array[strideX * j + strideY * i + strideC * k + offset]\n }\n }\n }\n\n postConvert(image, data)\n}\n\nfunction getTextureSize (format, type, width, height, isMipmap, isCube) {\n var s\n if (typeof FORMAT_SIZES_SPECIAL[format] !== 'undefined') {\n // we have a special array for dealing with weird color formats such as RGB5A1\n s = FORMAT_SIZES_SPECIAL[format]\n } else {\n s = FORMAT_CHANNELS[format] * TYPE_SIZES[type]\n }\n\n if (isCube) {\n s *= 6\n }\n\n if (isMipmap) {\n // compute the total size of all the mipmaps.\n var total = 0\n\n var w = width\n while (w >= 1) {\n // we can only use mipmaps on a square image,\n // so we can simply use the width and ignore the height:\n total += s * w * w\n w /= 2\n }\n return total\n } else {\n return s * width * height\n }\n}\n\nfunction createTextureSet (\n gl, extensions, limits, reglPoll, contextState, stats, config) {\n // -------------------------------------------------------\n // Initialize constants and parameter tables here\n // -------------------------------------------------------\n var mipmapHint = {\n \"don't care\": GL_DONT_CARE,\n 'dont care': GL_DONT_CARE,\n 'nice': GL_NICEST,\n 'fast': GL_FASTEST\n }\n\n var wrapModes = {\n 'repeat': GL_REPEAT,\n 'clamp': GL_CLAMP_TO_EDGE$1,\n 'mirror': GL_MIRRORED_REPEAT\n }\n\n var magFilters = {\n 'nearest': GL_NEAREST$1,\n 'linear': GL_LINEAR\n }\n\n var minFilters = extend({\n 'mipmap': GL_LINEAR_MIPMAP_LINEAR$1,\n 'nearest mipmap nearest': GL_NEAREST_MIPMAP_NEAREST$1,\n 'linear mipmap nearest': GL_LINEAR_MIPMAP_NEAREST$1,\n 'nearest mipmap linear': GL_NEAREST_MIPMAP_LINEAR$1,\n 'linear mipmap linear': GL_LINEAR_MIPMAP_LINEAR$1\n }, magFilters)\n\n var colorSpace = {\n 'none': 0,\n 'browser': GL_BROWSER_DEFAULT_WEBGL\n }\n\n var textureTypes = {\n 'uint8': GL_UNSIGNED_BYTE$5,\n 'rgba4': GL_UNSIGNED_SHORT_4_4_4_4$1,\n 'rgb565': GL_UNSIGNED_SHORT_5_6_5$1,\n 'rgb5 a1': GL_UNSIGNED_SHORT_5_5_5_1$1\n }\n\n var textureFormats = {\n 'alpha': GL_ALPHA,\n 'luminance': GL_LUMINANCE,\n 'luminance alpha': GL_LUMINANCE_ALPHA,\n 'rgb': GL_RGB,\n 'rgba': GL_RGBA$1,\n 'rgba4': GL_RGBA4,\n 'rgb5 a1': GL_RGB5_A1,\n 'rgb565': GL_RGB565\n }\n\n var compressedTextureFormats = {}\n\n if (extensions.ext_srgb) {\n textureFormats.srgb = GL_SRGB_EXT\n textureFormats.srgba = GL_SRGB_ALPHA_EXT\n }\n\n if (extensions.oes_texture_float) {\n textureTypes.float32 = textureTypes.float = GL_FLOAT$4\n }\n\n if (extensions.oes_texture_half_float) {\n textureTypes['float16'] = textureTypes['half float'] = GL_HALF_FLOAT_OES$1\n }\n\n if (extensions.webgl_depth_texture) {\n extend(textureFormats, {\n 'depth': GL_DEPTH_COMPONENT,\n 'depth stencil': GL_DEPTH_STENCIL\n })\n\n extend(textureTypes, {\n 'uint16': GL_UNSIGNED_SHORT$3,\n 'uint32': GL_UNSIGNED_INT$3,\n 'depth stencil': GL_UNSIGNED_INT_24_8_WEBGL$1\n })\n }\n\n if (extensions.webgl_compressed_texture_s3tc) {\n extend(compressedTextureFormats, {\n 'rgb s3tc dxt1': GL_COMPRESSED_RGB_S3TC_DXT1_EXT,\n 'rgba s3tc dxt1': GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,\n 'rgba s3tc dxt3': GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,\n 'rgba s3tc dxt5': GL_COMPRESSED_RGBA_S3TC_DXT5_EXT\n })\n }\n\n if (extensions.webgl_compressed_texture_atc) {\n extend(compressedTextureFormats, {\n 'rgb atc': GL_COMPRESSED_RGB_ATC_WEBGL,\n 'rgba atc explicit alpha': GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,\n 'rgba atc interpolated alpha': GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL\n })\n }\n\n if (extensions.webgl_compressed_texture_pvrtc) {\n extend(compressedTextureFormats, {\n 'rgb pvrtc 4bppv1': GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG,\n 'rgb pvrtc 2bppv1': GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG,\n 'rgba pvrtc 4bppv1': GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,\n 'rgba pvrtc 2bppv1': GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG\n })\n }\n\n if (extensions.webgl_compressed_texture_etc1) {\n compressedTextureFormats['rgb etc1'] = GL_COMPRESSED_RGB_ETC1_WEBGL\n }\n\n // Copy over all texture formats\n var supportedCompressedFormats = Array.prototype.slice.call(\n gl.getParameter(GL_COMPRESSED_TEXTURE_FORMATS))\n Object.keys(compressedTextureFormats).forEach(function (name) {\n var format = compressedTextureFormats[name]\n if (supportedCompressedFormats.indexOf(format) >= 0) {\n textureFormats[name] = format\n }\n })\n\n var supportedFormats = Object.keys(textureFormats)\n limits.textureFormats = supportedFormats\n\n // associate with every format string its\n // corresponding GL-value.\n var textureFormatsInvert = []\n Object.keys(textureFormats).forEach(function (key) {\n var val = textureFormats[key]\n textureFormatsInvert[val] = key\n })\n\n // associate with every type string its\n // corresponding GL-value.\n var textureTypesInvert = []\n Object.keys(textureTypes).forEach(function (key) {\n var val = textureTypes[key]\n textureTypesInvert[val] = key\n })\n\n var magFiltersInvert = []\n Object.keys(magFilters).forEach(function (key) {\n var val = magFilters[key]\n magFiltersInvert[val] = key\n })\n\n var minFiltersInvert = []\n Object.keys(minFilters).forEach(function (key) {\n var val = minFilters[key]\n minFiltersInvert[val] = key\n })\n\n var wrapModesInvert = []\n Object.keys(wrapModes).forEach(function (key) {\n var val = wrapModes[key]\n wrapModesInvert[val] = key\n })\n\n // colorFormats[] gives the format (channels) associated to an\n // internalformat\n var colorFormats = supportedFormats.reduce(function (color, key) {\n var glenum = textureFormats[key]\n if (glenum === GL_LUMINANCE ||\n glenum === GL_ALPHA ||\n glenum === GL_LUMINANCE ||\n glenum === GL_LUMINANCE_ALPHA ||\n glenum === GL_DEPTH_COMPONENT ||\n glenum === GL_DEPTH_STENCIL ||\n (extensions.ext_srgb &&\n (glenum === GL_SRGB_EXT ||\n glenum === GL_SRGB_ALPHA_EXT))) {\n color[glenum] = glenum\n } else if (glenum === GL_RGB5_A1 || key.indexOf('rgba') >= 0) {\n color[glenum] = GL_RGBA$1\n } else {\n color[glenum] = GL_RGB\n }\n return color\n }, {})\n\n function TexFlags () {\n // format info\n this.internalformat = GL_RGBA$1\n this.format = GL_RGBA$1\n this.type = GL_UNSIGNED_BYTE$5\n this.compressed = false\n\n // pixel storage\n this.premultiplyAlpha = false\n this.flipY = false\n this.unpackAlignment = 1\n this.colorSpace = GL_BROWSER_DEFAULT_WEBGL\n\n // shape info\n this.width = 0\n this.height = 0\n this.channels = 0\n }\n\n function copyFlags (result, other) {\n result.internalformat = other.internalformat\n result.format = other.format\n result.type = other.type\n result.compressed = other.compressed\n\n result.premultiplyAlpha = other.premultiplyAlpha\n result.flipY = other.flipY\n result.unpackAlignment = other.unpackAlignment\n result.colorSpace = other.colorSpace\n\n result.width = other.width\n result.height = other.height\n result.channels = other.channels\n }\n\n function parseFlags (flags, options) {\n if (typeof options !== 'object' || !options) {\n return\n }\n\n if ('premultiplyAlpha' in options) {\n check$1.type(options.premultiplyAlpha, 'boolean',\n 'invalid premultiplyAlpha')\n flags.premultiplyAlpha = options.premultiplyAlpha\n }\n\n if ('flipY' in options) {\n check$1.type(options.flipY, 'boolean',\n 'invalid texture flip')\n flags.flipY = options.flipY\n }\n\n if ('alignment' in options) {\n check$1.oneOf(options.alignment, [1, 2, 4, 8],\n 'invalid texture unpack alignment')\n flags.unpackAlignment = options.alignment\n }\n\n if ('colorSpace' in options) {\n check$1.parameter(options.colorSpace, colorSpace,\n 'invalid colorSpace')\n flags.colorSpace = colorSpace[options.colorSpace]\n }\n\n if ('type' in options) {\n var type = options.type\n check$1(extensions.oes_texture_float ||\n !(type === 'float' || type === 'float32'),\n 'you must enable the OES_texture_float extension in order to use floating point textures.')\n check$1(extensions.oes_texture_half_float ||\n !(type === 'half float' || type === 'float16'),\n 'you must enable the OES_texture_half_float extension in order to use 16-bit floating point textures.')\n check$1(extensions.webgl_depth_texture ||\n !(type === 'uint16' || type === 'uint32' || type === 'depth stencil'),\n 'you must enable the WEBGL_depth_texture extension in order to use depth/stencil textures.')\n check$1.parameter(type, textureTypes,\n 'invalid texture type')\n flags.type = textureTypes[type]\n }\n\n var w = flags.width\n var h = flags.height\n var c = flags.channels\n var hasChannels = false\n if ('shape' in options) {\n check$1(Array.isArray(options.shape) && options.shape.length >= 2,\n 'shape must be an array')\n w = options.shape[0]\n h = options.shape[1]\n if (options.shape.length === 3) {\n c = options.shape[2]\n check$1(c > 0 && c <= 4, 'invalid number of channels')\n hasChannels = true\n }\n check$1(w >= 0 && w <= limits.maxTextureSize, 'invalid width')\n check$1(h >= 0 && h <= limits.maxTextureSize, 'invalid height')\n } else {\n if ('radius' in options) {\n w = h = options.radius\n check$1(w >= 0 && w <= limits.maxTextureSize, 'invalid radius')\n }\n if ('width' in options) {\n w = options.width\n check$1(w >= 0 && w <= limits.maxTextureSize, 'invalid width')\n }\n if ('height' in options) {\n h = options.height\n check$1(h >= 0 && h <= limits.maxTextureSize, 'invalid height')\n }\n if ('channels' in options) {\n c = options.channels\n check$1(c > 0 && c <= 4, 'invalid number of channels')\n hasChannels = true\n }\n }\n flags.width = w | 0\n flags.height = h | 0\n flags.channels = c | 0\n\n var hasFormat = false\n if ('format' in options) {\n var formatStr = options.format\n check$1(extensions.webgl_depth_texture ||\n !(formatStr === 'depth' || formatStr === 'depth stencil'),\n 'you must enable the WEBGL_depth_texture extension in order to use depth/stencil textures.')\n check$1.parameter(formatStr, textureFormats,\n 'invalid texture format')\n var internalformat = flags.internalformat = textureFormats[formatStr]\n flags.format = colorFormats[internalformat]\n if (formatStr in textureTypes) {\n if (!('type' in options)) {\n flags.type = textureTypes[formatStr]\n }\n }\n if (formatStr in compressedTextureFormats) {\n flags.compressed = true\n }\n hasFormat = true\n }\n\n // Reconcile channels and format\n if (!hasChannels && hasFormat) {\n flags.channels = FORMAT_CHANNELS[flags.format]\n } else if (hasChannels && !hasFormat) {\n if (flags.channels !== CHANNELS_FORMAT[flags.format]) {\n flags.format = flags.internalformat = CHANNELS_FORMAT[flags.channels]\n }\n } else if (hasFormat && hasChannels) {\n check$1(\n flags.channels === FORMAT_CHANNELS[flags.format],\n 'number of channels inconsistent with specified format')\n }\n }\n\n function setFlags (flags) {\n gl.pixelStorei(GL_UNPACK_FLIP_Y_WEBGL, flags.flipY)\n gl.pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL, flags.premultiplyAlpha)\n gl.pixelStorei(GL_UNPACK_COLORSPACE_CONVERSION_WEBGL, flags.colorSpace)\n gl.pixelStorei(GL_UNPACK_ALIGNMENT, flags.unpackAlignment)\n }\n\n // -------------------------------------------------------\n // Tex image data\n // -------------------------------------------------------\n function TexImage () {\n TexFlags.call(this)\n\n this.xOffset = 0\n this.yOffset = 0\n\n // data\n this.data = null\n this.needsFree = false\n\n // html element\n this.element = null\n\n // copyTexImage info\n this.needsCopy = false\n }\n\n function parseImage (image, options) {\n var data = null\n if (isPixelData(options)) {\n data = options\n } else if (options) {\n check$1.type(options, 'object', 'invalid pixel data type')\n parseFlags(image, options)\n if ('x' in options) {\n image.xOffset = options.x | 0\n }\n if ('y' in options) {\n image.yOffset = options.y | 0\n }\n if (isPixelData(options.data)) {\n data = options.data\n }\n }\n\n check$1(\n !image.compressed ||\n data instanceof Uint8Array,\n 'compressed texture data must be stored in a uint8array')\n\n if (options.copy) {\n check$1(!data, 'can not specify copy and data field for the same texture')\n var viewW = contextState.viewportWidth\n var viewH = contextState.viewportHeight\n image.width = image.width || (viewW - image.xOffset)\n image.height = image.height || (viewH - image.yOffset)\n image.needsCopy = true\n check$1(image.xOffset >= 0 && image.xOffset < viewW &&\n image.yOffset >= 0 && image.yOffset < viewH &&\n image.width > 0 && image.width <= viewW &&\n image.height > 0 && image.height <= viewH,\n 'copy texture read out of bounds')\n } else if (!data) {\n image.width = image.width || 1\n image.height = image.height || 1\n image.channels = image.channels || 4\n } else if (isTypedArray(data)) {\n image.channels = image.channels || 4\n image.data = data\n if (!('type' in options) && image.type === GL_UNSIGNED_BYTE$5) {\n image.type = typedArrayCode$1(data)\n }\n } else if (isNumericArray(data)) {\n image.channels = image.channels || 4\n convertData(image, data)\n image.alignment = 1\n image.needsFree = true\n } else if (isNDArrayLike(data)) {\n var array = data.data\n if (!Array.isArray(array) && image.type === GL_UNSIGNED_BYTE$5) {\n image.type = typedArrayCode$1(array)\n }\n var shape = data.shape\n var stride = data.stride\n var shapeX, shapeY, shapeC, strideX, strideY, strideC\n if (shape.length === 3) {\n shapeC = shape[2]\n strideC = stride[2]\n } else {\n check$1(shape.length === 2, 'invalid ndarray pixel data, must be 2 or 3D')\n shapeC = 1\n strideC = 1\n }\n shapeX = shape[0]\n shapeY = shape[1]\n strideX = stride[0]\n strideY = stride[1]\n image.alignment = 1\n image.width = shapeX\n image.height = shapeY\n image.channels = shapeC\n image.format = image.internalformat = CHANNELS_FORMAT[shapeC]\n image.needsFree = true\n transposeData(image, array, strideX, strideY, strideC, data.offset)\n } else if (isCanvasElement(data) || isOffscreenCanvas(data) || isContext2D(data)) {\n if (isCanvasElement(data) || isOffscreenCanvas(data)) {\n image.element = data\n } else {\n image.element = data.canvas\n }\n image.width = image.element.width\n image.height = image.element.height\n image.channels = 4\n } else if (isBitmap(data)) {\n image.element = data\n image.width = data.width\n image.height = data.height\n image.channels = 4\n } else if (isImageElement(data)) {\n image.element = data\n image.width = data.naturalWidth\n image.height = data.naturalHeight\n image.channels = 4\n } else if (isVideoElement(data)) {\n image.element = data\n image.width = data.videoWidth\n image.height = data.videoHeight\n image.channels = 4\n } else if (isRectArray(data)) {\n var w = image.width || data[0].length\n var h = image.height || data.length\n var c = image.channels\n if (isArrayLike(data[0][0])) {\n c = c || data[0][0].length\n } else {\n c = c || 1\n }\n var arrayShape = flattenUtils.shape(data)\n var n = 1\n for (var dd = 0; dd < arrayShape.length; ++dd) {\n n *= arrayShape[dd]\n }\n var allocData = preConvert(image, n)\n flattenUtils.flatten(data, arrayShape, '', allocData)\n postConvert(image, allocData)\n image.alignment = 1\n image.width = w\n image.height = h\n image.channels = c\n image.format = image.internalformat = CHANNELS_FORMAT[c]\n image.needsFree = true\n }\n\n if (image.type === GL_FLOAT$4) {\n check$1(limits.extensions.indexOf('oes_texture_float') >= 0,\n 'oes_texture_float extension not enabled')\n } else if (image.type === GL_HALF_FLOAT_OES$1) {\n check$1(limits.extensions.indexOf('oes_texture_half_float') >= 0,\n 'oes_texture_half_float extension not enabled')\n }\n\n // do compressed texture validation here.\n }\n\n function setImage (info, target, miplevel) {\n var element = info.element\n var data = info.data\n var internalformat = info.internalformat\n var format = info.format\n var type = info.type\n var width = info.width\n var height = info.height\n\n setFlags(info)\n\n if (element) {\n gl.texImage2D(target, miplevel, format, format, type, element)\n } else if (info.compressed) {\n gl.compressedTexImage2D(target, miplevel, internalformat, width, height, 0, data)\n } else if (info.needsCopy) {\n reglPoll()\n gl.copyTexImage2D(\n target, miplevel, format, info.xOffset, info.yOffset, width, height, 0)\n } else {\n gl.texImage2D(target, miplevel, format, width, height, 0, format, type, data || null)\n }\n }\n\n function setSubImage (info, target, x, y, miplevel) {\n var element = info.element\n var data = info.data\n var internalformat = info.internalformat\n var format = info.format\n var type = info.type\n var width = info.width\n var height = info.height\n\n setFlags(info)\n\n if (element) {\n gl.texSubImage2D(\n target, miplevel, x, y, format, type, element)\n } else if (info.compressed) {\n gl.compressedTexSubImage2D(\n target, miplevel, x, y, internalformat, width, height, data)\n } else if (info.needsCopy) {\n reglPoll()\n gl.copyTexSubImage2D(\n target, miplevel, x, y, info.xOffset, info.yOffset, width, height)\n } else {\n gl.texSubImage2D(\n target, miplevel, x, y, width, height, format, type, data)\n }\n }\n\n // texImage pool\n var imagePool = []\n\n function allocImage () {\n return imagePool.pop() || new TexImage()\n }\n\n function freeImage (image) {\n if (image.needsFree) {\n pool.freeType(image.data)\n }\n TexImage.call(image)\n imagePool.push(image)\n }\n\n // -------------------------------------------------------\n // Mip map\n // -------------------------------------------------------\n function MipMap () {\n TexFlags.call(this)\n\n this.genMipmaps = false\n this.mipmapHint = GL_DONT_CARE\n this.mipmask = 0\n this.images = Array(16)\n }\n\n function parseMipMapFromShape (mipmap, width, height) {\n var img = mipmap.images[0] = allocImage()\n mipmap.mipmask = 1\n img.width = mipmap.width = width\n img.height = mipmap.height = height\n img.channels = mipmap.channels = 4\n }\n\n function parseMipMapFromObject (mipmap, options) {\n var imgData = null\n if (isPixelData(options)) {\n imgData = mipmap.images[0] = allocImage()\n copyFlags(imgData, mipmap)\n parseImage(imgData, options)\n mipmap.mipmask = 1\n } else {\n parseFlags(mipmap, options)\n if (Array.isArray(options.mipmap)) {\n var mipData = options.mipmap\n for (var i = 0; i < mipData.length; ++i) {\n imgData = mipmap.images[i] = allocImage()\n copyFlags(imgData, mipmap)\n imgData.width >>= i\n imgData.height >>= i\n parseImage(imgData, mipData[i])\n mipmap.mipmask |= (1 << i)\n }\n } else {\n imgData = mipmap.images[0] = allocImage()\n copyFlags(imgData, mipmap)\n parseImage(imgData, options)\n mipmap.mipmask = 1\n }\n }\n copyFlags(mipmap, mipmap.images[0])\n\n // For textures of the compressed format WEBGL_compressed_texture_s3tc\n // we must have that\n //\n // \"When level equals zero width and height must be a multiple of 4.\n // When level is greater than 0 width and height must be 0, 1, 2 or a multiple of 4. \"\n //\n // but we do not yet support having multiple mipmap levels for compressed textures,\n // so we only test for level zero.\n\n if (\n mipmap.compressed &&\n (\n mipmap.internalformat === GL_COMPRESSED_RGB_S3TC_DXT1_EXT ||\n mipmap.internalformat === GL_COMPRESSED_RGBA_S3TC_DXT1_EXT ||\n mipmap.internalformat === GL_COMPRESSED_RGBA_S3TC_DXT3_EXT ||\n mipmap.internalformat === GL_COMPRESSED_RGBA_S3TC_DXT5_EXT\n )\n ) {\n check$1(mipmap.width % 4 === 0 && mipmap.height % 4 === 0,\n 'for compressed texture formats, mipmap level 0 must have width and height that are a multiple of 4')\n }\n }\n\n function setMipMap (mipmap, target) {\n var images = mipmap.images\n for (var i = 0; i < images.length; ++i) {\n if (!images[i]) {\n return\n }\n setImage(images[i], target, i)\n }\n }\n\n var mipPool = []\n\n function allocMipMap () {\n var result = mipPool.pop() || new MipMap()\n TexFlags.call(result)\n result.mipmask = 0\n for (var i = 0; i < 16; ++i) {\n result.images[i] = null\n }\n return result\n }\n\n function freeMipMap (mipmap) {\n var images = mipmap.images\n for (var i = 0; i < images.length; ++i) {\n if (images[i]) {\n freeImage(images[i])\n }\n images[i] = null\n }\n mipPool.push(mipmap)\n }\n\n // -------------------------------------------------------\n // Tex info\n // -------------------------------------------------------\n function TexInfo () {\n this.minFilter = GL_NEAREST$1\n this.magFilter = GL_NEAREST$1\n\n this.wrapS = GL_CLAMP_TO_EDGE$1\n this.wrapT = GL_CLAMP_TO_EDGE$1\n\n this.anisotropic = 1\n\n this.genMipmaps = false\n this.mipmapHint = GL_DONT_CARE\n }\n\n function parseTexInfo (info, options) {\n if ('min' in options) {\n var minFilter = options.min\n check$1.parameter(minFilter, minFilters)\n info.minFilter = minFilters[minFilter]\n if (MIPMAP_FILTERS.indexOf(info.minFilter) >= 0 && !('faces' in options)) {\n info.genMipmaps = true\n }\n }\n\n if ('mag' in options) {\n var magFilter = options.mag\n check$1.parameter(magFilter, magFilters)\n info.magFilter = magFilters[magFilter]\n }\n\n var wrapS = info.wrapS\n var wrapT = info.wrapT\n if ('wrap' in options) {\n var wrap = options.wrap\n if (typeof wrap === 'string') {\n check$1.parameter(wrap, wrapModes)\n wrapS = wrapT = wrapModes[wrap]\n } else if (Array.isArray(wrap)) {\n check$1.parameter(wrap[0], wrapModes)\n check$1.parameter(wrap[1], wrapModes)\n wrapS = wrapModes[wrap[0]]\n wrapT = wrapModes[wrap[1]]\n }\n } else {\n if ('wrapS' in options) {\n var optWrapS = options.wrapS\n check$1.parameter(optWrapS, wrapModes)\n wrapS = wrapModes[optWrapS]\n }\n if ('wrapT' in options) {\n var optWrapT = options.wrapT\n check$1.parameter(optWrapT, wrapModes)\n wrapT = wrapModes[optWrapT]\n }\n }\n info.wrapS = wrapS\n info.wrapT = wrapT\n\n if ('anisotropic' in options) {\n var anisotropic = options.anisotropic\n check$1(typeof anisotropic === 'number' &&\n anisotropic >= 1 && anisotropic <= limits.maxAnisotropic,\n 'aniso samples must be between 1 and ')\n info.anisotropic = options.anisotropic\n }\n\n if ('mipmap' in options) {\n var hasMipMap = false\n switch (typeof options.mipmap) {\n case 'string':\n check$1.parameter(options.mipmap, mipmapHint,\n 'invalid mipmap hint')\n info.mipmapHint = mipmapHint[options.mipmap]\n info.genMipmaps = true\n hasMipMap = true\n break\n\n case 'boolean':\n hasMipMap = info.genMipmaps = options.mipmap\n break\n\n case 'object':\n check$1(Array.isArray(options.mipmap), 'invalid mipmap type')\n info.genMipmaps = false\n hasMipMap = true\n break\n\n default:\n check$1.raise('invalid mipmap type')\n }\n if (hasMipMap && !('min' in options)) {\n info.minFilter = GL_NEAREST_MIPMAP_NEAREST$1\n }\n }\n }\n\n function setTexInfo (info, target) {\n gl.texParameteri(target, GL_TEXTURE_MIN_FILTER, info.minFilter)\n gl.texParameteri(target, GL_TEXTURE_MAG_FILTER, info.magFilter)\n gl.texParameteri(target, GL_TEXTURE_WRAP_S, info.wrapS)\n gl.texParameteri(target, GL_TEXTURE_WRAP_T, info.wrapT)\n if (extensions.ext_texture_filter_anisotropic) {\n gl.texParameteri(target, GL_TEXTURE_MAX_ANISOTROPY_EXT, info.anisotropic)\n }\n if (info.genMipmaps) {\n gl.hint(GL_GENERATE_MIPMAP_HINT, info.mipmapHint)\n gl.generateMipmap(target)\n }\n }\n\n // -------------------------------------------------------\n // Full texture object\n // -------------------------------------------------------\n var textureCount = 0\n var textureSet = {}\n var numTexUnits = limits.maxTextureUnits\n var textureUnits = Array(numTexUnits).map(function () {\n return null\n })\n\n function REGLTexture (target) {\n TexFlags.call(this)\n this.mipmask = 0\n this.internalformat = GL_RGBA$1\n\n this.id = textureCount++\n\n this.refCount = 1\n\n this.target = target\n this.texture = gl.createTexture()\n\n this.unit = -1\n this.bindCount = 0\n\n this.texInfo = new TexInfo()\n\n if (config.profile) {\n this.stats = { size: 0 }\n }\n }\n\n function tempBind (texture) {\n gl.activeTexture(GL_TEXTURE0$1)\n gl.bindTexture(texture.target, texture.texture)\n }\n\n function tempRestore () {\n var prev = textureUnits[0]\n if (prev) {\n gl.bindTexture(prev.target, prev.texture)\n } else {\n gl.bindTexture(GL_TEXTURE_2D$1, null)\n }\n }\n\n function destroy (texture) {\n var handle = texture.texture\n check$1(handle, 'must not double destroy texture')\n var unit = texture.unit\n var target = texture.target\n if (unit >= 0) {\n gl.activeTexture(GL_TEXTURE0$1 + unit)\n gl.bindTexture(target, null)\n textureUnits[unit] = null\n }\n gl.deleteTexture(handle)\n texture.texture = null\n texture.params = null\n texture.pixels = null\n texture.refCount = 0\n delete textureSet[texture.id]\n stats.textureCount--\n }\n\n extend(REGLTexture.prototype, {\n bind: function () {\n var texture = this\n texture.bindCount += 1\n var unit = texture.unit\n if (unit < 0) {\n for (var i = 0; i < numTexUnits; ++i) {\n var other = textureUnits[i]\n if (other) {\n if (other.bindCount > 0) {\n continue\n }\n other.unit = -1\n }\n textureUnits[i] = texture\n unit = i\n break\n }\n if (unit >= numTexUnits) {\n check$1.raise('insufficient number of texture units')\n }\n if (config.profile && stats.maxTextureUnits < (unit + 1)) {\n stats.maxTextureUnits = unit + 1 // +1, since the units are zero-based\n }\n texture.unit = unit\n gl.activeTexture(GL_TEXTURE0$1 + unit)\n gl.bindTexture(texture.target, texture.texture)\n }\n return unit\n },\n\n unbind: function () {\n this.bindCount -= 1\n },\n\n decRef: function () {\n if (--this.refCount <= 0) {\n destroy(this)\n }\n }\n })\n\n function createTexture2D (a, b) {\n var texture = new REGLTexture(GL_TEXTURE_2D$1)\n textureSet[texture.id] = texture\n stats.textureCount++\n\n function reglTexture2D (a, b) {\n var texInfo = texture.texInfo\n TexInfo.call(texInfo)\n var mipData = allocMipMap()\n\n if (typeof a === 'number') {\n if (typeof b === 'number') {\n parseMipMapFromShape(mipData, a | 0, b | 0)\n } else {\n parseMipMapFromShape(mipData, a | 0, a | 0)\n }\n } else if (a) {\n check$1.type(a, 'object', 'invalid arguments to regl.texture')\n parseTexInfo(texInfo, a)\n parseMipMapFromObject(mipData, a)\n } else {\n // empty textures get assigned a default shape of 1x1\n parseMipMapFromShape(mipData, 1, 1)\n }\n\n if (texInfo.genMipmaps) {\n mipData.mipmask = (mipData.width << 1) - 1\n }\n texture.mipmask = mipData.mipmask\n\n copyFlags(texture, mipData)\n\n check$1.texture2D(texInfo, mipData, limits)\n texture.internalformat = mipData.internalformat\n\n reglTexture2D.width = mipData.width\n reglTexture2D.height = mipData.height\n\n tempBind(texture)\n setMipMap(mipData, GL_TEXTURE_2D$1)\n setTexInfo(texInfo, GL_TEXTURE_2D$1)\n tempRestore()\n\n freeMipMap(mipData)\n\n if (config.profile) {\n texture.stats.size = getTextureSize(\n texture.internalformat,\n texture.type,\n mipData.width,\n mipData.height,\n texInfo.genMipmaps,\n false)\n }\n reglTexture2D.format = textureFormatsInvert[texture.internalformat]\n reglTexture2D.type = textureTypesInvert[texture.type]\n\n reglTexture2D.mag = magFiltersInvert[texInfo.magFilter]\n reglTexture2D.min = minFiltersInvert[texInfo.minFilter]\n\n reglTexture2D.wrapS = wrapModesInvert[texInfo.wrapS]\n reglTexture2D.wrapT = wrapModesInvert[texInfo.wrapT]\n\n return reglTexture2D\n }\n\n function subimage (image, x_, y_, level_) {\n check$1(!!image, 'must specify image data')\n\n var x = x_ | 0\n var y = y_ | 0\n var level = level_ | 0\n\n var imageData = allocImage()\n copyFlags(imageData, texture)\n imageData.width = 0\n imageData.height = 0\n parseImage(imageData, image)\n imageData.width = imageData.width || ((texture.width >> level) - x)\n imageData.height = imageData.height || ((texture.height >> level) - y)\n\n check$1(\n texture.type === imageData.type &&\n texture.format === imageData.format &&\n texture.internalformat === imageData.internalformat,\n 'incompatible format for texture.subimage')\n check$1(\n x >= 0 && y >= 0 &&\n x + imageData.width <= texture.width &&\n y + imageData.height <= texture.height,\n 'texture.subimage write out of bounds')\n check$1(\n texture.mipmask & (1 << level),\n 'missing mipmap data')\n check$1(\n imageData.data || imageData.element || imageData.needsCopy,\n 'missing image data')\n\n tempBind(texture)\n setSubImage(imageData, GL_TEXTURE_2D$1, x, y, level)\n tempRestore()\n\n freeImage(imageData)\n\n return reglTexture2D\n }\n\n function resize (w_, h_) {\n var w = w_ | 0\n var h = (h_ | 0) || w\n if (w === texture.width && h === texture.height) {\n return reglTexture2D\n }\n\n reglTexture2D.width = texture.width = w\n reglTexture2D.height = texture.height = h\n\n tempBind(texture)\n\n for (var i = 0; texture.mipmask >> i; ++i) {\n var _w = w >> i\n var _h = h >> i\n if (!_w || !_h) break\n gl.texImage2D(\n GL_TEXTURE_2D$1,\n i,\n texture.format,\n _w,\n _h,\n 0,\n texture.format,\n texture.type,\n null)\n }\n tempRestore()\n\n // also, recompute the texture size.\n if (config.profile) {\n texture.stats.size = getTextureSize(\n texture.internalformat,\n texture.type,\n w,\n h,\n false,\n false)\n }\n\n return reglTexture2D\n }\n\n reglTexture2D(a, b)\n\n reglTexture2D.subimage = subimage\n reglTexture2D.resize = resize\n reglTexture2D._reglType = 'texture2d'\n reglTexture2D._texture = texture\n if (config.profile) {\n reglTexture2D.stats = texture.stats\n }\n reglTexture2D.destroy = function () {\n texture.decRef()\n }\n\n return reglTexture2D\n }\n\n function createTextureCube (a0, a1, a2, a3, a4, a5) {\n var texture = new REGLTexture(GL_TEXTURE_CUBE_MAP$1)\n textureSet[texture.id] = texture\n stats.cubeCount++\n\n var faces = new Array(6)\n\n function reglTextureCube (a0, a1, a2, a3, a4, a5) {\n var i\n var texInfo = texture.texInfo\n TexInfo.call(texInfo)\n for (i = 0; i < 6; ++i) {\n faces[i] = allocMipMap()\n }\n\n if (typeof a0 === 'number' || !a0) {\n var s = (a0 | 0) || 1\n for (i = 0; i < 6; ++i) {\n parseMipMapFromShape(faces[i], s, s)\n }\n } else if (typeof a0 === 'object') {\n if (a1) {\n parseMipMapFromObject(faces[0], a0)\n parseMipMapFromObject(faces[1], a1)\n parseMipMapFromObject(faces[2], a2)\n parseMipMapFromObject(faces[3], a3)\n parseMipMapFromObject(faces[4], a4)\n parseMipMapFromObject(faces[5], a5)\n } else {\n parseTexInfo(texInfo, a0)\n parseFlags(texture, a0)\n if ('faces' in a0) {\n var faceInput = a0.faces\n check$1(Array.isArray(faceInput) && faceInput.length === 6,\n 'cube faces must be a length 6 array')\n for (i = 0; i < 6; ++i) {\n check$1(typeof faceInput[i] === 'object' && !!faceInput[i],\n 'invalid input for cube map face')\n copyFlags(faces[i], texture)\n parseMipMapFromObject(faces[i], faceInput[i])\n }\n } else {\n for (i = 0; i < 6; ++i) {\n parseMipMapFromObject(faces[i], a0)\n }\n }\n }\n } else {\n check$1.raise('invalid arguments to cube map')\n }\n\n copyFlags(texture, faces[0])\n check$1.optional(function () {\n if (!limits.npotTextureCube) {\n check$1(isPow2$1(texture.width) && isPow2$1(texture.height), 'your browser does not support non power or two texture dimensions')\n }\n })\n\n if (texInfo.genMipmaps) {\n texture.mipmask = (faces[0].width << 1) - 1\n } else {\n texture.mipmask = faces[0].mipmask\n }\n\n check$1.textureCube(texture, texInfo, faces, limits)\n texture.internalformat = faces[0].internalformat\n\n reglTextureCube.width = faces[0].width\n reglTextureCube.height = faces[0].height\n\n tempBind(texture)\n for (i = 0; i < 6; ++i) {\n setMipMap(faces[i], GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + i)\n }\n setTexInfo(texInfo, GL_TEXTURE_CUBE_MAP$1)\n tempRestore()\n\n if (config.profile) {\n texture.stats.size = getTextureSize(\n texture.internalformat,\n texture.type,\n reglTextureCube.width,\n reglTextureCube.height,\n texInfo.genMipmaps,\n true)\n }\n\n reglTextureCube.format = textureFormatsInvert[texture.internalformat]\n reglTextureCube.type = textureTypesInvert[texture.type]\n\n reglTextureCube.mag = magFiltersInvert[texInfo.magFilter]\n reglTextureCube.min = minFiltersInvert[texInfo.minFilter]\n\n reglTextureCube.wrapS = wrapModesInvert[texInfo.wrapS]\n reglTextureCube.wrapT = wrapModesInvert[texInfo.wrapT]\n\n for (i = 0; i < 6; ++i) {\n freeMipMap(faces[i])\n }\n\n return reglTextureCube\n }\n\n function subimage (face, image, x_, y_, level_) {\n check$1(!!image, 'must specify image data')\n check$1(typeof face === 'number' && face === (face | 0) &&\n face >= 0 && face < 6, 'invalid face')\n\n var x = x_ | 0\n var y = y_ | 0\n var level = level_ | 0\n\n var imageData = allocImage()\n copyFlags(imageData, texture)\n imageData.width = 0\n imageData.height = 0\n parseImage(imageData, image)\n imageData.width = imageData.width || ((texture.width >> level) - x)\n imageData.height = imageData.height || ((texture.height >> level) - y)\n\n check$1(\n texture.type === imageData.type &&\n texture.format === imageData.format &&\n texture.internalformat === imageData.internalformat,\n 'incompatible format for texture.subimage')\n check$1(\n x >= 0 && y >= 0 &&\n x + imageData.width <= texture.width &&\n y + imageData.height <= texture.height,\n 'texture.subimage write out of bounds')\n check$1(\n texture.mipmask & (1 << level),\n 'missing mipmap data')\n check$1(\n imageData.data || imageData.element || imageData.needsCopy,\n 'missing image data')\n\n tempBind(texture)\n setSubImage(imageData, GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + face, x, y, level)\n tempRestore()\n\n freeImage(imageData)\n\n return reglTextureCube\n }\n\n function resize (radius_) {\n var radius = radius_ | 0\n if (radius === texture.width) {\n return\n }\n\n reglTextureCube.width = texture.width = radius\n reglTextureCube.height = texture.height = radius\n\n tempBind(texture)\n for (var i = 0; i < 6; ++i) {\n for (var j = 0; texture.mipmask >> j; ++j) {\n gl.texImage2D(\n GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + i,\n j,\n texture.format,\n radius >> j,\n radius >> j,\n 0,\n texture.format,\n texture.type,\n null)\n }\n }\n tempRestore()\n\n if (config.profile) {\n texture.stats.size = getTextureSize(\n texture.internalformat,\n texture.type,\n reglTextureCube.width,\n reglTextureCube.height,\n false,\n true)\n }\n\n return reglTextureCube\n }\n\n reglTextureCube(a0, a1, a2, a3, a4, a5)\n\n reglTextureCube.subimage = subimage\n reglTextureCube.resize = resize\n reglTextureCube._reglType = 'textureCube'\n reglTextureCube._texture = texture\n if (config.profile) {\n reglTextureCube.stats = texture.stats\n }\n reglTextureCube.destroy = function () {\n texture.decRef()\n }\n\n return reglTextureCube\n }\n\n // Called when regl is destroyed\n function destroyTextures () {\n for (var i = 0; i < numTexUnits; ++i) {\n gl.activeTexture(GL_TEXTURE0$1 + i)\n gl.bindTexture(GL_TEXTURE_2D$1, null)\n textureUnits[i] = null\n }\n values(textureSet).forEach(destroy)\n\n stats.cubeCount = 0\n stats.textureCount = 0\n }\n\n if (config.profile) {\n stats.getTotalTextureSize = function () {\n var total = 0\n Object.keys(textureSet).forEach(function (key) {\n total += textureSet[key].stats.size\n })\n return total\n }\n }\n\n function restoreTextures () {\n for (var i = 0; i < numTexUnits; ++i) {\n var tex = textureUnits[i]\n if (tex) {\n tex.bindCount = 0\n tex.unit = -1\n textureUnits[i] = null\n }\n }\n\n values(textureSet).forEach(function (texture) {\n texture.texture = gl.createTexture()\n gl.bindTexture(texture.target, texture.texture)\n for (var i = 0; i < 32; ++i) {\n if ((texture.mipmask & (1 << i)) === 0) {\n continue\n }\n if (texture.target === GL_TEXTURE_2D$1) {\n gl.texImage2D(GL_TEXTURE_2D$1,\n i,\n texture.internalformat,\n texture.width >> i,\n texture.height >> i,\n 0,\n texture.internalformat,\n texture.type,\n null)\n } else {\n for (var j = 0; j < 6; ++j) {\n gl.texImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + j,\n i,\n texture.internalformat,\n texture.width >> i,\n texture.height >> i,\n 0,\n texture.internalformat,\n texture.type,\n null)\n }\n }\n }\n setTexInfo(texture.texInfo, texture.target)\n })\n }\n\n function refreshTextures () {\n for (var i = 0; i < numTexUnits; ++i) {\n var tex = textureUnits[i]\n if (tex) {\n tex.bindCount = 0\n tex.unit = -1\n textureUnits[i] = null\n }\n gl.activeTexture(GL_TEXTURE0$1 + i)\n gl.bindTexture(GL_TEXTURE_2D$1, null)\n gl.bindTexture(GL_TEXTURE_CUBE_MAP$1, null)\n }\n }\n\n return {\n create2D: createTexture2D,\n createCube: createTextureCube,\n clear: destroyTextures,\n getTexture: function (wrapper) {\n return null\n },\n restore: restoreTextures,\n refresh: refreshTextures\n }\n}\n\nvar GL_RENDERBUFFER = 0x8D41\n\nvar GL_RGBA4$1 = 0x8056\nvar GL_RGB5_A1$1 = 0x8057\nvar GL_RGB565$1 = 0x8D62\nvar GL_DEPTH_COMPONENT16 = 0x81A5\nvar GL_STENCIL_INDEX8 = 0x8D48\nvar GL_DEPTH_STENCIL$1 = 0x84F9\n\nvar GL_SRGB8_ALPHA8_EXT = 0x8C43\n\nvar GL_RGBA32F_EXT = 0x8814\n\nvar GL_RGBA16F_EXT = 0x881A\nvar GL_RGB16F_EXT = 0x881B\n\nvar FORMAT_SIZES = []\n\nFORMAT_SIZES[GL_RGBA4$1] = 2\nFORMAT_SIZES[GL_RGB5_A1$1] = 2\nFORMAT_SIZES[GL_RGB565$1] = 2\n\nFORMAT_SIZES[GL_DEPTH_COMPONENT16] = 2\nFORMAT_SIZES[GL_STENCIL_INDEX8] = 1\nFORMAT_SIZES[GL_DEPTH_STENCIL$1] = 4\n\nFORMAT_SIZES[GL_SRGB8_ALPHA8_EXT] = 4\nFORMAT_SIZES[GL_RGBA32F_EXT] = 16\nFORMAT_SIZES[GL_RGBA16F_EXT] = 8\nFORMAT_SIZES[GL_RGB16F_EXT] = 6\n\nfunction getRenderbufferSize (format, width, height) {\n return FORMAT_SIZES[format] * width * height\n}\n\nvar wrapRenderbuffers = function (gl, extensions, limits, stats, config) {\n var formatTypes = {\n 'rgba4': GL_RGBA4$1,\n 'rgb565': GL_RGB565$1,\n 'rgb5 a1': GL_RGB5_A1$1,\n 'depth': GL_DEPTH_COMPONENT16,\n 'stencil': GL_STENCIL_INDEX8,\n 'depth stencil': GL_DEPTH_STENCIL$1\n }\n\n if (extensions.ext_srgb) {\n formatTypes['srgba'] = GL_SRGB8_ALPHA8_EXT\n }\n\n if (extensions.ext_color_buffer_half_float) {\n formatTypes['rgba16f'] = GL_RGBA16F_EXT\n formatTypes['rgb16f'] = GL_RGB16F_EXT\n }\n\n if (extensions.webgl_color_buffer_float) {\n formatTypes['rgba32f'] = GL_RGBA32F_EXT\n }\n\n var formatTypesInvert = []\n Object.keys(formatTypes).forEach(function (key) {\n var val = formatTypes[key]\n formatTypesInvert[val] = key\n })\n\n var renderbufferCount = 0\n var renderbufferSet = {}\n\n function REGLRenderbuffer (renderbuffer) {\n this.id = renderbufferCount++\n this.refCount = 1\n\n this.renderbuffer = renderbuffer\n\n this.format = GL_RGBA4$1\n this.width = 0\n this.height = 0\n\n if (config.profile) {\n this.stats = { size: 0 }\n }\n }\n\n REGLRenderbuffer.prototype.decRef = function () {\n if (--this.refCount <= 0) {\n destroy(this)\n }\n }\n\n function destroy (rb) {\n var handle = rb.renderbuffer\n check$1(handle, 'must not double destroy renderbuffer')\n gl.bindRenderbuffer(GL_RENDERBUFFER, null)\n gl.deleteRenderbuffer(handle)\n rb.renderbuffer = null\n rb.refCount = 0\n delete renderbufferSet[rb.id]\n stats.renderbufferCount--\n }\n\n function createRenderbuffer (a, b) {\n var renderbuffer = new REGLRenderbuffer(gl.createRenderbuffer())\n renderbufferSet[renderbuffer.id] = renderbuffer\n stats.renderbufferCount++\n\n function reglRenderbuffer (a, b) {\n var w = 0\n var h = 0\n var format = GL_RGBA4$1\n\n if (typeof a === 'object' && a) {\n var options = a\n if ('shape' in options) {\n var shape = options.shape\n check$1(Array.isArray(shape) && shape.length >= 2,\n 'invalid renderbuffer shape')\n w = shape[0] | 0\n h = shape[1] | 0\n } else {\n if ('radius' in options) {\n w = h = options.radius | 0\n }\n if ('width' in options) {\n w = options.width | 0\n }\n if ('height' in options) {\n h = options.height | 0\n }\n }\n if ('format' in options) {\n check$1.parameter(options.format, formatTypes,\n 'invalid renderbuffer format')\n format = formatTypes[options.format]\n }\n } else if (typeof a === 'number') {\n w = a | 0\n if (typeof b === 'number') {\n h = b | 0\n } else {\n h = w\n }\n } else if (!a) {\n w = h = 1\n } else {\n check$1.raise('invalid arguments to renderbuffer constructor')\n }\n\n // check shape\n check$1(\n w > 0 && h > 0 &&\n w <= limits.maxRenderbufferSize && h <= limits.maxRenderbufferSize,\n 'invalid renderbuffer size')\n\n if (w === renderbuffer.width &&\n h === renderbuffer.height &&\n format === renderbuffer.format) {\n return\n }\n\n reglRenderbuffer.width = renderbuffer.width = w\n reglRenderbuffer.height = renderbuffer.height = h\n renderbuffer.format = format\n\n gl.bindRenderbuffer(GL_RENDERBUFFER, renderbuffer.renderbuffer)\n gl.renderbufferStorage(GL_RENDERBUFFER, format, w, h)\n\n check$1(\n gl.getError() === 0,\n 'invalid render buffer format')\n\n if (config.profile) {\n renderbuffer.stats.size = getRenderbufferSize(renderbuffer.format, renderbuffer.width, renderbuffer.height)\n }\n reglRenderbuffer.format = formatTypesInvert[renderbuffer.format]\n\n return reglRenderbuffer\n }\n\n function resize (w_, h_) {\n var w = w_ | 0\n var h = (h_ | 0) || w\n\n if (w === renderbuffer.width && h === renderbuffer.height) {\n return reglRenderbuffer\n }\n\n // check shape\n check$1(\n w > 0 && h > 0 &&\n w <= limits.maxRenderbufferSize && h <= limits.maxRenderbufferSize,\n 'invalid renderbuffer size')\n\n reglRenderbuffer.width = renderbuffer.width = w\n reglRenderbuffer.height = renderbuffer.height = h\n\n gl.bindRenderbuffer(GL_RENDERBUFFER, renderbuffer.renderbuffer)\n gl.renderbufferStorage(GL_RENDERBUFFER, renderbuffer.format, w, h)\n\n check$1(\n gl.getError() === 0,\n 'invalid render buffer format')\n\n // also, recompute size.\n if (config.profile) {\n renderbuffer.stats.size = getRenderbufferSize(\n renderbuffer.format, renderbuffer.width, renderbuffer.height)\n }\n\n return reglRenderbuffer\n }\n\n reglRenderbuffer(a, b)\n\n reglRenderbuffer.resize = resize\n reglRenderbuffer._reglType = 'renderbuffer'\n reglRenderbuffer._renderbuffer = renderbuffer\n if (config.profile) {\n reglRenderbuffer.stats = renderbuffer.stats\n }\n reglRenderbuffer.destroy = function () {\n renderbuffer.decRef()\n }\n\n return reglRenderbuffer\n }\n\n if (config.profile) {\n stats.getTotalRenderbufferSize = function () {\n var total = 0\n Object.keys(renderbufferSet).forEach(function (key) {\n total += renderbufferSet[key].stats.size\n })\n return total\n }\n }\n\n function restoreRenderbuffers () {\n values(renderbufferSet).forEach(function (rb) {\n rb.renderbuffer = gl.createRenderbuffer()\n gl.bindRenderbuffer(GL_RENDERBUFFER, rb.renderbuffer)\n gl.renderbufferStorage(GL_RENDERBUFFER, rb.format, rb.width, rb.height)\n })\n gl.bindRenderbuffer(GL_RENDERBUFFER, null)\n }\n\n return {\n create: createRenderbuffer,\n clear: function () {\n values(renderbufferSet).forEach(destroy)\n },\n restore: restoreRenderbuffers\n }\n}\n\n// We store these constants so that the minifier can inline them\nvar GL_FRAMEBUFFER$1 = 0x8D40\nvar GL_RENDERBUFFER$1 = 0x8D41\n\nvar GL_TEXTURE_2D$2 = 0x0DE1\nvar GL_TEXTURE_CUBE_MAP_POSITIVE_X$2 = 0x8515\n\nvar GL_COLOR_ATTACHMENT0$1 = 0x8CE0\nvar GL_DEPTH_ATTACHMENT = 0x8D00\nvar GL_STENCIL_ATTACHMENT = 0x8D20\nvar GL_DEPTH_STENCIL_ATTACHMENT = 0x821A\n\nvar GL_FRAMEBUFFER_COMPLETE$1 = 0x8CD5\nvar GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6\nvar GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7\nvar GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9\nvar GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD\n\nvar GL_HALF_FLOAT_OES$2 = 0x8D61\nvar GL_UNSIGNED_BYTE$6 = 0x1401\nvar GL_FLOAT$5 = 0x1406\n\nvar GL_RGB$1 = 0x1907\nvar GL_RGBA$2 = 0x1908\n\nvar GL_DEPTH_COMPONENT$1 = 0x1902\n\nvar colorTextureFormatEnums = [\n GL_RGB$1,\n GL_RGBA$2\n]\n\n// for every texture format, store\n// the number of channels\nvar textureFormatChannels = []\ntextureFormatChannels[GL_RGBA$2] = 4\ntextureFormatChannels[GL_RGB$1] = 3\n\n// for every texture type, store\n// the size in bytes.\nvar textureTypeSizes = []\ntextureTypeSizes[GL_UNSIGNED_BYTE$6] = 1\ntextureTypeSizes[GL_FLOAT$5] = 4\ntextureTypeSizes[GL_HALF_FLOAT_OES$2] = 2\n\nvar GL_RGBA4$2 = 0x8056\nvar GL_RGB5_A1$2 = 0x8057\nvar GL_RGB565$2 = 0x8D62\nvar GL_DEPTH_COMPONENT16$1 = 0x81A5\nvar GL_STENCIL_INDEX8$1 = 0x8D48\nvar GL_DEPTH_STENCIL$2 = 0x84F9\n\nvar GL_SRGB8_ALPHA8_EXT$1 = 0x8C43\n\nvar GL_RGBA32F_EXT$1 = 0x8814\n\nvar GL_RGBA16F_EXT$1 = 0x881A\nvar GL_RGB16F_EXT$1 = 0x881B\n\nvar colorRenderbufferFormatEnums = [\n GL_RGBA4$2,\n GL_RGB5_A1$2,\n GL_RGB565$2,\n GL_SRGB8_ALPHA8_EXT$1,\n GL_RGBA16F_EXT$1,\n GL_RGB16F_EXT$1,\n GL_RGBA32F_EXT$1\n]\n\nvar statusCode = {}\nstatusCode[GL_FRAMEBUFFER_COMPLETE$1] = 'complete'\nstatusCode[GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT] = 'incomplete attachment'\nstatusCode[GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS] = 'incomplete dimensions'\nstatusCode[GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT] = 'incomplete, missing attachment'\nstatusCode[GL_FRAMEBUFFER_UNSUPPORTED] = 'unsupported'\n\nfunction wrapFBOState (\n gl,\n extensions,\n limits,\n textureState,\n renderbufferState,\n stats) {\n var framebufferState = {\n cur: null,\n next: null,\n dirty: false,\n setFBO: null\n }\n\n var colorTextureFormats = ['rgba']\n var colorRenderbufferFormats = ['rgba4', 'rgb565', 'rgb5 a1']\n\n if (extensions.ext_srgb) {\n colorRenderbufferFormats.push('srgba')\n }\n\n if (extensions.ext_color_buffer_half_float) {\n colorRenderbufferFormats.push('rgba16f', 'rgb16f')\n }\n\n if (extensions.webgl_color_buffer_float) {\n colorRenderbufferFormats.push('rgba32f')\n }\n\n var colorTypes = ['uint8']\n if (extensions.oes_texture_half_float) {\n colorTypes.push('half float', 'float16')\n }\n if (extensions.oes_texture_float) {\n colorTypes.push('float', 'float32')\n }\n\n function FramebufferAttachment (target, texture, renderbuffer) {\n this.target = target\n this.texture = texture\n this.renderbuffer = renderbuffer\n\n var w = 0\n var h = 0\n if (texture) {\n w = texture.width\n h = texture.height\n } else if (renderbuffer) {\n w = renderbuffer.width\n h = renderbuffer.height\n }\n this.width = w\n this.height = h\n }\n\n function decRef (attachment) {\n if (attachment) {\n if (attachment.texture) {\n attachment.texture._texture.decRef()\n }\n if (attachment.renderbuffer) {\n attachment.renderbuffer._renderbuffer.decRef()\n }\n }\n }\n\n function incRefAndCheckShape (attachment, width, height) {\n if (!attachment) {\n return\n }\n if (attachment.texture) {\n var texture = attachment.texture._texture\n var tw = Math.max(1, texture.width)\n var th = Math.max(1, texture.height)\n check$1(tw === width && th === height,\n 'inconsistent width/height for supplied texture')\n texture.refCount += 1\n } else {\n var renderbuffer = attachment.renderbuffer._renderbuffer\n check$1(\n renderbuffer.width === width && renderbuffer.height === height,\n 'inconsistent width/height for renderbuffer')\n renderbuffer.refCount += 1\n }\n }\n\n function attach (location, attachment) {\n if (attachment) {\n if (attachment.texture) {\n gl.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n location,\n attachment.target,\n attachment.texture._texture.texture,\n 0)\n } else {\n gl.framebufferRenderbuffer(\n GL_FRAMEBUFFER$1,\n location,\n GL_RENDERBUFFER$1,\n attachment.renderbuffer._renderbuffer.renderbuffer)\n }\n }\n }\n\n function parseAttachment (attachment) {\n var target = GL_TEXTURE_2D$2\n var texture = null\n var renderbuffer = null\n\n var data = attachment\n if (typeof attachment === 'object') {\n data = attachment.data\n if ('target' in attachment) {\n target = attachment.target | 0\n }\n }\n\n check$1.type(data, 'function', 'invalid attachment data')\n\n var type = data._reglType\n if (type === 'texture2d') {\n texture = data\n check$1(target === GL_TEXTURE_2D$2)\n } else if (type === 'textureCube') {\n texture = data\n check$1(\n target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X$2 &&\n target < GL_TEXTURE_CUBE_MAP_POSITIVE_X$2 + 6,\n 'invalid cube map target')\n } else if (type === 'renderbuffer') {\n renderbuffer = data\n target = GL_RENDERBUFFER$1\n } else {\n check$1.raise('invalid regl object for attachment')\n }\n\n return new FramebufferAttachment(target, texture, renderbuffer)\n }\n\n function allocAttachment (\n width,\n height,\n isTexture,\n format,\n type) {\n if (isTexture) {\n var texture = textureState.create2D({\n width: width,\n height: height,\n format: format,\n type: type\n })\n texture._texture.refCount = 0\n return new FramebufferAttachment(GL_TEXTURE_2D$2, texture, null)\n } else {\n var rb = renderbufferState.create({\n width: width,\n height: height,\n format: format\n })\n rb._renderbuffer.refCount = 0\n return new FramebufferAttachment(GL_RENDERBUFFER$1, null, rb)\n }\n }\n\n function unwrapAttachment (attachment) {\n return attachment && (attachment.texture || attachment.renderbuffer)\n }\n\n function resizeAttachment (attachment, w, h) {\n if (attachment) {\n if (attachment.texture) {\n attachment.texture.resize(w, h)\n } else if (attachment.renderbuffer) {\n attachment.renderbuffer.resize(w, h)\n }\n attachment.width = w\n attachment.height = h\n }\n }\n\n var framebufferCount = 0\n var framebufferSet = {}\n\n function REGLFramebuffer () {\n this.id = framebufferCount++\n framebufferSet[this.id] = this\n\n this.framebuffer = gl.createFramebuffer()\n this.width = 0\n this.height = 0\n\n this.colorAttachments = []\n this.depthAttachment = null\n this.stencilAttachment = null\n this.depthStencilAttachment = null\n }\n\n function decFBORefs (framebuffer) {\n framebuffer.colorAttachments.forEach(decRef)\n decRef(framebuffer.depthAttachment)\n decRef(framebuffer.stencilAttachment)\n decRef(framebuffer.depthStencilAttachment)\n }\n\n function destroy (framebuffer) {\n var handle = framebuffer.framebuffer\n check$1(handle, 'must not double destroy framebuffer')\n gl.deleteFramebuffer(handle)\n framebuffer.framebuffer = null\n stats.framebufferCount--\n delete framebufferSet[framebuffer.id]\n }\n\n function updateFramebuffer (framebuffer) {\n var i\n\n gl.bindFramebuffer(GL_FRAMEBUFFER$1, framebuffer.framebuffer)\n var colorAttachments = framebuffer.colorAttachments\n for (i = 0; i < colorAttachments.length; ++i) {\n attach(GL_COLOR_ATTACHMENT0$1 + i, colorAttachments[i])\n }\n for (i = colorAttachments.length; i < limits.maxColorAttachments; ++i) {\n gl.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n GL_COLOR_ATTACHMENT0$1 + i,\n GL_TEXTURE_2D$2,\n null,\n 0)\n }\n\n gl.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n GL_DEPTH_STENCIL_ATTACHMENT,\n GL_TEXTURE_2D$2,\n null,\n 0)\n gl.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n GL_DEPTH_ATTACHMENT,\n GL_TEXTURE_2D$2,\n null,\n 0)\n gl.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n GL_STENCIL_ATTACHMENT,\n GL_TEXTURE_2D$2,\n null,\n 0)\n\n attach(GL_DEPTH_ATTACHMENT, framebuffer.depthAttachment)\n attach(GL_STENCIL_ATTACHMENT, framebuffer.stencilAttachment)\n attach(GL_DEPTH_STENCIL_ATTACHMENT, framebuffer.depthStencilAttachment)\n\n // Check status code\n var status = gl.checkFramebufferStatus(GL_FRAMEBUFFER$1)\n if (!gl.isContextLost() && status !== GL_FRAMEBUFFER_COMPLETE$1) {\n check$1.raise('framebuffer configuration not supported, status = ' +\n statusCode[status])\n }\n\n gl.bindFramebuffer(GL_FRAMEBUFFER$1, framebufferState.next ? framebufferState.next.framebuffer : null)\n framebufferState.cur = framebufferState.next\n\n // FIXME: Clear error code here. This is a work around for a bug in\n // headless-gl\n gl.getError()\n }\n\n function createFBO (a0, a1) {\n var framebuffer = new REGLFramebuffer()\n stats.framebufferCount++\n\n function reglFramebuffer (a, b) {\n var i\n\n check$1(framebufferState.next !== framebuffer,\n 'can not update framebuffer which is currently in use')\n\n var width = 0\n var height = 0\n\n var needsDepth = true\n var needsStencil = true\n\n var colorBuffer = null\n var colorTexture = true\n var colorFormat = 'rgba'\n var colorType = 'uint8'\n var colorCount = 1\n\n var depthBuffer = null\n var stencilBuffer = null\n var depthStencilBuffer = null\n var depthStencilTexture = false\n\n if (typeof a === 'number') {\n width = a | 0\n height = (b | 0) || width\n } else if (!a) {\n width = height = 1\n } else {\n check$1.type(a, 'object', 'invalid arguments for framebuffer')\n var options = a\n\n if ('shape' in options) {\n var shape = options.shape\n check$1(Array.isArray(shape) && shape.length >= 2,\n 'invalid shape for framebuffer')\n width = shape[0]\n height = shape[1]\n } else {\n if ('radius' in options) {\n width = height = options.radius\n }\n if ('width' in options) {\n width = options.width\n }\n if ('height' in options) {\n height = options.height\n }\n }\n\n if ('color' in options ||\n 'colors' in options) {\n colorBuffer =\n options.color ||\n options.colors\n if (Array.isArray(colorBuffer)) {\n check$1(\n colorBuffer.length === 1 || extensions.webgl_draw_buffers,\n 'multiple render targets not supported')\n }\n }\n\n if (!colorBuffer) {\n if ('colorCount' in options) {\n colorCount = options.colorCount | 0\n check$1(colorCount > 0, 'invalid color buffer count')\n }\n\n if ('colorTexture' in options) {\n colorTexture = !!options.colorTexture\n colorFormat = 'rgba4'\n }\n\n if ('colorType' in options) {\n colorType = options.colorType\n if (!colorTexture) {\n if (colorType === 'half float' || colorType === 'float16') {\n check$1(extensions.ext_color_buffer_half_float,\n 'you must enable EXT_color_buffer_half_float to use 16-bit render buffers')\n colorFormat = 'rgba16f'\n } else if (colorType === 'float' || colorType === 'float32') {\n check$1(extensions.webgl_color_buffer_float,\n 'you must enable WEBGL_color_buffer_float in order to use 32-bit floating point renderbuffers')\n colorFormat = 'rgba32f'\n }\n } else {\n check$1(extensions.oes_texture_float ||\n !(colorType === 'float' || colorType === 'float32'),\n 'you must enable OES_texture_float in order to use floating point framebuffer objects')\n check$1(extensions.oes_texture_half_float ||\n !(colorType === 'half float' || colorType === 'float16'),\n 'you must enable OES_texture_half_float in order to use 16-bit floating point framebuffer objects')\n }\n check$1.oneOf(colorType, colorTypes, 'invalid color type')\n }\n\n if ('colorFormat' in options) {\n colorFormat = options.colorFormat\n if (colorTextureFormats.indexOf(colorFormat) >= 0) {\n colorTexture = true\n } else if (colorRenderbufferFormats.indexOf(colorFormat) >= 0) {\n colorTexture = false\n } else {\n check$1.optional(function () {\n if (colorTexture) {\n check$1.oneOf(\n options.colorFormat, colorTextureFormats,\n 'invalid color format for texture')\n } else {\n check$1.oneOf(\n options.colorFormat, colorRenderbufferFormats,\n 'invalid color format for renderbuffer')\n }\n })\n }\n }\n }\n\n if ('depthTexture' in options || 'depthStencilTexture' in options) {\n depthStencilTexture = !!(options.depthTexture ||\n options.depthStencilTexture)\n check$1(!depthStencilTexture || extensions.webgl_depth_texture,\n 'webgl_depth_texture extension not supported')\n }\n\n if ('depth' in options) {\n if (typeof options.depth === 'boolean') {\n needsDepth = options.depth\n } else {\n depthBuffer = options.depth\n needsStencil = false\n }\n }\n\n if ('stencil' in options) {\n if (typeof options.stencil === 'boolean') {\n needsStencil = options.stencil\n } else {\n stencilBuffer = options.stencil\n needsDepth = false\n }\n }\n\n if ('depthStencil' in options) {\n if (typeof options.depthStencil === 'boolean') {\n needsDepth = needsStencil = options.depthStencil\n } else {\n depthStencilBuffer = options.depthStencil\n needsDepth = false\n needsStencil = false\n }\n }\n }\n\n // parse attachments\n var colorAttachments = null\n var depthAttachment = null\n var stencilAttachment = null\n var depthStencilAttachment = null\n\n // Set up color attachments\n if (Array.isArray(colorBuffer)) {\n colorAttachments = colorBuffer.map(parseAttachment)\n } else if (colorBuffer) {\n colorAttachments = [parseAttachment(colorBuffer)]\n } else {\n colorAttachments = new Array(colorCount)\n for (i = 0; i < colorCount; ++i) {\n colorAttachments[i] = allocAttachment(\n width,\n height,\n colorTexture,\n colorFormat,\n colorType)\n }\n }\n\n check$1(extensions.webgl_draw_buffers || colorAttachments.length <= 1,\n 'you must enable the WEBGL_draw_buffers extension in order to use multiple color buffers.')\n check$1(colorAttachments.length <= limits.maxColorAttachments,\n 'too many color attachments, not supported')\n\n width = width || colorAttachments[0].width\n height = height || colorAttachments[0].height\n\n if (depthBuffer) {\n depthAttachment = parseAttachment(depthBuffer)\n } else if (needsDepth && !needsStencil) {\n depthAttachment = allocAttachment(\n width,\n height,\n depthStencilTexture,\n 'depth',\n 'uint32')\n }\n\n if (stencilBuffer) {\n stencilAttachment = parseAttachment(stencilBuffer)\n } else if (needsStencil && !needsDepth) {\n stencilAttachment = allocAttachment(\n width,\n height,\n false,\n 'stencil',\n 'uint8')\n }\n\n if (depthStencilBuffer) {\n depthStencilAttachment = parseAttachment(depthStencilBuffer)\n } else if (!depthBuffer && !stencilBuffer && needsStencil && needsDepth) {\n depthStencilAttachment = allocAttachment(\n width,\n height,\n depthStencilTexture,\n 'depth stencil',\n 'depth stencil')\n }\n\n check$1(\n (!!depthBuffer) + (!!stencilBuffer) + (!!depthStencilBuffer) <= 1,\n 'invalid framebuffer configuration, can specify exactly one depth/stencil attachment')\n\n var commonColorAttachmentSize = null\n\n for (i = 0; i < colorAttachments.length; ++i) {\n incRefAndCheckShape(colorAttachments[i], width, height)\n check$1(!colorAttachments[i] ||\n (colorAttachments[i].texture &&\n colorTextureFormatEnums.indexOf(colorAttachments[i].texture._texture.format) >= 0) ||\n (colorAttachments[i].renderbuffer &&\n colorRenderbufferFormatEnums.indexOf(colorAttachments[i].renderbuffer._renderbuffer.format) >= 0),\n 'framebuffer color attachment ' + i + ' is invalid')\n\n if (colorAttachments[i] && colorAttachments[i].texture) {\n var colorAttachmentSize =\n textureFormatChannels[colorAttachments[i].texture._texture.format] *\n textureTypeSizes[colorAttachments[i].texture._texture.type]\n\n if (commonColorAttachmentSize === null) {\n commonColorAttachmentSize = colorAttachmentSize\n } else {\n // We need to make sure that all color attachments have the same number of bitplanes\n // (that is, the same numer of bits per pixel)\n // This is required by the GLES2.0 standard. See the beginning of Chapter 4 in that document.\n check$1(commonColorAttachmentSize === colorAttachmentSize,\n 'all color attachments much have the same number of bits per pixel.')\n }\n }\n }\n incRefAndCheckShape(depthAttachment, width, height)\n check$1(!depthAttachment ||\n (depthAttachment.texture &&\n depthAttachment.texture._texture.format === GL_DEPTH_COMPONENT$1) ||\n (depthAttachment.renderbuffer &&\n depthAttachment.renderbuffer._renderbuffer.format === GL_DEPTH_COMPONENT16$1),\n 'invalid depth attachment for framebuffer object')\n incRefAndCheckShape(stencilAttachment, width, height)\n check$1(!stencilAttachment ||\n (stencilAttachment.renderbuffer &&\n stencilAttachment.renderbuffer._renderbuffer.format === GL_STENCIL_INDEX8$1),\n 'invalid stencil attachment for framebuffer object')\n incRefAndCheckShape(depthStencilAttachment, width, height)\n check$1(!depthStencilAttachment ||\n (depthStencilAttachment.texture &&\n depthStencilAttachment.texture._texture.format === GL_DEPTH_STENCIL$2) ||\n (depthStencilAttachment.renderbuffer &&\n depthStencilAttachment.renderbuffer._renderbuffer.format === GL_DEPTH_STENCIL$2),\n 'invalid depth-stencil attachment for framebuffer object')\n\n // decrement references\n decFBORefs(framebuffer)\n\n framebuffer.width = width\n framebuffer.height = height\n\n framebuffer.colorAttachments = colorAttachments\n framebuffer.depthAttachment = depthAttachment\n framebuffer.stencilAttachment = stencilAttachment\n framebuffer.depthStencilAttachment = depthStencilAttachment\n\n reglFramebuffer.color = colorAttachments.map(unwrapAttachment)\n reglFramebuffer.depth = unwrapAttachment(depthAttachment)\n reglFramebuffer.stencil = unwrapAttachment(stencilAttachment)\n reglFramebuffer.depthStencil = unwrapAttachment(depthStencilAttachment)\n\n reglFramebuffer.width = framebuffer.width\n reglFramebuffer.height = framebuffer.height\n\n updateFramebuffer(framebuffer)\n\n return reglFramebuffer\n }\n\n function resize (w_, h_) {\n check$1(framebufferState.next !== framebuffer,\n 'can not resize a framebuffer which is currently in use')\n\n var w = Math.max(w_ | 0, 1)\n var h = Math.max((h_ | 0) || w, 1)\n if (w === framebuffer.width && h === framebuffer.height) {\n return reglFramebuffer\n }\n\n // resize all buffers\n var colorAttachments = framebuffer.colorAttachments\n for (var i = 0; i < colorAttachments.length; ++i) {\n resizeAttachment(colorAttachments[i], w, h)\n }\n resizeAttachment(framebuffer.depthAttachment, w, h)\n resizeAttachment(framebuffer.stencilAttachment, w, h)\n resizeAttachment(framebuffer.depthStencilAttachment, w, h)\n\n framebuffer.width = reglFramebuffer.width = w\n framebuffer.height = reglFramebuffer.height = h\n\n updateFramebuffer(framebuffer)\n\n return reglFramebuffer\n }\n\n reglFramebuffer(a0, a1)\n\n return extend(reglFramebuffer, {\n resize: resize,\n _reglType: 'framebuffer',\n _framebuffer: framebuffer,\n destroy: function () {\n destroy(framebuffer)\n decFBORefs(framebuffer)\n },\n use: function (block) {\n framebufferState.setFBO({\n framebuffer: reglFramebuffer\n }, block)\n }\n })\n }\n\n function createCubeFBO (options) {\n var faces = Array(6)\n\n function reglFramebufferCube (a) {\n var i\n\n check$1(faces.indexOf(framebufferState.next) < 0,\n 'can not update framebuffer which is currently in use')\n\n var params = {\n color: null\n }\n\n var radius = 0\n\n var colorBuffer = null\n var colorFormat = 'rgba'\n var colorType = 'uint8'\n var colorCount = 1\n\n if (typeof a === 'number') {\n radius = a | 0\n } else if (!a) {\n radius = 1\n } else {\n check$1.type(a, 'object', 'invalid arguments for framebuffer')\n var options = a\n\n if ('shape' in options) {\n var shape = options.shape\n check$1(\n Array.isArray(shape) && shape.length >= 2,\n 'invalid shape for framebuffer')\n check$1(\n shape[0] === shape[1],\n 'cube framebuffer must be square')\n radius = shape[0]\n } else {\n if ('radius' in options) {\n radius = options.radius | 0\n }\n if ('width' in options) {\n radius = options.width | 0\n if ('height' in options) {\n check$1(options.height === radius, 'must be square')\n }\n } else if ('height' in options) {\n radius = options.height | 0\n }\n }\n\n if ('color' in options ||\n 'colors' in options) {\n colorBuffer =\n options.color ||\n options.colors\n if (Array.isArray(colorBuffer)) {\n check$1(\n colorBuffer.length === 1 || extensions.webgl_draw_buffers,\n 'multiple render targets not supported')\n }\n }\n\n if (!colorBuffer) {\n if ('colorCount' in options) {\n colorCount = options.colorCount | 0\n check$1(colorCount > 0, 'invalid color buffer count')\n }\n\n if ('colorType' in options) {\n check$1.oneOf(\n options.colorType, colorTypes,\n 'invalid color type')\n colorType = options.colorType\n }\n\n if ('colorFormat' in options) {\n colorFormat = options.colorFormat\n check$1.oneOf(\n options.colorFormat, colorTextureFormats,\n 'invalid color format for texture')\n }\n }\n\n if ('depth' in options) {\n params.depth = options.depth\n }\n\n if ('stencil' in options) {\n params.stencil = options.stencil\n }\n\n if ('depthStencil' in options) {\n params.depthStencil = options.depthStencil\n }\n }\n\n var colorCubes\n if (colorBuffer) {\n if (Array.isArray(colorBuffer)) {\n colorCubes = []\n for (i = 0; i < colorBuffer.length; ++i) {\n colorCubes[i] = colorBuffer[i]\n }\n } else {\n colorCubes = [ colorBuffer ]\n }\n } else {\n colorCubes = Array(colorCount)\n var cubeMapParams = {\n radius: radius,\n format: colorFormat,\n type: colorType\n }\n for (i = 0; i < colorCount; ++i) {\n colorCubes[i] = textureState.createCube(cubeMapParams)\n }\n }\n\n // Check color cubes\n params.color = Array(colorCubes.length)\n for (i = 0; i < colorCubes.length; ++i) {\n var cube = colorCubes[i]\n check$1(\n typeof cube === 'function' && cube._reglType === 'textureCube',\n 'invalid cube map')\n radius = radius || cube.width\n check$1(\n cube.width === radius && cube.height === radius,\n 'invalid cube map shape')\n params.color[i] = {\n target: GL_TEXTURE_CUBE_MAP_POSITIVE_X$2,\n data: colorCubes[i]\n }\n }\n\n for (i = 0; i < 6; ++i) {\n for (var j = 0; j < colorCubes.length; ++j) {\n params.color[j].target = GL_TEXTURE_CUBE_MAP_POSITIVE_X$2 + i\n }\n // reuse depth-stencil attachments across all cube maps\n if (i > 0) {\n params.depth = faces[0].depth\n params.stencil = faces[0].stencil\n params.depthStencil = faces[0].depthStencil\n }\n if (faces[i]) {\n (faces[i])(params)\n } else {\n faces[i] = createFBO(params)\n }\n }\n\n return extend(reglFramebufferCube, {\n width: radius,\n height: radius,\n color: colorCubes\n })\n }\n\n function resize (radius_) {\n var i\n var radius = radius_ | 0\n check$1(radius > 0 && radius <= limits.maxCubeMapSize,\n 'invalid radius for cube fbo')\n\n if (radius === reglFramebufferCube.width) {\n return reglFramebufferCube\n }\n\n var colors = reglFramebufferCube.color\n for (i = 0; i < colors.length; ++i) {\n colors[i].resize(radius)\n }\n\n for (i = 0; i < 6; ++i) {\n faces[i].resize(radius)\n }\n\n reglFramebufferCube.width = reglFramebufferCube.height = radius\n\n return reglFramebufferCube\n }\n\n reglFramebufferCube(options)\n\n return extend(reglFramebufferCube, {\n faces: faces,\n resize: resize,\n _reglType: 'framebufferCube',\n destroy: function () {\n faces.forEach(function (f) {\n f.destroy()\n })\n }\n })\n }\n\n function restoreFramebuffers () {\n framebufferState.cur = null\n framebufferState.next = null\n framebufferState.dirty = true\n values(framebufferSet).forEach(function (fb) {\n fb.framebuffer = gl.createFramebuffer()\n updateFramebuffer(fb)\n })\n }\n\n return extend(framebufferState, {\n getFramebuffer: function (object) {\n if (typeof object === 'function' && object._reglType === 'framebuffer') {\n var fbo = object._framebuffer\n if (fbo instanceof REGLFramebuffer) {\n return fbo\n }\n }\n return null\n },\n create: createFBO,\n createCube: createCubeFBO,\n clear: function () {\n values(framebufferSet).forEach(destroy)\n },\n restore: restoreFramebuffers\n })\n}\n\nvar GL_FLOAT$6 = 5126\nvar GL_ARRAY_BUFFER$1 = 34962\nvar GL_ELEMENT_ARRAY_BUFFER$1 = 34963\n\nvar VAO_OPTIONS = [\n 'attributes',\n 'elements',\n 'offset',\n 'count',\n 'primitive',\n 'instances'\n]\n\nfunction AttributeRecord () {\n this.state = 0\n\n this.x = 0.0\n this.y = 0.0\n this.z = 0.0\n this.w = 0.0\n\n this.buffer = null\n this.size = 0\n this.normalized = false\n this.type = GL_FLOAT$6\n this.offset = 0\n this.stride = 0\n this.divisor = 0\n}\n\nfunction wrapAttributeState (\n gl,\n extensions,\n limits,\n stats,\n bufferState,\n elementState,\n drawState) {\n var NUM_ATTRIBUTES = limits.maxAttributes\n var attributeBindings = new Array(NUM_ATTRIBUTES)\n for (var i = 0; i < NUM_ATTRIBUTES; ++i) {\n attributeBindings[i] = new AttributeRecord()\n }\n var vaoCount = 0\n var vaoSet = {}\n\n var state = {\n Record: AttributeRecord,\n scope: {},\n state: attributeBindings,\n currentVAO: null,\n targetVAO: null,\n restore: extVAO() ? restoreVAO : function () {},\n createVAO: createVAO,\n getVAO: getVAO,\n destroyBuffer: destroyBuffer,\n setVAO: extVAO() ? setVAOEXT : setVAOEmulated,\n clear: extVAO() ? destroyVAOEXT : function () {}\n }\n\n function destroyBuffer (buffer) {\n for (var i = 0; i < attributeBindings.length; ++i) {\n var record = attributeBindings[i]\n if (record.buffer === buffer) {\n gl.disableVertexAttribArray(i)\n record.buffer = null\n }\n }\n }\n\n function extVAO () {\n return extensions.oes_vertex_array_object\n }\n\n function extInstanced () {\n return extensions.angle_instanced_arrays\n }\n\n function getVAO (vao) {\n if (typeof vao === 'function' && vao._vao) {\n return vao._vao\n }\n return null\n }\n\n function setVAOEXT (vao) {\n if (vao === state.currentVAO) {\n return\n }\n var ext = extVAO()\n if (vao) {\n ext.bindVertexArrayOES(vao.vao)\n } else {\n ext.bindVertexArrayOES(null)\n }\n state.currentVAO = vao\n }\n\n function setVAOEmulated (vao) {\n if (vao === state.currentVAO) {\n return\n }\n if (vao) {\n vao.bindAttrs()\n } else {\n var exti = extInstanced()\n for (var i = 0; i < attributeBindings.length; ++i) {\n var binding = attributeBindings[i]\n if (binding.buffer) {\n gl.enableVertexAttribArray(i)\n binding.buffer.bind()\n gl.vertexAttribPointer(i, binding.size, binding.type, binding.normalized, binding.stride, binding.offfset)\n if (exti && binding.divisor) {\n exti.vertexAttribDivisorANGLE(i, binding.divisor)\n }\n } else {\n gl.disableVertexAttribArray(i)\n gl.vertexAttrib4f(i, binding.x, binding.y, binding.z, binding.w)\n }\n }\n if (drawState.elements) {\n gl.bindBuffer(GL_ELEMENT_ARRAY_BUFFER$1, drawState.elements.buffer.buffer)\n } else {\n gl.bindBuffer(GL_ELEMENT_ARRAY_BUFFER$1, null)\n }\n }\n state.currentVAO = vao\n }\n\n function destroyVAOEXT () {\n values(vaoSet).forEach(function (vao) {\n vao.destroy()\n })\n }\n\n function REGLVAO () {\n this.id = ++vaoCount\n this.attributes = []\n this.elements = null\n this.ownsElements = false\n this.count = 0\n this.offset = 0\n this.instances = -1\n this.primitive = 4\n var extension = extVAO()\n if (extension) {\n this.vao = extension.createVertexArrayOES()\n } else {\n this.vao = null\n }\n vaoSet[this.id] = this\n this.buffers = []\n }\n\n REGLVAO.prototype.bindAttrs = function () {\n var exti = extInstanced()\n var attributes = this.attributes\n for (var i = 0; i < attributes.length; ++i) {\n var attr = attributes[i]\n if (attr.buffer) {\n gl.enableVertexAttribArray(i)\n gl.bindBuffer(GL_ARRAY_BUFFER$1, attr.buffer.buffer)\n gl.vertexAttribPointer(i, attr.size, attr.type, attr.normalized, attr.stride, attr.offset)\n if (exti && attr.divisor) {\n exti.vertexAttribDivisorANGLE(i, attr.divisor)\n }\n } else {\n gl.disableVertexAttribArray(i)\n gl.vertexAttrib4f(i, attr.x, attr.y, attr.z, attr.w)\n }\n }\n for (var j = attributes.length; j < NUM_ATTRIBUTES; ++j) {\n gl.disableVertexAttribArray(j)\n }\n var elements = elementState.getElements(this.elements)\n if (elements) {\n gl.bindBuffer(GL_ELEMENT_ARRAY_BUFFER$1, elements.buffer.buffer)\n } else {\n gl.bindBuffer(GL_ELEMENT_ARRAY_BUFFER$1, null)\n }\n }\n\n REGLVAO.prototype.refresh = function () {\n var ext = extVAO()\n if (ext) {\n ext.bindVertexArrayOES(this.vao)\n this.bindAttrs()\n state.currentVAO = null\n ext.bindVertexArrayOES(null)\n }\n }\n\n REGLVAO.prototype.destroy = function () {\n if (this.vao) {\n var extension = extVAO()\n if (this === state.currentVAO) {\n state.currentVAO = null\n extension.bindVertexArrayOES(null)\n }\n extension.deleteVertexArrayOES(this.vao)\n this.vao = null\n }\n if (this.ownsElements) {\n this.elements.destroy()\n this.elements = null\n this.ownsElements = false\n }\n if (vaoSet[this.id]) {\n delete vaoSet[this.id]\n stats.vaoCount -= 1\n }\n }\n\n function restoreVAO () {\n var ext = extVAO()\n if (ext) {\n values(vaoSet).forEach(function (vao) {\n vao.refresh()\n })\n }\n }\n\n function createVAO (_attr) {\n var vao = new REGLVAO()\n stats.vaoCount += 1\n\n function updateVAO (options) {\n var attributes\n if (Array.isArray(options)) {\n attributes = options\n if (vao.elements && vao.ownsElements) {\n vao.elements.destroy()\n }\n vao.elements = null\n vao.ownsElements = false\n vao.offset = 0\n vao.count = 0\n vao.instances = -1\n vao.primitive = 4\n } else {\n check$1(typeof options === 'object', 'invalid arguments for create vao')\n check$1('attributes' in options, 'must specify attributes for vao')\n if (options.elements) {\n var elements = options.elements\n if (vao.ownsElements) {\n if (typeof elements === 'function' && elements._reglType === 'elements') {\n vao.elements.destroy()\n vao.ownsElements = false\n } else {\n vao.elements(elements)\n vao.ownsElements = false\n }\n } else if (elementState.getElements(options.elements)) {\n vao.elements = options.elements\n vao.ownsElements = false\n } else {\n vao.elements = elementState.create(options.elements)\n vao.ownsElements = true\n }\n } else {\n vao.elements = null\n vao.ownsElements = false\n }\n attributes = options.attributes\n\n // set default vao\n vao.offset = 0\n vao.count = -1\n vao.instances = -1\n vao.primitive = 4\n\n // copy element properties\n if (vao.elements) {\n vao.count = vao.elements._elements.vertCount\n vao.primitive = vao.elements._elements.primType\n }\n\n if ('offset' in options) {\n vao.offset = options.offset | 0\n }\n if ('count' in options) {\n vao.count = options.count | 0\n }\n if ('instances' in options) {\n vao.instances = options.instances | 0\n }\n if ('primitive' in options) {\n check$1(options.primitive in primTypes, 'bad primitive type: ' + options.primitive)\n vao.primitive = primTypes[options.primitive]\n }\n\n check$1.optional(() => {\n var keys = Object.keys(options)\n for (var i = 0; i < keys.length; ++i) {\n check$1(VAO_OPTIONS.indexOf(keys[i]) >= 0, 'invalid option for vao: \"' + keys[i] + '\" valid options are ' + VAO_OPTIONS)\n }\n })\n check$1(Array.isArray(attributes), 'attributes must be an array')\n }\n\n check$1(attributes.length < NUM_ATTRIBUTES, 'too many attributes')\n check$1(attributes.length > 0, 'must specify at least one attribute')\n\n var bufUpdated = {}\n var nattributes = vao.attributes\n nattributes.length = attributes.length\n for (var i = 0; i < attributes.length; ++i) {\n var spec = attributes[i]\n var rec = nattributes[i] = new AttributeRecord()\n var data = spec.data || spec\n if (Array.isArray(data) || isTypedArray(data) || isNDArrayLike(data)) {\n var buf\n if (vao.buffers[i]) {\n buf = vao.buffers[i]\n if (isTypedArray(data) && buf._buffer.byteLength >= data.byteLength) {\n buf.subdata(data)\n } else {\n buf.destroy()\n vao.buffers[i] = null\n }\n }\n if (!vao.buffers[i]) {\n buf = vao.buffers[i] = bufferState.create(spec, GL_ARRAY_BUFFER$1, false, true)\n }\n rec.buffer = bufferState.getBuffer(buf)\n rec.size = rec.buffer.dimension | 0\n rec.normalized = false\n rec.type = rec.buffer.dtype\n rec.offset = 0\n rec.stride = 0\n rec.divisor = 0\n rec.state = 1\n bufUpdated[i] = 1\n } else if (bufferState.getBuffer(spec)) {\n rec.buffer = bufferState.getBuffer(spec)\n rec.size = rec.buffer.dimension | 0\n rec.normalized = false\n rec.type = rec.buffer.dtype\n rec.offset = 0\n rec.stride = 0\n rec.divisor = 0\n rec.state = 1\n } else if (bufferState.getBuffer(spec.buffer)) {\n rec.buffer = bufferState.getBuffer(spec.buffer)\n rec.size = ((+spec.size) || rec.buffer.dimension) | 0\n rec.normalized = !!spec.normalized || false\n if ('type' in spec) {\n check$1.parameter(spec.type, glTypes, 'invalid buffer type')\n rec.type = glTypes[spec.type]\n } else {\n rec.type = rec.buffer.dtype\n }\n rec.offset = (spec.offset || 0) | 0\n rec.stride = (spec.stride || 0) | 0\n rec.divisor = (spec.divisor || 0) | 0\n rec.state = 1\n\n check$1(rec.size >= 1 && rec.size <= 4, 'size must be between 1 and 4')\n check$1(rec.offset >= 0, 'invalid offset')\n check$1(rec.stride >= 0 && rec.stride <= 255, 'stride must be between 0 and 255')\n check$1(rec.divisor >= 0, 'divisor must be positive')\n check$1(!rec.divisor || !!extensions.angle_instanced_arrays, 'ANGLE_instanced_arrays must be enabled to use divisor')\n } else if ('x' in spec) {\n check$1(i > 0, 'first attribute must not be a constant')\n rec.x = +spec.x || 0\n rec.y = +spec.y || 0\n rec.z = +spec.z || 0\n rec.w = +spec.w || 0\n rec.state = 2\n } else {\n check$1(false, 'invalid attribute spec for location ' + i)\n }\n }\n\n // retire unused buffers\n for (var j = 0; j < vao.buffers.length; ++j) {\n if (!bufUpdated[j] && vao.buffers[j]) {\n vao.buffers[j].destroy()\n vao.buffers[j] = null\n }\n }\n\n vao.refresh()\n return updateVAO\n }\n\n updateVAO.destroy = function () {\n for (var j = 0; j < vao.buffers.length; ++j) {\n if (vao.buffers[j]) {\n vao.buffers[j].destroy()\n }\n }\n vao.buffers.length = 0\n\n if (vao.ownsElements) {\n vao.elements.destroy()\n vao.elements = null\n vao.ownsElements = false\n }\n\n vao.destroy()\n }\n\n updateVAO._vao = vao\n updateVAO._reglType = 'vao'\n\n return updateVAO(_attr)\n }\n\n return state\n}\n\nvar GL_FRAGMENT_SHADER = 35632\nvar GL_VERTEX_SHADER = 35633\n\nvar GL_ACTIVE_UNIFORMS = 0x8B86\nvar GL_ACTIVE_ATTRIBUTES = 0x8B89\n\nfunction wrapShaderState (gl, stringStore, stats, config) {\n // ===================================================\n // glsl compilation and linking\n // ===================================================\n var fragShaders = {}\n var vertShaders = {}\n\n function ActiveInfo (name, id, location, info) {\n this.name = name\n this.id = id\n this.location = location\n this.info = info\n }\n\n function insertActiveInfo (list, info) {\n for (var i = 0; i < list.length; ++i) {\n if (list[i].id === info.id) {\n list[i].location = info.location\n return\n }\n }\n list.push(info)\n }\n\n function getShader (type, id, command) {\n var cache = type === GL_FRAGMENT_SHADER ? fragShaders : vertShaders\n var shader = cache[id]\n\n if (!shader) {\n var source = stringStore.str(id)\n shader = gl.createShader(type)\n gl.shaderSource(shader, source)\n gl.compileShader(shader)\n check$1.shaderError(gl, shader, source, type, command)\n cache[id] = shader\n }\n\n return shader\n }\n\n // ===================================================\n // program linking\n // ===================================================\n var programCache = {}\n var programList = []\n\n var PROGRAM_COUNTER = 0\n\n function REGLProgram (fragId, vertId) {\n this.id = PROGRAM_COUNTER++\n this.fragId = fragId\n this.vertId = vertId\n this.program = null\n this.uniforms = []\n this.attributes = []\n this.refCount = 1\n\n if (config.profile) {\n this.stats = {\n uniformsCount: 0,\n attributesCount: 0\n }\n }\n }\n\n function linkProgram (desc, command, attributeLocations) {\n var i, info\n\n // -------------------------------\n // compile & link\n // -------------------------------\n var fragShader = getShader(GL_FRAGMENT_SHADER, desc.fragId)\n var vertShader = getShader(GL_VERTEX_SHADER, desc.vertId)\n\n var program = desc.program = gl.createProgram()\n gl.attachShader(program, fragShader)\n gl.attachShader(program, vertShader)\n if (attributeLocations) {\n for (i = 0; i < attributeLocations.length; ++i) {\n var binding = attributeLocations[i]\n gl.bindAttribLocation(program, binding[0], binding[1])\n }\n }\n\n gl.linkProgram(program)\n check$1.linkError(\n gl,\n program,\n stringStore.str(desc.fragId),\n stringStore.str(desc.vertId),\n command)\n\n // -------------------------------\n // grab uniforms\n // -------------------------------\n var numUniforms = gl.getProgramParameter(program, GL_ACTIVE_UNIFORMS)\n if (config.profile) {\n desc.stats.uniformsCount = numUniforms\n }\n var uniforms = desc.uniforms\n for (i = 0; i < numUniforms; ++i) {\n info = gl.getActiveUniform(program, i)\n if (info) {\n if (info.size > 1) {\n for (var j = 0; j < info.size; ++j) {\n var name = info.name.replace('[0]', '[' + j + ']')\n insertActiveInfo(uniforms, new ActiveInfo(\n name,\n stringStore.id(name),\n gl.getUniformLocation(program, name),\n info))\n }\n }\n var uniName = info.name\n if (info.size > 1) {\n uniName = uniName.replace('[0]', '')\n }\n insertActiveInfo(uniforms, new ActiveInfo(\n uniName,\n stringStore.id(uniName),\n gl.getUniformLocation(program, uniName),\n info))\n }\n }\n\n // -------------------------------\n // grab attributes\n // -------------------------------\n var numAttributes = gl.getProgramParameter(program, GL_ACTIVE_ATTRIBUTES)\n if (config.profile) {\n desc.stats.attributesCount = numAttributes\n }\n\n var attributes = desc.attributes\n for (i = 0; i < numAttributes; ++i) {\n info = gl.getActiveAttrib(program, i)\n if (info) {\n insertActiveInfo(attributes, new ActiveInfo(\n info.name,\n stringStore.id(info.name),\n gl.getAttribLocation(program, info.name),\n info))\n }\n }\n }\n\n if (config.profile) {\n stats.getMaxUniformsCount = function () {\n var m = 0\n programList.forEach(function (desc) {\n if (desc.stats.uniformsCount > m) {\n m = desc.stats.uniformsCount\n }\n })\n return m\n }\n\n stats.getMaxAttributesCount = function () {\n var m = 0\n programList.forEach(function (desc) {\n if (desc.stats.attributesCount > m) {\n m = desc.stats.attributesCount\n }\n })\n return m\n }\n }\n\n function restoreShaders () {\n fragShaders = {}\n vertShaders = {}\n for (var i = 0; i < programList.length; ++i) {\n linkProgram(programList[i], null, programList[i].attributes.map(function (info) {\n return [info.location, info.name]\n }))\n }\n }\n\n return {\n clear: function () {\n var deleteShader = gl.deleteShader.bind(gl)\n values(fragShaders).forEach(deleteShader)\n fragShaders = {}\n values(vertShaders).forEach(deleteShader)\n vertShaders = {}\n\n programList.forEach(function (desc) {\n gl.deleteProgram(desc.program)\n })\n programList.length = 0\n programCache = {}\n\n stats.shaderCount = 0\n },\n\n program: function (vertId, fragId, command, attribLocations) {\n check$1.command(vertId >= 0, 'missing vertex shader', command)\n check$1.command(fragId >= 0, 'missing fragment shader', command)\n\n var cache = programCache[fragId]\n if (!cache) {\n cache = programCache[fragId] = {}\n }\n var prevProgram = cache[vertId]\n if (prevProgram) {\n prevProgram.refCount++\n if (!attribLocations) {\n return prevProgram\n }\n }\n var program = new REGLProgram(fragId, vertId)\n stats.shaderCount++\n linkProgram(program, command, attribLocations)\n if (!prevProgram) {\n cache[vertId] = program\n }\n programList.push(program)\n return extend(program, {\n destroy: function () {\n program.refCount--\n if (program.refCount <= 0) {\n gl.deleteProgram(program.program)\n var idx = programList.indexOf(program)\n programList.splice(idx, 1)\n stats.shaderCount--\n }\n // no program is linked to this vert anymore\n if (cache[program.vertId].refCount <= 0) {\n gl.deleteShader(vertShaders[program.vertId])\n delete vertShaders[program.vertId]\n delete programCache[program.fragId][program.vertId]\n }\n // no program is linked to this frag anymore\n if (!Object.keys(programCache[program.fragId]).length) {\n gl.deleteShader(fragShaders[program.fragId])\n delete fragShaders[program.fragId]\n delete programCache[program.fragId]\n }\n }\n })\n },\n\n restore: restoreShaders,\n\n shader: getShader,\n\n frag: -1,\n vert: -1\n }\n}\n\nvar GL_RGBA$3 = 6408\nvar GL_UNSIGNED_BYTE$7 = 5121\nvar GL_PACK_ALIGNMENT = 0x0D05\nvar GL_FLOAT$7 = 0x1406 // 5126\n\nfunction wrapReadPixels (\n gl,\n framebufferState,\n reglPoll,\n context,\n glAttributes,\n extensions,\n limits) {\n function readPixelsImpl (input) {\n var type\n if (framebufferState.next === null) {\n check$1(\n glAttributes.preserveDrawingBuffer,\n 'you must create a webgl context with \"preserveDrawingBuffer\":true in order to read pixels from the drawing buffer')\n type = GL_UNSIGNED_BYTE$7\n } else {\n check$1(\n framebufferState.next.colorAttachments[0].texture !== null,\n 'You cannot read from a renderbuffer')\n type = framebufferState.next.colorAttachments[0].texture._texture.type\n\n check$1.optional(function () {\n if (extensions.oes_texture_float) {\n check$1(\n type === GL_UNSIGNED_BYTE$7 || type === GL_FLOAT$7,\n 'Reading from a framebuffer is only allowed for the types \\'uint8\\' and \\'float\\'')\n\n if (type === GL_FLOAT$7) {\n check$1(limits.readFloat, 'Reading \\'float\\' values is not permitted in your browser. For a fallback, please see: https://www.npmjs.com/package/glsl-read-float')\n }\n } else {\n check$1(\n type === GL_UNSIGNED_BYTE$7,\n 'Reading from a framebuffer is only allowed for the type \\'uint8\\'')\n }\n })\n }\n\n var x = 0\n var y = 0\n var width = context.framebufferWidth\n var height = context.framebufferHeight\n var data = null\n\n if (isTypedArray(input)) {\n data = input\n } else if (input) {\n check$1.type(input, 'object', 'invalid arguments to regl.read()')\n x = input.x | 0\n y = input.y | 0\n check$1(\n x >= 0 && x < context.framebufferWidth,\n 'invalid x offset for regl.read')\n check$1(\n y >= 0 && y < context.framebufferHeight,\n 'invalid y offset for regl.read')\n width = (input.width || (context.framebufferWidth - x)) | 0\n height = (input.height || (context.framebufferHeight - y)) | 0\n data = input.data || null\n }\n\n // sanity check input.data\n if (data) {\n if (type === GL_UNSIGNED_BYTE$7) {\n check$1(\n data instanceof Uint8Array,\n 'buffer must be \\'Uint8Array\\' when reading from a framebuffer of type \\'uint8\\'')\n } else if (type === GL_FLOAT$7) {\n check$1(\n data instanceof Float32Array,\n 'buffer must be \\'Float32Array\\' when reading from a framebuffer of type \\'float\\'')\n }\n }\n\n check$1(\n width > 0 && width + x <= context.framebufferWidth,\n 'invalid width for read pixels')\n check$1(\n height > 0 && height + y <= context.framebufferHeight,\n 'invalid height for read pixels')\n\n // Update WebGL state\n reglPoll()\n\n // Compute size\n var size = width * height * 4\n\n // Allocate data\n if (!data) {\n if (type === GL_UNSIGNED_BYTE$7) {\n data = new Uint8Array(size)\n } else if (type === GL_FLOAT$7) {\n data = data || new Float32Array(size)\n }\n }\n\n // Type check\n check$1.isTypedArray(data, 'data buffer for regl.read() must be a typedarray')\n check$1(data.byteLength >= size, 'data buffer for regl.read() too small')\n\n // Run read pixels\n gl.pixelStorei(GL_PACK_ALIGNMENT, 4)\n gl.readPixels(x, y, width, height, GL_RGBA$3,\n type,\n data)\n\n return data\n }\n\n function readPixelsFBO (options) {\n var result\n framebufferState.setFBO({\n framebuffer: options.framebuffer\n }, function () {\n result = readPixelsImpl(options)\n })\n return result\n }\n\n function readPixels (options) {\n if (!options || !('framebuffer' in options)) {\n return readPixelsImpl(options)\n } else {\n return readPixelsFBO(options)\n }\n }\n\n return readPixels\n}\n\nfunction slice (x) {\n return Array.prototype.slice.call(x)\n}\n\nfunction join (x) {\n return slice(x).join('')\n}\n\nfunction createEnvironment () {\n // Unique variable id counter\n var varCounter = 0\n\n // Linked values are passed from this scope into the generated code block\n // Calling link() passes a value into the generated scope and returns\n // the variable name which it is bound to\n var linkedNames = []\n var linkedValues = []\n function link (value) {\n for (var i = 0; i < linkedValues.length; ++i) {\n if (linkedValues[i] === value) {\n return linkedNames[i]\n }\n }\n\n var name = 'g' + (varCounter++)\n linkedNames.push(name)\n linkedValues.push(value)\n return name\n }\n\n // create a code block\n function block () {\n var code = []\n function push () {\n code.push.apply(code, slice(arguments))\n }\n\n var vars = []\n function def () {\n var name = 'v' + (varCounter++)\n vars.push(name)\n\n if (arguments.length > 0) {\n code.push(name, '=')\n code.push.apply(code, slice(arguments))\n code.push(';')\n }\n\n return name\n }\n\n return extend(push, {\n def: def,\n toString: function () {\n return join([\n (vars.length > 0 ? 'var ' + vars.join(',') + ';' : ''),\n join(code)\n ])\n }\n })\n }\n\n function scope () {\n var entry = block()\n var exit = block()\n\n var entryToString = entry.toString\n var exitToString = exit.toString\n\n function save (object, prop) {\n exit(object, prop, '=', entry.def(object, prop), ';')\n }\n\n return extend(function () {\n entry.apply(entry, slice(arguments))\n }, {\n def: entry.def,\n entry: entry,\n exit: exit,\n save: save,\n set: function (object, prop, value) {\n save(object, prop)\n entry(object, prop, '=', value, ';')\n },\n toString: function () {\n return entryToString() + exitToString()\n }\n })\n }\n\n function conditional () {\n var pred = join(arguments)\n var thenBlock = scope()\n var elseBlock = scope()\n\n var thenToString = thenBlock.toString\n var elseToString = elseBlock.toString\n\n return extend(thenBlock, {\n then: function () {\n thenBlock.apply(thenBlock, slice(arguments))\n return this\n },\n else: function () {\n elseBlock.apply(elseBlock, slice(arguments))\n return this\n },\n toString: function () {\n var elseClause = elseToString()\n if (elseClause) {\n elseClause = 'else{' + elseClause + '}'\n }\n return join([\n 'if(', pred, '){',\n thenToString(),\n '}', elseClause\n ])\n }\n })\n }\n\n // procedure list\n var globalBlock = block()\n var procedures = {}\n function proc (name, count) {\n var args = []\n function arg () {\n var name = 'a' + args.length\n args.push(name)\n return name\n }\n\n count = count || 0\n for (var i = 0; i < count; ++i) {\n arg()\n }\n\n var body = scope()\n var bodyToString = body.toString\n\n var result = procedures[name] = extend(body, {\n arg: arg,\n toString: function () {\n return join([\n 'function(', args.join(), '){',\n bodyToString(),\n '}'\n ])\n }\n })\n\n return result\n }\n\n function compile () {\n var code = ['\"use strict\";',\n globalBlock,\n 'return {']\n Object.keys(procedures).forEach(function (name) {\n code.push('\"', name, '\":', procedures[name].toString(), ',')\n })\n code.push('}')\n var src = join(code)\n .replace(/;/g, ';\\n')\n .replace(/}/g, '}\\n')\n .replace(/{/g, '{\\n')\n var proc = Function.apply(null, linkedNames.concat(src))\n return proc.apply(null, linkedValues)\n }\n\n return {\n global: globalBlock,\n link: link,\n block: block,\n proc: proc,\n scope: scope,\n cond: conditional,\n compile: compile\n }\n}\n\n// \"cute\" names for vector components\nvar CUTE_COMPONENTS = 'xyzw'.split('')\n\nvar GL_UNSIGNED_BYTE$8 = 5121\n\nvar ATTRIB_STATE_POINTER = 1\nvar ATTRIB_STATE_CONSTANT = 2\n\nvar DYN_FUNC$1 = 0\nvar DYN_PROP$1 = 1\nvar DYN_CONTEXT$1 = 2\nvar DYN_STATE$1 = 3\nvar DYN_THUNK = 4\nvar DYN_CONSTANT$1 = 5\nvar DYN_ARRAY$1 = 6\n\nvar S_DITHER = 'dither'\nvar S_BLEND_ENABLE = 'blend.enable'\nvar S_BLEND_COLOR = 'blend.color'\nvar S_BLEND_EQUATION = 'blend.equation'\nvar S_BLEND_FUNC = 'blend.func'\nvar S_DEPTH_ENABLE = 'depth.enable'\nvar S_DEPTH_FUNC = 'depth.func'\nvar S_DEPTH_RANGE = 'depth.range'\nvar S_DEPTH_MASK = 'depth.mask'\nvar S_COLOR_MASK = 'colorMask'\nvar S_CULL_ENABLE = 'cull.enable'\nvar S_CULL_FACE = 'cull.face'\nvar S_FRONT_FACE = 'frontFace'\nvar S_LINE_WIDTH = 'lineWidth'\nvar S_POLYGON_OFFSET_ENABLE = 'polygonOffset.enable'\nvar S_POLYGON_OFFSET_OFFSET = 'polygonOffset.offset'\nvar S_SAMPLE_ALPHA = 'sample.alpha'\nvar S_SAMPLE_ENABLE = 'sample.enable'\nvar S_SAMPLE_COVERAGE = 'sample.coverage'\nvar S_STENCIL_ENABLE = 'stencil.enable'\nvar S_STENCIL_MASK = 'stencil.mask'\nvar S_STENCIL_FUNC = 'stencil.func'\nvar S_STENCIL_OPFRONT = 'stencil.opFront'\nvar S_STENCIL_OPBACK = 'stencil.opBack'\nvar S_SCISSOR_ENABLE = 'scissor.enable'\nvar S_SCISSOR_BOX = 'scissor.box'\nvar S_VIEWPORT = 'viewport'\n\nvar S_PROFILE = 'profile'\n\nvar S_FRAMEBUFFER = 'framebuffer'\nvar S_VERT = 'vert'\nvar S_FRAG = 'frag'\nvar S_ELEMENTS = 'elements'\nvar S_PRIMITIVE = 'primitive'\nvar S_COUNT = 'count'\nvar S_OFFSET = 'offset'\nvar S_INSTANCES = 'instances'\nvar S_VAO = 'vao'\n\nvar SUFFIX_WIDTH = 'Width'\nvar SUFFIX_HEIGHT = 'Height'\n\nvar S_FRAMEBUFFER_WIDTH = S_FRAMEBUFFER + SUFFIX_WIDTH\nvar S_FRAMEBUFFER_HEIGHT = S_FRAMEBUFFER + SUFFIX_HEIGHT\nvar S_VIEWPORT_WIDTH = S_VIEWPORT + SUFFIX_WIDTH\nvar S_VIEWPORT_HEIGHT = S_VIEWPORT + SUFFIX_HEIGHT\nvar S_DRAWINGBUFFER = 'drawingBuffer'\nvar S_DRAWINGBUFFER_WIDTH = S_DRAWINGBUFFER + SUFFIX_WIDTH\nvar S_DRAWINGBUFFER_HEIGHT = S_DRAWINGBUFFER + SUFFIX_HEIGHT\n\nvar NESTED_OPTIONS = [\n S_BLEND_FUNC,\n S_BLEND_EQUATION,\n S_STENCIL_FUNC,\n S_STENCIL_OPFRONT,\n S_STENCIL_OPBACK,\n S_SAMPLE_COVERAGE,\n S_VIEWPORT,\n S_SCISSOR_BOX,\n S_POLYGON_OFFSET_OFFSET\n]\n\nvar GL_ARRAY_BUFFER$2 = 34962\nvar GL_ELEMENT_ARRAY_BUFFER$2 = 34963\n\nvar GL_FRAGMENT_SHADER$1 = 35632\nvar GL_VERTEX_SHADER$1 = 35633\n\nvar GL_TEXTURE_2D$3 = 0x0DE1\nvar GL_TEXTURE_CUBE_MAP$2 = 0x8513\n\nvar GL_CULL_FACE = 0x0B44\nvar GL_BLEND = 0x0BE2\nvar GL_DITHER = 0x0BD0\nvar GL_STENCIL_TEST = 0x0B90\nvar GL_DEPTH_TEST = 0x0B71\nvar GL_SCISSOR_TEST = 0x0C11\nvar GL_POLYGON_OFFSET_FILL = 0x8037\nvar GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E\nvar GL_SAMPLE_COVERAGE = 0x80A0\n\nvar GL_FLOAT$8 = 5126\nvar GL_FLOAT_VEC2 = 35664\nvar GL_FLOAT_VEC3 = 35665\nvar GL_FLOAT_VEC4 = 35666\nvar GL_INT$3 = 5124\nvar GL_INT_VEC2 = 35667\nvar GL_INT_VEC3 = 35668\nvar GL_INT_VEC4 = 35669\nvar GL_BOOL = 35670\nvar GL_BOOL_VEC2 = 35671\nvar GL_BOOL_VEC3 = 35672\nvar GL_BOOL_VEC4 = 35673\nvar GL_FLOAT_MAT2 = 35674\nvar GL_FLOAT_MAT3 = 35675\nvar GL_FLOAT_MAT4 = 35676\nvar GL_SAMPLER_2D = 35678\nvar GL_SAMPLER_CUBE = 35680\n\nvar GL_TRIANGLES$1 = 4\n\nvar GL_FRONT = 1028\nvar GL_BACK = 1029\nvar GL_CW = 0x0900\nvar GL_CCW = 0x0901\nvar GL_MIN_EXT = 0x8007\nvar GL_MAX_EXT = 0x8008\nvar GL_ALWAYS = 519\nvar GL_KEEP = 7680\nvar GL_ZERO = 0\nvar GL_ONE = 1\nvar GL_FUNC_ADD = 0x8006\nvar GL_LESS = 513\n\nvar GL_FRAMEBUFFER$2 = 0x8D40\nvar GL_COLOR_ATTACHMENT0$2 = 0x8CE0\n\nvar blendFuncs = {\n '0': 0,\n '1': 1,\n 'zero': 0,\n 'one': 1,\n 'src color': 768,\n 'one minus src color': 769,\n 'src alpha': 770,\n 'one minus src alpha': 771,\n 'dst color': 774,\n 'one minus dst color': 775,\n 'dst alpha': 772,\n 'one minus dst alpha': 773,\n 'constant color': 32769,\n 'one minus constant color': 32770,\n 'constant alpha': 32771,\n 'one minus constant alpha': 32772,\n 'src alpha saturate': 776\n}\n\n// There are invalid values for srcRGB and dstRGB. See:\n// https://www.khronos.org/registry/webgl/specs/1.0/#6.13\n// https://github.com/KhronosGroup/WebGL/blob/0d3201f5f7ec3c0060bc1f04077461541f1987b9/conformance-suites/1.0.3/conformance/misc/webgl-specific.html#L56\nvar invalidBlendCombinations = [\n 'constant color, constant alpha',\n 'one minus constant color, constant alpha',\n 'constant color, one minus constant alpha',\n 'one minus constant color, one minus constant alpha',\n 'constant alpha, constant color',\n 'constant alpha, one minus constant color',\n 'one minus constant alpha, constant color',\n 'one minus constant alpha, one minus constant color'\n]\n\nvar compareFuncs = {\n 'never': 512,\n 'less': 513,\n '<': 513,\n 'equal': 514,\n '=': 514,\n '==': 514,\n '===': 514,\n 'lequal': 515,\n '<=': 515,\n 'greater': 516,\n '>': 516,\n 'notequal': 517,\n '!=': 517,\n '!==': 517,\n 'gequal': 518,\n '>=': 518,\n 'always': 519\n}\n\nvar stencilOps = {\n '0': 0,\n 'zero': 0,\n 'keep': 7680,\n 'replace': 7681,\n 'increment': 7682,\n 'decrement': 7683,\n 'increment wrap': 34055,\n 'decrement wrap': 34056,\n 'invert': 5386\n}\n\nvar shaderType = {\n 'frag': GL_FRAGMENT_SHADER$1,\n 'vert': GL_VERTEX_SHADER$1\n}\n\nvar orientationType = {\n 'cw': GL_CW,\n 'ccw': GL_CCW\n}\n\nfunction isBufferArgs (x) {\n return Array.isArray(x) ||\n isTypedArray(x) ||\n isNDArrayLike(x)\n}\n\n// Make sure viewport is processed first\nfunction sortState (state) {\n return state.sort(function (a, b) {\n if (a === S_VIEWPORT) {\n return -1\n } else if (b === S_VIEWPORT) {\n return 1\n }\n return (a < b) ? -1 : 1\n })\n}\n\nfunction Declaration (thisDep, contextDep, propDep, append) {\n this.thisDep = thisDep\n this.contextDep = contextDep\n this.propDep = propDep\n this.append = append\n}\n\nfunction isStatic (decl) {\n return decl && !(decl.thisDep || decl.contextDep || decl.propDep)\n}\n\nfunction createStaticDecl (append) {\n return new Declaration(false, false, false, append)\n}\n\nfunction createDynamicDecl (dyn, append) {\n var type = dyn.type\n if (type === DYN_FUNC$1) {\n var numArgs = dyn.data.length\n return new Declaration(\n true,\n numArgs >= 1,\n numArgs >= 2,\n append)\n } else if (type === DYN_THUNK) {\n var data = dyn.data\n return new Declaration(\n data.thisDep,\n data.contextDep,\n data.propDep,\n append)\n } else if (type === DYN_CONSTANT$1) {\n return new Declaration(\n false,\n false,\n false,\n append)\n } else if (type === DYN_ARRAY$1) {\n var thisDep = false\n var contextDep = false\n var propDep = false\n for (var i = 0; i < dyn.data.length; ++i) {\n var subDyn = dyn.data[i]\n if (subDyn.type === DYN_PROP$1) {\n propDep = true\n } else if (subDyn.type === DYN_CONTEXT$1) {\n contextDep = true\n } else if (subDyn.type === DYN_STATE$1) {\n thisDep = true\n } else if (subDyn.type === DYN_FUNC$1) {\n thisDep = true\n var subArgs = subDyn.data\n if (subArgs >= 1) {\n contextDep = true\n }\n if (subArgs >= 2) {\n propDep = true\n }\n } else if (subDyn.type === DYN_THUNK) {\n thisDep = thisDep || subDyn.data.thisDep\n contextDep = contextDep || subDyn.data.contextDep\n propDep = propDep || subDyn.data.propDep\n }\n }\n return new Declaration(\n thisDep,\n contextDep,\n propDep,\n append)\n } else {\n return new Declaration(\n type === DYN_STATE$1,\n type === DYN_CONTEXT$1,\n type === DYN_PROP$1,\n append)\n }\n}\n\nvar SCOPE_DECL = new Declaration(false, false, false, function () {})\n\nfunction reglCore (\n gl,\n stringStore,\n extensions,\n limits,\n bufferState,\n elementState,\n textureState,\n framebufferState,\n uniformState,\n attributeState,\n shaderState,\n drawState,\n contextState,\n timer,\n config) {\n var AttributeRecord = attributeState.Record\n\n var blendEquations = {\n 'add': 32774,\n 'subtract': 32778,\n 'reverse subtract': 32779\n }\n if (extensions.ext_blend_minmax) {\n blendEquations.min = GL_MIN_EXT\n blendEquations.max = GL_MAX_EXT\n }\n\n var extInstancing = extensions.angle_instanced_arrays\n var extDrawBuffers = extensions.webgl_draw_buffers\n var extVertexArrays = extensions.oes_vertex_array_object\n\n // ===================================================\n // ===================================================\n // WEBGL STATE\n // ===================================================\n // ===================================================\n var currentState = {\n dirty: true,\n profile: config.profile\n }\n var nextState = {}\n var GL_STATE_NAMES = []\n var GL_FLAGS = {}\n var GL_VARIABLES = {}\n\n function propName (name) {\n return name.replace('.', '_')\n }\n\n function stateFlag (sname, cap, init) {\n var name = propName(sname)\n GL_STATE_NAMES.push(sname)\n nextState[name] = currentState[name] = !!init\n GL_FLAGS[name] = cap\n }\n\n function stateVariable (sname, func, init) {\n var name = propName(sname)\n GL_STATE_NAMES.push(sname)\n if (Array.isArray(init)) {\n currentState[name] = init.slice()\n nextState[name] = init.slice()\n } else {\n currentState[name] = nextState[name] = init\n }\n GL_VARIABLES[name] = func\n }\n\n // Dithering\n stateFlag(S_DITHER, GL_DITHER)\n\n // Blending\n stateFlag(S_BLEND_ENABLE, GL_BLEND)\n stateVariable(S_BLEND_COLOR, 'blendColor', [0, 0, 0, 0])\n stateVariable(S_BLEND_EQUATION, 'blendEquationSeparate',\n [GL_FUNC_ADD, GL_FUNC_ADD])\n stateVariable(S_BLEND_FUNC, 'blendFuncSeparate',\n [GL_ONE, GL_ZERO, GL_ONE, GL_ZERO])\n\n // Depth\n stateFlag(S_DEPTH_ENABLE, GL_DEPTH_TEST, true)\n stateVariable(S_DEPTH_FUNC, 'depthFunc', GL_LESS)\n stateVariable(S_DEPTH_RANGE, 'depthRange', [0, 1])\n stateVariable(S_DEPTH_MASK, 'depthMask', true)\n\n // Color mask\n stateVariable(S_COLOR_MASK, S_COLOR_MASK, [true, true, true, true])\n\n // Face culling\n stateFlag(S_CULL_ENABLE, GL_CULL_FACE)\n stateVariable(S_CULL_FACE, 'cullFace', GL_BACK)\n\n // Front face orientation\n stateVariable(S_FRONT_FACE, S_FRONT_FACE, GL_CCW)\n\n // Line width\n stateVariable(S_LINE_WIDTH, S_LINE_WIDTH, 1)\n\n // Polygon offset\n stateFlag(S_POLYGON_OFFSET_ENABLE, GL_POLYGON_OFFSET_FILL)\n stateVariable(S_POLYGON_OFFSET_OFFSET, 'polygonOffset', [0, 0])\n\n // Sample coverage\n stateFlag(S_SAMPLE_ALPHA, GL_SAMPLE_ALPHA_TO_COVERAGE)\n stateFlag(S_SAMPLE_ENABLE, GL_SAMPLE_COVERAGE)\n stateVariable(S_SAMPLE_COVERAGE, 'sampleCoverage', [1, false])\n\n // Stencil\n stateFlag(S_STENCIL_ENABLE, GL_STENCIL_TEST)\n stateVariable(S_STENCIL_MASK, 'stencilMask', -1)\n stateVariable(S_STENCIL_FUNC, 'stencilFunc', [GL_ALWAYS, 0, -1])\n stateVariable(S_STENCIL_OPFRONT, 'stencilOpSeparate',\n [GL_FRONT, GL_KEEP, GL_KEEP, GL_KEEP])\n stateVariable(S_STENCIL_OPBACK, 'stencilOpSeparate',\n [GL_BACK, GL_KEEP, GL_KEEP, GL_KEEP])\n\n // Scissor\n stateFlag(S_SCISSOR_ENABLE, GL_SCISSOR_TEST)\n stateVariable(S_SCISSOR_BOX, 'scissor',\n [0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight])\n\n // Viewport\n stateVariable(S_VIEWPORT, S_VIEWPORT,\n [0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight])\n\n // ===================================================\n // ===================================================\n // ENVIRONMENT\n // ===================================================\n // ===================================================\n var sharedState = {\n gl: gl,\n context: contextState,\n strings: stringStore,\n next: nextState,\n current: currentState,\n draw: drawState,\n elements: elementState,\n buffer: bufferState,\n shader: shaderState,\n attributes: attributeState.state,\n vao: attributeState,\n uniforms: uniformState,\n framebuffer: framebufferState,\n extensions: extensions,\n\n timer: timer,\n isBufferArgs: isBufferArgs\n }\n\n var sharedConstants = {\n primTypes: primTypes,\n compareFuncs: compareFuncs,\n blendFuncs: blendFuncs,\n blendEquations: blendEquations,\n stencilOps: stencilOps,\n glTypes: glTypes,\n orientationType: orientationType\n }\n\n check$1.optional(function () {\n sharedState.isArrayLike = isArrayLike\n })\n\n if (extDrawBuffers) {\n sharedConstants.backBuffer = [GL_BACK]\n sharedConstants.drawBuffer = loop(limits.maxDrawbuffers, function (i) {\n if (i === 0) {\n return [0]\n }\n return loop(i, function (j) {\n return GL_COLOR_ATTACHMENT0$2 + j\n })\n })\n }\n\n var drawCallCounter = 0\n function createREGLEnvironment () {\n var env = createEnvironment()\n var link = env.link\n var global = env.global\n env.id = drawCallCounter++\n\n env.batchId = '0'\n\n // link shared state\n var SHARED = link(sharedState)\n var shared = env.shared = {\n props: 'a0'\n }\n Object.keys(sharedState).forEach(function (prop) {\n shared[prop] = global.def(SHARED, '.', prop)\n })\n\n // Inject runtime assertion stuff for debug builds\n check$1.optional(function () {\n env.CHECK = link(check$1)\n env.commandStr = check$1.guessCommand()\n env.command = link(env.commandStr)\n env.assert = function (block, pred, message) {\n block(\n 'if(!(', pred, '))',\n this.CHECK, '.commandRaise(', link(message), ',', this.command, ');')\n }\n\n sharedConstants.invalidBlendCombinations = invalidBlendCombinations\n })\n\n // Copy GL state variables over\n var nextVars = env.next = {}\n var currentVars = env.current = {}\n Object.keys(GL_VARIABLES).forEach(function (variable) {\n if (Array.isArray(currentState[variable])) {\n nextVars[variable] = global.def(shared.next, '.', variable)\n currentVars[variable] = global.def(shared.current, '.', variable)\n }\n })\n\n // Initialize shared constants\n var constants = env.constants = {}\n Object.keys(sharedConstants).forEach(function (name) {\n constants[name] = global.def(JSON.stringify(sharedConstants[name]))\n })\n\n // Helper function for calling a block\n env.invoke = function (block, x) {\n switch (x.type) {\n case DYN_FUNC$1:\n var argList = [\n 'this',\n shared.context,\n shared.props,\n env.batchId\n ]\n return block.def(\n link(x.data), '.call(',\n argList.slice(0, Math.max(x.data.length + 1, 4)),\n ')')\n case DYN_PROP$1:\n return block.def(shared.props, x.data)\n case DYN_CONTEXT$1:\n return block.def(shared.context, x.data)\n case DYN_STATE$1:\n return block.def('this', x.data)\n case DYN_THUNK:\n x.data.append(env, block)\n return x.data.ref\n case DYN_CONSTANT$1:\n return x.data.toString()\n case DYN_ARRAY$1:\n return x.data.map(function (y) {\n return env.invoke(block, y)\n })\n }\n }\n\n env.attribCache = {}\n\n var scopeAttribs = {}\n env.scopeAttrib = function (name) {\n var id = stringStore.id(name)\n if (id in scopeAttribs) {\n return scopeAttribs[id]\n }\n var binding = attributeState.scope[id]\n if (!binding) {\n binding = attributeState.scope[id] = new AttributeRecord()\n }\n var result = scopeAttribs[id] = link(binding)\n return result\n }\n\n return env\n }\n\n // ===================================================\n // ===================================================\n // PARSING\n // ===================================================\n // ===================================================\n function parseProfile (options) {\n var staticOptions = options.static\n var dynamicOptions = options.dynamic\n\n var profileEnable\n if (S_PROFILE in staticOptions) {\n var value = !!staticOptions[S_PROFILE]\n profileEnable = createStaticDecl(function (env, scope) {\n return value\n })\n profileEnable.enable = value\n } else if (S_PROFILE in dynamicOptions) {\n var dyn = dynamicOptions[S_PROFILE]\n profileEnable = createDynamicDecl(dyn, function (env, scope) {\n return env.invoke(scope, dyn)\n })\n }\n\n return profileEnable\n }\n\n function parseFramebuffer (options, env) {\n var staticOptions = options.static\n var dynamicOptions = options.dynamic\n\n if (S_FRAMEBUFFER in staticOptions) {\n var framebuffer = staticOptions[S_FRAMEBUFFER]\n if (framebuffer) {\n framebuffer = framebufferState.getFramebuffer(framebuffer)\n check$1.command(framebuffer, 'invalid framebuffer object')\n return createStaticDecl(function (env, block) {\n var FRAMEBUFFER = env.link(framebuffer)\n var shared = env.shared\n block.set(\n shared.framebuffer,\n '.next',\n FRAMEBUFFER)\n var CONTEXT = shared.context\n block.set(\n CONTEXT,\n '.' + S_FRAMEBUFFER_WIDTH,\n FRAMEBUFFER + '.width')\n block.set(\n CONTEXT,\n '.' + S_FRAMEBUFFER_HEIGHT,\n FRAMEBUFFER + '.height')\n return FRAMEBUFFER\n })\n } else {\n return createStaticDecl(function (env, scope) {\n var shared = env.shared\n scope.set(\n shared.framebuffer,\n '.next',\n 'null')\n var CONTEXT = shared.context\n scope.set(\n CONTEXT,\n '.' + S_FRAMEBUFFER_WIDTH,\n CONTEXT + '.' + S_DRAWINGBUFFER_WIDTH)\n scope.set(\n CONTEXT,\n '.' + S_FRAMEBUFFER_HEIGHT,\n CONTEXT + '.' + S_DRAWINGBUFFER_HEIGHT)\n return 'null'\n })\n }\n } else if (S_FRAMEBUFFER in dynamicOptions) {\n var dyn = dynamicOptions[S_FRAMEBUFFER]\n return createDynamicDecl(dyn, function (env, scope) {\n var FRAMEBUFFER_FUNC = env.invoke(scope, dyn)\n var shared = env.shared\n var FRAMEBUFFER_STATE = shared.framebuffer\n var FRAMEBUFFER = scope.def(\n FRAMEBUFFER_STATE, '.getFramebuffer(', FRAMEBUFFER_FUNC, ')')\n\n check$1.optional(function () {\n env.assert(scope,\n '!' + FRAMEBUFFER_FUNC + '||' + FRAMEBUFFER,\n 'invalid framebuffer object')\n })\n\n scope.set(\n FRAMEBUFFER_STATE,\n '.next',\n FRAMEBUFFER)\n var CONTEXT = shared.context\n scope.set(\n CONTEXT,\n '.' + S_FRAMEBUFFER_WIDTH,\n FRAMEBUFFER + '?' + FRAMEBUFFER + '.width:' +\n CONTEXT + '.' + S_DRAWINGBUFFER_WIDTH)\n scope.set(\n CONTEXT,\n '.' + S_FRAMEBUFFER_HEIGHT,\n FRAMEBUFFER +\n '?' + FRAMEBUFFER + '.height:' +\n CONTEXT + '.' + S_DRAWINGBUFFER_HEIGHT)\n return FRAMEBUFFER\n })\n } else {\n return null\n }\n }\n\n function parseViewportScissor (options, framebuffer, env) {\n var staticOptions = options.static\n var dynamicOptions = options.dynamic\n\n function parseBox (param) {\n if (param in staticOptions) {\n var box = staticOptions[param]\n check$1.commandType(box, 'object', 'invalid ' + param, env.commandStr)\n\n var isStatic = true\n var x = box.x | 0\n var y = box.y | 0\n var w, h\n if ('width' in box) {\n w = box.width | 0\n check$1.command(w >= 0, 'invalid ' + param, env.commandStr)\n } else {\n isStatic = false\n }\n if ('height' in box) {\n h = box.height | 0\n check$1.command(h >= 0, 'invalid ' + param, env.commandStr)\n } else {\n isStatic = false\n }\n\n return new Declaration(\n !isStatic && framebuffer && framebuffer.thisDep,\n !isStatic && framebuffer && framebuffer.contextDep,\n !isStatic && framebuffer && framebuffer.propDep,\n function (env, scope) {\n var CONTEXT = env.shared.context\n var BOX_W = w\n if (!('width' in box)) {\n BOX_W = scope.def(CONTEXT, '.', S_FRAMEBUFFER_WIDTH, '-', x)\n }\n var BOX_H = h\n if (!('height' in box)) {\n BOX_H = scope.def(CONTEXT, '.', S_FRAMEBUFFER_HEIGHT, '-', y)\n }\n return [x, y, BOX_W, BOX_H]\n })\n } else if (param in dynamicOptions) {\n var dynBox = dynamicOptions[param]\n var result = createDynamicDecl(dynBox, function (env, scope) {\n var BOX = env.invoke(scope, dynBox)\n\n check$1.optional(function () {\n env.assert(scope,\n BOX + '&&typeof ' + BOX + '===\"object\"',\n 'invalid ' + param)\n })\n\n var CONTEXT = env.shared.context\n var BOX_X = scope.def(BOX, '.x|0')\n var BOX_Y = scope.def(BOX, '.y|0')\n var BOX_W = scope.def(\n '\"width\" in ', BOX, '?', BOX, '.width|0:',\n '(', CONTEXT, '.', S_FRAMEBUFFER_WIDTH, '-', BOX_X, ')')\n var BOX_H = scope.def(\n '\"height\" in ', BOX, '?', BOX, '.height|0:',\n '(', CONTEXT, '.', S_FRAMEBUFFER_HEIGHT, '-', BOX_Y, ')')\n\n check$1.optional(function () {\n env.assert(scope,\n BOX_W + '>=0&&' +\n BOX_H + '>=0',\n 'invalid ' + param)\n })\n\n return [BOX_X, BOX_Y, BOX_W, BOX_H]\n })\n if (framebuffer) {\n result.thisDep = result.thisDep || framebuffer.thisDep\n result.contextDep = result.contextDep || framebuffer.contextDep\n result.propDep = result.propDep || framebuffer.propDep\n }\n return result\n } else if (framebuffer) {\n return new Declaration(\n framebuffer.thisDep,\n framebuffer.contextDep,\n framebuffer.propDep,\n function (env, scope) {\n var CONTEXT = env.shared.context\n return [\n 0, 0,\n scope.def(CONTEXT, '.', S_FRAMEBUFFER_WIDTH),\n scope.def(CONTEXT, '.', S_FRAMEBUFFER_HEIGHT)]\n })\n } else {\n return null\n }\n }\n\n var viewport = parseBox(S_VIEWPORT)\n\n if (viewport) {\n var prevViewport = viewport\n viewport = new Declaration(\n viewport.thisDep,\n viewport.contextDep,\n viewport.propDep,\n function (env, scope) {\n var VIEWPORT = prevViewport.append(env, scope)\n var CONTEXT = env.shared.context\n scope.set(\n CONTEXT,\n '.' + S_VIEWPORT_WIDTH,\n VIEWPORT[2])\n scope.set(\n CONTEXT,\n '.' + S_VIEWPORT_HEIGHT,\n VIEWPORT[3])\n return VIEWPORT\n })\n }\n\n return {\n viewport: viewport,\n scissor_box: parseBox(S_SCISSOR_BOX)\n }\n }\n\n function parseAttribLocations (options, attributes) {\n var staticOptions = options.static\n var staticProgram =\n typeof staticOptions[S_FRAG] === 'string' &&\n typeof staticOptions[S_VERT] === 'string'\n if (staticProgram) {\n if (Object.keys(attributes.dynamic).length > 0) {\n return null\n }\n var staticAttributes = attributes.static\n var sAttributes = Object.keys(staticAttributes)\n if (sAttributes.length > 0 && typeof staticAttributes[sAttributes[0]] === 'number') {\n var bindings = []\n for (var i = 0; i < sAttributes.length; ++i) {\n check$1(typeof staticAttributes[sAttributes[i]] === 'number', 'must specify all vertex attribute locations when using vaos')\n bindings.push([staticAttributes[sAttributes[i]] | 0, sAttributes[i]])\n }\n return bindings\n }\n }\n return null\n }\n\n function parseProgram (options, env, attribLocations) {\n var staticOptions = options.static\n var dynamicOptions = options.dynamic\n\n function parseShader (name) {\n if (name in staticOptions) {\n var id = stringStore.id(staticOptions[name])\n check$1.optional(function () {\n shaderState.shader(shaderType[name], id, check$1.guessCommand())\n })\n var result = createStaticDecl(function () {\n return id\n })\n result.id = id\n return result\n } else if (name in dynamicOptions) {\n var dyn = dynamicOptions[name]\n return createDynamicDecl(dyn, function (env, scope) {\n var str = env.invoke(scope, dyn)\n var id = scope.def(env.shared.strings, '.id(', str, ')')\n check$1.optional(function () {\n scope(\n env.shared.shader, '.shader(',\n shaderType[name], ',',\n id, ',',\n env.command, ');')\n })\n return id\n })\n }\n return null\n }\n\n var frag = parseShader(S_FRAG)\n var vert = parseShader(S_VERT)\n\n var program = null\n var progVar\n if (isStatic(frag) && isStatic(vert)) {\n program = shaderState.program(vert.id, frag.id, null, attribLocations)\n progVar = createStaticDecl(function (env, scope) {\n return env.link(program)\n })\n } else {\n progVar = new Declaration(\n (frag && frag.thisDep) || (vert && vert.thisDep),\n (frag && frag.contextDep) || (vert && vert.contextDep),\n (frag && frag.propDep) || (vert && vert.propDep),\n function (env, scope) {\n var SHADER_STATE = env.shared.shader\n var fragId\n if (frag) {\n fragId = frag.append(env, scope)\n } else {\n fragId = scope.def(SHADER_STATE, '.', S_FRAG)\n }\n var vertId\n if (vert) {\n vertId = vert.append(env, scope)\n } else {\n vertId = scope.def(SHADER_STATE, '.', S_VERT)\n }\n var progDef = SHADER_STATE + '.program(' + vertId + ',' + fragId\n check$1.optional(function () {\n progDef += ',' + env.command\n })\n return scope.def(progDef + ')')\n })\n }\n\n return {\n frag: frag,\n vert: vert,\n progVar: progVar,\n program: program\n }\n }\n\n function parseDraw (options, env) {\n var staticOptions = options.static\n var dynamicOptions = options.dynamic\n\n // TODO: should use VAO to get default values for offset properties\n // should move vao parse into here and out of the old stuff\n\n var staticDraw = {}\n var vaoActive = false\n\n function parseVAO () {\n if (S_VAO in staticOptions) {\n var vao = staticOptions[S_VAO]\n if (vao !== null && attributeState.getVAO(vao) === null) {\n vao = attributeState.createVAO(vao)\n }\n\n vaoActive = true\n staticDraw.vao = vao\n\n return createStaticDecl(function (env) {\n var vaoRef = attributeState.getVAO(vao)\n if (vaoRef) {\n return env.link(vaoRef)\n } else {\n return 'null'\n }\n })\n } else if (S_VAO in dynamicOptions) {\n vaoActive = true\n var dyn = dynamicOptions[S_VAO]\n return createDynamicDecl(dyn, function (env, scope) {\n var vaoRef = env.invoke(scope, dyn)\n return scope.def(env.shared.vao + '.getVAO(' + vaoRef + ')')\n })\n }\n return null\n }\n\n var vao = parseVAO()\n\n var elementsActive = false\n\n function parseElements () {\n if (S_ELEMENTS in staticOptions) {\n var elements = staticOptions[S_ELEMENTS]\n staticDraw.elements = elements\n if (isBufferArgs(elements)) {\n var e = staticDraw.elements = elementState.create(elements, true)\n elements = elementState.getElements(e)\n elementsActive = true\n } else if (elements) {\n elements = elementState.getElements(elements)\n elementsActive = true\n check$1.command(elements, 'invalid elements', env.commandStr)\n }\n\n var result = createStaticDecl(function (env, scope) {\n if (elements) {\n var result = env.link(elements)\n env.ELEMENTS = result\n return result\n }\n env.ELEMENTS = null\n return null\n })\n result.value = elements\n return result\n } else if (S_ELEMENTS in dynamicOptions) {\n elementsActive = true\n\n var dyn = dynamicOptions[S_ELEMENTS]\n return createDynamicDecl(dyn, function (env, scope) {\n var shared = env.shared\n\n var IS_BUFFER_ARGS = shared.isBufferArgs\n var ELEMENT_STATE = shared.elements\n\n var elementDefn = env.invoke(scope, dyn)\n var elements = scope.def('null')\n var elementStream = scope.def(IS_BUFFER_ARGS, '(', elementDefn, ')')\n\n var ifte = env.cond(elementStream)\n .then(elements, '=', ELEMENT_STATE, '.createStream(', elementDefn, ');')\n .else(elements, '=', ELEMENT_STATE, '.getElements(', elementDefn, ');')\n\n check$1.optional(function () {\n env.assert(ifte.else,\n '!' + elementDefn + '||' + elements,\n 'invalid elements')\n })\n\n scope.entry(ifte)\n scope.exit(\n env.cond(elementStream)\n .then(ELEMENT_STATE, '.destroyStream(', elements, ');'))\n\n env.ELEMENTS = elements\n\n return elements\n })\n } else if (vaoActive) {\n return new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function (env, scope) {\n return scope.def(env.shared.vao + '.currentVAO?' + env.shared.elements + '.getElements(' + env.shared.vao + '.currentVAO.elements):null')\n })\n }\n return null\n }\n\n var elements = parseElements()\n\n function parsePrimitive () {\n if (S_PRIMITIVE in staticOptions) {\n var primitive = staticOptions[S_PRIMITIVE]\n staticDraw.primitive = primitive\n check$1.commandParameter(primitive, primTypes, 'invalid primitve', env.commandStr)\n return createStaticDecl(function (env, scope) {\n return primTypes[primitive]\n })\n } else if (S_PRIMITIVE in dynamicOptions) {\n var dynPrimitive = dynamicOptions[S_PRIMITIVE]\n return createDynamicDecl(dynPrimitive, function (env, scope) {\n var PRIM_TYPES = env.constants.primTypes\n var prim = env.invoke(scope, dynPrimitive)\n check$1.optional(function () {\n env.assert(scope,\n prim + ' in ' + PRIM_TYPES,\n 'invalid primitive, must be one of ' + Object.keys(primTypes))\n })\n return scope.def(PRIM_TYPES, '[', prim, ']')\n })\n } else if (elementsActive) {\n if (isStatic(elements)) {\n if (elements.value) {\n return createStaticDecl(function (env, scope) {\n return scope.def(env.ELEMENTS, '.primType')\n })\n } else {\n return createStaticDecl(function () {\n return GL_TRIANGLES$1\n })\n }\n } else {\n return new Declaration(\n elements.thisDep,\n elements.contextDep,\n elements.propDep,\n function (env, scope) {\n var elements = env.ELEMENTS\n return scope.def(elements, '?', elements, '.primType:', GL_TRIANGLES$1)\n })\n }\n } else if (vaoActive) {\n return new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function (env, scope) {\n return scope.def(env.shared.vao + '.currentVAO?' + env.shared.vao + '.currentVAO.primitive:' + GL_TRIANGLES$1)\n })\n }\n return null\n }\n\n function parseParam (param, isOffset) {\n if (param in staticOptions) {\n var value = staticOptions[param] | 0\n if (isOffset) {\n staticDraw.offset = value\n } else {\n staticDraw.instances = value\n }\n check$1.command(!isOffset || value >= 0, 'invalid ' + param, env.commandStr)\n return createStaticDecl(function (env, scope) {\n if (isOffset) {\n env.OFFSET = value\n }\n return value\n })\n } else if (param in dynamicOptions) {\n var dynValue = dynamicOptions[param]\n return createDynamicDecl(dynValue, function (env, scope) {\n var result = env.invoke(scope, dynValue)\n if (isOffset) {\n env.OFFSET = result\n check$1.optional(function () {\n env.assert(scope,\n result + '>=0',\n 'invalid ' + param)\n })\n }\n return result\n })\n } else if (isOffset) {\n if (elementsActive) {\n return createStaticDecl(function (env, scope) {\n env.OFFSET = 0\n return 0\n })\n } else if (vaoActive) {\n return new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function (env, scope) {\n return scope.def(env.shared.vao + '.currentVAO?' + env.shared.vao + '.currentVAO.offset:0')\n })\n }\n } else if (vaoActive) {\n return new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function (env, scope) {\n return scope.def(env.shared.vao + '.currentVAO?' + env.shared.vao + '.currentVAO.instances:-1')\n })\n }\n return null\n }\n\n var OFFSET = parseParam(S_OFFSET, true)\n\n function parseVertCount () {\n if (S_COUNT in staticOptions) {\n var count = staticOptions[S_COUNT] | 0\n staticDraw.count = count\n check$1.command(\n typeof count === 'number' && count >= 0, 'invalid vertex count', env.commandStr)\n return createStaticDecl(function () {\n return count\n })\n } else if (S_COUNT in dynamicOptions) {\n var dynCount = dynamicOptions[S_COUNT]\n return createDynamicDecl(dynCount, function (env, scope) {\n var result = env.invoke(scope, dynCount)\n check$1.optional(function () {\n env.assert(scope,\n 'typeof ' + result + '===\"number\"&&' +\n result + '>=0&&' +\n result + '===(' + result + '|0)',\n 'invalid vertex count')\n })\n return result\n })\n } else if (elementsActive) {\n if (isStatic(elements)) {\n if (elements) {\n if (OFFSET) {\n return new Declaration(\n OFFSET.thisDep,\n OFFSET.contextDep,\n OFFSET.propDep,\n function (env, scope) {\n var result = scope.def(\n env.ELEMENTS, '.vertCount-', env.OFFSET)\n\n check$1.optional(function () {\n env.assert(scope,\n result + '>=0',\n 'invalid vertex offset/element buffer too small')\n })\n\n return result\n })\n } else {\n return createStaticDecl(function (env, scope) {\n return scope.def(env.ELEMENTS, '.vertCount')\n })\n }\n } else {\n var result = createStaticDecl(function () {\n return -1\n })\n check$1.optional(function () {\n result.MISSING = true\n })\n return result\n }\n } else {\n var variable = new Declaration(\n elements.thisDep || OFFSET.thisDep,\n elements.contextDep || OFFSET.contextDep,\n elements.propDep || OFFSET.propDep,\n function (env, scope) {\n var elements = env.ELEMENTS\n if (env.OFFSET) {\n return scope.def(elements, '?', elements, '.vertCount-',\n env.OFFSET, ':-1')\n }\n return scope.def(elements, '?', elements, '.vertCount:-1')\n })\n check$1.optional(function () {\n variable.DYNAMIC = true\n })\n return variable\n }\n } else if (vaoActive) {\n var countVariable = new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function (env, scope) {\n return scope.def(env.shared.vao, '.currentVAO?', env.shared.vao, '.currentVAO.count:-1')\n })\n return countVariable\n }\n return null\n }\n\n var primitive = parsePrimitive()\n var count = parseVertCount()\n var instances = parseParam(S_INSTANCES, false)\n\n return {\n elements: elements,\n primitive: primitive,\n count: count,\n instances: instances,\n offset: OFFSET,\n vao: vao,\n\n vaoActive: vaoActive,\n elementsActive: elementsActive,\n\n // static draw props\n static: staticDraw\n }\n }\n\n function parseGLState (options, env) {\n var staticOptions = options.static\n var dynamicOptions = options.dynamic\n\n var STATE = {}\n\n GL_STATE_NAMES.forEach(function (prop) {\n var param = propName(prop)\n\n function parseParam (parseStatic, parseDynamic) {\n if (prop in staticOptions) {\n var value = parseStatic(staticOptions[prop])\n STATE[param] = createStaticDecl(function () {\n return value\n })\n } else if (prop in dynamicOptions) {\n var dyn = dynamicOptions[prop]\n STATE[param] = createDynamicDecl(dyn, function (env, scope) {\n return parseDynamic(env, scope, env.invoke(scope, dyn))\n })\n }\n }\n\n switch (prop) {\n case S_CULL_ENABLE:\n case S_BLEND_ENABLE:\n case S_DITHER:\n case S_STENCIL_ENABLE:\n case S_DEPTH_ENABLE:\n case S_SCISSOR_ENABLE:\n case S_POLYGON_OFFSET_ENABLE:\n case S_SAMPLE_ALPHA:\n case S_SAMPLE_ENABLE:\n case S_DEPTH_MASK:\n return parseParam(\n function (value) {\n check$1.commandType(value, 'boolean', prop, env.commandStr)\n return value\n },\n function (env, scope, value) {\n check$1.optional(function () {\n env.assert(scope,\n 'typeof ' + value + '===\"boolean\"',\n 'invalid flag ' + prop, env.commandStr)\n })\n return value\n })\n\n case S_DEPTH_FUNC:\n return parseParam(\n function (value) {\n check$1.commandParameter(value, compareFuncs, 'invalid ' + prop, env.commandStr)\n return compareFuncs[value]\n },\n function (env, scope, value) {\n var COMPARE_FUNCS = env.constants.compareFuncs\n check$1.optional(function () {\n env.assert(scope,\n value + ' in ' + COMPARE_FUNCS,\n 'invalid ' + prop + ', must be one of ' + Object.keys(compareFuncs))\n })\n return scope.def(COMPARE_FUNCS, '[', value, ']')\n })\n\n case S_DEPTH_RANGE:\n return parseParam(\n function (value) {\n check$1.command(\n isArrayLike(value) &&\n value.length === 2 &&\n typeof value[0] === 'number' &&\n typeof value[1] === 'number' &&\n value[0] <= value[1],\n 'depth range is 2d array',\n env.commandStr)\n return value\n },\n function (env, scope, value) {\n check$1.optional(function () {\n env.assert(scope,\n env.shared.isArrayLike + '(' + value + ')&&' +\n value + '.length===2&&' +\n 'typeof ' + value + '[0]===\"number\"&&' +\n 'typeof ' + value + '[1]===\"number\"&&' +\n value + '[0]<=' + value + '[1]',\n 'depth range must be a 2d array')\n })\n\n var Z_NEAR = scope.def('+', value, '[0]')\n var Z_FAR = scope.def('+', value, '[1]')\n return [Z_NEAR, Z_FAR]\n })\n\n case S_BLEND_FUNC:\n return parseParam(\n function (value) {\n check$1.commandType(value, 'object', 'blend.func', env.commandStr)\n var srcRGB = ('srcRGB' in value ? value.srcRGB : value.src)\n var srcAlpha = ('srcAlpha' in value ? value.srcAlpha : value.src)\n var dstRGB = ('dstRGB' in value ? value.dstRGB : value.dst)\n var dstAlpha = ('dstAlpha' in value ? value.dstAlpha : value.dst)\n check$1.commandParameter(srcRGB, blendFuncs, param + '.srcRGB', env.commandStr)\n check$1.commandParameter(srcAlpha, blendFuncs, param + '.srcAlpha', env.commandStr)\n check$1.commandParameter(dstRGB, blendFuncs, param + '.dstRGB', env.commandStr)\n check$1.commandParameter(dstAlpha, blendFuncs, param + '.dstAlpha', env.commandStr)\n\n check$1.command(\n (invalidBlendCombinations.indexOf(srcRGB + ', ' + dstRGB) === -1),\n 'unallowed blending combination (srcRGB, dstRGB) = (' + srcRGB + ', ' + dstRGB + ')', env.commandStr)\n\n return [\n blendFuncs[srcRGB],\n blendFuncs[dstRGB],\n blendFuncs[srcAlpha],\n blendFuncs[dstAlpha]\n ]\n },\n function (env, scope, value) {\n var BLEND_FUNCS = env.constants.blendFuncs\n\n check$1.optional(function () {\n env.assert(scope,\n value + '&&typeof ' + value + '===\"object\"',\n 'invalid blend func, must be an object')\n })\n\n function read (prefix, suffix) {\n var func = scope.def(\n '\"', prefix, suffix, '\" in ', value,\n '?', value, '.', prefix, suffix,\n ':', value, '.', prefix)\n\n check$1.optional(function () {\n env.assert(scope,\n func + ' in ' + BLEND_FUNCS,\n 'invalid ' + prop + '.' + prefix + suffix + ', must be one of ' + Object.keys(blendFuncs))\n })\n\n return func\n }\n\n var srcRGB = read('src', 'RGB')\n var dstRGB = read('dst', 'RGB')\n\n check$1.optional(function () {\n var INVALID_BLEND_COMBINATIONS = env.constants.invalidBlendCombinations\n\n env.assert(scope,\n INVALID_BLEND_COMBINATIONS +\n '.indexOf(' + srcRGB + '+\", \"+' + dstRGB + ') === -1 ',\n 'unallowed blending combination for (srcRGB, dstRGB)'\n )\n })\n\n var SRC_RGB = scope.def(BLEND_FUNCS, '[', srcRGB, ']')\n var SRC_ALPHA = scope.def(BLEND_FUNCS, '[', read('src', 'Alpha'), ']')\n var DST_RGB = scope.def(BLEND_FUNCS, '[', dstRGB, ']')\n var DST_ALPHA = scope.def(BLEND_FUNCS, '[', read('dst', 'Alpha'), ']')\n\n return [SRC_RGB, DST_RGB, SRC_ALPHA, DST_ALPHA]\n })\n\n case S_BLEND_EQUATION:\n return parseParam(\n function (value) {\n if (typeof value === 'string') {\n check$1.commandParameter(value, blendEquations, 'invalid ' + prop, env.commandStr)\n return [\n blendEquations[value],\n blendEquations[value]\n ]\n } else if (typeof value === 'object') {\n check$1.commandParameter(\n value.rgb, blendEquations, prop + '.rgb', env.commandStr)\n check$1.commandParameter(\n value.alpha, blendEquations, prop + '.alpha', env.commandStr)\n return [\n blendEquations[value.rgb],\n blendEquations[value.alpha]\n ]\n } else {\n check$1.commandRaise('invalid blend.equation', env.commandStr)\n }\n },\n function (env, scope, value) {\n var BLEND_EQUATIONS = env.constants.blendEquations\n\n var RGB = scope.def()\n var ALPHA = scope.def()\n\n var ifte = env.cond('typeof ', value, '===\"string\"')\n\n check$1.optional(function () {\n function checkProp (block, name, value) {\n env.assert(block,\n value + ' in ' + BLEND_EQUATIONS,\n 'invalid ' + name + ', must be one of ' + Object.keys(blendEquations))\n }\n checkProp(ifte.then, prop, value)\n\n env.assert(ifte.else,\n value + '&&typeof ' + value + '===\"object\"',\n 'invalid ' + prop)\n checkProp(ifte.else, prop + '.rgb', value + '.rgb')\n checkProp(ifte.else, prop + '.alpha', value + '.alpha')\n })\n\n ifte.then(\n RGB, '=', ALPHA, '=', BLEND_EQUATIONS, '[', value, '];')\n ifte.else(\n RGB, '=', BLEND_EQUATIONS, '[', value, '.rgb];',\n ALPHA, '=', BLEND_EQUATIONS, '[', value, '.alpha];')\n\n scope(ifte)\n\n return [RGB, ALPHA]\n })\n\n case S_BLEND_COLOR:\n return parseParam(\n function (value) {\n check$1.command(\n isArrayLike(value) &&\n value.length === 4,\n 'blend.color must be a 4d array', env.commandStr)\n return loop(4, function (i) {\n return +value[i]\n })\n },\n function (env, scope, value) {\n check$1.optional(function () {\n env.assert(scope,\n env.shared.isArrayLike + '(' + value + ')&&' +\n value + '.length===4',\n 'blend.color must be a 4d array')\n })\n return loop(4, function (i) {\n return scope.def('+', value, '[', i, ']')\n })\n })\n\n case S_STENCIL_MASK:\n return parseParam(\n function (value) {\n check$1.commandType(value, 'number', param, env.commandStr)\n return value | 0\n },\n function (env, scope, value) {\n check$1.optional(function () {\n env.assert(scope,\n 'typeof ' + value + '===\"number\"',\n 'invalid stencil.mask')\n })\n return scope.def(value, '|0')\n })\n\n case S_STENCIL_FUNC:\n return parseParam(\n function (value) {\n check$1.commandType(value, 'object', param, env.commandStr)\n var cmp = value.cmp || 'keep'\n var ref = value.ref || 0\n var mask = 'mask' in value ? value.mask : -1\n check$1.commandParameter(cmp, compareFuncs, prop + '.cmp', env.commandStr)\n check$1.commandType(ref, 'number', prop + '.ref', env.commandStr)\n check$1.commandType(mask, 'number', prop + '.mask', env.commandStr)\n return [\n compareFuncs[cmp],\n ref,\n mask\n ]\n },\n function (env, scope, value) {\n var COMPARE_FUNCS = env.constants.compareFuncs\n check$1.optional(function () {\n function assert () {\n env.assert(scope,\n Array.prototype.join.call(arguments, ''),\n 'invalid stencil.func')\n }\n assert(value + '&&typeof ', value, '===\"object\"')\n assert('!(\"cmp\" in ', value, ')||(',\n value, '.cmp in ', COMPARE_FUNCS, ')')\n })\n var cmp = scope.def(\n '\"cmp\" in ', value,\n '?', COMPARE_FUNCS, '[', value, '.cmp]',\n ':', GL_KEEP)\n var ref = scope.def(value, '.ref|0')\n var mask = scope.def(\n '\"mask\" in ', value,\n '?', value, '.mask|0:-1')\n return [cmp, ref, mask]\n })\n\n case S_STENCIL_OPFRONT:\n case S_STENCIL_OPBACK:\n return parseParam(\n function (value) {\n check$1.commandType(value, 'object', param, env.commandStr)\n var fail = value.fail || 'keep'\n var zfail = value.zfail || 'keep'\n var zpass = value.zpass || 'keep'\n check$1.commandParameter(fail, stencilOps, prop + '.fail', env.commandStr)\n check$1.commandParameter(zfail, stencilOps, prop + '.zfail', env.commandStr)\n check$1.commandParameter(zpass, stencilOps, prop + '.zpass', env.commandStr)\n return [\n prop === S_STENCIL_OPBACK ? GL_BACK : GL_FRONT,\n stencilOps[fail],\n stencilOps[zfail],\n stencilOps[zpass]\n ]\n },\n function (env, scope, value) {\n var STENCIL_OPS = env.constants.stencilOps\n\n check$1.optional(function () {\n env.assert(scope,\n value + '&&typeof ' + value + '===\"object\"',\n 'invalid ' + prop)\n })\n\n function read (name) {\n check$1.optional(function () {\n env.assert(scope,\n '!(\"' + name + '\" in ' + value + ')||' +\n '(' + value + '.' + name + ' in ' + STENCIL_OPS + ')',\n 'invalid ' + prop + '.' + name + ', must be one of ' + Object.keys(stencilOps))\n })\n\n return scope.def(\n '\"', name, '\" in ', value,\n '?', STENCIL_OPS, '[', value, '.', name, ']:',\n GL_KEEP)\n }\n\n return [\n prop === S_STENCIL_OPBACK ? GL_BACK : GL_FRONT,\n read('fail'),\n read('zfail'),\n read('zpass')\n ]\n })\n\n case S_POLYGON_OFFSET_OFFSET:\n return parseParam(\n function (value) {\n check$1.commandType(value, 'object', param, env.commandStr)\n var factor = value.factor | 0\n var units = value.units | 0\n check$1.commandType(factor, 'number', param + '.factor', env.commandStr)\n check$1.commandType(units, 'number', param + '.units', env.commandStr)\n return [factor, units]\n },\n function (env, scope, value) {\n check$1.optional(function () {\n env.assert(scope,\n value + '&&typeof ' + value + '===\"object\"',\n 'invalid ' + prop)\n })\n\n var FACTOR = scope.def(value, '.factor|0')\n var UNITS = scope.def(value, '.units|0')\n\n return [FACTOR, UNITS]\n })\n\n case S_CULL_FACE:\n return parseParam(\n function (value) {\n var face = 0\n if (value === 'front') {\n face = GL_FRONT\n } else if (value === 'back') {\n face = GL_BACK\n }\n check$1.command(!!face, param, env.commandStr)\n return face\n },\n function (env, scope, value) {\n check$1.optional(function () {\n env.assert(scope,\n value + '===\"front\"||' +\n value + '===\"back\"',\n 'invalid cull.face')\n })\n return scope.def(value, '===\"front\"?', GL_FRONT, ':', GL_BACK)\n })\n\n case S_LINE_WIDTH:\n return parseParam(\n function (value) {\n check$1.command(\n typeof value === 'number' &&\n value >= limits.lineWidthDims[0] &&\n value <= limits.lineWidthDims[1],\n 'invalid line width, must be a positive number between ' +\n limits.lineWidthDims[0] + ' and ' + limits.lineWidthDims[1], env.commandStr)\n return value\n },\n function (env, scope, value) {\n check$1.optional(function () {\n env.assert(scope,\n 'typeof ' + value + '===\"number\"&&' +\n value + '>=' + limits.lineWidthDims[0] + '&&' +\n value + '<=' + limits.lineWidthDims[1],\n 'invalid line width')\n })\n\n return value\n })\n\n case S_FRONT_FACE:\n return parseParam(\n function (value) {\n check$1.commandParameter(value, orientationType, param, env.commandStr)\n return orientationType[value]\n },\n function (env, scope, value) {\n check$1.optional(function () {\n env.assert(scope,\n value + '===\"cw\"||' +\n value + '===\"ccw\"',\n 'invalid frontFace, must be one of cw,ccw')\n })\n return scope.def(value + '===\"cw\"?' + GL_CW + ':' + GL_CCW)\n })\n\n case S_COLOR_MASK:\n return parseParam(\n function (value) {\n check$1.command(\n isArrayLike(value) && value.length === 4,\n 'color.mask must be length 4 array', env.commandStr)\n return value.map(function (v) { return !!v })\n },\n function (env, scope, value) {\n check$1.optional(function () {\n env.assert(scope,\n env.shared.isArrayLike + '(' + value + ')&&' +\n value + '.length===4',\n 'invalid color.mask')\n })\n return loop(4, function (i) {\n return '!!' + value + '[' + i + ']'\n })\n })\n\n case S_SAMPLE_COVERAGE:\n return parseParam(\n function (value) {\n check$1.command(typeof value === 'object' && value, param, env.commandStr)\n var sampleValue = 'value' in value ? value.value : 1\n var sampleInvert = !!value.invert\n check$1.command(\n typeof sampleValue === 'number' &&\n sampleValue >= 0 && sampleValue <= 1,\n 'sample.coverage.value must be a number between 0 and 1', env.commandStr)\n return [sampleValue, sampleInvert]\n },\n function (env, scope, value) {\n check$1.optional(function () {\n env.assert(scope,\n value + '&&typeof ' + value + '===\"object\"',\n 'invalid sample.coverage')\n })\n var VALUE = scope.def(\n '\"value\" in ', value, '?+', value, '.value:1')\n var INVERT = scope.def('!!', value, '.invert')\n return [VALUE, INVERT]\n })\n }\n })\n\n return STATE\n }\n\n function parseUniforms (uniforms, env) {\n var staticUniforms = uniforms.static\n var dynamicUniforms = uniforms.dynamic\n\n var UNIFORMS = {}\n\n Object.keys(staticUniforms).forEach(function (name) {\n var value = staticUniforms[name]\n var result\n if (typeof value === 'number' ||\n typeof value === 'boolean') {\n result = createStaticDecl(function () {\n return value\n })\n } else if (typeof value === 'function') {\n var reglType = value._reglType\n if (reglType === 'texture2d' ||\n reglType === 'textureCube') {\n result = createStaticDecl(function (env) {\n return env.link(value)\n })\n } else if (reglType === 'framebuffer' ||\n reglType === 'framebufferCube') {\n check$1.command(value.color.length > 0,\n 'missing color attachment for framebuffer sent to uniform \"' + name + '\"', env.commandStr)\n result = createStaticDecl(function (env) {\n return env.link(value.color[0])\n })\n } else {\n check$1.commandRaise('invalid data for uniform \"' + name + '\"', env.commandStr)\n }\n } else if (isArrayLike(value)) {\n result = createStaticDecl(function (env) {\n var ITEM = env.global.def('[',\n loop(value.length, function (i) {\n check$1.command(\n typeof value[i] === 'number' ||\n typeof value[i] === 'boolean',\n 'invalid uniform ' + name, env.commandStr)\n return value[i]\n }), ']')\n return ITEM\n })\n } else {\n check$1.commandRaise('invalid or missing data for uniform \"' + name + '\"', env.commandStr)\n }\n result.value = value\n UNIFORMS[name] = result\n })\n\n Object.keys(dynamicUniforms).forEach(function (key) {\n var dyn = dynamicUniforms[key]\n UNIFORMS[key] = createDynamicDecl(dyn, function (env, scope) {\n return env.invoke(scope, dyn)\n })\n })\n\n return UNIFORMS\n }\n\n function parseAttributes (attributes, env) {\n var staticAttributes = attributes.static\n var dynamicAttributes = attributes.dynamic\n\n var attributeDefs = {}\n\n Object.keys(staticAttributes).forEach(function (attribute) {\n var value = staticAttributes[attribute]\n var id = stringStore.id(attribute)\n\n var record = new AttributeRecord()\n if (isBufferArgs(value)) {\n record.state = ATTRIB_STATE_POINTER\n record.buffer = bufferState.getBuffer(\n bufferState.create(value, GL_ARRAY_BUFFER$2, false, true))\n record.type = 0\n } else {\n var buffer = bufferState.getBuffer(value)\n if (buffer) {\n record.state = ATTRIB_STATE_POINTER\n record.buffer = buffer\n record.type = 0\n } else {\n check$1.command(typeof value === 'object' && value,\n 'invalid data for attribute ' + attribute, env.commandStr)\n if ('constant' in value) {\n var constant = value.constant\n record.buffer = 'null'\n record.state = ATTRIB_STATE_CONSTANT\n if (typeof constant === 'number') {\n record.x = constant\n } else {\n check$1.command(\n isArrayLike(constant) &&\n constant.length > 0 &&\n constant.length <= 4,\n 'invalid constant for attribute ' + attribute, env.commandStr)\n CUTE_COMPONENTS.forEach(function (c, i) {\n if (i < constant.length) {\n record[c] = constant[i]\n }\n })\n }\n } else {\n if (isBufferArgs(value.buffer)) {\n buffer = bufferState.getBuffer(\n bufferState.create(value.buffer, GL_ARRAY_BUFFER$2, false, true))\n } else {\n buffer = bufferState.getBuffer(value.buffer)\n }\n check$1.command(!!buffer, 'missing buffer for attribute \"' + attribute + '\"', env.commandStr)\n\n var offset = value.offset | 0\n check$1.command(offset >= 0,\n 'invalid offset for attribute \"' + attribute + '\"', env.commandStr)\n\n var stride = value.stride | 0\n check$1.command(stride >= 0 && stride < 256,\n 'invalid stride for attribute \"' + attribute + '\", must be integer betweeen [0, 255]', env.commandStr)\n\n var size = value.size | 0\n check$1.command(!('size' in value) || (size > 0 && size <= 4),\n 'invalid size for attribute \"' + attribute + '\", must be 1,2,3,4', env.commandStr)\n\n var normalized = !!value.normalized\n\n var type = 0\n if ('type' in value) {\n check$1.commandParameter(\n value.type, glTypes,\n 'invalid type for attribute ' + attribute, env.commandStr)\n type = glTypes[value.type]\n }\n\n var divisor = value.divisor | 0\n check$1.optional(function () {\n if ('divisor' in value) {\n check$1.command(divisor === 0 || extInstancing,\n 'cannot specify divisor for attribute \"' + attribute + '\", instancing not supported', env.commandStr)\n check$1.command(divisor >= 0,\n 'invalid divisor for attribute \"' + attribute + '\"', env.commandStr)\n }\n\n var command = env.commandStr\n\n var VALID_KEYS = [\n 'buffer',\n 'offset',\n 'divisor',\n 'normalized',\n 'type',\n 'size',\n 'stride'\n ]\n\n Object.keys(value).forEach(function (prop) {\n check$1.command(\n VALID_KEYS.indexOf(prop) >= 0,\n 'unknown parameter \"' + prop + '\" for attribute pointer \"' + attribute + '\" (valid parameters are ' + VALID_KEYS + ')',\n command)\n })\n })\n\n record.buffer = buffer\n record.state = ATTRIB_STATE_POINTER\n record.size = size\n record.normalized = normalized\n record.type = type || buffer.dtype\n record.offset = offset\n record.stride = stride\n record.divisor = divisor\n }\n }\n }\n\n attributeDefs[attribute] = createStaticDecl(function (env, scope) {\n var cache = env.attribCache\n if (id in cache) {\n return cache[id]\n }\n var result = {\n isStream: false\n }\n Object.keys(record).forEach(function (key) {\n result[key] = record[key]\n })\n if (record.buffer) {\n result.buffer = env.link(record.buffer)\n result.type = result.type || (result.buffer + '.dtype')\n }\n cache[id] = result\n return result\n })\n })\n\n Object.keys(dynamicAttributes).forEach(function (attribute) {\n var dyn = dynamicAttributes[attribute]\n\n function appendAttributeCode (env, block) {\n var VALUE = env.invoke(block, dyn)\n\n var shared = env.shared\n var constants = env.constants\n\n var IS_BUFFER_ARGS = shared.isBufferArgs\n var BUFFER_STATE = shared.buffer\n\n // Perform validation on attribute\n check$1.optional(function () {\n env.assert(block,\n VALUE + '&&(typeof ' + VALUE + '===\"object\"||typeof ' +\n VALUE + '===\"function\")&&(' +\n IS_BUFFER_ARGS + '(' + VALUE + ')||' +\n BUFFER_STATE + '.getBuffer(' + VALUE + ')||' +\n BUFFER_STATE + '.getBuffer(' + VALUE + '.buffer)||' +\n IS_BUFFER_ARGS + '(' + VALUE + '.buffer)||' +\n '(\"constant\" in ' + VALUE +\n '&&(typeof ' + VALUE + '.constant===\"number\"||' +\n shared.isArrayLike + '(' + VALUE + '.constant))))',\n 'invalid dynamic attribute \"' + attribute + '\"')\n })\n\n // allocate names for result\n var result = {\n isStream: block.def(false)\n }\n var defaultRecord = new AttributeRecord()\n defaultRecord.state = ATTRIB_STATE_POINTER\n Object.keys(defaultRecord).forEach(function (key) {\n result[key] = block.def('' + defaultRecord[key])\n })\n\n var BUFFER = result.buffer\n var TYPE = result.type\n block(\n 'if(', IS_BUFFER_ARGS, '(', VALUE, ')){',\n result.isStream, '=true;',\n BUFFER, '=', BUFFER_STATE, '.createStream(', GL_ARRAY_BUFFER$2, ',', VALUE, ');',\n TYPE, '=', BUFFER, '.dtype;',\n '}else{',\n BUFFER, '=', BUFFER_STATE, '.getBuffer(', VALUE, ');',\n 'if(', BUFFER, '){',\n TYPE, '=', BUFFER, '.dtype;',\n '}else if(\"constant\" in ', VALUE, '){',\n result.state, '=', ATTRIB_STATE_CONSTANT, ';',\n 'if(typeof ' + VALUE + '.constant === \"number\"){',\n result[CUTE_COMPONENTS[0]], '=', VALUE, '.constant;',\n CUTE_COMPONENTS.slice(1).map(function (n) {\n return result[n]\n }).join('='), '=0;',\n '}else{',\n CUTE_COMPONENTS.map(function (name, i) {\n return (\n result[name] + '=' + VALUE + '.constant.length>' + i +\n '?' + VALUE + '.constant[' + i + ']:0;'\n )\n }).join(''),\n '}}else{',\n 'if(', IS_BUFFER_ARGS, '(', VALUE, '.buffer)){',\n BUFFER, '=', BUFFER_STATE, '.createStream(', GL_ARRAY_BUFFER$2, ',', VALUE, '.buffer);',\n '}else{',\n BUFFER, '=', BUFFER_STATE, '.getBuffer(', VALUE, '.buffer);',\n '}',\n TYPE, '=\"type\" in ', VALUE, '?',\n constants.glTypes, '[', VALUE, '.type]:', BUFFER, '.dtype;',\n result.normalized, '=!!', VALUE, '.normalized;')\n function emitReadRecord (name) {\n block(result[name], '=', VALUE, '.', name, '|0;')\n }\n emitReadRecord('size')\n emitReadRecord('offset')\n emitReadRecord('stride')\n emitReadRecord('divisor')\n\n block('}}')\n\n block.exit(\n 'if(', result.isStream, '){',\n BUFFER_STATE, '.destroyStream(', BUFFER, ');',\n '}')\n\n return result\n }\n\n attributeDefs[attribute] = createDynamicDecl(dyn, appendAttributeCode)\n })\n\n return attributeDefs\n }\n\n function parseContext (context) {\n var staticContext = context.static\n var dynamicContext = context.dynamic\n var result = {}\n\n Object.keys(staticContext).forEach(function (name) {\n var value = staticContext[name]\n result[name] = createStaticDecl(function (env, scope) {\n if (typeof value === 'number' || typeof value === 'boolean') {\n return '' + value\n } else {\n return env.link(value)\n }\n })\n })\n\n Object.keys(dynamicContext).forEach(function (name) {\n var dyn = dynamicContext[name]\n result[name] = createDynamicDecl(dyn, function (env, scope) {\n return env.invoke(scope, dyn)\n })\n })\n\n return result\n }\n\n function parseArguments (options, attributes, uniforms, context, env) {\n var staticOptions = options.static\n var dynamicOptions = options.dynamic\n\n check$1.optional(function () {\n var KEY_NAMES = [\n S_FRAMEBUFFER,\n S_VERT,\n S_FRAG,\n S_ELEMENTS,\n S_PRIMITIVE,\n S_OFFSET,\n S_COUNT,\n S_INSTANCES,\n S_PROFILE,\n S_VAO\n ].concat(GL_STATE_NAMES)\n\n function checkKeys (dict) {\n Object.keys(dict).forEach(function (key) {\n check$1.command(\n KEY_NAMES.indexOf(key) >= 0,\n 'unknown parameter \"' + key + '\"',\n env.commandStr)\n })\n }\n\n checkKeys(staticOptions)\n checkKeys(dynamicOptions)\n })\n\n var attribLocations = parseAttribLocations(options, attributes)\n\n var framebuffer = parseFramebuffer(options, env)\n var viewportAndScissor = parseViewportScissor(options, framebuffer, env)\n var draw = parseDraw(options, env)\n var state = parseGLState(options, env)\n var shader = parseProgram(options, env, attribLocations)\n\n function copyBox (name) {\n var defn = viewportAndScissor[name]\n if (defn) {\n state[name] = defn\n }\n }\n copyBox(S_VIEWPORT)\n copyBox(propName(S_SCISSOR_BOX))\n\n var dirty = Object.keys(state).length > 0\n\n var result = {\n framebuffer: framebuffer,\n draw: draw,\n shader: shader,\n state: state,\n dirty: dirty,\n scopeVAO: null,\n drawVAO: null,\n useVAO: false,\n attributes: {}\n }\n\n result.profile = parseProfile(options, env)\n result.uniforms = parseUniforms(uniforms, env)\n result.drawVAO = result.scopeVAO = draw.vao\n // special case: check if we can statically allocate a vertex array object for this program\n if (!result.drawVAO &&\n shader.program &&\n !attribLocations &&\n extensions.angle_instanced_arrays &&\n draw.static.elements) {\n var useVAO = true\n var staticBindings = shader.program.attributes.map(function (attr) {\n var binding = attributes.static[attr]\n useVAO = useVAO && !!binding\n return binding\n })\n if (useVAO && staticBindings.length > 0) {\n var vao = attributeState.getVAO(attributeState.createVAO({\n attributes: staticBindings,\n elements: draw.static.elements\n }))\n result.drawVAO = new Declaration(null, null, null, function (env, scope) {\n return env.link(vao)\n })\n result.useVAO = true\n }\n }\n if (attribLocations) {\n result.useVAO = true\n } else {\n result.attributes = parseAttributes(attributes, env)\n }\n result.context = parseContext(context, env)\n return result\n }\n\n // ===================================================\n // ===================================================\n // COMMON UPDATE FUNCTIONS\n // ===================================================\n // ===================================================\n function emitContext (env, scope, context) {\n var shared = env.shared\n var CONTEXT = shared.context\n\n var contextEnter = env.scope()\n\n Object.keys(context).forEach(function (name) {\n scope.save(CONTEXT, '.' + name)\n var defn = context[name]\n var value = defn.append(env, scope)\n if (Array.isArray(value)) {\n contextEnter(CONTEXT, '.', name, '=[', value.join(), '];')\n } else {\n contextEnter(CONTEXT, '.', name, '=', value, ';')\n }\n })\n\n scope(contextEnter)\n }\n\n // ===================================================\n // ===================================================\n // COMMON DRAWING FUNCTIONS\n // ===================================================\n // ===================================================\n function emitPollFramebuffer (env, scope, framebuffer, skipCheck) {\n var shared = env.shared\n\n var GL = shared.gl\n var FRAMEBUFFER_STATE = shared.framebuffer\n var EXT_DRAW_BUFFERS\n if (extDrawBuffers) {\n EXT_DRAW_BUFFERS = scope.def(shared.extensions, '.webgl_draw_buffers')\n }\n\n var constants = env.constants\n\n var DRAW_BUFFERS = constants.drawBuffer\n var BACK_BUFFER = constants.backBuffer\n\n var NEXT\n if (framebuffer) {\n NEXT = framebuffer.append(env, scope)\n } else {\n NEXT = scope.def(FRAMEBUFFER_STATE, '.next')\n }\n\n if (!skipCheck) {\n scope('if(', NEXT, '!==', FRAMEBUFFER_STATE, '.cur){')\n }\n scope(\n 'if(', NEXT, '){',\n GL, '.bindFramebuffer(', GL_FRAMEBUFFER$2, ',', NEXT, '.framebuffer);')\n if (extDrawBuffers) {\n scope(EXT_DRAW_BUFFERS, '.drawBuffersWEBGL(',\n DRAW_BUFFERS, '[', NEXT, '.colorAttachments.length]);')\n }\n scope('}else{',\n GL, '.bindFramebuffer(', GL_FRAMEBUFFER$2, ',null);')\n if (extDrawBuffers) {\n scope(EXT_DRAW_BUFFERS, '.drawBuffersWEBGL(', BACK_BUFFER, ');')\n }\n scope(\n '}',\n FRAMEBUFFER_STATE, '.cur=', NEXT, ';')\n if (!skipCheck) {\n scope('}')\n }\n }\n\n function emitPollState (env, scope, args) {\n var shared = env.shared\n\n var GL = shared.gl\n\n var CURRENT_VARS = env.current\n var NEXT_VARS = env.next\n var CURRENT_STATE = shared.current\n var NEXT_STATE = shared.next\n\n var block = env.cond(CURRENT_STATE, '.dirty')\n\n GL_STATE_NAMES.forEach(function (prop) {\n var param = propName(prop)\n if (param in args.state) {\n return\n }\n\n var NEXT, CURRENT\n if (param in NEXT_VARS) {\n NEXT = NEXT_VARS[param]\n CURRENT = CURRENT_VARS[param]\n var parts = loop(currentState[param].length, function (i) {\n return block.def(NEXT, '[', i, ']')\n })\n block(env.cond(parts.map(function (p, i) {\n return p + '!==' + CURRENT + '[' + i + ']'\n }).join('||'))\n .then(\n GL, '.', GL_VARIABLES[param], '(', parts, ');',\n parts.map(function (p, i) {\n return CURRENT + '[' + i + ']=' + p\n }).join(';'), ';'))\n } else {\n NEXT = block.def(NEXT_STATE, '.', param)\n var ifte = env.cond(NEXT, '!==', CURRENT_STATE, '.', param)\n block(ifte)\n if (param in GL_FLAGS) {\n ifte(\n env.cond(NEXT)\n .then(GL, '.enable(', GL_FLAGS[param], ');')\n .else(GL, '.disable(', GL_FLAGS[param], ');'),\n CURRENT_STATE, '.', param, '=', NEXT, ';')\n } else {\n ifte(\n GL, '.', GL_VARIABLES[param], '(', NEXT, ');',\n CURRENT_STATE, '.', param, '=', NEXT, ';')\n }\n }\n })\n if (Object.keys(args.state).length === 0) {\n block(CURRENT_STATE, '.dirty=false;')\n }\n scope(block)\n }\n\n function emitSetOptions (env, scope, options, filter) {\n var shared = env.shared\n var CURRENT_VARS = env.current\n var CURRENT_STATE = shared.current\n var GL = shared.gl\n sortState(Object.keys(options)).forEach(function (param) {\n var defn = options[param]\n if (filter && !filter(defn)) {\n return\n }\n var variable = defn.append(env, scope)\n if (GL_FLAGS[param]) {\n var flag = GL_FLAGS[param]\n if (isStatic(defn)) {\n if (variable) {\n scope(GL, '.enable(', flag, ');')\n } else {\n scope(GL, '.disable(', flag, ');')\n }\n } else {\n scope(env.cond(variable)\n .then(GL, '.enable(', flag, ');')\n .else(GL, '.disable(', flag, ');'))\n }\n scope(CURRENT_STATE, '.', param, '=', variable, ';')\n } else if (isArrayLike(variable)) {\n var CURRENT = CURRENT_VARS[param]\n scope(\n GL, '.', GL_VARIABLES[param], '(', variable, ');',\n variable.map(function (v, i) {\n return CURRENT + '[' + i + ']=' + v\n }).join(';'), ';')\n } else {\n scope(\n GL, '.', GL_VARIABLES[param], '(', variable, ');',\n CURRENT_STATE, '.', param, '=', variable, ';')\n }\n })\n }\n\n function injectExtensions (env, scope) {\n if (extInstancing) {\n env.instancing = scope.def(\n env.shared.extensions, '.angle_instanced_arrays')\n }\n }\n\n function emitProfile (env, scope, args, useScope, incrementCounter) {\n var shared = env.shared\n var STATS = env.stats\n var CURRENT_STATE = shared.current\n var TIMER = shared.timer\n var profileArg = args.profile\n\n function perfCounter () {\n if (typeof performance === 'undefined') {\n return 'Date.now()'\n } else {\n return 'performance.now()'\n }\n }\n\n var CPU_START, QUERY_COUNTER\n function emitProfileStart (block) {\n CPU_START = scope.def()\n block(CPU_START, '=', perfCounter(), ';')\n if (typeof incrementCounter === 'string') {\n block(STATS, '.count+=', incrementCounter, ';')\n } else {\n block(STATS, '.count++;')\n }\n if (timer) {\n if (useScope) {\n QUERY_COUNTER = scope.def()\n block(QUERY_COUNTER, '=', TIMER, '.getNumPendingQueries();')\n } else {\n block(TIMER, '.beginQuery(', STATS, ');')\n }\n }\n }\n\n function emitProfileEnd (block) {\n block(STATS, '.cpuTime+=', perfCounter(), '-', CPU_START, ';')\n if (timer) {\n if (useScope) {\n block(TIMER, '.pushScopeStats(',\n QUERY_COUNTER, ',',\n TIMER, '.getNumPendingQueries(),',\n STATS, ');')\n } else {\n block(TIMER, '.endQuery();')\n }\n }\n }\n\n function scopeProfile (value) {\n var prev = scope.def(CURRENT_STATE, '.profile')\n scope(CURRENT_STATE, '.profile=', value, ';')\n scope.exit(CURRENT_STATE, '.profile=', prev, ';')\n }\n\n var USE_PROFILE\n if (profileArg) {\n if (isStatic(profileArg)) {\n if (profileArg.enable) {\n emitProfileStart(scope)\n emitProfileEnd(scope.exit)\n scopeProfile('true')\n } else {\n scopeProfile('false')\n }\n return\n }\n USE_PROFILE = profileArg.append(env, scope)\n scopeProfile(USE_PROFILE)\n } else {\n USE_PROFILE = scope.def(CURRENT_STATE, '.profile')\n }\n\n var start = env.block()\n emitProfileStart(start)\n scope('if(', USE_PROFILE, '){', start, '}')\n var end = env.block()\n emitProfileEnd(end)\n scope.exit('if(', USE_PROFILE, '){', end, '}')\n }\n\n function emitAttributes (env, scope, args, attributes, filter) {\n var shared = env.shared\n\n function typeLength (x) {\n switch (x) {\n case GL_FLOAT_VEC2:\n case GL_INT_VEC2:\n case GL_BOOL_VEC2:\n return 2\n case GL_FLOAT_VEC3:\n case GL_INT_VEC3:\n case GL_BOOL_VEC3:\n return 3\n case GL_FLOAT_VEC4:\n case GL_INT_VEC4:\n case GL_BOOL_VEC4:\n return 4\n default:\n return 1\n }\n }\n\n function emitBindAttribute (ATTRIBUTE, size, record) {\n var GL = shared.gl\n\n var LOCATION = scope.def(ATTRIBUTE, '.location')\n var BINDING = scope.def(shared.attributes, '[', LOCATION, ']')\n\n var STATE = record.state\n var BUFFER = record.buffer\n var CONST_COMPONENTS = [\n record.x,\n record.y,\n record.z,\n record.w\n ]\n\n var COMMON_KEYS = [\n 'buffer',\n 'normalized',\n 'offset',\n 'stride'\n ]\n\n function emitBuffer () {\n scope(\n 'if(!', BINDING, '.buffer){',\n GL, '.enableVertexAttribArray(', LOCATION, ');}')\n\n var TYPE = record.type\n var SIZE\n if (!record.size) {\n SIZE = size\n } else {\n SIZE = scope.def(record.size, '||', size)\n }\n\n scope('if(',\n BINDING, '.type!==', TYPE, '||',\n BINDING, '.size!==', SIZE, '||',\n COMMON_KEYS.map(function (key) {\n return BINDING + '.' + key + '!==' + record[key]\n }).join('||'),\n '){',\n GL, '.bindBuffer(', GL_ARRAY_BUFFER$2, ',', BUFFER, '.buffer);',\n GL, '.vertexAttribPointer(', [\n LOCATION,\n SIZE,\n TYPE,\n record.normalized,\n record.stride,\n record.offset\n ], ');',\n BINDING, '.type=', TYPE, ';',\n BINDING, '.size=', SIZE, ';',\n COMMON_KEYS.map(function (key) {\n return BINDING + '.' + key + '=' + record[key] + ';'\n }).join(''),\n '}')\n\n if (extInstancing) {\n var DIVISOR = record.divisor\n scope(\n 'if(', BINDING, '.divisor!==', DIVISOR, '){',\n env.instancing, '.vertexAttribDivisorANGLE(', [LOCATION, DIVISOR], ');',\n BINDING, '.divisor=', DIVISOR, ';}')\n }\n }\n\n function emitConstant () {\n scope(\n 'if(', BINDING, '.buffer){',\n GL, '.disableVertexAttribArray(', LOCATION, ');',\n BINDING, '.buffer=null;',\n '}if(', CUTE_COMPONENTS.map(function (c, i) {\n return BINDING + '.' + c + '!==' + CONST_COMPONENTS[i]\n }).join('||'), '){',\n GL, '.vertexAttrib4f(', LOCATION, ',', CONST_COMPONENTS, ');',\n CUTE_COMPONENTS.map(function (c, i) {\n return BINDING + '.' + c + '=' + CONST_COMPONENTS[i] + ';'\n }).join(''),\n '}')\n }\n\n if (STATE === ATTRIB_STATE_POINTER) {\n emitBuffer()\n } else if (STATE === ATTRIB_STATE_CONSTANT) {\n emitConstant()\n } else {\n scope('if(', STATE, '===', ATTRIB_STATE_POINTER, '){')\n emitBuffer()\n scope('}else{')\n emitConstant()\n scope('}')\n }\n }\n\n attributes.forEach(function (attribute) {\n var name = attribute.name\n var arg = args.attributes[name]\n var record\n if (arg) {\n if (!filter(arg)) {\n return\n }\n record = arg.append(env, scope)\n } else {\n if (!filter(SCOPE_DECL)) {\n return\n }\n var scopeAttrib = env.scopeAttrib(name)\n check$1.optional(function () {\n env.assert(scope,\n scopeAttrib + '.state',\n 'missing attribute ' + name)\n })\n record = {}\n Object.keys(new AttributeRecord()).forEach(function (key) {\n record[key] = scope.def(scopeAttrib, '.', key)\n })\n }\n emitBindAttribute(\n env.link(attribute), typeLength(attribute.info.type), record)\n })\n }\n\n function emitUniforms (env, scope, args, uniforms, filter, isBatchInnerLoop) {\n var shared = env.shared\n var GL = shared.gl\n\n var definedArrUniforms = {}\n var infix\n for (var i = 0; i < uniforms.length; ++i) {\n var uniform = uniforms[i]\n var name = uniform.name\n var type = uniform.info.type\n var size = uniform.info.size\n var arg = args.uniforms[name]\n if (size > 1) {\n // either foo[n] or foos, avoid define both\n if (!arg) {\n continue\n }\n var arrUniformName = name.replace('[0]', '')\n if (definedArrUniforms[arrUniformName]) {\n continue\n }\n definedArrUniforms[arrUniformName] = 1\n }\n var UNIFORM = env.link(uniform)\n var LOCATION = UNIFORM + '.location'\n\n var VALUE\n if (arg) {\n if (!filter(arg)) {\n continue\n }\n if (isStatic(arg)) {\n var value = arg.value\n check$1.command(\n value !== null && typeof value !== 'undefined',\n 'missing uniform \"' + name + '\"', env.commandStr)\n if (type === GL_SAMPLER_2D || type === GL_SAMPLER_CUBE) {\n check$1.command(\n typeof value === 'function' &&\n ((type === GL_SAMPLER_2D &&\n (value._reglType === 'texture2d' ||\n value._reglType === 'framebuffer')) ||\n (type === GL_SAMPLER_CUBE &&\n (value._reglType === 'textureCube' ||\n value._reglType === 'framebufferCube'))),\n 'invalid texture for uniform ' + name, env.commandStr)\n var TEX_VALUE = env.link(value._texture || value.color[0]._texture)\n scope(GL, '.uniform1i(', LOCATION, ',', TEX_VALUE + '.bind());')\n scope.exit(TEX_VALUE, '.unbind();')\n } else if (\n type === GL_FLOAT_MAT2 ||\n type === GL_FLOAT_MAT3 ||\n type === GL_FLOAT_MAT4) {\n check$1.optional(function () {\n check$1.command(isArrayLike(value),\n 'invalid matrix for uniform ' + name, env.commandStr)\n check$1.command(\n (type === GL_FLOAT_MAT2 && value.length === 4) ||\n (type === GL_FLOAT_MAT3 && value.length === 9) ||\n (type === GL_FLOAT_MAT4 && value.length === 16),\n 'invalid length for matrix uniform ' + name, env.commandStr)\n })\n var MAT_VALUE = env.global.def('new Float32Array([' +\n Array.prototype.slice.call(value) + '])')\n var dim = 2\n if (type === GL_FLOAT_MAT3) {\n dim = 3\n } else if (type === GL_FLOAT_MAT4) {\n dim = 4\n }\n scope(\n GL, '.uniformMatrix', dim, 'fv(',\n LOCATION, ',false,', MAT_VALUE, ');')\n } else {\n switch (type) {\n case GL_FLOAT$8:\n if (size === 1) {\n check$1.commandType(value, 'number', 'uniform ' + name, env.commandStr)\n } else {\n check$1.command(\n isArrayLike(value) && (value.length === size),\n 'uniform ' + name, env.commandStr)\n }\n infix = '1f'\n break\n case GL_FLOAT_VEC2:\n check$1.command(\n isArrayLike(value) && (value.length && value.length % 2 === 0 && value.length <= size * 2),\n 'uniform ' + name, env.commandStr)\n infix = '2f'\n break\n case GL_FLOAT_VEC3:\n check$1.command(\n isArrayLike(value) && (value.length && value.length % 3 === 0 && value.length <= size * 3),\n 'uniform ' + name, env.commandStr)\n infix = '3f'\n break\n case GL_FLOAT_VEC4:\n check$1.command(\n isArrayLike(value) && (value.length && value.length % 4 === 0 && value.length <= size * 4),\n 'uniform ' + name, env.commandStr)\n infix = '4f'\n break\n case GL_BOOL:\n if (size === 1) {\n check$1.commandType(value, 'boolean', 'uniform ' + name, env.commandStr)\n } else {\n check$1.command(\n isArrayLike(value) && (value.length === size),\n 'uniform ' + name, env.commandStr)\n }\n infix = '1i'\n break\n case GL_INT$3:\n if (size === 1) {\n check$1.commandType(value, 'number', 'uniform ' + name, env.commandStr)\n } else {\n check$1.command(\n isArrayLike(value) && (value.length === size),\n 'uniform ' + name, env.commandStr)\n }\n infix = '1i'\n break\n case GL_BOOL_VEC2:\n check$1.command(\n isArrayLike(value) && (value.length && value.length % 2 === 0 && value.length <= size * 2),\n 'uniform ' + name, env.commandStr)\n infix = '2i'\n break\n case GL_INT_VEC2:\n check$1.command(\n isArrayLike(value) && (value.length && value.length % 2 === 0 && value.length <= size * 2),\n 'uniform ' + name, env.commandStr)\n infix = '2i'\n break\n case GL_BOOL_VEC3:\n check$1.command(\n isArrayLike(value) && (value.length && value.length % 3 === 0 && value.length <= size * 3),\n 'uniform ' + name, env.commandStr)\n infix = '3i'\n break\n case GL_INT_VEC3:\n check$1.command(\n isArrayLike(value) && (value.length && value.length % 3 === 0 && value.length <= size * 3),\n 'uniform ' + name, env.commandStr)\n infix = '3i'\n break\n case GL_BOOL_VEC4:\n check$1.command(\n isArrayLike(value) && (value.length && value.length % 4 === 0 && value.length <= size * 4),\n 'uniform ' + name, env.commandStr)\n infix = '4i'\n break\n case GL_INT_VEC4:\n check$1.command(\n isArrayLike(value) && (value.length && value.length % 4 === 0 && value.length <= size * 4),\n 'uniform ' + name, env.commandStr)\n infix = '4i'\n break\n }\n if (size > 1) {\n infix += 'v'\n value = env.global.def('[' +\n Array.prototype.slice.call(value) + ']')\n } else {\n value = isArrayLike(value) ? Array.prototype.slice.call(value) : value\n }\n scope(GL, '.uniform', infix, '(', LOCATION, ',',\n value,\n ');')\n }\n continue\n } else {\n VALUE = arg.append(env, scope)\n }\n } else {\n if (!filter(SCOPE_DECL)) {\n continue\n }\n VALUE = scope.def(shared.uniforms, '[', stringStore.id(name), ']')\n }\n\n if (type === GL_SAMPLER_2D) {\n check$1(!Array.isArray(VALUE), 'must specify a scalar prop for textures')\n scope(\n 'if(', VALUE, '&&', VALUE, '._reglType===\"framebuffer\"){',\n VALUE, '=', VALUE, '.color[0];',\n '}')\n } else if (type === GL_SAMPLER_CUBE) {\n check$1(!Array.isArray(VALUE), 'must specify a scalar prop for cube maps')\n scope(\n 'if(', VALUE, '&&', VALUE, '._reglType===\"framebufferCube\"){',\n VALUE, '=', VALUE, '.color[0];',\n '}')\n }\n\n // perform type validation\n check$1.optional(function () {\n function emitCheck (pred, message) {\n env.assert(scope, pred,\n 'bad data or missing for uniform \"' + name + '\". ' + message)\n }\n\n function checkType (type, size) {\n if (size === 1) {\n check$1(!Array.isArray(VALUE), 'must not specify an array type for uniform')\n }\n emitCheck(\n 'Array.isArray(' + VALUE + ') && typeof ' + VALUE + '[0]===\" ' + type + '\"' +\n ' || typeof ' + VALUE + '===\"' + type + '\"',\n 'invalid type, expected ' + type)\n }\n\n function checkVector (n, type, size) {\n if (Array.isArray(VALUE)) {\n check$1(VALUE.length && VALUE.length % n === 0 && VALUE.length <= n * size, 'must have length of ' + (size === 1 ? '' : 'n * ') + n)\n } else {\n emitCheck(\n shared.isArrayLike + '(' + VALUE + ')&&' + VALUE + '.length && ' + VALUE + '.length % ' + n + ' === 0' +\n ' && ' + VALUE + '.length<=' + n * size,\n 'invalid vector, should have length of ' + (size === 1 ? '' : 'n * ') + n, env.commandStr)\n }\n }\n\n function checkTexture (target) {\n check$1(!Array.isArray(VALUE), 'must not specify a value type')\n emitCheck(\n 'typeof ' + VALUE + '===\"function\"&&' +\n VALUE + '._reglType===\"texture' +\n (target === GL_TEXTURE_2D$3 ? '2d' : 'Cube') + '\"',\n 'invalid texture type', env.commandStr)\n }\n\n switch (type) {\n case GL_INT$3:\n checkType('number', size)\n break\n case GL_INT_VEC2:\n checkVector(2, 'number', size)\n break\n case GL_INT_VEC3:\n checkVector(3, 'number', size)\n break\n case GL_INT_VEC4:\n checkVector(4, 'number', size)\n break\n case GL_FLOAT$8:\n checkType('number', size)\n break\n case GL_FLOAT_VEC2:\n checkVector(2, 'number', size)\n break\n case GL_FLOAT_VEC3:\n checkVector(3, 'number', size)\n break\n case GL_FLOAT_VEC4:\n checkVector(4, 'number', size)\n break\n case GL_BOOL:\n checkType('boolean', size)\n break\n case GL_BOOL_VEC2:\n checkVector(2, 'boolean', size)\n break\n case GL_BOOL_VEC3:\n checkVector(3, 'boolean', size)\n break\n case GL_BOOL_VEC4:\n checkVector(4, 'boolean', size)\n break\n case GL_FLOAT_MAT2:\n checkVector(4, 'number', size)\n break\n case GL_FLOAT_MAT3:\n checkVector(9, 'number', size)\n break\n case GL_FLOAT_MAT4:\n checkVector(16, 'number', size)\n break\n case GL_SAMPLER_2D:\n checkTexture(GL_TEXTURE_2D$3)\n break\n case GL_SAMPLER_CUBE:\n checkTexture(GL_TEXTURE_CUBE_MAP$2)\n break\n }\n })\n\n var unroll = 1\n switch (type) {\n case GL_SAMPLER_2D:\n case GL_SAMPLER_CUBE:\n var TEX = scope.def(VALUE, '._texture')\n scope(GL, '.uniform1i(', LOCATION, ',', TEX, '.bind());')\n scope.exit(TEX, '.unbind();')\n continue\n\n case GL_INT$3:\n case GL_BOOL:\n infix = '1i'\n break\n\n case GL_INT_VEC2:\n case GL_BOOL_VEC2:\n infix = '2i'\n unroll = 2\n break\n\n case GL_INT_VEC3:\n case GL_BOOL_VEC3:\n infix = '3i'\n unroll = 3\n break\n\n case GL_INT_VEC4:\n case GL_BOOL_VEC4:\n infix = '4i'\n unroll = 4\n break\n\n case GL_FLOAT$8:\n infix = '1f'\n break\n\n case GL_FLOAT_VEC2:\n infix = '2f'\n unroll = 2\n break\n\n case GL_FLOAT_VEC3:\n infix = '3f'\n unroll = 3\n break\n\n case GL_FLOAT_VEC4:\n infix = '4f'\n unroll = 4\n break\n\n case GL_FLOAT_MAT2:\n infix = 'Matrix2fv'\n break\n\n case GL_FLOAT_MAT3:\n infix = 'Matrix3fv'\n break\n\n case GL_FLOAT_MAT4:\n infix = 'Matrix4fv'\n break\n }\n\n if (infix.indexOf('Matrix') === -1 && size > 1) {\n infix += 'v'\n unroll = 1\n }\n\n if (infix.charAt(0) === 'M') {\n scope(GL, '.uniform', infix, '(', LOCATION, ',')\n var matSize = Math.pow(type - GL_FLOAT_MAT2 + 2, 2)\n var STORAGE = env.global.def('new Float32Array(', matSize, ')')\n if (Array.isArray(VALUE)) {\n scope(\n 'false,(',\n loop(matSize, function (i) {\n return STORAGE + '[' + i + ']=' + VALUE[i]\n }), ',', STORAGE, ')')\n } else {\n scope(\n 'false,(Array.isArray(', VALUE, ')||', VALUE, ' instanceof Float32Array)?', VALUE, ':(',\n loop(matSize, function (i) {\n return STORAGE + '[' + i + ']=' + VALUE + '[' + i + ']'\n }), ',', STORAGE, ')')\n }\n scope(');')\n } else if (unroll > 1) {\n var prev = []\n var cur = []\n for (var j = 0; j < unroll; ++j) {\n if (Array.isArray(VALUE)) {\n cur.push(VALUE[j])\n } else {\n cur.push(scope.def(VALUE + '[' + j + ']'))\n }\n if (isBatchInnerLoop) {\n prev.push(scope.def())\n }\n }\n if (isBatchInnerLoop) {\n scope('if(!', env.batchId, '||', prev.map(function (p, i) {\n return p + '!==' + cur[i]\n }).join('||'), '){', prev.map(function (p, i) {\n return p + '=' + cur[i] + ';'\n }).join(''))\n }\n scope(GL, '.uniform', infix, '(', LOCATION, ',', cur.join(','), ');')\n if (isBatchInnerLoop) {\n scope('}')\n }\n } else {\n check$1(!Array.isArray(VALUE), 'uniform value must not be an array')\n if (isBatchInnerLoop) {\n var prevS = scope.def()\n scope('if(!', env.batchId, '||', prevS, '!==', VALUE, '){',\n prevS, '=', VALUE, ';')\n }\n scope(GL, '.uniform', infix, '(', LOCATION, ',', VALUE, ');')\n if (isBatchInnerLoop) {\n scope('}')\n }\n }\n }\n }\n\n function emitDraw (env, outer, inner, args) {\n var shared = env.shared\n var GL = shared.gl\n var DRAW_STATE = shared.draw\n\n var drawOptions = args.draw\n\n function emitElements () {\n var defn = drawOptions.elements\n var ELEMENTS\n var scope = outer\n if (defn) {\n if ((defn.contextDep && args.contextDynamic) || defn.propDep) {\n scope = inner\n }\n ELEMENTS = defn.append(env, scope)\n if (drawOptions.elementsActive) {\n scope(\n 'if(' + ELEMENTS + ')' +\n GL + '.bindBuffer(' + GL_ELEMENT_ARRAY_BUFFER$2 + ',' + ELEMENTS + '.buffer.buffer);')\n }\n } else {\n ELEMENTS = scope.def()\n scope(\n ELEMENTS, '=', DRAW_STATE, '.', S_ELEMENTS, ';',\n 'if(', ELEMENTS, '){',\n GL, '.bindBuffer(', GL_ELEMENT_ARRAY_BUFFER$2, ',', ELEMENTS, '.buffer.buffer);}',\n 'else if(', shared.vao, '.currentVAO){',\n ELEMENTS, '=', env.shared.elements + '.getElements(' + shared.vao, '.currentVAO.elements);',\n (!extVertexArrays ? 'if(' + ELEMENTS + ')' + GL + '.bindBuffer(' + GL_ELEMENT_ARRAY_BUFFER$2 + ',' + ELEMENTS + '.buffer.buffer);' : ''),\n '}')\n }\n return ELEMENTS\n }\n\n function emitCount () {\n var defn = drawOptions.count\n var COUNT\n var scope = outer\n if (defn) {\n if ((defn.contextDep && args.contextDynamic) || defn.propDep) {\n scope = inner\n }\n COUNT = defn.append(env, scope)\n check$1.optional(function () {\n if (defn.MISSING) {\n env.assert(outer, 'false', 'missing vertex count')\n }\n if (defn.DYNAMIC) {\n env.assert(scope, COUNT + '>=0', 'missing vertex count')\n }\n })\n } else {\n COUNT = scope.def(DRAW_STATE, '.', S_COUNT)\n check$1.optional(function () {\n env.assert(scope, COUNT + '>=0', 'missing vertex count')\n })\n }\n return COUNT\n }\n\n var ELEMENTS = emitElements()\n function emitValue (name) {\n var defn = drawOptions[name]\n if (defn) {\n if ((defn.contextDep && args.contextDynamic) || defn.propDep) {\n return defn.append(env, inner)\n } else {\n return defn.append(env, outer)\n }\n } else {\n return outer.def(DRAW_STATE, '.', name)\n }\n }\n\n var PRIMITIVE = emitValue(S_PRIMITIVE)\n var OFFSET = emitValue(S_OFFSET)\n\n var COUNT = emitCount()\n if (typeof COUNT === 'number') {\n if (COUNT === 0) {\n return\n }\n } else {\n inner('if(', COUNT, '){')\n inner.exit('}')\n }\n\n var INSTANCES, EXT_INSTANCING\n if (extInstancing) {\n INSTANCES = emitValue(S_INSTANCES)\n EXT_INSTANCING = env.instancing\n }\n\n var ELEMENT_TYPE = ELEMENTS + '.type'\n\n var elementsStatic = drawOptions.elements && isStatic(drawOptions.elements) && !drawOptions.vaoActive\n\n function emitInstancing () {\n function drawElements () {\n inner(EXT_INSTANCING, '.drawElementsInstancedANGLE(', [\n PRIMITIVE,\n COUNT,\n ELEMENT_TYPE,\n OFFSET + '<<((' + ELEMENT_TYPE + '-' + GL_UNSIGNED_BYTE$8 + ')>>1)',\n INSTANCES\n ], ');')\n }\n\n function drawArrays () {\n inner(EXT_INSTANCING, '.drawArraysInstancedANGLE(',\n [PRIMITIVE, OFFSET, COUNT, INSTANCES], ');')\n }\n\n if (ELEMENTS && ELEMENTS !== 'null') {\n if (!elementsStatic) {\n inner('if(', ELEMENTS, '){')\n drawElements()\n inner('}else{')\n drawArrays()\n inner('}')\n } else {\n drawElements()\n }\n } else {\n drawArrays()\n }\n }\n\n function emitRegular () {\n function drawElements () {\n inner(GL + '.drawElements(' + [\n PRIMITIVE,\n COUNT,\n ELEMENT_TYPE,\n OFFSET + '<<((' + ELEMENT_TYPE + '-' + GL_UNSIGNED_BYTE$8 + ')>>1)'\n ] + ');')\n }\n\n function drawArrays () {\n inner(GL + '.drawArrays(' + [PRIMITIVE, OFFSET, COUNT] + ');')\n }\n\n if (ELEMENTS && ELEMENTS !== 'null') {\n if (!elementsStatic) {\n inner('if(', ELEMENTS, '){')\n drawElements()\n inner('}else{')\n drawArrays()\n inner('}')\n } else {\n drawElements()\n }\n } else {\n drawArrays()\n }\n }\n\n if (extInstancing && (typeof INSTANCES !== 'number' || INSTANCES >= 0)) {\n if (typeof INSTANCES === 'string') {\n inner('if(', INSTANCES, '>0){')\n emitInstancing()\n inner('}else if(', INSTANCES, '<0){')\n emitRegular()\n inner('}')\n } else {\n emitInstancing()\n }\n } else {\n emitRegular()\n }\n }\n\n function createBody (emitBody, parentEnv, args, program, count) {\n var env = createREGLEnvironment()\n var scope = env.proc('body', count)\n check$1.optional(function () {\n env.commandStr = parentEnv.commandStr\n env.command = env.link(parentEnv.commandStr)\n })\n if (extInstancing) {\n env.instancing = scope.def(\n env.shared.extensions, '.angle_instanced_arrays')\n }\n emitBody(env, scope, args, program)\n return env.compile().body\n }\n\n // ===================================================\n // ===================================================\n // DRAW PROC\n // ===================================================\n // ===================================================\n function emitDrawBody (env, draw, args, program) {\n injectExtensions(env, draw)\n if (args.useVAO) {\n if (args.drawVAO) {\n draw(env.shared.vao, '.setVAO(', args.drawVAO.append(env, draw), ');')\n } else {\n draw(env.shared.vao, '.setVAO(', env.shared.vao, '.targetVAO);')\n }\n } else {\n draw(env.shared.vao, '.setVAO(null);')\n emitAttributes(env, draw, args, program.attributes, function () {\n return true\n })\n }\n emitUniforms(env, draw, args, program.uniforms, function () {\n return true\n }, false)\n emitDraw(env, draw, draw, args)\n }\n\n function emitDrawProc (env, args) {\n var draw = env.proc('draw', 1)\n\n injectExtensions(env, draw)\n\n emitContext(env, draw, args.context)\n emitPollFramebuffer(env, draw, args.framebuffer)\n\n emitPollState(env, draw, args)\n emitSetOptions(env, draw, args.state)\n\n emitProfile(env, draw, args, false, true)\n\n var program = args.shader.progVar.append(env, draw)\n draw(env.shared.gl, '.useProgram(', program, '.program);')\n\n if (args.shader.program) {\n emitDrawBody(env, draw, args, args.shader.program)\n } else {\n draw(env.shared.vao, '.setVAO(null);')\n var drawCache = env.global.def('{}')\n var PROG_ID = draw.def(program, '.id')\n var CACHED_PROC = draw.def(drawCache, '[', PROG_ID, ']')\n draw(\n env.cond(CACHED_PROC)\n .then(CACHED_PROC, '.call(this,a0);')\n .else(\n CACHED_PROC, '=', drawCache, '[', PROG_ID, ']=',\n env.link(function (program) {\n return createBody(emitDrawBody, env, args, program, 1)\n }), '(', program, ');',\n CACHED_PROC, '.call(this,a0);'))\n }\n\n if (Object.keys(args.state).length > 0) {\n draw(env.shared.current, '.dirty=true;')\n }\n if (env.shared.vao) {\n draw(env.shared.vao, '.setVAO(null);')\n }\n }\n\n // ===================================================\n // ===================================================\n // BATCH PROC\n // ===================================================\n // ===================================================\n\n function emitBatchDynamicShaderBody (env, scope, args, program) {\n env.batchId = 'a1'\n\n injectExtensions(env, scope)\n\n function all () {\n return true\n }\n\n emitAttributes(env, scope, args, program.attributes, all)\n emitUniforms(env, scope, args, program.uniforms, all, false)\n emitDraw(env, scope, scope, args)\n }\n\n function emitBatchBody (env, scope, args, program) {\n injectExtensions(env, scope)\n\n var contextDynamic = args.contextDep\n\n var BATCH_ID = scope.def()\n var PROP_LIST = 'a0'\n var NUM_PROPS = 'a1'\n var PROPS = scope.def()\n env.shared.props = PROPS\n env.batchId = BATCH_ID\n\n var outer = env.scope()\n var inner = env.scope()\n\n scope(\n outer.entry,\n 'for(', BATCH_ID, '=0;', BATCH_ID, '<', NUM_PROPS, ';++', BATCH_ID, '){',\n PROPS, '=', PROP_LIST, '[', BATCH_ID, '];',\n inner,\n '}',\n outer.exit)\n\n function isInnerDefn (defn) {\n return ((defn.contextDep && contextDynamic) || defn.propDep)\n }\n\n function isOuterDefn (defn) {\n return !isInnerDefn(defn)\n }\n\n if (args.needsContext) {\n emitContext(env, inner, args.context)\n }\n if (args.needsFramebuffer) {\n emitPollFramebuffer(env, inner, args.framebuffer)\n }\n emitSetOptions(env, inner, args.state, isInnerDefn)\n\n if (args.profile && isInnerDefn(args.profile)) {\n emitProfile(env, inner, args, false, true)\n }\n\n if (!program) {\n var progCache = env.global.def('{}')\n var PROGRAM = args.shader.progVar.append(env, inner)\n var PROG_ID = inner.def(PROGRAM, '.id')\n var CACHED_PROC = inner.def(progCache, '[', PROG_ID, ']')\n inner(\n env.shared.gl, '.useProgram(', PROGRAM, '.program);',\n 'if(!', CACHED_PROC, '){',\n CACHED_PROC, '=', progCache, '[', PROG_ID, ']=',\n env.link(function (program) {\n return createBody(\n emitBatchDynamicShaderBody, env, args, program, 2)\n }), '(', PROGRAM, ');}',\n CACHED_PROC, '.call(this,a0[', BATCH_ID, '],', BATCH_ID, ');')\n } else {\n if (args.useVAO) {\n if (args.drawVAO) {\n if (isInnerDefn(args.drawVAO)) {\n // vao is a prop\n inner(env.shared.vao, '.setVAO(', args.drawVAO.append(env, inner), ');')\n } else {\n // vao is invariant\n outer(env.shared.vao, '.setVAO(', args.drawVAO.append(env, outer), ');')\n }\n } else {\n // scoped vao binding\n outer(env.shared.vao, '.setVAO(', env.shared.vao, '.targetVAO);')\n }\n } else {\n outer(env.shared.vao, '.setVAO(null);')\n emitAttributes(env, outer, args, program.attributes, isOuterDefn)\n emitAttributes(env, inner, args, program.attributes, isInnerDefn)\n }\n emitUniforms(env, outer, args, program.uniforms, isOuterDefn, false)\n emitUniforms(env, inner, args, program.uniforms, isInnerDefn, true)\n emitDraw(env, outer, inner, args)\n }\n }\n\n function emitBatchProc (env, args) {\n var batch = env.proc('batch', 2)\n env.batchId = '0'\n\n injectExtensions(env, batch)\n\n // Check if any context variables depend on props\n var contextDynamic = false\n var needsContext = true\n Object.keys(args.context).forEach(function (name) {\n contextDynamic = contextDynamic || args.context[name].propDep\n })\n if (!contextDynamic) {\n emitContext(env, batch, args.context)\n needsContext = false\n }\n\n // framebuffer state affects framebufferWidth/height context vars\n var framebuffer = args.framebuffer\n var needsFramebuffer = false\n if (framebuffer) {\n if (framebuffer.propDep) {\n contextDynamic = needsFramebuffer = true\n } else if (framebuffer.contextDep && contextDynamic) {\n needsFramebuffer = true\n }\n if (!needsFramebuffer) {\n emitPollFramebuffer(env, batch, framebuffer)\n }\n } else {\n emitPollFramebuffer(env, batch, null)\n }\n\n // viewport is weird because it can affect context vars\n if (args.state.viewport && args.state.viewport.propDep) {\n contextDynamic = true\n }\n\n function isInnerDefn (defn) {\n return (defn.contextDep && contextDynamic) || defn.propDep\n }\n\n // set webgl options\n emitPollState(env, batch, args)\n emitSetOptions(env, batch, args.state, function (defn) {\n return !isInnerDefn(defn)\n })\n\n if (!args.profile || !isInnerDefn(args.profile)) {\n emitProfile(env, batch, args, false, 'a1')\n }\n\n // Save these values to args so that the batch body routine can use them\n args.contextDep = contextDynamic\n args.needsContext = needsContext\n args.needsFramebuffer = needsFramebuffer\n\n // determine if shader is dynamic\n var progDefn = args.shader.progVar\n if ((progDefn.contextDep && contextDynamic) || progDefn.propDep) {\n emitBatchBody(\n env,\n batch,\n args,\n null)\n } else {\n var PROGRAM = progDefn.append(env, batch)\n batch(env.shared.gl, '.useProgram(', PROGRAM, '.program);')\n if (args.shader.program) {\n emitBatchBody(\n env,\n batch,\n args,\n args.shader.program)\n } else {\n batch(env.shared.vao, '.setVAO(null);')\n var batchCache = env.global.def('{}')\n var PROG_ID = batch.def(PROGRAM, '.id')\n var CACHED_PROC = batch.def(batchCache, '[', PROG_ID, ']')\n batch(\n env.cond(CACHED_PROC)\n .then(CACHED_PROC, '.call(this,a0,a1);')\n .else(\n CACHED_PROC, '=', batchCache, '[', PROG_ID, ']=',\n env.link(function (program) {\n return createBody(emitBatchBody, env, args, program, 2)\n }), '(', PROGRAM, ');',\n CACHED_PROC, '.call(this,a0,a1);'))\n }\n }\n\n if (Object.keys(args.state).length > 0) {\n batch(env.shared.current, '.dirty=true;')\n }\n\n if (env.shared.vao) {\n batch(env.shared.vao, '.setVAO(null);')\n }\n }\n\n // ===================================================\n // ===================================================\n // SCOPE COMMAND\n // ===================================================\n // ===================================================\n function emitScopeProc (env, args) {\n var scope = env.proc('scope', 3)\n env.batchId = 'a2'\n\n var shared = env.shared\n var CURRENT_STATE = shared.current\n\n emitContext(env, scope, args.context)\n\n if (args.framebuffer) {\n args.framebuffer.append(env, scope)\n }\n\n sortState(Object.keys(args.state)).forEach(function (name) {\n var defn = args.state[name]\n var value = defn.append(env, scope)\n if (isArrayLike(value)) {\n value.forEach(function (v, i) {\n scope.set(env.next[name], '[' + i + ']', v)\n })\n } else {\n scope.set(shared.next, '.' + name, value)\n }\n })\n\n emitProfile(env, scope, args, true, true)\n\n ;[S_ELEMENTS, S_OFFSET, S_COUNT, S_INSTANCES, S_PRIMITIVE].forEach(\n function (opt) {\n var variable = args.draw[opt]\n if (!variable) {\n return\n }\n scope.set(shared.draw, '.' + opt, '' + variable.append(env, scope))\n })\n\n Object.keys(args.uniforms).forEach(function (opt) {\n var value = args.uniforms[opt].append(env, scope)\n if (Array.isArray(value)) {\n value = '[' + value.join() + ']'\n }\n scope.set(\n shared.uniforms,\n '[' + stringStore.id(opt) + ']',\n value)\n })\n\n Object.keys(args.attributes).forEach(function (name) {\n var record = args.attributes[name].append(env, scope)\n var scopeAttrib = env.scopeAttrib(name)\n Object.keys(new AttributeRecord()).forEach(function (prop) {\n scope.set(scopeAttrib, '.' + prop, record[prop])\n })\n })\n\n if (args.scopeVAO) {\n scope.set(shared.vao, '.targetVAO', args.scopeVAO.append(env, scope))\n }\n\n function saveShader (name) {\n var shader = args.shader[name]\n if (shader) {\n scope.set(shared.shader, '.' + name, shader.append(env, scope))\n }\n }\n saveShader(S_VERT)\n saveShader(S_FRAG)\n\n if (Object.keys(args.state).length > 0) {\n scope(CURRENT_STATE, '.dirty=true;')\n scope.exit(CURRENT_STATE, '.dirty=true;')\n }\n\n scope('a1(', env.shared.context, ',a0,', env.batchId, ');')\n }\n\n function isDynamicObject (object) {\n if (typeof object !== 'object' || isArrayLike(object)) {\n return\n }\n var props = Object.keys(object)\n for (var i = 0; i < props.length; ++i) {\n if (dynamic.isDynamic(object[props[i]])) {\n return true\n }\n }\n return false\n }\n\n function splatObject (env, options, name) {\n var object = options.static[name]\n if (!object || !isDynamicObject(object)) {\n return\n }\n\n var globals = env.global\n var keys = Object.keys(object)\n var thisDep = false\n var contextDep = false\n var propDep = false\n var objectRef = env.global.def('{}')\n keys.forEach(function (key) {\n var value = object[key]\n if (dynamic.isDynamic(value)) {\n if (typeof value === 'function') {\n value = object[key] = dynamic.unbox(value)\n }\n var deps = createDynamicDecl(value, null)\n thisDep = thisDep || deps.thisDep\n propDep = propDep || deps.propDep\n contextDep = contextDep || deps.contextDep\n } else {\n globals(objectRef, '.', key, '=')\n switch (typeof value) {\n case 'number':\n globals(value)\n break\n case 'string':\n globals('\"', value, '\"')\n break\n case 'object':\n if (Array.isArray(value)) {\n globals('[', value.join(), ']')\n }\n break\n default:\n globals(env.link(value))\n break\n }\n globals(';')\n }\n })\n\n function appendBlock (env, block) {\n keys.forEach(function (key) {\n var value = object[key]\n if (!dynamic.isDynamic(value)) {\n return\n }\n var ref = env.invoke(block, value)\n block(objectRef, '.', key, '=', ref, ';')\n })\n }\n\n options.dynamic[name] = new dynamic.DynamicVariable(DYN_THUNK, {\n thisDep: thisDep,\n contextDep: contextDep,\n propDep: propDep,\n ref: objectRef,\n append: appendBlock\n })\n delete options.static[name]\n }\n\n // ===========================================================================\n // ===========================================================================\n // MAIN DRAW COMMAND\n // ===========================================================================\n // ===========================================================================\n function compileCommand (options, attributes, uniforms, context, stats) {\n var env = createREGLEnvironment()\n\n // link stats, so that we can easily access it in the program.\n env.stats = env.link(stats)\n\n // splat options and attributes to allow for dynamic nested properties\n Object.keys(attributes.static).forEach(function (key) {\n splatObject(env, attributes, key)\n })\n NESTED_OPTIONS.forEach(function (name) {\n splatObject(env, options, name)\n })\n\n var args = parseArguments(options, attributes, uniforms, context, env)\n\n emitDrawProc(env, args)\n emitScopeProc(env, args)\n emitBatchProc(env, args)\n\n return extend(env.compile(), {\n destroy: function () {\n args.shader.program.destroy()\n }\n })\n }\n\n // ===========================================================================\n // ===========================================================================\n // POLL / REFRESH\n // ===========================================================================\n // ===========================================================================\n return {\n next: nextState,\n current: currentState,\n procs: (function () {\n var env = createREGLEnvironment()\n var poll = env.proc('poll')\n var refresh = env.proc('refresh')\n var common = env.block()\n poll(common)\n refresh(common)\n\n var shared = env.shared\n var GL = shared.gl\n var NEXT_STATE = shared.next\n var CURRENT_STATE = shared.current\n\n common(CURRENT_STATE, '.dirty=false;')\n\n emitPollFramebuffer(env, poll)\n emitPollFramebuffer(env, refresh, null, true)\n\n // Refresh updates all attribute state changes\n var INSTANCING\n if (extInstancing) {\n INSTANCING = env.link(extInstancing)\n }\n\n // update vertex array bindings\n if (extensions.oes_vertex_array_object) {\n refresh(env.link(extensions.oes_vertex_array_object), '.bindVertexArrayOES(null);')\n }\n for (var i = 0; i < limits.maxAttributes; ++i) {\n var BINDING = refresh.def(shared.attributes, '[', i, ']')\n var ifte = env.cond(BINDING, '.buffer')\n ifte.then(\n GL, '.enableVertexAttribArray(', i, ');',\n GL, '.bindBuffer(',\n GL_ARRAY_BUFFER$2, ',',\n BINDING, '.buffer.buffer);',\n GL, '.vertexAttribPointer(',\n i, ',',\n BINDING, '.size,',\n BINDING, '.type,',\n BINDING, '.normalized,',\n BINDING, '.stride,',\n BINDING, '.offset);'\n ).else(\n GL, '.disableVertexAttribArray(', i, ');',\n GL, '.vertexAttrib4f(',\n i, ',',\n BINDING, '.x,',\n BINDING, '.y,',\n BINDING, '.z,',\n BINDING, '.w);',\n BINDING, '.buffer=null;')\n refresh(ifte)\n if (extInstancing) {\n refresh(\n INSTANCING, '.vertexAttribDivisorANGLE(',\n i, ',',\n BINDING, '.divisor);')\n }\n }\n refresh(\n env.shared.vao, '.currentVAO=null;',\n env.shared.vao, '.setVAO(', env.shared.vao, '.targetVAO);')\n\n Object.keys(GL_FLAGS).forEach(function (flag) {\n var cap = GL_FLAGS[flag]\n var NEXT = common.def(NEXT_STATE, '.', flag)\n var block = env.block()\n block('if(', NEXT, '){',\n GL, '.enable(', cap, ')}else{',\n GL, '.disable(', cap, ')}',\n CURRENT_STATE, '.', flag, '=', NEXT, ';')\n refresh(block)\n poll(\n 'if(', NEXT, '!==', CURRENT_STATE, '.', flag, '){',\n block,\n '}')\n })\n\n Object.keys(GL_VARIABLES).forEach(function (name) {\n var func = GL_VARIABLES[name]\n var init = currentState[name]\n var NEXT, CURRENT\n var block = env.block()\n block(GL, '.', func, '(')\n if (isArrayLike(init)) {\n var n = init.length\n NEXT = env.global.def(NEXT_STATE, '.', name)\n CURRENT = env.global.def(CURRENT_STATE, '.', name)\n block(\n loop(n, function (i) {\n return NEXT + '[' + i + ']'\n }), ');',\n loop(n, function (i) {\n return CURRENT + '[' + i + ']=' + NEXT + '[' + i + '];'\n }).join(''))\n poll(\n 'if(', loop(n, function (i) {\n return NEXT + '[' + i + ']!==' + CURRENT + '[' + i + ']'\n }).join('||'), '){',\n block,\n '}')\n } else {\n NEXT = common.def(NEXT_STATE, '.', name)\n CURRENT = common.def(CURRENT_STATE, '.', name)\n block(\n NEXT, ');',\n CURRENT_STATE, '.', name, '=', NEXT, ';')\n poll(\n 'if(', NEXT, '!==', CURRENT, '){',\n block,\n '}')\n }\n refresh(block)\n })\n\n return env.compile()\n })(),\n compile: compileCommand\n }\n}\n\nfunction stats () {\n return {\n vaoCount: 0,\n bufferCount: 0,\n elementsCount: 0,\n framebufferCount: 0,\n shaderCount: 0,\n textureCount: 0,\n cubeCount: 0,\n renderbufferCount: 0,\n maxTextureUnits: 0\n }\n}\n\nvar GL_QUERY_RESULT_EXT = 0x8866\nvar GL_QUERY_RESULT_AVAILABLE_EXT = 0x8867\nvar GL_TIME_ELAPSED_EXT = 0x88BF\n\nvar createTimer = function (gl, extensions) {\n if (!extensions.ext_disjoint_timer_query) {\n return null\n }\n\n // QUERY POOL BEGIN\n var queryPool = []\n function allocQuery () {\n return queryPool.pop() || extensions.ext_disjoint_timer_query.createQueryEXT()\n }\n function freeQuery (query) {\n queryPool.push(query)\n }\n // QUERY POOL END\n\n var pendingQueries = []\n function beginQuery (stats) {\n var query = allocQuery()\n extensions.ext_disjoint_timer_query.beginQueryEXT(GL_TIME_ELAPSED_EXT, query)\n pendingQueries.push(query)\n pushScopeStats(pendingQueries.length - 1, pendingQueries.length, stats)\n }\n\n function endQuery () {\n extensions.ext_disjoint_timer_query.endQueryEXT(GL_TIME_ELAPSED_EXT)\n }\n\n //\n // Pending stats pool.\n //\n function PendingStats () {\n this.startQueryIndex = -1\n this.endQueryIndex = -1\n this.sum = 0\n this.stats = null\n }\n var pendingStatsPool = []\n function allocPendingStats () {\n return pendingStatsPool.pop() || new PendingStats()\n }\n function freePendingStats (pendingStats) {\n pendingStatsPool.push(pendingStats)\n }\n // Pending stats pool end\n\n var pendingStats = []\n function pushScopeStats (start, end, stats) {\n var ps = allocPendingStats()\n ps.startQueryIndex = start\n ps.endQueryIndex = end\n ps.sum = 0\n ps.stats = stats\n pendingStats.push(ps)\n }\n\n // we should call this at the beginning of the frame,\n // in order to update gpuTime\n var timeSum = []\n var queryPtr = []\n function update () {\n var ptr, i\n\n var n = pendingQueries.length\n if (n === 0) {\n return\n }\n\n // Reserve space\n queryPtr.length = Math.max(queryPtr.length, n + 1)\n timeSum.length = Math.max(timeSum.length, n + 1)\n timeSum[0] = 0\n queryPtr[0] = 0\n\n // Update all pending timer queries\n var queryTime = 0\n ptr = 0\n for (i = 0; i < pendingQueries.length; ++i) {\n var query = pendingQueries[i]\n if (extensions.ext_disjoint_timer_query.getQueryObjectEXT(query, GL_QUERY_RESULT_AVAILABLE_EXT)) {\n queryTime += extensions.ext_disjoint_timer_query.getQueryObjectEXT(query, GL_QUERY_RESULT_EXT)\n freeQuery(query)\n } else {\n pendingQueries[ptr++] = query\n }\n timeSum[i + 1] = queryTime\n queryPtr[i + 1] = ptr\n }\n pendingQueries.length = ptr\n\n // Update all pending stat queries\n ptr = 0\n for (i = 0; i < pendingStats.length; ++i) {\n var stats = pendingStats[i]\n var start = stats.startQueryIndex\n var end = stats.endQueryIndex\n stats.sum += timeSum[end] - timeSum[start]\n var startPtr = queryPtr[start]\n var endPtr = queryPtr[end]\n if (endPtr === startPtr) {\n stats.stats.gpuTime += stats.sum / 1e6\n freePendingStats(stats)\n } else {\n stats.startQueryIndex = startPtr\n stats.endQueryIndex = endPtr\n pendingStats[ptr++] = stats\n }\n }\n pendingStats.length = ptr\n }\n\n return {\n beginQuery: beginQuery,\n endQuery: endQuery,\n pushScopeStats: pushScopeStats,\n update: update,\n getNumPendingQueries: function () {\n return pendingQueries.length\n },\n clear: function () {\n queryPool.push.apply(queryPool, pendingQueries)\n for (var i = 0; i < queryPool.length; i++) {\n extensions.ext_disjoint_timer_query.deleteQueryEXT(queryPool[i])\n }\n pendingQueries.length = 0\n queryPool.length = 0\n },\n restore: function () {\n pendingQueries.length = 0\n queryPool.length = 0\n }\n }\n}\n\nvar GL_COLOR_BUFFER_BIT = 16384\nvar GL_DEPTH_BUFFER_BIT = 256\nvar GL_STENCIL_BUFFER_BIT = 1024\n\nvar GL_ARRAY_BUFFER = 34962\n\nvar CONTEXT_LOST_EVENT = 'webglcontextlost'\nvar CONTEXT_RESTORED_EVENT = 'webglcontextrestored'\n\nvar DYN_PROP = 1\nvar DYN_CONTEXT = 2\nvar DYN_STATE = 3\n\nfunction find (haystack, needle) {\n for (var i = 0; i < haystack.length; ++i) {\n if (haystack[i] === needle) {\n return i\n }\n }\n return -1\n}\n\nfunction wrapREGL (args) {\n var config = parseArgs(args)\n if (!config) {\n return null\n }\n\n var gl = config.gl\n var glAttributes = gl.getContextAttributes()\n var contextLost = gl.isContextLost()\n\n var extensionState = createExtensionCache(gl, config)\n if (!extensionState) {\n return null\n }\n\n var stringStore = createStringStore()\n var stats$$1 = stats()\n var extensions = extensionState.extensions\n var timer = createTimer(gl, extensions)\n\n var START_TIME = clock()\n var WIDTH = gl.drawingBufferWidth\n var HEIGHT = gl.drawingBufferHeight\n\n var contextState = {\n tick: 0,\n time: 0,\n viewportWidth: WIDTH,\n viewportHeight: HEIGHT,\n framebufferWidth: WIDTH,\n framebufferHeight: HEIGHT,\n drawingBufferWidth: WIDTH,\n drawingBufferHeight: HEIGHT,\n pixelRatio: config.pixelRatio\n }\n var uniformState = {}\n var drawState = {\n elements: null,\n primitive: 4, // GL_TRIANGLES\n count: -1,\n offset: 0,\n instances: -1\n }\n\n var limits = wrapLimits(gl, extensions)\n var bufferState = wrapBufferState(\n gl,\n stats$$1,\n config,\n destroyBuffer)\n var elementState = wrapElementsState(gl, extensions, bufferState, stats$$1)\n var attributeState = wrapAttributeState(\n gl,\n extensions,\n limits,\n stats$$1,\n bufferState,\n elementState,\n drawState)\n function destroyBuffer (buffer) {\n return attributeState.destroyBuffer(buffer)\n }\n var shaderState = wrapShaderState(gl, stringStore, stats$$1, config)\n var textureState = createTextureSet(\n gl,\n extensions,\n limits,\n function () { core.procs.poll() },\n contextState,\n stats$$1,\n config)\n var renderbufferState = wrapRenderbuffers(gl, extensions, limits, stats$$1, config)\n var framebufferState = wrapFBOState(\n gl,\n extensions,\n limits,\n textureState,\n renderbufferState,\n stats$$1)\n var core = reglCore(\n gl,\n stringStore,\n extensions,\n limits,\n bufferState,\n elementState,\n textureState,\n framebufferState,\n uniformState,\n attributeState,\n shaderState,\n drawState,\n contextState,\n timer,\n config)\n var readPixels = wrapReadPixels(\n gl,\n framebufferState,\n core.procs.poll,\n contextState,\n glAttributes, extensions, limits)\n\n var nextState = core.next\n var canvas = gl.canvas\n\n var rafCallbacks = []\n var lossCallbacks = []\n var restoreCallbacks = []\n var destroyCallbacks = [config.onDestroy]\n\n var activeRAF = null\n function handleRAF () {\n if (rafCallbacks.length === 0) {\n if (timer) {\n timer.update()\n }\n activeRAF = null\n return\n }\n\n // schedule next animation frame\n activeRAF = raf.next(handleRAF)\n\n // poll for changes\n poll()\n\n // fire a callback for all pending rafs\n for (var i = rafCallbacks.length - 1; i >= 0; --i) {\n var cb = rafCallbacks[i]\n if (cb) {\n cb(contextState, null, 0)\n }\n }\n\n // flush all pending webgl calls\n gl.flush()\n\n // poll GPU timers *after* gl.flush so we don't delay command dispatch\n if (timer) {\n timer.update()\n }\n }\n\n function startRAF () {\n if (!activeRAF && rafCallbacks.length > 0) {\n activeRAF = raf.next(handleRAF)\n }\n }\n\n function stopRAF () {\n if (activeRAF) {\n raf.cancel(handleRAF)\n activeRAF = null\n }\n }\n\n function handleContextLoss (event) {\n event.preventDefault()\n\n // set context lost flag\n contextLost = true\n\n // pause request animation frame\n stopRAF()\n\n // lose context\n lossCallbacks.forEach(function (cb) {\n cb()\n })\n }\n\n function handleContextRestored (event) {\n // clear error code\n gl.getError()\n\n // clear context lost flag\n contextLost = false\n\n // refresh state\n extensionState.restore()\n shaderState.restore()\n bufferState.restore()\n textureState.restore()\n renderbufferState.restore()\n framebufferState.restore()\n attributeState.restore()\n if (timer) {\n timer.restore()\n }\n\n // refresh state\n core.procs.refresh()\n\n // restart RAF\n startRAF()\n\n // restore context\n restoreCallbacks.forEach(function (cb) {\n cb()\n })\n }\n\n if (canvas) {\n canvas.addEventListener(CONTEXT_LOST_EVENT, handleContextLoss, false)\n canvas.addEventListener(CONTEXT_RESTORED_EVENT, handleContextRestored, false)\n }\n\n function destroy () {\n rafCallbacks.length = 0\n stopRAF()\n\n if (canvas) {\n canvas.removeEventListener(CONTEXT_LOST_EVENT, handleContextLoss)\n canvas.removeEventListener(CONTEXT_RESTORED_EVENT, handleContextRestored)\n }\n\n shaderState.clear()\n framebufferState.clear()\n renderbufferState.clear()\n attributeState.clear()\n textureState.clear()\n elementState.clear()\n bufferState.clear()\n\n if (timer) {\n timer.clear()\n }\n\n destroyCallbacks.forEach(function (cb) {\n cb()\n })\n }\n\n function compileProcedure (options) {\n check$1(!!options, 'invalid args to regl({...})')\n check$1.type(options, 'object', 'invalid args to regl({...})')\n\n function flattenNestedOptions (options) {\n var result = extend({}, options)\n delete result.uniforms\n delete result.attributes\n delete result.context\n delete result.vao\n\n if ('stencil' in result && result.stencil.op) {\n result.stencil.opBack = result.stencil.opFront = result.stencil.op\n delete result.stencil.op\n }\n\n function merge (name) {\n if (name in result) {\n var child = result[name]\n delete result[name]\n Object.keys(child).forEach(function (prop) {\n result[name + '.' + prop] = child[prop]\n })\n }\n }\n merge('blend')\n merge('depth')\n merge('cull')\n merge('stencil')\n merge('polygonOffset')\n merge('scissor')\n merge('sample')\n\n if ('vao' in options) {\n result.vao = options.vao\n }\n\n return result\n }\n\n function separateDynamic (object, useArrays) {\n var staticItems = {}\n var dynamicItems = {}\n Object.keys(object).forEach(function (option) {\n var value = object[option]\n if (dynamic.isDynamic(value)) {\n dynamicItems[option] = dynamic.unbox(value, option)\n return\n } else if (useArrays && Array.isArray(value)) {\n for (var i = 0; i < value.length; ++i) {\n if (dynamic.isDynamic(value[i])) {\n dynamicItems[option] = dynamic.unbox(value, option)\n return\n }\n }\n }\n staticItems[option] = value\n })\n return {\n dynamic: dynamicItems,\n static: staticItems\n }\n }\n\n // Treat context variables separate from other dynamic variables\n var context = separateDynamic(options.context || {}, true)\n var uniforms = separateDynamic(options.uniforms || {}, true)\n var attributes = separateDynamic(options.attributes || {}, false)\n var opts = separateDynamic(flattenNestedOptions(options), false)\n\n var stats$$1 = {\n gpuTime: 0.0,\n cpuTime: 0.0,\n count: 0\n }\n\n var compiled = core.compile(opts, attributes, uniforms, context, stats$$1)\n\n var draw = compiled.draw\n var batch = compiled.batch\n var scope = compiled.scope\n\n // FIXME: we should modify code generation for batch commands so this\n // isn't necessary\n var EMPTY_ARRAY = []\n function reserve (count) {\n while (EMPTY_ARRAY.length < count) {\n EMPTY_ARRAY.push(null)\n }\n return EMPTY_ARRAY\n }\n\n function REGLCommand (args, body) {\n var i\n if (contextLost) {\n check$1.raise('context lost')\n }\n if (typeof args === 'function') {\n return scope.call(this, null, args, 0)\n } else if (typeof body === 'function') {\n if (typeof args === 'number') {\n for (i = 0; i < args; ++i) {\n scope.call(this, null, body, i)\n }\n } else if (Array.isArray(args)) {\n for (i = 0; i < args.length; ++i) {\n scope.call(this, args[i], body, i)\n }\n } else {\n return scope.call(this, args, body, 0)\n }\n } else if (typeof args === 'number') {\n if (args > 0) {\n return batch.call(this, reserve(args | 0), args | 0)\n }\n } else if (Array.isArray(args)) {\n if (args.length) {\n return batch.call(this, args, args.length)\n }\n } else {\n return draw.call(this, args)\n }\n }\n\n return extend(REGLCommand, {\n stats: stats$$1,\n destroy: function () {\n compiled.destroy()\n }\n })\n }\n\n var setFBO = framebufferState.setFBO = compileProcedure({\n framebuffer: dynamic.define.call(null, DYN_PROP, 'framebuffer')\n })\n\n function clearImpl (_, options) {\n var clearFlags = 0\n core.procs.poll()\n\n var c = options.color\n if (c) {\n gl.clearColor(+c[0] || 0, +c[1] || 0, +c[2] || 0, +c[3] || 0)\n clearFlags |= GL_COLOR_BUFFER_BIT\n }\n if ('depth' in options) {\n gl.clearDepth(+options.depth)\n clearFlags |= GL_DEPTH_BUFFER_BIT\n }\n if ('stencil' in options) {\n gl.clearStencil(options.stencil | 0)\n clearFlags |= GL_STENCIL_BUFFER_BIT\n }\n\n check$1(!!clearFlags, 'called regl.clear with no buffer specified')\n gl.clear(clearFlags)\n }\n\n function clear (options) {\n check$1(\n typeof options === 'object' && options,\n 'regl.clear() takes an object as input')\n if ('framebuffer' in options) {\n if (options.framebuffer &&\n options.framebuffer_reglType === 'framebufferCube') {\n for (var i = 0; i < 6; ++i) {\n setFBO(extend({\n framebuffer: options.framebuffer.faces[i]\n }, options), clearImpl)\n }\n } else {\n setFBO(options, clearImpl)\n }\n } else {\n clearImpl(null, options)\n }\n }\n\n function frame (cb) {\n check$1.type(cb, 'function', 'regl.frame() callback must be a function')\n rafCallbacks.push(cb)\n\n function cancel () {\n // FIXME: should we check something other than equals cb here?\n // what if a user calls frame twice with the same callback...\n //\n var i = find(rafCallbacks, cb)\n check$1(i >= 0, 'cannot cancel a frame twice')\n function pendingCancel () {\n var index = find(rafCallbacks, pendingCancel)\n rafCallbacks[index] = rafCallbacks[rafCallbacks.length - 1]\n rafCallbacks.length -= 1\n if (rafCallbacks.length <= 0) {\n stopRAF()\n }\n }\n rafCallbacks[i] = pendingCancel\n }\n\n startRAF()\n\n return {\n cancel: cancel\n }\n }\n\n // poll viewport\n function pollViewport () {\n var viewport = nextState.viewport\n var scissorBox = nextState.scissor_box\n viewport[0] = viewport[1] = scissorBox[0] = scissorBox[1] = 0\n contextState.viewportWidth =\n contextState.framebufferWidth =\n contextState.drawingBufferWidth =\n viewport[2] =\n scissorBox[2] = gl.drawingBufferWidth\n contextState.viewportHeight =\n contextState.framebufferHeight =\n contextState.drawingBufferHeight =\n viewport[3] =\n scissorBox[3] = gl.drawingBufferHeight\n }\n\n function poll () {\n contextState.tick += 1\n contextState.time = now()\n pollViewport()\n core.procs.poll()\n }\n\n function refresh () {\n textureState.refresh()\n pollViewport()\n core.procs.refresh()\n if (timer) {\n timer.update()\n }\n }\n\n function now () {\n return (clock() - START_TIME) / 1000.0\n }\n\n refresh()\n\n function addListener (event, callback) {\n check$1.type(callback, 'function', 'listener callback must be a function')\n\n var callbacks\n switch (event) {\n case 'frame':\n return frame(callback)\n case 'lost':\n callbacks = lossCallbacks\n break\n case 'restore':\n callbacks = restoreCallbacks\n break\n case 'destroy':\n callbacks = destroyCallbacks\n break\n default:\n check$1.raise('invalid event, must be one of frame,lost,restore,destroy')\n }\n\n callbacks.push(callback)\n return {\n cancel: function () {\n for (var i = 0; i < callbacks.length; ++i) {\n if (callbacks[i] === callback) {\n callbacks[i] = callbacks[callbacks.length - 1]\n callbacks.pop()\n return\n }\n }\n }\n }\n }\n\n var regl = extend(compileProcedure, {\n // Clear current FBO\n clear: clear,\n\n // Short cuts for dynamic variables\n prop: dynamic.define.bind(null, DYN_PROP),\n context: dynamic.define.bind(null, DYN_CONTEXT),\n this: dynamic.define.bind(null, DYN_STATE),\n\n // executes an empty draw command\n draw: compileProcedure({}),\n\n // Resources\n buffer: function (options) {\n return bufferState.create(options, GL_ARRAY_BUFFER, false, false)\n },\n elements: function (options) {\n return elementState.create(options, false)\n },\n texture: textureState.create2D,\n cube: textureState.createCube,\n renderbuffer: renderbufferState.create,\n framebuffer: framebufferState.create,\n framebufferCube: framebufferState.createCube,\n vao: attributeState.createVAO,\n\n // Expose context attributes\n attributes: glAttributes,\n\n // Frame rendering\n frame: frame,\n on: addListener,\n\n // System limits\n limits: limits,\n hasExtension: function (name) {\n return limits.extensions.indexOf(name.toLowerCase()) >= 0\n },\n\n // Read pixels\n read: readPixels,\n\n // Destroy regl and all associated resources\n destroy: destroy,\n\n // Direct GL state manipulation\n _gl: gl,\n _refresh: refresh,\n\n poll: function () {\n poll()\n if (timer) {\n timer.update()\n }\n },\n\n // Current time\n now: now,\n\n // regl Statistics Information\n stats: stats$$1\n })\n\n config.onDone(null, regl)\n\n return regl\n}\n\nreturn wrapREGL;\n\n})));\n//# sourceMappingURL=regl.js.map\n","'use strict'\r\n\r\nmodule.exports = normalize;\r\n\r\nfunction normalize (arr, dim) {\r\n\tif (!arr || arr.length == null) throw Error('Argument should be an array')\r\n\r\n\tif (dim == null) dim = 1\r\n\telse dim = Math.floor(dim)\r\n\r\n\tvar bounds = Array(dim * 2)\r\n\r\n\tfor (var offset = 0; offset < dim; offset++) {\r\n\t\tvar max = -Infinity, min = Infinity, i = offset, l = arr.length;\r\n\r\n\t\tfor (; i < l; i+=dim) {\r\n\t\t\tif (arr[i] > max) max = arr[i];\r\n\t\t\tif (arr[i] < min) min = arr[i];\r\n\t\t}\r\n\r\n\t\tbounds[offset] = min\r\n\t\tbounds[dim + offset] = max\r\n\t}\r\n\r\n\treturn bounds;\r\n}\r\n","'use strict'\r\n\r\nvar getBounds = require('array-bounds')\r\n\r\nmodule.exports = normalize;\r\n\r\nfunction normalize (arr, dim, bounds) {\r\n\tif (!arr || arr.length == null) throw Error('Argument should be an array')\r\n\r\n\tif (dim == null) dim = 1\r\n\tif (bounds == null) bounds = getBounds(arr, dim)\r\n\r\n\tfor (var offset = 0; offset < dim; offset++) {\r\n\t\tvar max = bounds[dim + offset], min = bounds[offset], i = offset, l = arr.length;\r\n\r\n\t\tif (max === Infinity && min === -Infinity) {\r\n\t\t\tfor (i = offset; i < l; i+=dim) {\r\n\t\t\t\tarr[i] = arr[i] === max ? 1 : arr[i] === min ? 0 : .5\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (max === Infinity) {\r\n\t\t\tfor (i = offset; i < l; i+=dim) {\r\n\t\t\t\tarr[i] = arr[i] === max ? 1 : 0\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (min === -Infinity) {\r\n\t\t\tfor (i = offset; i < l; i+=dim) {\r\n\t\t\t\tarr[i] = arr[i] === min ? 0 : 1\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar range = max - min\r\n\t\t\tfor (i = offset; i < l; i+=dim) {\r\n\t\t\t\tif (!isNaN(arr[i])) {\r\n\t\t\t\t\tarr[i] = range === 0 ? .5 : (arr[i] - min) / range\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn arr;\r\n}\r\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/**\r\n * @module color-parse\r\n */\r\n\r\n'use strict'\r\n\r\nvar names = require('color-name')\r\n\r\nmodule.exports = parse\r\n\r\n/**\r\n * Base hues\r\n * http://dev.w3.org/csswg/css-color/#typedef-named-hue\r\n */\r\n//FIXME: use external hue detector\r\nvar baseHues = {\r\n\tred: 0,\r\n\torange: 60,\r\n\tyellow: 120,\r\n\tgreen: 180,\r\n\tblue: 240,\r\n\tpurple: 300\r\n}\r\n\r\n/**\r\n * Parse color from the string passed\r\n *\r\n * @return {Object} A space indicator `space`, an array `values` and `alpha`\r\n */\r\nfunction parse (cstr) {\r\n\tvar m, parts = [], alpha = 1, space\r\n\r\n\tif (typeof cstr === 'string') {\r\n\t\t//keyword\r\n\t\tif (names[cstr]) {\r\n\t\t\tparts = names[cstr].slice()\r\n\t\t\tspace = 'rgb'\r\n\t\t}\r\n\r\n\t\t//reserved words\r\n\t\telse if (cstr === 'transparent') {\r\n\t\t\talpha = 0\r\n\t\t\tspace = 'rgb'\r\n\t\t\tparts = [0,0,0]\r\n\t\t}\r\n\r\n\t\t//hex\r\n\t\telse if (/^#[A-Fa-f0-9]+$/.test(cstr)) {\r\n\t\t\tvar base = cstr.slice(1)\r\n\t\t\tvar size = base.length\r\n\t\t\tvar isShort = size <= 4\r\n\t\t\talpha = 1\r\n\r\n\t\t\tif (isShort) {\r\n\t\t\t\tparts = [\r\n\t\t\t\t\tparseInt(base[0] + base[0], 16),\r\n\t\t\t\t\tparseInt(base[1] + base[1], 16),\r\n\t\t\t\t\tparseInt(base[2] + base[2], 16)\r\n\t\t\t\t]\r\n\t\t\t\tif (size === 4) {\r\n\t\t\t\t\talpha = parseInt(base[3] + base[3], 16) / 255\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tparts = [\r\n\t\t\t\t\tparseInt(base[0] + base[1], 16),\r\n\t\t\t\t\tparseInt(base[2] + base[3], 16),\r\n\t\t\t\t\tparseInt(base[4] + base[5], 16)\r\n\t\t\t\t]\r\n\t\t\t\tif (size === 8) {\r\n\t\t\t\t\talpha = parseInt(base[6] + base[7], 16) / 255\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!parts[0]) parts[0] = 0\r\n\t\t\tif (!parts[1]) parts[1] = 0\r\n\t\t\tif (!parts[2]) parts[2] = 0\r\n\r\n\t\t\tspace = 'rgb'\r\n\t\t}\r\n\r\n\t\t//color space\r\n\t\telse if (m = /^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\\s*\\(([^\\)]*)\\)/.exec(cstr)) {\r\n\t\t\tvar name = m[1]\r\n\t\t\tvar isRGB = name === 'rgb'\r\n\t\t\tvar base = name.replace(/a$/, '')\r\n\t\t\tspace = base\r\n\t\t\tvar size = base === 'cmyk' ? 4 : base === 'gray' ? 1 : 3\r\n\t\t\tparts = m[2].trim()\r\n\t\t\t\t.split(/\\s*[,\\/]\\s*|\\s+/)\r\n\t\t\t\t.map(function (x, i) {\r\n\t\t\t\t\t//<percentage>\r\n\t\t\t\t\tif (/%$/.test(x)) {\r\n\t\t\t\t\t\t//alpha\r\n\t\t\t\t\t\tif (i === size)\treturn parseFloat(x) / 100\r\n\t\t\t\t\t\t//rgb\r\n\t\t\t\t\t\tif (base === 'rgb') return parseFloat(x) * 255 / 100\r\n\t\t\t\t\t\treturn parseFloat(x)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//hue\r\n\t\t\t\t\telse if (base[i] === 'h') {\r\n\t\t\t\t\t\t//<deg>\r\n\t\t\t\t\t\tif (/deg$/.test(x)) {\r\n\t\t\t\t\t\t\treturn parseFloat(x)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//<base-hue>\r\n\t\t\t\t\t\telse if (baseHues[x] !== undefined) {\r\n\t\t\t\t\t\t\treturn baseHues[x]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn parseFloat(x)\r\n\t\t\t\t})\r\n\r\n\t\t\tif (name === base) parts.push(1)\r\n\t\t\talpha = (isRGB) ? 1 : (parts[size] === undefined) ? 1 : parts[size]\r\n\t\t\tparts = parts.slice(0, size)\r\n\t\t}\r\n\r\n\t\t//named channels case\r\n\t\telse if (cstr.length > 10 && /[0-9](?:\\s|\\/)/.test(cstr)) {\r\n\t\t\tparts = cstr.match(/([0-9]+)/g).map(function (value) {\r\n\t\t\t\treturn parseFloat(value)\r\n\t\t\t})\r\n\r\n\t\t\tspace = cstr.match(/([a-z])/ig).join('').toLowerCase()\r\n\t\t}\r\n\t}\r\n\r\n\t//numeric case\r\n\telse if (!isNaN(cstr)) {\r\n\t\tspace = 'rgb'\r\n\t\tparts = [cstr >>> 16, (cstr & 0x00ff00) >>> 8, cstr & 0x0000ff]\r\n\t}\r\n\r\n\t//array-like\r\n\telse if (Array.isArray(cstr) || cstr.length) {\r\n\t\tparts = [cstr[0], cstr[1], cstr[2]]\r\n\t\tspace = 'rgb'\r\n\t\talpha = cstr.length === 4 ? cstr[3] : 1\r\n\t}\r\n\r\n\t//object case - detects css cases of rgb and hsl\r\n\telse if (cstr instanceof Object) {\r\n\t\tif (cstr.r != null || cstr.red != null || cstr.R != null) {\r\n\t\t\tspace = 'rgb'\r\n\t\t\tparts = [\r\n\t\t\t\tcstr.r || cstr.red || cstr.R || 0,\r\n\t\t\t\tcstr.g || cstr.green || cstr.G || 0,\r\n\t\t\t\tcstr.b || cstr.blue || cstr.B || 0\r\n\t\t\t]\r\n\t\t}\r\n\t\telse {\r\n\t\t\tspace = 'hsl'\r\n\t\t\tparts = [\r\n\t\t\t\tcstr.h || cstr.hue || cstr.H || 0,\r\n\t\t\t\tcstr.s || cstr.saturation || cstr.S || 0,\r\n\t\t\t\tcstr.l || cstr.lightness || cstr.L || cstr.b || cstr.brightness\r\n\t\t\t]\r\n\t\t}\r\n\r\n\t\talpha = cstr.a || cstr.alpha || cstr.opacity || 1\r\n\r\n\t\tif (cstr.opacity != null) alpha /= 100\r\n\t}\r\n\r\n\treturn {\r\n\t\tspace: space,\r\n\t\tvalues: parts,\r\n\t\talpha: alpha\r\n\t}\r\n}\r\n","/** @module color-rgba */\r\n\r\n'use strict'\r\n\r\nvar parse = require('color-parse')\r\n\r\nmodule.exports = function rgba (color) {\r\n\t// template literals\r\n\tif (Array.isArray(color) && color.raw) color = String.raw.apply(null, arguments)\r\n\r\n\tvar values, i, l\r\n\r\n\t//attempt to parse non-array arguments\r\n\tvar parsed = parse(color)\r\n\r\n\tif (!parsed.space) return []\r\n\r\n\tvar min = [0,0,0], max = parsed.space[0] === 'h' ? [360,100,100] : [255,255,255]\r\n\r\n\tvalues = Array(3)\r\n\tvalues[0] = Math.min(Math.max(parsed.values[0], min[0]), max[0])\r\n\tvalues[1] = Math.min(Math.max(parsed.values[1], min[1]), max[1])\r\n\tvalues[2] = Math.min(Math.max(parsed.values[2], min[2]), max[2])\r\n\r\n\tif (parsed.space[0] === 'h') values = hsl2rgb(values)\r\n\r\n\tvalues.push(Math.min(Math.max(parsed.alpha, 0), 1))\r\n\r\n\treturn values\r\n}\r\n\r\n\r\n// excerpt from color-space/hsl\r\nfunction hsl2rgb(hsl) {\r\n\tvar h = hsl[0]/360, s = hsl[1]/100, l = hsl[2]/100, t1, t2, t3, rgb, val, i=0;\r\n\r\n\tif (s === 0) return val = l * 255, [val, val, val];\r\n\r\n\tt2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n\tt1 = 2 * l - t2;\r\n\r\n\trgb = [0, 0, 0];\r\n\tfor (;i<3;) {\r\n\t\tt3 = h + 1 / 3 * - (i - 1);\r\n\t\tt3 < 0 ? t3++ : t3 > 1 && t3--;\r\n\t\tval = 6 * t3 < 1 ? t1 + (t2 - t1) * 6 * t3 :\r\n\t\t2 * t3 < 1 ? t2 :\r\n\t\t3 * t3 < 2 ? t1 + (t2 - t1) * (2 / 3 - t3) * 6 :\r\n\t\tt1;\r\n\t\trgb[i++] = val * 255;\r\n\t}\r\n\r\n\treturn rgb;\r\n}\r\n","module.exports = function(dtype) {\n switch (dtype) {\n case 'int8':\n return Int8Array\n case 'int16':\n return Int16Array\n case 'int32':\n return Int32Array\n case 'uint8':\n return Uint8Array\n case 'uint16':\n return Uint16Array\n case 'uint32':\n return Uint32Array\n case 'float32':\n return Float32Array\n case 'float64':\n return Float64Array\n case 'array':\n return Array\n case 'uint8_clamped':\n return Uint8ClampedArray\n }\n}\n","/** @module color-normalize */\r\n\r\n'use strict'\r\n\r\nvar rgba = require('color-rgba')\r\nvar dtype = require('dtype')\r\n\r\nmodule.exports = function normalize (color, type) {\r\n\tif (type === 'float' || !type) type = 'array'\r\n\tif (type === 'uint') type = 'uint8'\r\n\tif (type === 'uint_clamped') type = 'uint8_clamped'\r\n\tvar Ctor = dtype(type)\r\n\tvar output = new Ctor(4)\r\n\r\n\tvar normalize = type !== 'uint8' && type !== 'uint8_clamped'\r\n\r\n\t// attempt to parse non-array arguments\r\n\tif (!color.length || typeof color === 'string') {\r\n\t\tcolor = rgba(color)\r\n\t\tcolor[0] /= 255\r\n\t\tcolor[1] /= 255\r\n\t\tcolor[2] /= 255\r\n\t}\r\n\r\n\t// 0, 1 are possible contradictory values for Arrays:\r\n\t// [1,1,1] input gives [1,1,1] output instead of [1/255,1/255,1/255], which may be collision if input is meant to be uint.\r\n\t// converting [1,1,1] to [1/255,1/255,1/255] in case of float input gives larger mistake since [1,1,1] float is frequent edge value, whereas [0,1,1], [1,1,1] etc. uint inputs are relatively rare\r\n\tif (isInt(color)) {\r\n\t\toutput[0] = color[0]\r\n\t\toutput[1] = color[1]\r\n\t\toutput[2] = color[2]\r\n\t\toutput[3] = color[3] != null ? color[3] : 255\r\n\r\n\t\tif (normalize) {\r\n\t\t\toutput[0] /= 255\r\n\t\t\toutput[1] /= 255\r\n\t\t\toutput[2] /= 255\r\n\t\t\toutput[3] /= 255\r\n\t\t}\r\n\r\n\t\treturn output\r\n\t}\r\n\r\n\tif (!normalize) {\r\n\t\toutput[0] = Math.min(Math.max(Math.floor(color[0] * 255), 0), 255)\r\n\t\toutput[1] = Math.min(Math.max(Math.floor(color[1] * 255), 0), 255)\r\n\t\toutput[2] = Math.min(Math.max(Math.floor(color[2] * 255), 0), 255)\r\n\t\toutput[3] = color[3] == null ? 255 : Math.min(Math.max(Math.floor(color[3] * 255), 0), 255)\r\n\t} else {\r\n\t\toutput[0] = color[0]\r\n\t\toutput[1] = color[1]\r\n\t\toutput[2] = color[2]\r\n\t\toutput[3] = color[3] != null ? color[3] : 1\r\n\t}\r\n\r\n\treturn output\r\n}\r\n\r\nfunction isInt(color) {\r\n\tif (color instanceof Uint8Array || color instanceof Uint8ClampedArray) return true\r\n\r\n\tif (Array.isArray(color) &&\r\n\t\t(color[0] > 1 || color[0] === 0) &&\r\n\t\t(color[1] > 1 || color[1] === 0) &&\r\n\t\t(color[2] > 1 || color[2] === 0) &&\r\n\t\t(!color[3] || color[3] > 1)\r\n\t) return true\r\n\r\n\treturn false\r\n}\r\n","'use strict';\n\nmodule.exports = earcut;\nmodule.exports.default = earcut;\n\nfunction earcut(data, holeIndices, dim) {\n\n dim = dim || 2;\n\n var hasHoles = holeIndices && holeIndices.length,\n outerLen = hasHoles ? holeIndices[0] * dim : data.length,\n outerNode = linkedList(data, 0, outerLen, dim, true),\n triangles = [];\n\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n var minX, minY, maxX, maxY, x, y, invSize;\n\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 1 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize);\n\n return triangles;\n}\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList(data, start, end, dim, clockwise) {\n var i, last;\n\n if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n\n var p = start,\n again;\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n\n var stop = ear,\n prev, next;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n // cut off the triangle\n triangles.push(prev.i / dim);\n triangles.push(ear.i / dim);\n triangles.push(next.i / dim);\n\n removeNode(ear);\n\n // skipping the next vertex leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar(ear) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n var p = ear.next.next;\n\n while (p !== ear.prev) {\n if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nfunction isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // triangle bbox; min & max are calculated like this for speed\n var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x),\n minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y),\n maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x),\n maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);\n\n // z-order range for the current triangle bbox;\n var minZ = zOrder(minTX, minTY, minX, minY, invSize),\n maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\n\n var p = ear.prevZ,\n n = ear.nextZ;\n\n // look for points inside the triangle in both directions\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n\n if (n !== ear.prev && n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n // look for remaining points in decreasing z-order\n while (p && p.z >= minZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n\n // look for remaining points in increasing z-order\n while (n && n.z <= maxZ) {\n if (n !== ear.prev && n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev,\n b = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n // look for a valid diagonal that divides the polygon into two\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n var c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, invSize);\n earcutLinked(c, triangles, dim, minX, minY, invSize);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [],\n i, len, start, end, list;\n\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareX);\n\n // process holes from left to right\n for (i = 0; i < queue.length; i++) {\n outerNode = eliminateHole(queue[i], outerNode);\n outerNode = filterPoints(outerNode, outerNode.next);\n }\n\n return outerNode;\n}\n\nfunction compareX(a, b) {\n return a.x - b.x;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n var bridge = findHoleBridge(hole, outerNode);\n if (!bridge) {\n return outerNode;\n }\n\n var bridgeReverse = splitPolygon(bridge, hole);\n\n // filter collinear points around the cuts\n var filteredBridge = filterPoints(bridge, bridge.next);\n filterPoints(bridgeReverse, bridgeReverse.next);\n\n // Check if input node was removed by the filtering\n return outerNode === bridge ? filteredBridge : outerNode;\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n var p = outerNode,\n hx = hole.x,\n hy = hole.y,\n qx = -Infinity,\n m;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n if (x === hx) {\n if (hy === p.y) return p;\n if (hy === p.next.y) return p.next;\n }\n m = p.x < p.next.x ? p : p.next;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n\n if (hx === qx) return m; // hole touches outer segment; pick leftmost endpoint\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n var stop = m,\n mx = m.x,\n my = m.y,\n tanMin = Infinity,\n tan;\n\n p = m;\n\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (locallyInside(p, hole) &&\n (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize,\n inSize = 1;\n\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n\n } while (numMerges > 1);\n\n return list;\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder(x, y, minX, minY, invSize) {\n // coords are transformed into non-negative 15-bit integer range\n x = 32767 * (x - minX) * invSize;\n y = 32767 * (y - minY) * invSize;\n\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n var p = start,\n leftmost = start;\n do {\n if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&\n (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&\n (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case\n}\n\n// signed area of a triangle\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nfunction equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nfunction intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n}\n\nfunction sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ?\n area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n var p = a,\n inside = false,\n px = (a.x + b.x) / 2,\n py = (a.y + b.y) / 2;\n do {\n if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&\n (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y),\n b2 = new Node(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n}\n\nfunction removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction Node(i, x, y) {\n // vertex index in coordinates array\n this.i = i;\n\n // vertex coordinates\n this.x = x;\n this.y = y;\n\n // previous and next vertex nodes in a polygon ring\n this.prev = null;\n this.next = null;\n\n // z-order curve value\n this.z = null;\n\n // previous and next nodes in z-order\n this.prevZ = null;\n this.nextZ = null;\n\n // indicates whether this is a steiner point\n this.steiner = false;\n}\n\n// return a percentage difference between the polygon area and its triangulation area;\n// used to verify correctness of triangulation\nearcut.deviation = function (data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs(\n (data[a] - data[c]) * (data[b + 1] - data[a + 1]) -\n (data[a] - data[b]) * (data[c + 1] - data[a + 1]));\n }\n\n return polygonArea === 0 && trianglesArea === 0 ? 0 :\n Math.abs((trianglesArea - polygonArea) / polygonArea);\n};\n\nfunction signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n}\n\n// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts\nearcut.flatten = function (data) {\n var dim = data[0][0].length,\n result = {vertices: [], holes: [], dimensions: dim},\n holeIndex = 0;\n\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n};\n","precision highp float;\n\nattribute vec2 aCoord, bCoord, aCoordFract, bCoordFract;\nattribute vec4 color;\nattribute float lineEnd, lineTop;\n\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float thickness, pixelRatio, depth;\nuniform vec4 viewport;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\n\nvec2 project(vec2 position, vec2 positionFract, vec2 scale, vec2 scaleFract, vec2 translate, vec2 translateFract) {\n\t// the order is important\n\treturn position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n}\n\nvoid main() {\n\tfloat lineStart = 1. - lineEnd;\n\tfloat lineOffset = lineTop * 2. - 1.;\n\n\tvec2 diff = (bCoord + bCoordFract - aCoord - aCoordFract);\n\ttangent = normalize(diff * scale * viewport.zw);\n\tvec2 normal = vec2(-tangent.y, tangent.x);\n\n\tvec2 position = project(aCoord, aCoordFract, scale, scaleFract, translate, translateFract) * lineStart\n\t\t+ project(bCoord, bCoordFract, scale, scaleFract, translate, translateFract) * lineEnd\n\n\t\t+ thickness * normal * .5 * lineOffset / viewport.zw;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n}","precision highp float;\n\nuniform sampler2D dashPattern;\n\nuniform float dashSize, pixelRatio, thickness, opacity;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\n\nvoid main() {\n\tfloat alpha = 1.;\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashSize) * .5 + .25;\n\tfloat dash = texture2D(dashPattern, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createRectShader = void 0;\nconst shader_vert_1 = __importDefault(require(\"./shader.vert\"));\nconst shader_frag_1 = __importDefault(require(\"./shader.frag\"));\nfunction createRectShader(regl, offsetBuffer, baseOptions) {\n const drawConfig = Object.assign(Object.assign({}, baseOptions), { vert: shader_vert_1.default,\n frag: shader_frag_1.default, attributes: {\n // if point is at the end of segment\n lineEnd: {\n buffer: offsetBuffer,\n divisor: 0,\n stride: 8,\n offset: 0,\n },\n // if point is at the top of segment\n lineTop: {\n buffer: offsetBuffer,\n divisor: 0,\n stride: 8,\n offset: 4,\n },\n // beginning of line coordinate\n aCoord: {\n buffer: (_, props) => props.positionBuffer,\n stride: 8,\n offset: 8,\n divisor: 1,\n },\n // end of line coordinate\n bCoord: {\n buffer: (_, props) => props.positionBuffer,\n stride: 8,\n offset: 16,\n divisor: 1,\n },\n aCoordFract: {\n buffer: (_, props) => props.positionFractBuffer,\n stride: 8,\n offset: 8,\n divisor: 1,\n },\n bCoordFract: {\n buffer: (_, props) => props.positionFractBuffer,\n stride: 8,\n offset: 16,\n divisor: 1,\n },\n color: {\n buffer: (_, props) => props.colorBuffer,\n stride: 4,\n offset: 0,\n divisor: 1,\n },\n } });\n return regl(drawConfig);\n}\nexports.createRectShader = createRectShader;\n","precision highp float;\n\nattribute vec2 aCoord, bCoord, nextCoord, prevCoord;\nattribute vec4 aColor, bColor;\nattribute float lineEnd, lineTop;\n\nuniform vec2 scale, translate;\nuniform float thickness, pixelRatio, depth;\nuniform vec4 viewport;\nuniform float miterLimit, miterMode;\n\nvarying vec4 fragColor;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 tangent;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nconst float REVERSE_THRESHOLD = -.875;\nconst float MIN_DIFF = 1e-6;\n\n// TODO: possible optimizations: avoid overcalculating all for vertices and calc just one instead\n// TODO: precalculate dot products, normalize things beforehead etc.\n// TODO: refactor to rectangular algorithm\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nbool isNaN( float val ){\n return ( val < 0.0 || 0.0 < val || val == 0.0 ) ? false : true;\n}\n\nvoid main() {\n\tvec2 aCoord = aCoord, bCoord = bCoord, prevCoord = prevCoord, nextCoord = nextCoord;\n\n vec2 adjustedScale;\n adjustedScale.x = (abs(scale.x) < MIN_DIFF) ? MIN_DIFF : scale.x;\n adjustedScale.y = (abs(scale.y) < MIN_DIFF) ? MIN_DIFF : scale.y;\n\n vec2 scaleRatio = adjustedScale * viewport.zw;\n\tvec2 normalWidth = thickness / scaleRatio;\n\n\tfloat lineStart = 1. - lineEnd;\n\tfloat lineBot = 1. - lineTop;\n\n\tfragColor = (lineStart * aColor + lineEnd * bColor) / 255.;\n\n\tif (isNaN(aCoord.x) || isNaN(aCoord.y) || isNaN(bCoord.x) || isNaN(bCoord.y)) return;\n\n\tif (aCoord == prevCoord) prevCoord = aCoord + normalize(bCoord - aCoord);\n\tif (bCoord == nextCoord) nextCoord = bCoord - normalize(bCoord - aCoord);\n\n\n\tvec2 prevDiff = aCoord - prevCoord;\n\tvec2 currDiff = bCoord - aCoord;\n\tvec2 nextDiff = nextCoord - bCoord;\n\n\tvec2 prevTangent = normalize(prevDiff * scaleRatio);\n\tvec2 currTangent = normalize(currDiff * scaleRatio);\n\tvec2 nextTangent = normalize(nextDiff * scaleRatio);\n\n\tvec2 prevNormal = vec2(-prevTangent.y, prevTangent.x);\n\tvec2 currNormal = vec2(-currTangent.y, currTangent.x);\n\tvec2 nextNormal = vec2(-nextTangent.y, nextTangent.x);\n\n\tvec2 startJoinDirection = normalize(prevTangent - currTangent);\n\tvec2 endJoinDirection = normalize(currTangent - nextTangent);\n\n\t// collapsed/unidirectional segment cases\n\t// FIXME: there should be more elegant solution\n\tvec2 prevTanDiff = abs(prevTangent - currTangent);\n\tvec2 nextTanDiff = abs(nextTangent - currTangent);\n\tif (max(prevTanDiff.x, prevTanDiff.y) < MIN_DIFF) {\n\t\tstartJoinDirection = currNormal;\n\t}\n\tif (max(nextTanDiff.x, nextTanDiff.y) < MIN_DIFF) {\n\t\tendJoinDirection = currNormal;\n\t}\n\tif (aCoord == bCoord) {\n\t\tendJoinDirection = startJoinDirection;\n\t\tcurrNormal = prevNormal;\n\t\tcurrTangent = prevTangent;\n\t}\n\n\ttangent = currTangent;\n\n\t//calculate join shifts relative to normals\n\tfloat startJoinShift = dot(currNormal, startJoinDirection);\n\tfloat endJoinShift = dot(currNormal, endJoinDirection);\n\n\tfloat startMiterRatio = abs(1. / startJoinShift);\n\tfloat endMiterRatio = abs(1. / endJoinShift);\n\n\tvec2 startJoin = startJoinDirection * startMiterRatio;\n\tvec2 endJoin = endJoinDirection * endMiterRatio;\n\n\tvec2 startTopJoin, startBotJoin, endTopJoin, endBotJoin;\n\tstartTopJoin = sign(startJoinShift) * startJoin * .5;\n\tstartBotJoin = -startTopJoin;\n\n\tendTopJoin = sign(endJoinShift) * endJoin * .5;\n\tendBotJoin = -endTopJoin;\n\n\tvec2 aTopCoord = aCoord + normalWidth * startTopJoin;\n\tvec2 bTopCoord = bCoord + normalWidth * endTopJoin;\n\tvec2 aBotCoord = aCoord + normalWidth * startBotJoin;\n\tvec2 bBotCoord = bCoord + normalWidth * endBotJoin;\n\n\t//miter anti-clipping\n\tfloat baClipping = distToLine(bCoord, aCoord, aBotCoord) / dot(normalize(normalWidth * endBotJoin), normalize(normalWidth.yx * vec2(-startBotJoin.y, startBotJoin.x)));\n\tfloat abClipping = distToLine(aCoord, bCoord, bTopCoord) / dot(normalize(normalWidth * startBotJoin), normalize(normalWidth.yx * vec2(-endBotJoin.y, endBotJoin.x)));\n\n\t//prevent close to reverse direction switch\n\tbool prevReverse = dot(currTangent, prevTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, prevNormal)) * min(length(prevDiff), length(currDiff)) < length(normalWidth * currNormal);\n\tbool nextReverse = dot(currTangent, nextTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, nextNormal)) * min(length(nextDiff), length(currDiff)) < length(normalWidth * currNormal);\n\n\tif (prevReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * startJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / startMiterRatio, 1.);\n\t\taBotCoord = aCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\taTopCoord = aCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!nextReverse && baClipping > 0. && baClipping < length(normalWidth * endBotJoin)) {\n\t\t//handle miter clipping\n\t\tbTopCoord -= normalWidth * endTopJoin;\n\t\tbTopCoord += normalize(endTopJoin * normalWidth) * baClipping;\n\t}\n\n\tif (nextReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);\n\t\tbBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\tbTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {\n\t\t//handle miter clipping\n\t\taBotCoord -= normalWidth * startBotJoin;\n\t\taBotCoord += normalize(startBotJoin * normalWidth) * abClipping;\n\t}\n\n\tvec2 aTopPosition = (aTopCoord) * adjustedScale + translate;\n\tvec2 aBotPosition = (aBotCoord) * adjustedScale + translate;\n\n\tvec2 bTopPosition = (bTopCoord) * adjustedScale + translate;\n\tvec2 bBotPosition = (bBotCoord) * adjustedScale + translate;\n\n\t//position is normalized 0..1 coord on the screen\n\tvec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;\n\n\tstartCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\tendCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tenableStartMiter = step(dot(currTangent, prevTangent), .5);\n\tenableEndMiter = step(dot(currTangent, nextTangent), .5);\n\n\t//bevel miter cutoffs\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n\n\t//round miter cutoffs\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n}","precision highp float;\n\nuniform sampler2D dashPattern;\nuniform float dashSize, pixelRatio, thickness, opacity, miterMode;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nvoid main() {\n\tfloat alpha = 1., distToStart, distToEnd;\n\tfloat cutoff = thickness * .5;\n\n\t//bevel miter\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToStart + 1., 0.), 1.);\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToEnd + 1., 0.), 1.);\n\t\t}\n\t}\n\n\t// round miter\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - startCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - endCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\t}\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashSize) * .5 + .25;\n\tfloat dash = texture2D(dashPattern, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMiterShader = void 0;\nconst shader_vert_1 = __importDefault(require(\"./shader.vert\"));\nconst shader_frag_1 = __importDefault(require(\"./shader.frag\"));\nfunction createMiterShader(regl, offsetBuffer, baseOptions) {\n const drawConfig = Object.assign(Object.assign({}, baseOptions), { \n // culling removes polygon creasing\n cull: {\n enable: true,\n face: \"back\",\n }, vert: shader_vert_1.default,\n frag: shader_frag_1.default, attributes: {\n // is line end\n lineEnd: {\n buffer: offsetBuffer,\n divisor: 0,\n stride: 8,\n offset: 0,\n },\n // is line top\n lineTop: {\n buffer: offsetBuffer,\n divisor: 0,\n stride: 8,\n offset: 4,\n },\n // left color\n aColor: {\n buffer: (_, props) => props.colorBuffer,\n stride: 4,\n offset: 0,\n divisor: 1,\n },\n // right color\n bColor: {\n buffer: (_, props) => props.colorBuffer,\n stride: 4,\n offset: 4,\n divisor: 1,\n },\n prevCoord: {\n buffer: (_, props) => props.positionBuffer,\n stride: 8,\n offset: 0,\n divisor: 1,\n },\n aCoord: {\n buffer: (_, props) => props.positionBuffer,\n stride: 8,\n offset: 8,\n divisor: 1,\n },\n bCoord: {\n buffer: (_, props) => props.positionBuffer,\n stride: 8,\n offset: 16,\n divisor: 1,\n },\n nextCoord: {\n buffer: (_, props) => props.positionBuffer,\n stride: 8,\n offset: 24,\n divisor: 1,\n },\n } });\n return regl(drawConfig);\n}\nexports.createMiterShader = createMiterShader;\n","precision highp float;\n\nattribute vec2 position, positionFract;\n\nuniform vec4 color;\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio;\nuniform vec4 viewport;\nuniform float opacity;\nuniform float depth;\n\nvarying vec4 fragColor;\n\nvoid main() {\n\tvec2 position = position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n\tfragColor.a *= opacity;\n}","precision highp float;\n\nvarying vec4 fragColor;\n\nvoid main() {\n\tgl_FragColor = fragColor;\n}","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFillShader = void 0;\nconst shader_vert_1 = __importDefault(require(\"./shader.vert\"));\nconst shader_frag_1 = __importDefault(require(\"./shader.frag\"));\nfunction createFillShader(regl, { blend, scissor, stencil, viewport, uniforms }) {\n const drawConfig = {\n blend,\n scissor,\n stencil,\n viewport,\n primitive: \"triangles\",\n elements: (_, p) => p.triangles,\n offset: 0,\n vert: shader_vert_1.default,\n frag: shader_frag_1.default,\n uniforms: Object.assign(Object.assign({}, uniforms), { color: (_, p) => p.fillColor }),\n attributes: {\n position: {\n buffer: (_, p) => p.positionBuffer,\n stride: 8,\n offset: 8,\n },\n positionFract: {\n buffer: (_, p) => p.positionFractBuffer,\n stride: 8,\n offset: 8,\n },\n },\n depth: { enable: false },\n };\n return regl(drawConfig);\n}\nexports.createFillShader = createFillShader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createShaders = void 0;\nconst __1 = require(\"..\");\nconst rect_shader_1 = require(\"./rect-shader\");\nconst miter_shader_1 = require(\"./miter-shader\");\nconst fill_shader_1 = require(\"./fill-shader\");\nfunction createBaseOptions(regl) {\n return {\n primitive: \"triangle strip\",\n instances: (_, p) => p.count,\n count: 4,\n offset: 0,\n uniforms: {\n miterMode: (_, prop) => (prop.join === __1.JoinStyle.Round ? 2 : 1),\n miterLimit: (_, p) => p.miterLimit,\n scale: (_, p) => p.scale,\n scaleFract: (_, p) => p.scaleFract,\n translateFract: (_, p) => p.translateFract,\n translate: (_, p) => p.translate,\n thickness: (_, p) => p.thickness,\n dashPattern: (_, p) => p.dashTexture,\n opacity: (_, p) => p.opacity,\n pixelRatio: (ctx) => ctx.pixelRatio,\n dashSize: (_, p) => p.dashLength,\n viewport: ({ viewportWidth, viewportHeight }, { viewport: { x, y } }) => [\n x || 0,\n y || 0,\n viewportWidth,\n viewportHeight,\n ],\n depth: (_, p) => p.depth,\n },\n blend: {\n enable: true,\n color: [0, 0, 0, 0],\n equation: {\n rgb: \"add\",\n alpha: \"add\",\n },\n func: {\n srcRGB: \"src alpha\",\n dstRGB: \"one minus src alpha\",\n srcAlpha: \"one minus dst alpha\",\n dstAlpha: \"one\",\n },\n },\n depth: (_, p) => ({\n enable: !p.overlay,\n }),\n stencil: { enable: false },\n scissor: {\n enable: true,\n box: (_, p) => p.viewport,\n },\n viewport: (_, p) => p.viewport,\n };\n}\nfunction createShaders(regl) {\n const offsetBuffer = regl.buffer({\n usage: \"static\",\n type: \"float\",\n data: [0, 1, 0, 0, 1, 1, 1, 0],\n });\n const baseOptions = createBaseOptions(regl);\n const rect = rect_shader_1.createRectShader(regl, offsetBuffer, baseOptions);\n let miter = null;\n try {\n miter = miter_shader_1.createMiterShader(regl, offsetBuffer, baseOptions);\n }\n catch (_a) {\n miter = rect;\n console.log(\"No support for miter lines.\");\n }\n const fill = fill_shader_1.createFillShader(regl, baseOptions);\n return { rect, miter, fill };\n}\nexports.createShaders = createShaders;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateDashTextureAndGetLength = void 0;\nconst dashMult = 2;\nconst defaultDashData = new Uint8Array(8).fill(255);\nfunction updateDashTextureAndGetLength(texture, dashes) {\n let dashLength = 0;\n let dashData = null;\n if (dashes.length < 2) {\n dashLength = 1;\n dashData = defaultDashData;\n }\n else {\n dashLength = 0;\n for (let i = 0; i < dashes.length; ++i) {\n dashLength += dashes[i];\n }\n dashData = new Uint8Array(dashLength * dashMult);\n let ptr = 0;\n let fillColor = 255;\n // repeat texture two times to provide smooth 0-step\n for (let k = 0; k < 2; k++) {\n for (let i = 0; i < dashes.length; ++i) {\n for (let j = 0, l = dashes[i] * dashMult * 0.5; j < l; ++j) {\n dashData[ptr++] = fillColor;\n }\n fillColor ^= 255;\n }\n }\n }\n texture({\n channels: 1,\n data: dashData,\n width: dashData.length,\n height: 1,\n mag: \"linear\",\n min: \"linear\",\n });\n return dashLength;\n}\nexports.updateDashTextureAndGetLength = updateDashTextureAndGetLength;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateColorBuffer = void 0;\nconst color_normalize_1 = __importDefault(require(\"color-normalize\"));\nfunction isSingleColor(input) {\n return !Array.isArray(input) || !Array.isArray(input[0]);\n}\nfunction updateColorBuffer(colorBuffer, colorData, colors, count) {\n if (isSingleColor(colors)) {\n let c = color_normalize_1.default(colors, \"uint8\");\n for (let i = 0; i < count + 1; i++) {\n colorData.set(c, i * 4);\n }\n }\n else {\n for (let i = 0; i < count; i++) {\n let c = color_normalize_1.default(colors[i], \"uint8\");\n colorData.set(c, i * 4);\n }\n colorData.set(color_normalize_1.default(colors[0], \"uint8\"), count * 4);\n }\n colorBuffer.subdata(colorData);\n}\nexports.updateColorBuffer = updateColorBuffer;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JoinStyle = void 0;\nconst array_bounds_1 = __importDefault(require(\"array-bounds\"));\nconst array_normalize_1 = __importDefault(require(\"array-normalize\"));\nconst color_normalize_1 = __importDefault(require(\"color-normalize\"));\nconst earcut_1 = __importDefault(require(\"earcut\"));\nconst shaders_1 = require(\"./shaders\");\nconst update_dash_texture_1 = require(\"./update-dash-texture\");\nconst update_color_buffer_1 = require(\"./update-color-buffer\");\nvar JoinStyle;\n(function (JoinStyle) {\n JoinStyle[\"Bevel\"] = \"bevel\";\n JoinStyle[\"Round\"] = \"round\";\n JoinStyle[\"Rect\"] = \"rect\";\n})(JoinStyle = exports.JoinStyle || (exports.JoinStyle = {}));\nfunction default_1(regl) {\n const shaders = shaders_1.createShaders(regl);\n let shapeCount = 0;\n return {\n createShape(points, initialPartialProps) {\n const id = shapeCount;\n shapeCount++;\n const normPoints = new Float64Array(points.length);\n const pointsData = new Float64Array(points.length + 6);\n const pointsDataFloat32 = new Float32Array(pointsData.length);\n const pointsDataFloat32Fract = new Float32Array(pointsData.length);\n const colorData = new Uint8Array(2 * points.length + 4);\n const colorBuffer = regl.buffer({\n usage: \"dynamic\",\n type: \"uint8\",\n data: colorData,\n });\n const positionBuffer = regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: pointsDataFloat32,\n });\n const positionFractBuffer = regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: pointsDataFloat32Fract,\n });\n const dashTexture = regl.texture({\n channels: 1,\n data: new Uint8Array([255]),\n width: 1,\n height: 1,\n mag: \"linear\",\n min: \"linear\",\n });\n return (partialProps) => {\n const props = Object.assign(Object.assign({ count: Math.floor(points.length / 2), color: \"white\", fill: null, thickness: 1, dashes: null, join: JoinStyle.Bevel, miterLimit: 1, close: false, opacity: 1, overlay: false, range: [-1, -1, 1, 1], viewport: {\n x: 0,\n y: 0,\n width: regl._gl.drawingBufferWidth,\n height: regl._gl.drawingBufferHeight,\n }, depth: -0.01 * id }, initialPartialProps), partialProps);\n let { count, color, close, join, range, dashes, fill } = props;\n // update position buffers\n const flatCount = 2 * count;\n const bounds = array_bounds_1.default(points.length > flatCount ? points.slice(0, flatCount) : points, 2);\n normPoints.set(points);\n array_normalize_1.default(normPoints, 2, bounds);\n const startIsEnd = points[0] === points[flatCount - 2] &&\n points[1] === points[flatCount - 1];\n // rotate first segment join\n if (close) {\n if (startIsEnd) {\n pointsData[0] = normPoints[flatCount - 4];\n pointsData[1] = normPoints[flatCount - 3];\n }\n else {\n pointsData[0] = normPoints[flatCount - 2];\n pointsData[1] = normPoints[flatCount - 1];\n }\n }\n else {\n pointsData[0] = normPoints[0];\n pointsData[1] = normPoints[1];\n }\n pointsData.set(normPoints, 2);\n // add last segment\n if (close) {\n // ignore coinciding start/end\n if (startIsEnd) {\n pointsData[flatCount + 2] = normPoints[2];\n pointsData[flatCount + 3] = normPoints[3];\n count--;\n }\n else {\n pointsData[flatCount + 2] = normPoints[0];\n pointsData[flatCount + 3] = normPoints[1];\n pointsData[flatCount + 4] = normPoints[2];\n pointsData[flatCount + 5] = normPoints[3];\n }\n }\n // add stub\n else {\n pointsData[flatCount + 2] = normPoints[flatCount - 2];\n pointsData[flatCount + 3] = normPoints[flatCount - 1];\n pointsData[flatCount + 4] = normPoints[flatCount - 2];\n pointsData[flatCount + 5] = normPoints[flatCount - 1];\n }\n pointsDataFloat32.set(pointsData);\n for (let i = 0; i < flatCount; i++)\n pointsDataFloat32Fract[i] = pointsData[i] - pointsDataFloat32[i];\n positionBuffer.subdata(pointsDataFloat32);\n positionFractBuffer.subdata(pointsDataFloat32Fract);\n const boundsW = bounds[2] - bounds[0];\n const boundsH = bounds[3] - bounds[1];\n const rangeW = range[2] - range[0];\n const rangeH = range[3] - range[1];\n const scale = [boundsW / rangeW, boundsH / rangeH];\n const translate = [\n -range[0] / rangeW + bounds[0] / rangeW || 0,\n -range[1] / rangeH + bounds[1] / rangeH || 0,\n ];\n const scale32 = new Float32Array(scale);\n const scaleFract = [scale[0] - scale32[0], scale[1] - scale32[1]];\n const translate32 = new Float32Array(translate);\n const translateFract = [\n translate[0] - translate32[0],\n translate[1] - translate32[1],\n ];\n const dashLength = dashes\n ? update_dash_texture_1.updateDashTextureAndGetLength(dashTexture, dashes)\n : 1;\n if (color)\n update_color_buffer_1.updateColorBuffer(colorBuffer, colorData, color, count);\n const renderProps = Object.assign(Object.assign({}, props), { translate,\n translateFract,\n scale,\n scaleFract,\n colorBuffer,\n positionBuffer,\n positionFractBuffer,\n dashLength,\n dashTexture, triangles: fill ? earcut_1.default(points) : null, fillColor: fill ? color_normalize_1.default(fill, \"uint8\") : null });\n regl._refresh();\n if (fill)\n shaders.fill(renderProps);\n if (join === JoinStyle.Rect)\n shaders.rect(renderProps);\n else\n shaders.miter(renderProps);\n };\n },\n };\n}\nexports.default = default_1;\n","import { Point } from '@vertexvis/geometry';\n\nexport function flattenPointArray(arr: Point.Point[]): number[] {\n return arr.reduce((res, pt) => [...res, pt.x, pt.y], [] as number[]);\n}\n","import { Point, Rectangle, Vector3 } from '@vertexvis/geometry';\nimport { Color } from '@vertexvis/utils';\nimport { JoinStyle, ShapeProps } from 'regl-shape';\n\nimport { CreateShape, DrawShape } from '../../lib/transforms/shape';\nimport { Viewport } from '../types';\nimport { flattenPointArray } from './util';\n\nexport interface DrawablePoints {\n valid: boolean;\n\n shortestDistanceFrom(vector: Vector3.Vector3): number;\n\n toWorldArray(): Vector3.Vector3[];\n toArray(): Point.Point[];\n}\n\nexport abstract class Drawable<T extends DrawablePoints = DrawablePoints> {\n protected pointsArray: Float64Array;\n\n public initialFillColor?: string;\n\n public draw: DrawShape;\n\n public constructor(\n protected createShape: CreateShape,\n public identifier: string,\n public points: T,\n public outlineColor: string,\n public fillColor?: string,\n public shapeProps: Partial<ShapeProps> = {},\n public disabled: boolean = false\n ) {\n const pointsAsArray = points.toArray();\n\n this.pointsArray = new Float64Array(pointsAsArray.length * 2 + 4);\n flattenPointArray(pointsAsArray).forEach(\n (v, i) => (this.pointsArray[i] = v)\n );\n\n this.initialFillColor = fillColor;\n\n this.draw = createShape(this.pointsArray, {\n count: pointsAsArray.length,\n thickness: 2,\n join: 'rect' as JoinStyle,\n fill: this.fillColor,\n color: this.outlineColor,\n ...shapeProps,\n });\n }\n\n public updateFillColor(color?: Color.Color | string): void {\n if (color != null) {\n this.fillColor =\n typeof color === 'string' ? color : Color.toHexString(color);\n }\n }\n\n public updateOutlineColor(color?: Color.Color | string): void {\n if (color != null) {\n this.outlineColor =\n typeof color === 'string' ? color : Color.toHexString(color);\n }\n }\n\n public updatePoints(points?: T): void {\n if (points != null) {\n this.points = points;\n flattenPointArray(points.toArray()).forEach(\n (v, i) => (this.pointsArray[i] = v)\n );\n }\n }\n}\n\nexport function computeDrawable2dBounds(\n viewport: Viewport,\n ...elements: Drawable[]\n): Rectangle.Rectangle {\n let min = Point.create(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n let max = Point.create();\n\n elements\n .filter((m) => m.points.valid)\n .forEach((m) => {\n m.points\n .toArray()\n .map((pt) => viewport.transformNdcPointToViewport(pt))\n .forEach((pt) => {\n min = Point.create(Math.min(pt.x, min.x), Math.min(pt.y, min.y));\n max = Point.create(Math.max(pt.x, max.x), Math.max(pt.y, max.y));\n });\n });\n\n return Rectangle.fromPoints(min, max);\n}\n","import { Point, Vector3 } from '@vertexvis/geometry';\nimport { Color } from '@vertexvis/utils';\nimport { JoinStyle, ShapeProps } from 'regl-shape';\n\nimport { CreateShape } from '../../lib/transforms/shape';\nimport { Drawable, DrawablePoints } from './drawable';\n\nexport class AxisLinePoints implements DrawablePoints {\n public constructor(\n public valid: boolean,\n public worldOrigin: Vector3.Vector3,\n public worldEnd: Vector3.Vector3,\n public origin: Point.Point,\n public end: Point.Point\n ) {}\n\n public shortestDistanceFrom(vector: Vector3.Vector3): number {\n return this.toWorldArray()\n .map((v) => Vector3.distance(v, vector))\n .sort((a, b) => a - b)[0];\n }\n\n public toWorldArray(): Vector3.Vector3[] {\n return [this.worldOrigin, this.worldEnd];\n }\n\n public toArray(): Point.Point[] {\n return [this.origin, this.end];\n }\n}\n\nexport class AxisLine extends Drawable<AxisLinePoints> {\n public constructor(\n createShape: CreateShape,\n identifier: string,\n points: AxisLinePoints,\n outlineColor: Color.Color | string = '#000000',\n fillColor: Color.Color | string = '#000000',\n shapeProps: Partial<ShapeProps> = { thickness: 3 }\n ) {\n super(\n createShape,\n identifier,\n points,\n typeof outlineColor === 'string'\n ? outlineColor\n : Color.toHexString(outlineColor),\n typeof fillColor === 'string' ? fillColor : Color.toHexString(fillColor),\n shapeProps\n );\n }\n}\n\nexport class RotationLinePoints implements DrawablePoints {\n public constructor(\n public valid: boolean,\n public world: Vector3.Vector3[],\n public ndc: Vector3.Vector3[]\n ) {}\n\n public shortestDistanceFrom(vector: Vector3.Vector3): number {\n return this.toWorldArray()\n .map((v) => Vector3.distance(v, vector))\n .sort((a, b) => a - b)[0];\n }\n\n public toWorldArray(): Vector3.Vector3[] {\n return this.world;\n }\n\n public toArray(): Point.Point[] {\n return this.ndc;\n }\n}\n\nexport class RotationLine extends Drawable<RotationLinePoints> {\n public constructor(\n createShape: CreateShape,\n identifier: string,\n points: RotationLinePoints,\n outlineColor: Color.Color | string = '#000000',\n shapeProps: Partial<ShapeProps> = {\n join: 'round' as JoinStyle,\n },\n public disabled: boolean = false\n ) {\n super(\n createShape,\n identifier,\n points,\n typeof outlineColor === 'string'\n ? outlineColor\n : Color.toHexString(outlineColor),\n undefined,\n shapeProps\n );\n }\n\n public setDisabled(disabled: boolean): void {\n this.disabled = disabled;\n }\n}\n","import { Matrix4, Ray, Vector3 } from '@vertexvis/geometry';\n\nimport { FrameCameraBase } from '../types';\nimport { AxisLinePoints, RotationLinePoints } from './line';\nimport { TriangleMesh } from './mesh';\n\nexport function axisPositions(\n widgetTransform: Matrix4.Matrix4,\n camera: FrameCameraBase,\n arrowMesh: TriangleMesh\n): AxisLinePoints {\n const position = Vector3.fromMatrixPosition(widgetTransform);\n return new AxisLinePoints(\n arrowMesh.points.valid,\n position,\n arrowMesh.points.worldBase,\n Vector3.transformMatrix(position, camera.projectionViewMatrix),\n arrowMesh.points.base\n );\n}\n\nexport function rotationAxisPositions(\n camera: FrameCameraBase,\n rotationMesh?: TriangleMesh,\n towardPoint?: Vector3.Vector3,\n triangleSize = 3\n): RotationLinePoints | undefined {\n if (rotationMesh != null && towardPoint != null) {\n const baseDistance = Vector3.distance(\n rotationMesh.points.worldBase,\n towardPoint\n );\n const tipDistance = Vector3.distance(\n rotationMesh.points.worldTip,\n towardPoint\n );\n\n const origin =\n baseDistance < tipDistance\n ? rotationMesh.points.worldBase\n : rotationMesh.points.worldTip;\n const middle = Vector3.scale(0.5, Vector3.add(origin, towardPoint));\n\n const centerPointRay = Ray.create({\n origin: middle,\n direction: Vector3.normalize(\n Vector3.subtract(\n rotationMesh.points.worldRight,\n rotationMesh.points.worldLeft\n )\n ),\n });\n\n const worldPoints = [0, 0.05, 0.1, 0.15].map((v) =>\n computeQuadraticBezierCurvePoint(\n origin,\n Ray.at(centerPointRay, triangleSize * 2),\n towardPoint,\n v\n )\n );\n\n return new RotationLinePoints(\n rotationMesh.points.valid,\n worldPoints,\n worldPoints.map((p) =>\n Vector3.transformMatrix(p, camera.projectionViewMatrix)\n )\n );\n }\n return undefined;\n}\n\nfunction computeQuadraticBezierCurvePoint(\n start: Vector3.Vector3,\n control: Vector3.Vector3,\n end: Vector3.Vector3,\n distance: number\n): Vector3.Vector3 {\n const distanceInverse = 1 - distance;\n const startScalar = distanceInverse * distanceInverse;\n const controlScalar = 2 * distanceInverse * distance;\n const endScalar = distance * distance;\n\n return Vector3.create(\n startScalar * start.x + controlScalar * control.x + endScalar * end.x,\n startScalar * start.y + controlScalar * control.y + endScalar * end.y,\n startScalar * start.z + controlScalar * control.z + endScalar * end.z\n );\n}\n","import { Point, Vector3 } from '@vertexvis/geometry';\nimport { Color } from '@vertexvis/utils';\nimport { ShapeProps } from 'regl-shape';\n\nimport { CreateShape } from '../../lib/transforms/shape';\nimport { Drawable, DrawablePoints } from './drawable';\n\nexport class MeshPoints implements DrawablePoints {\n public constructor(\n public valid: boolean,\n public world: Vector3.Vector3[],\n public screen: Point.Point[],\n private computeShortestDistance?: (vector: Vector3.Vector3) => number\n ) {}\n\n public shortestDistanceFrom(vector: Vector3.Vector3): number {\n return this.computeShortestDistance != null\n ? this.computeShortestDistance(vector)\n : this.toWorldArray()\n .map((v) => Vector3.distance(v, vector))\n .sort((a, b) => a - b)[0];\n }\n\n public toWorldArray(): Vector3.Vector3[] {\n return [...this.world, this.world[0]];\n }\n\n public toArray(): Point.Point[] {\n return [...this.screen, this.screen[0]];\n }\n}\n\nexport class Mesh extends Drawable<MeshPoints> {\n public constructor(\n createShape: CreateShape,\n identifier: string,\n points: MeshPoints,\n outlineColor: Color.Color | string = '#000000',\n fillColor: Color.Color | string = '#000000',\n shapeProps: Partial<ShapeProps> = {}\n ) {\n super(\n createShape,\n identifier,\n points,\n typeof outlineColor === 'string'\n ? outlineColor\n : Color.toHexString(outlineColor),\n typeof fillColor === 'string' ? fillColor : Color.toHexString(fillColor),\n shapeProps\n );\n }\n}\n\nexport class TriangleMeshPoints implements DrawablePoints {\n public constructor(\n public valid: boolean,\n public worldBase: Vector3.Vector3,\n public worldLeft: Vector3.Vector3,\n public worldRight: Vector3.Vector3,\n public worldTip: Vector3.Vector3,\n public base: Point.Point,\n public left: Point.Point,\n public right: Point.Point,\n public tip: Point.Point\n ) {}\n\n public shortestDistanceFrom(vector: Vector3.Vector3): number {\n return this.toWorldArray()\n .map((v) => Vector3.distance(v, vector))\n .sort((a, b) => a - b)[0];\n }\n\n public toWorldArray(): Vector3.Vector3[] {\n return [this.worldBase, this.worldLeft, this.worldRight, this.worldTip];\n }\n\n public toArray(): Point.Point[] {\n return [this.base, this.left, this.tip, this.right, this.base];\n }\n}\n\nexport class TriangleMesh extends Drawable<TriangleMeshPoints> {\n public constructor(\n createShape: CreateShape,\n identifier: string,\n points: TriangleMeshPoints,\n outlineColor: Color.Color | string = '#000000',\n fillColor: Color.Color | string = '#000000',\n shapeProps: Partial<ShapeProps> = {},\n public disabled: boolean = false\n ) {\n super(\n createShape,\n identifier,\n points,\n typeof outlineColor === 'string'\n ? outlineColor\n : Color.toHexString(outlineColor),\n typeof fillColor === 'string' ? fillColor : Color.toHexString(fillColor),\n shapeProps\n );\n }\n\n public setDisabled(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n public isDisabled(): boolean {\n return !!this.disabled;\n }\n}\n","import { Matrix4, Quaternion, Ray, Vector3 } from '@vertexvis/geometry';\n\nimport { FrameCameraBase } from '../types';\nimport { TriangleMeshPoints } from './mesh';\n\nexport function xAxisArrowPositions(\n widgetTransform: Matrix4.Matrix4,\n camera: FrameCameraBase,\n triangleSize = 3\n): TriangleMeshPoints {\n return computeArrowNdcValues(\n widgetTransform,\n camera,\n Vector3.right(),\n triangleSize\n );\n}\n\nexport function yAxisArrowPositions(\n widgetTransform: Matrix4.Matrix4,\n camera: FrameCameraBase,\n triangleSize = 3\n): TriangleMeshPoints {\n return computeArrowNdcValues(\n widgetTransform,\n camera,\n Vector3.up(),\n triangleSize\n );\n}\n\nexport function zAxisArrowPositions(\n widgetTransform: Matrix4.Matrix4,\n camera: FrameCameraBase,\n triangleSize = 3\n): TriangleMeshPoints {\n return computeArrowNdcValues(\n widgetTransform,\n camera,\n Vector3.back(),\n triangleSize\n );\n}\n\nexport function computeArrowNdcValues(\n widgetTransform: Matrix4.Matrix4,\n camera: FrameCameraBase,\n direction: Vector3.Vector3,\n triangleSize: number\n): TriangleMeshPoints {\n const transformedDirection = Vector3.transformMatrix(\n direction,\n Matrix4.makeRotation(Quaternion.fromMatrixRotation(widgetTransform))\n );\n\n const basePosition = Vector3.fromMatrixPosition(widgetTransform);\n const position = Vector3.add(\n basePosition,\n Vector3.scale(triangleSize * 9, transformedDirection)\n );\n\n const worldX = Vector3.normalize(\n Vector3.cross(transformedDirection, Vector3.normalize(camera.viewVector))\n );\n const xRay = Ray.create({\n origin: position,\n direction: worldX,\n });\n const yRay = Ray.create({\n origin: position,\n direction: transformedDirection,\n });\n\n const left = Ray.at(xRay, -(triangleSize * 1.25));\n const right = Ray.at(xRay, triangleSize * 1.25);\n const up = Ray.at(yRay, triangleSize * 3);\n\n return new TriangleMeshPoints(\n !isNaN(worldX.x),\n position,\n left,\n right,\n up,\n Vector3.transformMatrix(position, camera.projectionViewMatrix),\n Vector3.transformMatrix(left, camera.projectionViewMatrix),\n Vector3.transformMatrix(right, camera.projectionViewMatrix),\n Vector3.transformMatrix(up, camera.projectionViewMatrix)\n );\n}\n","import { Vector3 } from '@vertexvis/geometry';\nimport { Disposable } from '@vertexvis/utils';\nimport regl from 'regl';\n\nimport { Drawable } from '../transforms/drawable';\nimport { Frame, Viewport } from '../types';\n\n// Scalar that is used in combination with a perspective camera's\n// components to determine the relative size of the meshes.\n// This attempts to keep the widget approximately the same\n// size as zooming occurs.\nexport const DEFAULT_PERSPECTIVE_MESH_SCALAR = 0.005;\n\n// Scalar that is used in combination with an orthographic camera's\n// components to determine the relative size of the meshes.\n// This attempts to keep the widget approximately the same\n// size as zooming occurs.\nexport const DEFAULT_ORTHOGRAPHIC_MESH_SCALAR = 0.00625;\n\nexport abstract class ReglComponent implements Disposable {\n protected reglCommand?: regl.Regl;\n protected reglFrameDisposable?: regl.Cancellable;\n\n protected availableElements: Drawable[] = [];\n protected drawableElements: Drawable[] = [];\n\n protected frame?: Frame;\n protected viewport: Viewport;\n\n public constructor(protected canvasElement: HTMLCanvasElement) {\n this.viewport = new Viewport(canvasElement.width, canvasElement.height);\n }\n\n public dispose(): void {\n this.reglFrameDisposable?.cancel();\n }\n\n public updateFrame(frame: Frame, redraw = true): void {\n this.frame = frame;\n\n if (redraw) {\n this.updateAndDraw();\n }\n }\n\n public updateDimensions(canvasElement: HTMLCanvasElement): void {\n this.viewport = new Viewport(canvasElement.width, canvasElement.height);\n\n this.createOrUpdateElements();\n }\n\n public updateAndDraw(): void {\n if (this.frame != null && this.hasData()) {\n this.createOrUpdateElements();\n this.sortMeshes(this.frame, ...this.availableElements);\n this.draw();\n }\n }\n\n /**\n * @internal - visible for testing\n */\n public getDrawableElements(): Drawable[] {\n return this.drawableElements;\n }\n\n protected draw(): void {\n if (this.reglFrameDisposable == null) {\n this.reglFrameDisposable = this.reglCommand?.frame(() => {\n this.drawableElements.forEach((el) =>\n el?.draw({\n fill: el.fillColor,\n opacity: !!el.disabled ? 0.2 : 1,\n })\n );\n });\n }\n }\n\n protected clear(): void {\n this.reglCommand?.clear({\n color: [0, 0, 0, 0],\n });\n }\n\n protected sortMeshes(\n frame: Frame,\n ...drawableElements: Array<Drawable | undefined>\n ): void {\n const compare = (d1: Drawable, d2: Drawable): number =>\n d1.points.shortestDistanceFrom(frame.scene.camera.position) -\n d2.points.shortestDistanceFrom(frame.scene.camera.position);\n\n // Reverse sorted elements to draw the closest element last.\n // This causes it to appear above any other element.\n this.drawableElements = (\n drawableElements.filter((el) => el != null) as Drawable[]\n )\n .filter((el) => el.points.valid)\n .sort(compare)\n .reverse();\n }\n\n protected computeTriangleSize(\n position: Vector3.Vector3,\n frame: Frame\n ): number {\n return frame.scene.camera.isOrthographic()\n ? frame.scene.camera.fovHeight * DEFAULT_ORTHOGRAPHIC_MESH_SCALAR\n : Vector3.magnitude(\n Vector3.subtract(position, frame.scene.camera.position)\n ) * DEFAULT_PERSPECTIVE_MESH_SCALAR;\n }\n\n protected abstract createOrUpdateElements(): void;\n\n protected abstract hasData(): boolean;\n}\n"],"version":3}
|