{"version":3,"sources":["webpack:///./src/$_gendir async","webpack:///./src/main.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/environments/environment.ts","webpack:///./src/app/app.component.css","webpack:///./src/app/app.component.html"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;;;;;;;;;;;;;;ACN0E;AAC5B;AACU;AACZ;AAE5C,EAAE,CAAC,CAAC,8EAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3B,oFAAc,EAAE,CAAC;AACnB,CAAC;AAED,wHAAsB,EAAE,CAAC,eAAe,CAAC,kEAAS,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;ACTQ;AAmB5D;IAAA;QAAA,iBAg1EC;QA/0EC,aAAQ,GAAG,SAAS,CAAC;QACrB,WAAM,GAAa,EAAE,CAAC;QACtB,gBAAW,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,kBAAa,GAAG,SAAS,CAAC;QAC1B,oBAAe,GAAG,IAAI,CAAC;QACvB,iBAAY,GAAG,OAAO,CAAC;QACvB,mBAAc,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACxC,qBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/D,+EAA+E;QAC/E,8EAA8E;QAC9E,uBAAkB,GAAG,6BAA6B,CAAC;QACnD,qBAAgB,GAAG,2BAA2B,CAAC;QAC/C,qBAAgB,GAAG;YACjB,IAAI,CAAC,kBAAkB,GAAG,gBAAgB;YAC1C,IAAI,CAAC,kBAAkB,GAAG,yBAAyB;SACpD,CAAC;QACF,qBAAgB,GAAG,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAClD,iBAAY,GAAG,EAAE,CAAC;QAClB,mBAAc,GAAG,EAAE,CAAC;QACpB,kBAAa,GAAG,yBAAyB,CAAC;QAC1C,wBAAmB,GAAG,wBAAwB,CAAC;QAC/C,uBAAkB,GAAG,CAAC,CAAC;QACvB,sBAAiB,GAAQ,IAAI,CAAC;QAC9B,mBAAc,GAAQ,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE1C,iBAAY,GAAQ,IAAI,CAAC;QACzB,kBAAa,GAAQ,IAAI,CAAC;QAC1B,oBAAe,GAAU,EAAE,CAAC;QAC5B,sBAAiB,GAAU,EAAE,CAAC;QAEtC,kBAAa,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC1G,kBAAa,GAAG,EAAE,CAAC;QACnB,gBAAW,GAAG,EAAE,CAAC;QACjB,iBAAY,GAAG,2BAA2B,CAAC;QAC3C,kBAAa,GAAQ,EAAE,CAAC;QACxB,kBAAa,GAAQ,EAAE,CAAC;QACxB,qBAAgB,GAAG,qJAAqJ,CAAC;QACzK,wBAAmB,GAAG,iDAAiD,CAAC;QACxE,sBAAiB,GAAU,EAAE,CAAC;QAC9B,oBAAe,GAAmB,EAAE,CAAC;QAE7B,iBAAY,GAAQ,IAAI,CAAC;QACzB,wBAAmB,GAAQ,IAAI,CAAC;QAChC,0BAAqB,GAAG,KAAK,CAAC;QAC9B,uBAAkB,GAAQ,IAAI,CAAC;QAC/B,yBAAoB,GAAG,KAAK,CAAC;QAC7B,wBAAmB,GAAQ,IAAI,CAAC;QAChC,yBAAoB,GAAG,KAAK,CAAC;QAC7B,kBAAa,GAAQ,EAAE,CAAC;QAEhC,aAAQ,GAAmB;YACzB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,8CAA8C,EAAE,MAAM,CAAC;YACpF,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,6CAA6C,EAAE,QAAQ,CAAC;YACvF,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,sCAAsC,EAAE,MAAM,CAAC;YAC5E,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,YAAY,CAAC;YAC9E,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,2CAA2C,EAAE,QAAQ,CAAC;YACrF,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,0CAA0C,EAAE,KAAK,CAAC;YAC9E,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,eAAe,EAAE;SACvB,CAAC,GAAG,CAAC,UAAC,OAAqB,IAAK,YAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAA1B,CAA0B,CAAC,CAAC;QAE7D,mBAAc,GAAQ,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAElD,gBAAW,GAAG,gKACyE,CAAC;QAExF,wBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D,sBAAiB,GAAG,qkCAgCpB,CAAC;QACD,wBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAEpD,qBAAgB,GAAQ;YACtB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;YACtC,KAAK,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;YACzC,QAAQ,EAAE,EAAE,IAAI,EAAE,gDAAgD,EAAE;YACpE,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;YACzD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;YACrC,WAAW,EAAE;gBACX,MAAM,EAAE;oBACN,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE;wBACL,MAAM,EAAE,EAAE;qBACX;iBACF;aACF;YACD,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBACvC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;aACzC;SACF,CAAC;QAEF,kBAAa,GAAG,yhBAiBT,CAAC;QAER,0BAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,wBAAmB,GAAG,ulCAoCtB,CAAC;QACD,0BAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAEtD,wBAAmB,GAAG,65BAoBb,CAAC;QAEV,sBAAiB,GAAG,urLA2LpB,CAAC;QACD,wBAAmB,GAAG,ucA4BtB,CAAC;IA85DH,CAAC;IA55DC,+BAAQ,GAAR;QAAA,iBAcC;QAbC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAE1D,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,cAAM,YAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAApC,CAAoC,EAAE,KAAK,CAAC,CAAC;YAC1F,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,cAAM,YAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAArC,CAAqC,EAAE,KAAK,CAAC,CAAC;YAC1F,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,kCAAW,GAAX;QACE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACvC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC7B,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACxC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC5B,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACvC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;IAEO,gCAAS,GAAjB;QACE,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC;QACxF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtE,CAAC;IAED,2CAAoB,GAApB,UAAqB,KAAU;QAC7B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,0CAAmB,GAAnB,UAAoB,MAAc;QAChC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,4CAAqB,GAArB,UAAsB,QAAgB;QACpC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,yCAAkB,GAAlB,UAAmB,KAAa;QAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAElD,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,yCAAkB,GAAlB;QACE,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,yCAAkB,GAA1B;QACE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,2BAA2B,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC3G,IAAI,CAAC,mBAAmB,GAAG,0BAA0B,CAAC;QACtD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAEO,8CAAuB,GAA/B;QACE,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;QACrF,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,+CAAwB,GAAhC,UAAiC,WAAqB;QAAtD,iBA4CC;QA3CC,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC;QACT,CAAC;QAED,IAAI,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1E,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,8BAA8B,GAAG,YAAY,CAAC;QAClF,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QAE/B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,EAAE,CAAC,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,yCAAyC,CAAC;QAChE,CAAC;QAED,GAAG,CAAC,kBAAkB,GAAG;YACvB,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC;YACT,CAAC;YAED,KAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YAEnC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC;oBACH,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC3C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACxC,KAAI,CAAC,mBAAmB,CAAC,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjE,CAAC;oBACD,KAAI,CAAC,YAAY,GAAG,6BAA6B,CAAC;oBAClD,KAAI,CAAC,sBAAsB,EAAE,CAAC;gBAChC,CAAE;gBAAA,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACf,KAAI,CAAC,YAAY,GAAG,0BAA0B,CAAC;gBACjD,CAAC;YACH,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,KAAI,CAAC,YAAY,GAAG,6BAA6B,CAAC;YACpD,CAAC;QACH,CAAC,CAAC;QAEF,GAAG,CAAC,OAAO,GAAG;YACZ,KAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,KAAI,CAAC,YAAY,GAAG,6BAA6B,CAAC;QACpD,CAAC,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,GAAG,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAEO,gDAAyB,GAAjC,UAAkC,WAAqB;QAAvD,iBA2CC;QA1CC,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC;QACT,CAAC;QAED,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QAE/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,EAAE,CAAC,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,mBAAmB,GAAG,iDAAiD,CAAC;QAC/E,CAAC;QAED,GAAG,CAAC,kBAAkB,GAAG;YACvB,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC;YACT,CAAC;YAED,KAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAElC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC;oBACH,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBACzC,IAAI,IAAI,GAAU,EAAE,CAAC;oBACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnD,CAAC;oBACD,KAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,KAAI,CAAC,mBAAmB,GAAG,6CAA6C,GAAG,IAAI,CAAC,MAAM,CAAC;oBACvF,KAAI,CAAC,sBAAsB,EAAE,CAAC;gBAChC,CAAE;gBAAA,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACf,KAAI,CAAC,mBAAmB,GAAG,mCAAmC,CAAC;gBACjE,CAAC;YACH,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,KAAI,CAAC,mBAAmB,GAAG,sCAAsC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC;QAEF,GAAG,CAAC,OAAO,GAAG;YACZ,KAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,KAAI,CAAC,mBAAmB,GAAG,sCAAsC,CAAC;QACpE,CAAC,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC7C,GAAG,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAEO,gDAAyB,GAAjC;QAAA,iBA+CC;QA9CC,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,OAAO,GAAa,EAAE,CAAC;QAE3B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClF,IAAI,CAAC,YAAY,GAAG,gDAAgD,CAAC;QAErE,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,CAAE;QAAA,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,YAAY,GAAG,kCAAkC,CAAC;YACvD,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG;YACzB,KAAI,CAAC,YAAY,GAAG,0CAA0C,CAAC;QACjE,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG;YAC1B,KAAI,CAAC,YAAY,GAAG,+BAA+B,CAAC;QACtD,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG;YAC1B,KAAI,CAAC,YAAY,GAAG,wBAAwB,CAAC;QAC/C,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,UAAC,OAAY;YACzC,IAAI,CAAC;gBACH,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC5D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;oBACtC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrC,KAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,KAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC;gBACD,KAAI,CAAC,YAAY,GAAG,iCAAiC,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;gBACxF,KAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,CAAE;YAAA,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,KAAI,CAAC,YAAY,GAAG,8BAA8B,CAAC;YACrD,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAEO,mDAA4B,GAApC;QACE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEO,0CAAmB,GAA3B,UAA4B,MAAW;QACrC,MAAM,CAAC;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;YACnC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;YAClC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;YAClC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;YACjC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC;YAC3C,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC;SACrD,CAAC;IACJ,CAAC;IAEO,6CAAsB,GAA9B,UAA+B,IAAS;QACtC,MAAM,CAAC;YACL,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC3C,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/D,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;YACrC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;YACtC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC;SAC5D,CAAC;IACJ,CAAC;IAEO,sCAAe,GAAvB,UAAwB,KAAa;QACnC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;aACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;aACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;aACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;IAEO,0CAAmB,GAA3B,UAA4B,MAAW;QACrC,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC;YACL,MAAM,EAAE,MAAM,CAAC,CAAC;YAChB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1B,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACzB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5B,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACjC,aAAa,EAAE,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC;SACtD,CAAC;IACJ,CAAC;IAEO,+CAAwB,GAAhC,UAAiC,IAAS;QACxC,IAAI,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE5C,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,0CAAmB,GAA3B,UAA4B,MAAW;QACrC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC3C,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,4CAAqB,GAA7B,UAA8B,MAAc;QAC1C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAEO,6CAAsB,GAA9B;QAAA,iBAWC;QAVC,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC;YACpC,KAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,KAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAEO,6CAAsB,GAA9B;QACE,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAEO,iDAA0B,GAAlC,UAAmC,KAAa;QAAhD,iBAkCC;QAjCC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,aAAa,GAAG,gDAAgD,CAAC;YACtE,IAAI,CAAC,mBAAmB,GAAG,uBAAuB,CAAC;YACnD,MAAM,CAAC;QACT,CAAC;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YACpC,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC;YACnD,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC;YACvD,YAAY,CAAC;QACf,IAAI,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QAE/B,GAAG,CAAC,kBAAkB,GAAG;YACvB,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,CAAC;YACT,CAAC;YAED,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC;oBACH,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC3C,KAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC3C,CAAE;gBAAA,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACf,KAAI,CAAC,0BAA0B,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC7C,CAAC;gBACD,MAAM,CAAC;YACT,CAAC;YAED,KAAI,CAAC,0BAA0B,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEF,GAAG,CAAC,OAAO,GAAG,cAAM,YAAI,CAAC,0BAA0B,CAAC,KAAK,GAAG,CAAC,CAAC,EAA1C,CAA0C,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,GAAG,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAEO,4CAAqB,GAA7B,UAA8B,OAAc,EAAE,GAAW;QACvD,IAAI,IAAI,GAAU,EAAE,CAAC;QACrB,IAAI,MAAM,GAAU,EAAE,CAAC;QAEvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC;gBACV,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBACX,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS;aACpD,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,2BAA2B,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,2CAAoB,GAA5B;QAAA,iBAqCC;QApCC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB;YACvC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,SAAS;YACT,IAAI,CAAC,eAAe,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC;QAEhE,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,CAAE;QAAA,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,mBAAmB,GAAG,2BAA2B,CAAC;YACvD,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG;YAC1B,KAAI,CAAC,mBAAmB,GAAG,0BAA0B,CAAC;QACxD,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG;YAC3B,KAAI,CAAC,mBAAmB,GAAG,wBAAwB,CAAC;QACtD,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG;YAC3B,KAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC;QAC/C,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,UAAC,OAAY;YAC1C,IAAI,CAAC;gBACH,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvC,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzB,KAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAE;YAAA,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,KAAI,CAAC,mBAAmB,GAAG,uBAAuB,CAAC;YACrD,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAEO,8CAAuB,GAA/B;QACE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAEO,+CAAwB,GAAhC,UAAiC,KAAU;QACzC,IAAI,KAAK,GAAG;YACV,KAAK,CAAC,CAAC;YACP,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACnB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACnB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACnB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;SACpB,CAAC;QACF,IAAI,WAAW,GAAG;YAChB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACX,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACtB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS;SACpD,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QACtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,mBAAmB,GAAG,yBAAyB,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;QACvF,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,sCAAe,GAAvB,UAAwB,MAAa,EAAE,KAAU;QAC/C,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5D,IAAI,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAEjD,EAAE,CAAC,CAAC,IAAI,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAClC,MAAM,CAAC;QACT,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAEO,sCAAe,GAAvB;QACE,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACzC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC3C,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,yCAAkB,GAA1B;QACE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3F,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CACxB,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,GAAG,eAAe,EAAE,EAC9C,EAAE,IAAI,EAAE,4CAA4C,GAAG,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,EACnF,KAAK,CACN,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAEO,kCAAW,GAAnB,UAAoB,MAAa;QAC/B,MAAM,CAAC;YACL,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACvB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACtB,CAAC;IACJ,CAAC;IAEO,uCAAgB,GAAxB,UAAyB,KAAY;QACnC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;QAC1B,IAAI,aAAa,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QAEnD,MAAM,CAAC;YACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACb,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,aAAa;SAC7B,CAAC;IACJ,CAAC;IAEO,6CAAsB,GAA9B,UAA+B,MAAc;QAC3C,IAAI,MAAM,GAAU,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,CAAC,CAAC;QAEZ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAElC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;gBAChB,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;YAED,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1B,UAAU,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBACtC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAEO,+BAAQ,GAAhB,UAAiB,GAAW;QAC1B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,kCAAW,GAAX,UAAY,KAAa;QACvB,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,oCAAa,GAAb,UAAc,KAAa;QACzB,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC1D,CAAC;IAEO,mCAAY,GAApB,UAAqB,OAAqB;QACxC,IAAI,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEtD,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC;QACnC,OAAO,CAAC,UAAU,GAAG,8EAGV,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,8BAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,4CAC/B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,2CAElC,SAAS,cACpB,WAAW,gBAAW,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,wDAG7C,OAAO,CAAC,KAAK,6CAE9B,CAAC;QACC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAE/J,MAAM,CAAC,OAAO,CAAC;IACjB,CAAC;IAEO,uCAAgB,GAAxB,UAAyB,IAAY;QACnC,MAAM,CAAC,oCACP,IAAI,aACD,CAAC;IACN,CAAC;IAEO,yCAAkB,GAA1B,UAA2B,IAAY;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;IACvD,CAAC;IAEO,uCAAgB,GAAxB,UAAyB,OAAY;QACnC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aACpC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;aAC7B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAEO,2CAAoB,GAA5B,UAA6B,KAAa;QACxC,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACnC,CAAC;IAEO,qCAAc,GAAtB,UAAuB,KAAa;QAClC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAEO,iCAAU,GAAlB,UAAmB,KAAa;QAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,CAAC;IAEO,8BAAO,GAAf,UAAgB,KAAa;QAC3B,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5D,IAAI,KAAK,GAAa,EAAE,CAAC;QAEzB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACb,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAEO,0CAAmB,GAA3B,UAA4B,MAAc;QACxC,MAAM,CAAC,2NAYK,MAAM,WACpB,CAAC;IACD,CAAC;IAEO,kDAA2B,GAAnC;QACE,IAAI,QAAQ,GAAmB;YAC7B,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,6DAA6D,EAAE,oBAAoB,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACpK,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,mEAAmE,EAAE,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACrK,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,EAAE,mEAAmE,EAAE,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAChL,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,0CAA0C,EAAE,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC9I,IAAI,CAAC,kBAAkB,CAAC,8BAA8B,EAAE,2CAA2C,EAAE,uBAAuB,EAAE,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACjK,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,6CAA6C,EAAE,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjJ,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,8CAA8C,EAAE,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACzI,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,qEAAqE,EAAE,oBAAoB,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC5K,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,sCAAsC,EAAE,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACjI,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,gDAAgD,EAAE,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjJ,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,oDAAoD,EAAE,oBAAoB,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC1J,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,qDAAqD,EAAE,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACzJ,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,2CAA2C,EAAE,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC3I,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,+CAA+C,EAAE,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAClJ,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,qCAAqC,EAAE,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC1I,IAAI,CAAC,kBAAkB,CAAC,+BAA+B,EAAE,6CAA6C,EAAE,uBAAuB,EAAE,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACpK,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,mDAAmD,EAAE,oBAAoB,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC1J,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,oDAAoD,EAAE,mBAAmB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC3J,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,EAAE,oCAAoC,EAAE,qBAAqB,EAAE,IAAI,CAAC,yBAAyB,EAAE,CAAC;SACjJ,CAAC;QAEF,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC;IAClB,CAAC;IAEO,yCAAkB,GAA1B,UAA2B,KAAa,EAAE,WAAmB,EAAE,WAAmB,EAAE,OAAY;QAC9F,MAAM,CAAC;YACL,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,WAAW;YACxB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,oBAAoB,GAAG,WAAW,GAAG,YAAY;SACxD,CAAC;IACJ,CAAC;IAEO,iCAAU,GAAlB;QACE,IAAI,IAAI,GAAU,EAAE,CAAC;QAErB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAEO,qCAAc,GAAtB,UAAuB,MAAc,EAAE,KAAa;QAClD,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QACjF,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,CAAC;YACL,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC;YAC/B,IAAI,EAAE,IAAI,GAAG,IAAI;YACjB,GAAG,EAAE,IAAI,GAAG,IAAI;YAChB,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM;YAChC,WAAW,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ;YACzC,aAAa,EAAE,MAAM;SACtB,CAAC;IACJ,CAAC;IAEO,gDAAyB,GAAjC;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;QAED,MAAM,CAAC;YACL,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE;YAChG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE;YAClG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE;YAClG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE;YAC3F,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE;YACzF,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE;YACnG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE;YAC7F,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE;SAC/F,CAAC;IACJ,CAAC;IAEO,mCAAY,GAApB,UAAqB,IAAW;QAC9B,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAEO,mCAAY,GAApB,UAAqB,IAAW,EAAE,KAAa,EAAE,OAAe;QAC9D,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAEO,oCAAa,GAArB,UAAsB,IAAW;QAC/B,IAAI,IAAI,GAAU,EAAE,CAAC;QACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAEO,0CAAmB,GAA3B;QACE,IAAI,MAAM,GAAU,EAAE,CAAC;QACvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAClK,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBAChC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtB,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;aAC3B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAEO,uCAAgB,GAAxB;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,MAAM,GAAU,EAAE,CAAC;QAEvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;YACtC,IAAI,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;YACpE,IAAI,MAAM,GAAG,GAAG,CAAC,aAAa,IAAI,QAAQ,CAAC;YAC3C,IAAI,IAAI,GAAU,EAAE,CAAC;YAErB,GAAG,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;gBAC/D,IAAI,GAAG,GAAG,UAAU,GAAG,UAAU,CAAC;gBAClC,IAAI,QAAQ,GAAG,UAAU,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;gBACzB,IAAI,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;gBAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBAClE,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;gBACxD,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;gBAErC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,MAAM,GAAG,OAAO;gBACtB,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC1B,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAEO,4CAAqB,GAA7B;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,MAAM,GAAU,EAAE,CAAC;QAEvB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,UAAU,GAAG,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC;YACxC,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;YACtC,IAAI,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;YACtE,IAAI,IAAI,GAAU,EAAE,CAAC;YAErB,GAAG,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;gBAC/D,IAAI,GAAG,GAAG,UAAU,GAAG,UAAU,CAAC;gBAClC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;gBACzB,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBACrE,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;gBACnD,IAAI,YAAY,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC7C,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpG,IAAI,UAAU,GAAG,UAAU,GAAG,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC;gBACtD,IAAI,KAAK,GAAG,GAAG,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;gBAEvD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,MAAM,GAAG,QAAQ;gBACvB,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC1B,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IAEO,kCAAW,GAAnB,UAAoB,IAAW;QAC7B,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAC/B,CAAC;QACD,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,IAAI,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAEO,4CAAqB,GAA7B;QACE,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;YACpC,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;YACvC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;YACrC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;YAC3B,KAAK,EAAE;gBACL,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;gBACpC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;aACzF;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,GAAG;gBAChB,aAAa,EAAE,CAAC;aACjB;YACD,WAAW,EAAE;gBACX,IAAI,EAAE;oBACJ,SAAS,EAAE,KAAK;oBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;iBAC3B;aACF;YACD,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE;SAChC,CAAC;IACJ,CAAC;IAEO,8CAAuB,GAA/B;QACE,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;YACtC,KAAK,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE;YAC9C,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;YACrC,KAAK,EAAE;gBACL,IAAI,EAAE,UAAU;gBAChB,iBAAiB,EAAE,EAAE;aACtB;YACD,KAAK,EAAE;gBACL,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;gBACnC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;aAC3F;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,QAAQ;gBACrB,aAAa,EAAE,CAAC;aACjB;YACD,WAAW,EAAE;gBACX,MAAM,EAAE;oBACN,SAAS,EAAE,KAAK;oBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;iBAC3B;aACF;YACD,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE;SACrC,CAAC;IACJ,CAAC;IAEO,4CAAqB,GAA7B;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;YACpC,KAAK,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;YACzC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC9C,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAE;YACpD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC;SAC1F,CAAC;IACJ,CAAC;IAEO,kDAA2B,GAAnC;QACE,IAAI,OAAO,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,8BAA8B,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC;IACjB,CAAC;IAEO,8CAAuB,GAA/B;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;YACtC,KAAK,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;YACzC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC9C,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;YACtC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC;SACtF,CAAC;IACJ,CAAC;IAEO,2CAAoB,GAA5B;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;YACnC,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAClC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC9C,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAE;YACpD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC;SAC1F,CAAC;IACJ,CAAC;IAEO,+CAAwB,GAAhC;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;YACtC,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC9C,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YAClF,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAC/C,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;gBACzE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE;aAClF;SACF,CAAC;IACJ,CAAC;IAEO,2CAAoB,GAA5B;QACE,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;YACnC,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAClC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;SAChF,CAAC;IACJ,CAAC;IAEO,6CAAsB,GAA9B;QACE,IAAI,OAAO,GAAQ,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC;QACzC,OAAO,CAAC,WAAW,GAAG,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC;IACjB,CAAC;IAEO,+CAAwB,GAAhC;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,IAAI,IAAI,GAAU,EAAE,CAAC;QACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/C,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC1D,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;YACvD,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE;YACrC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE;YAC1C,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAE;YACpD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC1C,CAAC;IACJ,CAAC;IAEO,8CAAuB,GAA/B;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,IAAI,IAAI,GAAU,EAAE,CAAC;QACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/C,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1E,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;YAC1E,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE;YACrC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE;YAC1C,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE;YACxC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC1C,CAAC;IACJ,CAAC;IAEO,6CAAsB,GAA9B;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;YACtB,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;YACnC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC9C,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACvG,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;gBAC/F,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;aACtG;SACF,CAAC;IACJ,CAAC;IAEO,6CAAsB,GAA9B;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,IAAI,IAAI,GAAa,EAAE,CAAC;QACxB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;YACjD,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACrB,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;YACrF,KAAK,EAAE,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;YAC3E,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;SACjE,CAAC;IACJ,CAAC;IAEO,6CAAsB,GAA9B;QACE,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE;YACrC,KAAK,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE;YACxC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;YACzC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACtD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACtF,CAAC;IACJ,CAAC;IAEO,kDAA2B,GAAnC;QACE,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE;YAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;YAChD,IAAI,EAAE;gBACJ,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;gBACtB,IAAI,EAAE,KAAK;gBACX,UAAU,EAAE,CAAC,EAAE;gBACf,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;aAClG;YACD,KAAK,EAAE;gBACL,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC/D,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,CAAC;gBACZ,iBAAiB,EAAE,IAAI;gBACvB,UAAU,EAAE,CAAC;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aACtB;YACD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;SAClD,CAAC;IACJ,CAAC;IAEO,+CAAwB,GAAhC;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,IAAI,IAAI,GAAU,EAAE,CAAC;QACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjG,CAAC;QACD,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;YACvC,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACtC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC9C,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;YAC3D,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;YACxE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;SACvG,CAAC;IACJ,CAAC;IAEO,+CAAwB,GAAhC;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC5C,IAAI,IAAI,GAAU,EAAE,CAAC;QACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;gBACpB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxB,UAAU,EAAE,MAAM;gBAClB,MAAM,EAAE;oBACN,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;oBAClB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;oBACtB,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;oBACpB,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC7B;aACF,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC;YACL,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,sBAAsB;gBACjC,MAAM,EAAE,GAAG;gBACX,eAAe,EAAE,SAAS;gBAC1B,mBAAmB,EAAE,SAAS;gBAC9B,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACtB,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,IAAI,KAAK,GAAQ,IAAI,CAAC;wBACtB,IAAI,WAAW,GAAG;4BAChB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gCACxC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BACxB,CAAC;wBACH,CAAC,CAAC;wBACF,IAAI,eAAe,GAAG,UAAU,KAAU;4BACxC,IAAI,MAAM,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;4BACzD,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gCAC9F,MAAM,CAAC;4BACT,CAAC;4BACD,WAAW,EAAE,CAAC;wBAChB,CAAC,CAAC;wBAEF,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;4BACxD,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;4BAC5D,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;wBAC9D,CAAC;wBAED,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;4BAC1C,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;4BAC9D,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;4BAC/D,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;wBACzD,CAAC;wBAED,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;4BACtC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;wBAC/C,CAAC;oBACH,CAAC;iBACF;aACF;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,4BAA4B;gBAClC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE;aACjE;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,mBAAmB,GAAG,0BAA0B;gBAC3D,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE;aAC9C;YACD,SAAS,EAAE;gBACT,GAAG,EAAE,CAAC,EAAE;gBACR,GAAG,EAAE,EAAE;gBACP,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAChG;YACD,OAAO,EAAE;gBACP,eAAe,EAAE,SAAS;gBAC1B,WAAW,EAAE,SAAS;gBACtB,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;gBAC3B,YAAY,EAAE,EAAE;gBAChB,WAAW,EAAE,+KAA+K;aAC7L;YACD,WAAW,EAAE;gBACX,OAAO,EAAE;oBACP,SAAS,EAAE,KAAK;oBAChB,WAAW,EAAE,SAAS;oBACtB,WAAW,EAAE,CAAC;oBACd,cAAc,EAAE,KAAK;oBACrB,KAAK,EAAE;wBACL,MAAM,EAAE;4BACN,SAAS,EAAE;gCACT,IAAI,KAAK,GAAQ,IAAI,CAAC;gCACtB,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;gCAC3E,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oCACjF,UAAU,CAAC;wCACT,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oCAChC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACR,CAAC;4BACH,CAAC;4BACD,QAAQ,EAAE;gCACR,IAAI,KAAK,GAAQ,IAAI,CAAC;gCACtB,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oCACrE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gCACrC,CAAC;4BACH,CAAC;yBACF;qBACF;oBACD,UAAU,EAAE;wBACV,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,MAAM;wBAChB,KAAK,EAAE,QAAQ;wBACf,aAAa,EAAE,QAAQ;wBACvB,KAAK,EAAE;4BACL,KAAK,EAAE,SAAS;4BAChB,QAAQ,EAAE,MAAM;4BAChB,UAAU,EAAE,KAAK;4BACjB,WAAW,EAAE,MAAM;yBACpB;wBACD,SAAS,EAAE;4BACT,IAAI,KAAK,GAAS,IAAK,CAAC,KAAK,IAAI,EAAE,CAAC;4BACpC,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;4BAChC,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;4BAClC,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;4BAC7B,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;4BAC/B,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;4BAChC,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;4BAEjC,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;gCAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;4BACpB,CAAC;4BAED,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;gCAChC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;4BAC/G,CAAC;4BAED,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;gCAC/B,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;4BACzF,CAAC;4BAED,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;wBAC/D,CAAC;qBACF;iBACF;aACF;YACD,MAAM,EAAE,CAAC;oBACP,IAAI,EAAE,SAAS;oBACf,eAAe,EAAE,YAAY;oBAC7B,0BAA0B,EAAE,IAAI;oBAChC,cAAc,EAAE,CAAC;oBACjB,IAAI,EAAE,IAAI;iBACX,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,8CAAuB,GAA/B;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAM,EAAE,CAAM;YAChC,MAAM,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,GAAU,EAAE,CAAC;QACrB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,CAAC;QACD,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;YACtC,KAAK,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE;YACxC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;IAEO,gDAAyB,GAAjC;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACpG,KAAK,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;YACzC,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC9C,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAE;YACpD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC;SAC1F,CAAC;IACJ,CAAC;IAED,2CAAoB,GAApB,UAAqB,OAAqB,EAAE,KAAU;QACpD,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAEO,6CAAsB,GAA9B;QACE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACtC,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,yCAAkB,GAA1B,UAA2B,GAAW;QACpC,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;QAElD,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC;QACT,CAAC;QAED,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAEpD,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,4CAAqB,GAA7B,UAA8B,KAAU,EAAE,OAAY;QACpD,IAAI,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QACjC,IAAI,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QAEjC,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YAC7G,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC;QAED,EAAE,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YAC7G,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAEO,wCAAiB,GAAzB,UAA0B,KAAU,EAAE,aAAoB;QACxD,IAAI,CAAS,CAAC;QAEd,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;gBACnB,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC1C,QAAQ,CAAC;YACX,CAAC;YAED,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtF,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC;YAED,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC1B,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gDAAyB,GAAjC,UAAkC,GAAW;QAC3C,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACZ,KAAK,iBAAiB;gBACpB,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACtC,KAAK,mBAAmB;gBACtB,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACxC,KAAK,iBAAiB;gBACpB,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACtC,KAAK,uBAAuB;gBAC1B,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YAC5C,KAAK,mBAAmB;gBACtB,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACxC,KAAK,gBAAgB;gBACnB,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACrC,KAAK,oBAAoB;gBACvB,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACzC,KAAK,gBAAgB;gBACnB,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACrC,KAAK,kBAAkB;gBACrB,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACvC,KAAK,oBAAoB;gBACvB,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACzC,KAAK,mBAAmB;gBACtB,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACxC,KAAK,kBAAkB;gBACrB,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACvC,KAAK,kBAAkB;gBACrB,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACvC,KAAK,kBAAkB;gBACrB,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACvC,KAAK,uBAAuB;gBAC1B,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YAC5C,KAAK,oBAAoB;gBACvB,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACzC,KAAK,oBAAoB;gBACvB,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACzC,KAAK,mBAAmB;gBACtB,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACxC,KAAK,qBAAqB;gBACxB,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAC1C;gBACE,MAAM,CAAC,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,+BAAQ,GAAR,UAAS,IAAY,EAAE,KAAU;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACzE,CAAC;IAED,6BAAM,GAAN,UAAO,OAAe;QACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,4CAAqB,GAArB;QACE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACpD,CAAC;IAEO,gCAAS,GAAjB,UAAkB,KAAa,EAAE,WAAmB,EAAE,IAAY;QAChE,MAAM,CAAC;YACL,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,WAAW;YACxB,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;gBAClC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;gBACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,mDAAmD,EAAE;gBACvE,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;gBACjE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;gBACtC,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;oBAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;iBACtD;aACF;YACD,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG,mBAAmB;SACxD,CAAC;IACJ,CAAC;IAEO,2CAAoB,GAA5B;QACE,IAAI,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAExC,MAAM,CAAC;YACL,KAAK,EAAE;gBACL,MAAM,EAAE,GAAG;gBACX,eAAe,EAAE,KAAK,CAAC,UAAU;gBACjC,mBAAmB,EAAE,KAAK,CAAC,cAAc;gBACzC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBACzB,KAAK,EAAE;oBACL,UAAU,EAAE,8BAA8B;iBAC3C;aACF;YACD,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YAC3B,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YACjC,SAAS,EAAE;gBACT,OAAO,EAAE,KAAK;aACf;YACD,SAAS,EAAE;gBACT,OAAO,EAAE,KAAK;aACf;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,IAAI,CAAC,aAAa,GAAG,eAAe;gBAC1C,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE;aACnE;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,4CAA4C,GAAG,IAAI,CAAC,eAAe,GAAG,GAAG;gBAC/E,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;aACjC;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,MAAM;gBACb,aAAa,EAAE,KAAK;gBACpB,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;gBAClC,cAAc,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;aAC7C;YACD,KAAK,EAAE;gBACL,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,aAAa,EAAE,KAAK,CAAC,IAAI;gBACzB,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE;gBAC5C,SAAS,EAAE;oBACT,KAAK,EAAE,KAAK,CAAC,SAAS;oBACtB,SAAS,EAAE,MAAM;iBAClB;aACF;YACD,KAAK,EAAE,CAAC;oBACN,MAAM,EAAE,KAAK;oBACb,SAAS,EAAE,KAAK,CAAC,QAAQ;oBACzB,aAAa,EAAE,KAAK,CAAC,IAAI;oBACzB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;oBACrB,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE;iBAC7C,EAAE;oBACD,GAAG,EAAE,KAAK;oBACV,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,KAAK,CAAC,QAAQ;oBACzB,aAAa,EAAE,KAAK,CAAC,IAAI;oBACzB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE;oBAC3D,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE;iBAC7C,CAAC;YACF,OAAO,EAAE;gBACP,MAAM,EAAE,IAAI;gBACZ,eAAe,EAAE,KAAK,CAAC,iBAAiB;gBACxC,WAAW,EAAE,KAAK,CAAC,aAAa;gBAChC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;gBACnC,aAAa,EAAE,CAAC;aACjB;YACD,WAAW,EAAE;gBACX,WAAW,EAAE;oBACX,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,SAAS;oBAClB,SAAS,EAAE,SAAS;oBACpB,WAAW,EAAE,SAAS;iBACvB;gBACD,MAAM,EAAE;oBACN,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,IAAI;oBAClB,YAAY,EAAE,IAAI;iBACnB;gBACD,MAAM,EAAE;oBACN,SAAS,EAAE,KAAK;oBAChB,cAAc,EAAE,CAAC;iBAClB;aACF;YACD,MAAM,EAAE,CAAC;oBACP,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,EAAE;oBACR,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;iBAC9B,EAAE;oBACD,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;iBAC3B,EAAE;oBACD,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;iBAC3B,EAAE;oBACD,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;iBAC3B,EAAE;oBACD,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,CAAC;iBACT,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,2CAAoB,GAA5B;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC;gBACL,UAAU,EAAE,SAAS;gBACrB,cAAc,EAAE,SAAS;gBACzB,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,SAAS;gBACjB,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,SAAS;gBACpB,iBAAiB,EAAE,0BAA0B;gBAC7C,aAAa,EAAE,SAAS;gBACxB,WAAW,EAAE,SAAS;aACvB,CAAC;QACJ,CAAC;QAED,MAAM,CAAC;YACL,UAAU,EAAE,SAAS;YACrB,cAAc,EAAE,SAAS;YACzB,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,SAAS;YACpB,iBAAiB,EAAE,uBAAuB;YAC1C,aAAa,EAAE,SAAS;YACxB,WAAW,EAAE,SAAS;SACvB,CAAC;IACJ,CAAC;IAEO,wCAAiB,GAAzB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,iDAAiD;YAC9D,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;gBACtC,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;gBACjC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;gBAC7D,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAChF,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;gBAC/C,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;oBACvC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;oBACtC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;iBACvC;aACF;YACD,IAAI,EAAE,kDAAkD;SACzD,CAAC;IACJ,CAAC;IAEO,8BAAO,GAAf;QACE,MAAM,CAAC;YACL,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,oCAAoC;YACjD,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;gBACnC,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;gBAClC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;aACxG;YACD,IAAI,EAAE,wCAAwC;SAC/C,CAAC;IACJ,CAAC;IAEO,gCAAS,GAAjB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,2BAA2B;YACxC,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;gBACnC,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;gBAC7B,WAAW,EAAE,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;gBAC1C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtF;YACD,IAAI,EAAE,0CAA0C;SACjD,CAAC;IACJ,CAAC;IAEO,kCAAW,GAAnB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;gBACvD,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;gBACnC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBACnC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;gBACrC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;aACjG;YACD,IAAI,EAAE,4CAA4C;SACnD,CAAC;IACJ,CAAC;IAEO,iCAAU,GAAlB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,8BAA8B;YAC3C,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;gBAC1E,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBAChC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBACnC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;aAC9G;YACD,IAAI,EAAE,2CAA2C;SAClD,CAAC;IACJ,CAAC;IAEO,sCAAe,GAAvB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,+CAA+C;YAC5D,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBAChC,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;gBACtB,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;gBAC1D,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE;gBAC3F,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;oBAC1D,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;oBAClE;wBACE,IAAI,EAAE,KAAK;wBACX,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;wBACxE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;wBAChB,IAAI,EAAE,EAAE;wBACR,YAAY,EAAE,KAAK;wBACnB,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;qBAC/B;iBACF;aACF;YACD,IAAI,EAAE,gDAAgD;SACvD,CAAC;IACJ,CAAC;IAEO,gCAAS,GAAjB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,gDAAgD;YAC7D,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;gBACjD,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBAChC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;gBACrB,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;gBAChG,KAAK,EAAE,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;gBACjE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;aACzE;YACD,IAAI,EAAE,0CAA0C;SACjD,CAAC;IACJ,CAAC;IAEO,gCAAS,GAAjB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,oCAAoC;YACjD,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE;gBACrC,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;gBAC/B,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;gBACzC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACtD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;aACzC;YACD,IAAI,EAAE,0CAA0C;SACjD,CAAC;IACJ,CAAC;IAEO,qCAAc,GAAtB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,+CAA+C;YAC5D,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE;gBAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;gBAC7B,IAAI,EAAE;oBACJ,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;oBACtB,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE,CAAC,EAAE;oBACf,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;iBAClG;gBACD,KAAK,EAAE;oBACL,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,GAAG;oBACR,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAC7D,SAAS,EAAE,CAAC;oBACZ,SAAS,EAAE,CAAC;oBACZ,iBAAiB,EAAE,IAAI;oBACvB,UAAU,EAAE,CAAC;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;iBACtB;gBACD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;aACvC;YACD,IAAI,EAAE,+CAA+C;SACtD,CAAC;IACJ,CAAC;IAEO,kCAAW,GAAnB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,0BAA0B;YACvC,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;gBACvC,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;gBAClC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;gBAC1D,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;gBAChD,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;gBAC/D,MAAM,EAAE,CAAC;wBACP,IAAI,EAAE,UAAU;wBAChB,WAAW,EAAE,CAAC;wBACd,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;wBACrH,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;qBAC7C,CAAC;aACH;YACD,IAAI,EAAE,4CAA4C;SACnD,CAAC;IACJ,CAAC;IAEO,kCAAW,GAAnB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,0BAA0B;YACvC,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;gBACvC,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;gBAC/B,MAAM,EAAE,CAAC;wBACP,IAAI,EAAE,SAAS;wBACf,eAAe,EAAE,YAAY;wBAC7B,IAAI,EAAE;4BACJ,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;4BACnD,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;4BAC/C,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;4BAC7C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;yBAC5C;qBACF,CAAC;aACH;YACD,IAAI,EAAE,4CAA4C;SACnD,CAAC;IACJ,CAAC;IAEO,iCAAU,GAAlB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,yBAAyB;YACtC,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;gBACtC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;gBAC3B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;aACvG;YACD,IAAI,EAAE,2CAA2C;SAClD,CAAC;IACJ,CAAC;IAEO,mCAAY,GAApB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;gBACpG,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;gBAC5B,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;gBAC3C,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;aACjD;YACD,IAAI,EAAE,6CAA6C;SACpD,CAAC;IACJ,CAAC;IAEO,qCAAc,GAAtB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,wBAAwB;YAC/B,WAAW,EAAE,0DAA0D;YACvE,eAAe,EAAE,YAAY;YAC7B,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;gBACtB,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;gBACvC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;gBAC9B,MAAM,EAAE,CAAC;wBACP,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE;4BACJ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;4BAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;4BAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;4BAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;4BAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;4BAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;yBAC3B;qBACF,CAAC;aACH;YACD,IAAI,EAAE,8DAA8D;SACrE,CAAC;IACJ,CAAC;IAEO,uCAAgB,GAAxB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,iDAAiD;YAC9D,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;gBACnC,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;gBACvC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;gBACrB,MAAM,EAAE,CAAC;wBACP,IAAI,EAAE,KAAK;wBACX,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE;4BACP,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;4BACrE,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;4BACxE,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;yBAC9E;wBACD,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE;qBACtD,CAAC;aACH;YACD,IAAI,EAAE,wCAAwC;SAC/C,CAAC;IACJ,CAAC;IAEO,sCAAe,GAAvB;QACE,MAAM,CAAC;YACL,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,iCAAiC;YAC9C,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;gBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;gBAC9B,IAAI,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE;gBACrC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;gBAC5E,MAAM,EAAE,EAAE;aACX;YACD,IAAI,EAAE,2CAA2C;SAClD,CAAC;IACJ,CAAC;IAEO,2CAAoB,GAA5B;QACE,MAAM,CAAC;YACL,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;YACpC,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;YACjC,QAAQ,EAAE,EAAE,IAAI,EAAE,wDAAwD,EAAE;YAC5E,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;YACjE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;YACtC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;SAC3D,CAAC;IACJ,CAAC;IAp1EH;QAAC,+EAAS,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,kCAAmC;YACnC,kCAAkC;SACnC,CAAC;;oBAAA;IAi1EF,mBAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACn2EwD;AACjB;AACI;AACF;AACmC;AACrC;AACoB;AACJ;AACH;AACA;AACF;AACS;AACX;AACE;AACM;AACM;AAEjB;AAE9C;IACE,wDAAc,CAAC,wCAAU,CAAC,CAAC;IAC3B,sDAAY,CAAC,wCAAU,CAAC,CAAC;IACzB,wDAAO,CAAC,wCAAU,CAAC,CAAC;IACpB,wDAAO,CAAC,wCAAU,CAAC,CAAC;IACpB,wDAAM,CAAC,wCAAU,CAAC,CAAC;IACnB,6DAAU,CAAC,wCAAU,CAAC,CAAC;IACvB,uDAAK,CAAC,wCAAU,CAAC,CAAC;IAClB,qDAAS,CAAC,wCAAU,CAAC,CAAC;IACtB,2DAAS,CAAC,wCAAU,CAAC,CAAC;IACtB,oEAAM,CAAC,wCAAU,CAAC,CAAC;IACnB,MAAM,CAAC,wCAAU,CAAC;AACpB,CAAC;AAiBD;IAAA;IAAyB,CAAC;IAf1B;QAAC,8EAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,qEAAY;aACb;YACD,OAAO,EAAE;gBACP,gFAAa;gBACb,mEAAW;gBACX,iEAAU;gBACV,0EAAW;aACZ;YACD,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,+EAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE;aAC7D;YACD,SAAS,EAAE,CAAC,qEAAY,CAAC;SAC1B,CAAC;;iBAAA;IACuB,gBAAC;AAAD,CAAC;;;;;;;;;AChD1B;AAAA,mFAAmF;AACnF,8FAA8F;AAC9F,yEAAyE;AACzE,+EAA+E;AAExE,IAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;CAClB,CAAC;;;;;;;;ACPF,yBAAyB,mBAAmB,GAAG,UAAU,6BAA6B,sBAAsB,mBAAmB,yBAAyB,GAAG,mCAAmC,qBAAqB,8BAA8B,uBAAuB,kDAAkD,GAAG,YAAY,yBAAyB,kBAAkB,2BAA2B,4BAA4B,2BAA2B,uCAAuC,cAAc,kBAAkB,wBAAwB,GAAG,kBAAkB,iBAAiB,GAAG,iBAAiB,yBAAyB,kBAAkB,wBAAwB,wBAAwB,aAAa,uBAAuB,kCAAkC,uBAAuB,uBAAuB,GAAG,mBAAmB,gCAAgC,yBAAyB,2BAA2B,4BAA4B,qBAAqB,oBAAoB,8BAA8B,uBAAuB,mBAAmB,oBAAoB,qBAAqB,0BAA0B,GAAG,0BAA0B,0BAA0B,wBAAwB,gBAAgB,GAAG,iBAAiB,mBAAmB,uBAAuB,mBAAmB,oBAAoB,qBAAqB,0BAA0B,8BAA8B,GAAG,sBAAsB,kBAAkB,GAAG,QAAQ,uBAAuB,oBAAoB,qBAAqB,GAAG,OAAO,mBAAmB,GAAG,cAAc,qBAAqB,GAAG,YAAY,kBAAkB,wBAAwB,GAAG,kBAAkB,yBAAyB,kBAAkB,2BAA2B,4BAA4B,2BAA2B,uCAAuC,cAAc,GAAG,kBAAkB,uBAAuB,uBAAuB,sBAAsB,yBAAyB,wBAAwB,mBAAmB,oBAAoB,qBAAqB,GAAG,qDAAqD,sBAAsB,kBAAkB,cAAc,GAAG,sBAAsB,qDAAqD,oEAAoE,GAAG,0BAA0B,kBAAkB,8BAA8B,uBAAuB,wBAAwB,GAAG,qDAAqD,mBAAmB,GAAG,2BAA2B,oBAAoB,mBAAmB,oBAAoB,sBAAsB,GAAG,oBAAoB,0BAA0B,mCAAmC,0BAA0B,2BAA2B,GAAG,iBAAiB,gBAAgB,2BAA2B,kBAAkB,GAAG,iBAAiB,yBAAyB,kBAAkB,0BAA0B,gCAAgC,2BAA2B,uCAAuC,cAAc,wBAAwB,GAAG,qCAAqC,uBAAuB,GAAG,oBAAoB,oBAAoB,GAAG,sBAAsB,uBAAuB,uBAAuB,qBAAqB,yBAAyB,wBAAwB,mBAAmB,oBAAoB,qBAAqB,GAAG,oBAAoB,qBAAqB,GAAG,0BAA0B,wBAAwB,GAAG,uBAAuB,wBAAwB,kBAAkB,wBAAwB,0BAA0B,mBAAmB,GAAG,oCAAoC,qBAAqB,0BAA0B,mBAAmB,GAAG,yBAAyB,mBAAmB,GAAG,sCAAsC,mBAAmB,GAAG,wCAAwC,wBAAwB,mBAAmB,GAAG,qDAAqD,wBAAwB,mBAAmB,GAAG,qBAAqB,uBAAuB,GAAG,qBAAqB,yBAAyB,kBAAkB,wBAAwB,wBAAwB,2BAA2B,4BAA4B,mBAAmB,wBAAwB,kBAAkB,8BAA8B,uBAAuB,wBAAwB,GAAG,+BAA+B,YAAY,4BAA4B,kCAAkC,iCAAiC,iCAAiC,KAAK,mBAAmB,2BAA2B,sCAAsC,kBAAkB,KAAK,GAAG,mCAAmC,0BAA0B,wBAAwB,GAAG,yBAAyB,gCAAgC,yBAAyB,wBAAwB,wBAAwB,2BAA2B,4BAA4B,aAAa,GAAG,4BAA4B,mBAAmB,oBAAoB,8BAA8B,GAAG,0CAA0C,mBAAmB,GAAG,4BAA4B,qBAAqB,oBAAoB,8BAA8B,wBAAwB,mBAAmB,GAAG,0CAA0C,0BAA0B,qBAAqB,mBAAmB,GAAG,mCAAmC,0BAA0B,wBAAwB,gBAAgB,GAAG,iDAAiD,0BAA0B,wBAAwB,gBAAgB,GAAG,oCAAoC,sBAAsB,wBAAwB,0BAA0B,gBAAgB,GAAG,qCAAqC,yBAAyB,kBAAkB,wBAAwB,wBAAwB,2BAA2B,4BAA4B,mBAAmB,wBAAwB,mBAAmB,oBAAoB,GAAG,iEAAiE,mBAAmB,GAAG,2BAA2B,qBAAqB,mBAAmB,GAAG,yCAAyC,mBAAmB,GAAG,gEAAgE,mBAAmB,GAAG,gEAAgE,mBAAmB,GAAG,oBAAoB,mBAAmB,GAAG,mBAAmB,sBAAsB,8BAA8B,uBAAuB,qBAAqB,wBAAwB,GAAG,iCAAiC,0BAA0B,qBAAqB,GAAG,yBAAyB,sBAAsB,GAAG,oBAAoB,sBAAsB,kBAAkB,qDAAqD,oEAAoE,cAAc,qBAAqB,wBAAwB,GAAG,wBAAwB,kBAAkB,8BAA8B,uBAAuB,wBAAwB,GAAG,sCAAsC,0BAA0B,wBAAwB,GAAG,iDAAiD,mBAAmB,GAAG,2BAA2B,uBAAuB,mBAAmB,GAAG,yCAAyC,mBAAmB,GAAG,yBAAyB,4BAA4B,mBAAmB,oBAAoB,qBAAqB,GAAG,uCAAuC,mBAAmB,GAAG,kBAAkB,gBAAgB,sBAAsB,GAAG,wBAAwB,sBAAsB,GAAG,wBAAwB,mBAAmB,gBAAgB,sBAAsB,GAAG,wBAAwB,qBAAqB,8BAA8B,uBAAuB,wBAAwB,qBAAqB,GAAG,0CAA0C,0BAA0B,wBAAwB,GAAG,uDAAuD,0BAA0B,wBAAwB,GAAG,gCAAgC,yBAAyB,kBAAkB,2BAA2B,4BAA4B,2BAA2B,uCAAuC,cAAc,qBAAqB,oBAAoB,oBAAoB,mBAAmB,qBAAqB,GAAG,kDAAkD,mBAAmB,GAAG,+DAA+D,mBAAmB,GAAG,wDAAwD,kBAAkB,GAAG,uCAAuC,iBAAiB,gCAAgC,yBAAyB,2BAA2B,4BAA4B,0BAA0B,gCAAgC,gBAAgB,iBAAiB,sBAAsB,uBAAuB,wBAAwB,mBAAmB,qBAAqB,GAAG,6CAA6C,iBAAiB,GAAG,qCAAqC,gCAAgC,yBAAyB,2BAA2B,4BAA4B,uBAAuB,GAAG,sCAAsC,mBAAmB,oBAAoB,qBAAqB,8BAA8B,GAAG,wDAAwD,mBAAmB,GAAG,qEAAqE,mBAAmB,GAAG,sBAAsB,sBAAsB,kBAAkB,0CAA0C,yDAAyD,cAAc,kBAAkB,kCAAkC,GAAG,wCAAwC,8BAA8B,GAAG,qDAAqD,8BAA8B,GAAG,yBAAyB,oBAAoB,mBAAmB,oBAAoB,8BAA8B,GAAG,2CAA2C,mBAAmB,GAAG,wDAAwD,mBAAmB,GAAG,0BAA0B,sBAAsB,cAAc,GAAG,SAAS,mBAAmB,kBAAkB,uBAAuB,wBAAwB,mBAAmB,oBAAoB,qBAAqB,GAAG,YAAY,uBAAuB,uBAAuB,qBAAqB,oBAAoB,cAAc,uBAAuB,wBAAwB,gBAAgB,qBAAqB,oBAAoB,GAAG,iBAAiB,2DAA2D,oEAAoE,GAAG,gBAAgB,kBAAkB,8BAA8B,uBAAuB,wBAAwB,GAAG,mBAAmB,qBAAqB,uBAAuB,GAAG,mBAAmB,uBAAuB,mBAAmB,GAAG,+BAA+B,kCAAkC,qBAAqB,KAAK,oDAAoD,kCAAkC,2BAA2B,6BAA6B,8BAA8B,uBAAuB,KAAK,8EAA8E,4BAA4B,qCAAqC,KAAK,sCAAsC,qBAAqB,KAAK,GAAG,G;;;;;;;ACApuW,mmDAAmmD,UAAU,2PAA2P,YAAY,mPAAmP,uCAAuC,+CAA+C,uCAAuC,8CAA8C,sCAAsC,gDAAgD,wCAAwC,oKAAoK,kDAAkD,uFAAuF,iBAAiB,yBAAyB,uBAAuB,yBAAyB,sBAAsB,wUAAwU,oDAAoD,yGAAyG,uDAAuD,sTAAsT,uBAAuB,uFAAuF,qBAAqB,yFAAyF,uBAAuB,4QAA4Q,iBAAiB,wBAAwB,uBAAuB,ygBAAygB,wBAAwB,+FAA+F,sBAAsB,iGAAiG,wBAAwB,2kBAA2kB,iBAAiB,wBAAwB,uBAAuB,0CAA0C,sCAAsC,qgBAAqgB,wBAAwB,+FAA+F,sBAAsB,iGAAiG,wBAAwB,m2BAAm2B,uBAAuB,uFAAuF,qBAAqB,yFAAyF,uBAAuB,6rCAA6rC,yBAAyB,uFAAuF,uBAAuB,yFAAyF,yBAAyB,oRAAoR,SAAS,mQAAmQ,+BAA+B,iPAAiP,UAAU,mBAAmB,SAAS,mBAAmB,SAAS,mBAAmB,SAAS,sO","file":"main.bundle.js","sourcesContent":["function webpackEmptyContext(req) {\n\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 355;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/$$_gendir async\n// module id = 355\n// module chunks = 1","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { enableProdMode } from '@angular/core';\nimport { environment } from './environments/environment';\nimport { AppModule } from './app/app.module';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.ts","import { Component, OnDestroy, OnInit } from '@angular/core';\n\ninterface ChartExample {\n key?: string;\n title: string;\n description: string;\n constructorType?: string;\n options: any;\n html: string;\n tutorialHtml?: string;\n tutorialTs?: string;\n tutorialScss?: string;\n}\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent implements OnInit, OnDestroy {\n viewMode = 'dynamic';\n events: string[] = [];\n dynamicData = [29, 42, 55, 61, 73, 88];\n binanceSymbol = 'BNBUSDT';\n binanceInterval = '1s';\n binanceTheme = 'light';\n binanceSymbols = ['BNBUSDT', 'BTCUSDT'];\n binanceIntervals = ['1s', '1m', '15m', '1h', '4h', '1d', '1w'];\n // Mask API: keep Binance as the data source, but route browser traffic through\n // api-b.alexandro.net because some networks block requests by Binance domain.\n maskApiRestBaseUrl = 'https://api-b.alexandro.net';\n maskApiWsBaseUrl = 'wss://api-b.alexandro.net';\n binanceRestHosts = [\n this.maskApiRestBaseUrl + '/api/v3/klines',\n this.maskApiRestBaseUrl + '/data-api/api/v3/klines'\n ];\n binanceWsBaseUrl = this.maskApiWsBaseUrl + '/ws/';\n binanceWsUrl = '';\n binanceRestUrl = '';\n binanceStatus = 'Loading REST candles...';\n binanceSocketStatus = 'WebSocket disconnected';\n binanceCandleCount = 0;\n binanceLastCandle: any = null;\n binanceOptions: any = this.createBinanceOptions();\n\n private binanceChart: any = null;\n private binanceSocket: any = null;\n private binanceOhlcData: any[] = [];\n private binanceVolumeData: any[] = [];\n\n marketSymbols = ['BTCUSDT', 'ETHUSDT', 'BNBUSDT', 'SOLUSDT', 'XRPUSDT', 'ADAUSDT', 'DOGEUSDT', 'TRXUSDT'];\n marketRestUrl = '';\n marketWsUrl = '';\n marketStatus = 'Waiting for market stream';\n marketTickers: any = {};\n marketHistory: any = {};\n cryptoTreemapUrl = 'https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=50&page=1&sparkline=false&price_change_percentage=24h';\n cryptoTreemapStatus = 'Loading CoinGecko top 50 market cap snapshot...';\n cryptoTreemapRows: any[] = [];\n dynamicExamples: ChartExample[] = [];\n\n private marketSocket: any = null;\n private marketSnapshotTimer: any = null;\n private marketSnapshotLoading = false;\n private cryptoTreemapTimer: any = null;\n private cryptoTreemapLoading = false;\n private dynamicRefreshTimer: any = null;\n private dynamicRefreshQueued = false;\n private dynamicCharts: any = {};\n\n examples: ChartExample[] = [\n this.makeBasic('Line chart', 'Default Highcharts.Chart with a line series.', 'line'),\n this.makeBasic('Spline chart', 'Smooth line series with regular categories.', 'spline'),\n this.makeBasic('Area chart', 'Filled area series for trend volume.', 'area'),\n this.makeBasic('Areaspline chart', 'Smooth filled area series.', 'areaspline'),\n this.makeBasic('Column chart', 'Vertical columns for category comparison.', 'column'),\n this.makeBasic('Bar chart', 'Horizontal bars for compact comparisons.', 'bar'),\n this.makeStackedColumn(),\n this.makePie(),\n this.makeDonut(),\n this.makeScatter(),\n this.makeBubble(),\n this.makeCombination(),\n this.makePolar(),\n this.makeGauge(),\n this.makeSolidGauge(),\n this.makeHeatmap(),\n this.makeTreemap(),\n this.makeFunnel(),\n this.make3dColumn(),\n this.makeStockChart(),\n this.makeMapLikeChart(),\n this.makeNoDataChart()\n ].map((example: ChartExample) => this.withTutorial(example));\n\n dynamicOptions: any = this.createDynamicOptions();\n\n dynamicHtml = `\n`;\n\n dynamicTutorialHtml = this.wrapTutorialHtml(this.dynamicHtml);\n dynamicTutorialTs = `import { Component } from '@angular/core';\n\n@Component({\n selector: 'dynamic-chart-example',\n templateUrl: './dynamic-chart-example.component.html',\n styleUrls: ['./dynamic-chart-example.component.css']\n})\nexport class DynamicChartExampleComponent {\n dynamicData = [29, 42, 55, 61, 73, 88];\n dynamicOptions: any = this.createDynamicOptions();\n\n randomizeDynamicChart() {\n this.dynamicData = this.dynamicData.map(function () {\n return Math.round(20 + Math.random() * 90);\n });\n this.dynamicOptions = this.createDynamicOptions();\n }\n\n onCreate(chart: any) {\n console.log('Dynamic chart created', chart.series.length);\n }\n\n private createDynamicOptions() {\n return {\n chart: { type: 'line', height: 340 },\n title: { text: 'Dynamic update' },\n subtitle: { text: 'Changing the options object re-initializes the wrapper' },\n xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] },\n yAxis: { title: { text: 'Requests' } },\n series: [{ name: 'Updated data', data: this.dynamicData }]\n };\n }\n}`;\n dynamicTutorialScss = this.defaultTutorialScss(340);\n\n directiveOptions: any = {\n chart: { type: 'column', height: 340 },\n title: { text: 'Directive/event wiring' },\n subtitle: { text: ', , and outputs' },\n xAxis: { categories: ['North', 'South', 'East', 'West'] },\n yAxis: { title: { text: 'Tickets' } },\n plotOptions: {\n series: {\n cursor: 'pointer',\n point: {\n events: {}\n }\n }\n },\n series: [\n { name: 'Open', data: [12, 18, 9, 15] },\n { name: 'Closed', data: [9, 13, 7, 11] }\n ]\n };\n\n directiveHtml = `\n \n \n \n \n \n`;\n\n directiveTutorialHtml = this.wrapTutorialHtml(this.directiveHtml);\n directiveTutorialTs = `import { Component } from '@angular/core';\n\n@Component({\n selector: 'directive-events-example',\n templateUrl: './directive-events-example.component.html',\n styleUrls: ['./directive-events-example.component.css']\n})\nexport class DirectiveEventsExampleComponent {\n events: string[] = [];\n\n directiveOptions: any = {\n chart: { type: 'column', height: 340 },\n title: { text: 'Directive/event wiring' },\n subtitle: { text: ', , and outputs' },\n xAxis: { categories: ['North', 'South', 'East', 'West'] },\n yAxis: { title: { text: 'Tickets' } },\n plotOptions: {\n series: {\n cursor: 'pointer',\n point: { events: {} }\n }\n },\n series: [\n { name: 'Open', data: [12, 18, 9, 15] },\n { name: 'Closed', data: [9, 13, 7, 11] }\n ]\n };\n\n onCreate(chart: any) {\n this.record('chart created with ' + chart.series.length + ' series');\n }\n\n record(message: string) {\n this.events.unshift(new Date().toLocaleTimeString() + ' - ' + message);\n this.events = this.events.slice(0, 8);\n }\n}`;\n directiveTutorialScss = this.defaultTutorialScss(340);\n\n binanceTutorialHtml = `\n
\n \n \n \n \n \n \n \n
\n\n \n`;\n\n binanceTutorialTs = `import { Component, OnDestroy, OnInit } from '@angular/core';\n\n@Component({\n selector: 'binance-candles-example',\n templateUrl: './binance-candles-example.component.html',\n styleUrls: ['./binance-candles-example.component.css']\n})\nexport class BinanceCandlesExampleComponent implements OnInit, OnDestroy {\n binanceSymbol = 'BNBUSDT';\n binanceInterval = '1s';\n binanceTheme = 'light';\n binanceRestHosts = [\n 'https://api-b.alexandro.net/api/v3/klines',\n 'https://api-b.alexandro.net/data-api/api/v3/klines'\n ];\n // Mask API: the example still uses Binance public market data, but browser\n // requests go through api-b.alexandro.net to avoid firewall/domain blocks.\n binanceWsBaseUrl = 'wss://api-b.alexandro.net/ws/';\n binanceOptions: any = this.createBinanceOptions();\n\n private binanceChart: any = null;\n private binanceSocket: any = null;\n private binanceOhlcData: any[] = [];\n private binanceVolumeData: any[] = [];\n\n ngOnInit() {\n this.loadBinanceHistory();\n }\n\n ngOnDestroy() {\n this.disconnectBinanceSocket();\n }\n\n onBinanceChartCreate(chart: any) {\n this.binanceChart = chart;\n this.applyBinanceSeries();\n }\n\n selectBinanceTheme(theme: string) {\n this.binanceTheme = theme;\n this.binanceOptions = this.createBinanceOptions();\n if (this.binanceChart && this.binanceChart.update) {\n this.binanceChart.update(this.binanceOptions, false);\n this.applyBinanceSeries();\n }\n }\n\n selectBinanceSymbol(symbol: string) {\n this.binanceSymbol = symbol;\n this.loadBinanceHistory();\n }\n\n selectBinanceInterval(interval: string) {\n this.binanceInterval = interval;\n this.loadBinanceHistory();\n }\n\n private loadBinanceHistory() {\n this.disconnectBinanceSocket();\n var url = this.binanceRestHosts[0] +\n '?symbol=' + this.binanceSymbol +\n '&interval=' + this.binanceInterval +\n '&limit=300';\n var xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4 && xhr.status >= 200 && xhr.status < 300) {\n this.receiveBinanceHistory(JSON.parse(xhr.responseText));\n }\n };\n\n xhr.open('GET', url, true);\n xhr.send();\n }\n\n private receiveBinanceHistory(candles: any[]) {\n this.binanceOhlcData = [];\n this.binanceVolumeData = [];\n\n for (var i = 0; i < candles.length; i++) {\n var candle = candles[i];\n var point = [\n parseInt(candle[0], 10),\n parseFloat(candle[1]),\n parseFloat(candle[2]),\n parseFloat(candle[3]),\n parseFloat(candle[4])\n ];\n this.binanceOhlcData.push(point);\n this.binanceVolumeData.push({\n x: point[0],\n y: parseFloat(candle[5]),\n color: point[4] >= point[1] ? '#02c076' : '#f6465d'\n });\n }\n\n this.applyBinanceSeries();\n this.connectBinanceSocket();\n }\n\n private connectBinanceSocket() {\n var url = this.binanceWsBaseUrl +\n this.binanceSymbol.toLowerCase() +\n '@kline_' +\n this.binanceInterval;\n this.binanceSocket = new WebSocket(url);\n\n this.binanceSocket.onmessage = (message: any) => {\n var payload = JSON.parse(message.data);\n if (payload && payload.k) {\n this.receiveLiveCandle(payload.k);\n }\n };\n }\n\n private receiveLiveCandle(kline: any) {\n var point = [\n kline.t,\n parseFloat(kline.o),\n parseFloat(kline.h),\n parseFloat(kline.l),\n parseFloat(kline.c)\n ];\n this.binanceOhlcData[this.binanceOhlcData.length - 1] = point;\n this.applyBinanceSeries();\n }\n\n private applyBinanceSeries() {\n if (!this.binanceChart || !this.binanceChart.series) {\n return;\n }\n this.binanceChart.series[0].setData(this.binanceOhlcData.slice(0), false);\n this.binanceChart.series[1].setData(this.calculateMovingAverage(7), false);\n this.binanceChart.series[2].setData(this.calculateMovingAverage(25), false);\n this.binanceChart.series[3].setData(this.calculateMovingAverage(99), false);\n this.binanceChart.series[4].setData(this.binanceVolumeData.slice(0), false);\n this.binanceChart.redraw();\n }\n\n private calculateMovingAverage(period: number) {\n var result: any[] = [];\n var sum = 0;\n for (var i = 0; i < this.binanceOhlcData.length; i++) {\n sum += this.binanceOhlcData[i][4];\n if (i >= period) {\n sum -= this.binanceOhlcData[i - period][4];\n }\n if (i >= period - 1) {\n result.push([this.binanceOhlcData[i][0], sum / period]);\n }\n }\n return result;\n }\n\n private disconnectBinanceSocket() {\n if (this.binanceSocket) {\n this.binanceSocket.close();\n this.binanceSocket = null;\n }\n }\n\n private createBinanceOptions() {\n return {\n chart: { height: 560, backgroundColor: '#ffffff', plotBackgroundColor: '#ffffff' },\n title: { text: this.binanceSymbol + ' live candles' },\n rangeSelector: { enabled: false },\n navigator: { enabled: false },\n scrollbar: { enabled: false },\n yAxis: [{ height: '68%' }, { top: '73%', height: '22%', offset: 0 }],\n plotOptions: {\n candlestick: {\n color: '#f6465d',\n upColor: '#02c076',\n lineColor: '#f6465d',\n upLineColor: '#02c076'\n },\n series: { animation: false, turboThreshold: 0 }\n },\n series: [\n { type: 'candlestick', name: 'Price', data: [] },\n { type: 'line', name: 'MA(7)', data: [], color: '#f5d300' },\n { type: 'line', name: 'MA(25)', data: [], color: '#ff4ec9' },\n { type: 'line', name: 'MA(99)', data: [], color: '#8e44ad' },\n { type: 'column', name: 'Volume', data: [], yAxis: 1 }\n ]\n };\n }\n}`;\n binanceTutorialScss = `.live-market-card {\n padding: 18px;\n border: 1px solid #d9e5ee;\n border-radius: 8px;\n background: #fff;\n}\n\n.market-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-bottom: 12px;\n}\n\nbutton {\n min-height: 32px;\n padding: 0 12px;\n border: 1px solid #d0d5dd;\n border-radius: 6px;\n background: #fff;\n color: #344054;\n cursor: pointer;\n}\n\nchart {\n display: block;\n width: 100%;\n min-height: 560px;\n}`;\n\n ngOnInit() {\n this.readRoute();\n this.readInitialBinanceTheme();\n this.binanceOptions = this.createBinanceOptions();\n this.dynamicExamples = this.createDynamicMarketExamples();\n\n if (this.viewMode === 'dynamic') {\n this.loadBinanceHistory();\n this.loadMarketTickerSnapshot();\n this.marketSnapshotTimer = setInterval(() => this.loadMarketTickerSnapshot(false), 20000);\n this.loadCryptoTreemapSnapshot();\n this.cryptoTreemapTimer = setInterval(() => this.loadCryptoTreemapSnapshot(false), 60000);\n this.connectMarketTickerStream();\n }\n }\n\n ngOnDestroy() {\n this.disconnectBinanceSocket();\n this.disconnectMarketTickerStream();\n if (this.dynamicRefreshTimer) {\n clearTimeout(this.dynamicRefreshTimer);\n this.dynamicRefreshTimer = null;\n }\n if (this.marketSnapshotTimer) {\n clearInterval(this.marketSnapshotTimer);\n this.marketSnapshotTimer = null;\n }\n if (this.cryptoTreemapTimer) {\n clearInterval(this.cryptoTreemapTimer);\n this.cryptoTreemapTimer = null;\n }\n this.dynamicCharts = {};\n }\n\n private readRoute() {\n var path = window.location && window.location.pathname ? window.location.pathname : '/';\n this.viewMode = path.indexOf('/static') >= 0 ? 'static' : 'dynamic';\n }\n\n onBinanceChartCreate(chart: any) {\n this.binanceChart = chart;\n this.applyBinanceSeries();\n }\n\n selectBinanceSymbol(symbol: string) {\n if (this.binanceSymbol === symbol) {\n return;\n }\n\n this.binanceSymbol = symbol;\n this.loadBinanceHistory();\n }\n\n selectBinanceInterval(interval: string) {\n if (this.binanceInterval === interval) {\n return;\n }\n\n this.binanceInterval = interval;\n this.loadBinanceHistory();\n }\n\n selectBinanceTheme(theme: string) {\n if (this.binanceTheme === theme) {\n return;\n }\n\n this.binanceTheme = theme;\n this.binanceOptions = this.createBinanceOptions();\n\n if (this.binanceChart && this.binanceChart.update) {\n this.binanceChart.update(this.binanceOptions, false);\n this.applyBinanceSeries();\n }\n }\n\n reloadBinanceChart() {\n this.loadBinanceHistory();\n }\n\n private loadBinanceHistory() {\n this.disconnectBinanceSocket();\n this.binanceOhlcData = [];\n this.binanceVolumeData = [];\n this.binanceCandleCount = 0;\n this.binanceLastCandle = null;\n this.binanceStatus = 'Loading REST candles for ' + this.binanceSymbol + ' ' + this.binanceInterval + '...';\n this.binanceSocketStatus = 'Waiting for REST history';\n this.applyBinanceSeries();\n this.loadBinanceHistoryFromHost(0);\n }\n\n private readInitialBinanceTheme() {\n var search = window.location && window.location.search ? window.location.search : '';\n if (search.indexOf('theme=dark') !== -1) {\n this.binanceTheme = 'dark';\n }\n }\n\n private loadMarketTickerSnapshot(showLoading?: boolean) {\n if (this.marketSnapshotLoading) {\n return;\n }\n\n var symbolsParam = encodeURIComponent(JSON.stringify(this.marketSymbols));\n var url = this.maskApiRestBaseUrl + '/api/v3/ticker/24hr?symbols=' + symbolsParam;\n var xhr = new XMLHttpRequest();\n\n this.marketSnapshotLoading = true;\n this.marketRestUrl = url;\n if (showLoading !== false) {\n this.marketStatus = 'Loading tracked 24hr ticker snapshot...';\n }\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState !== 4) {\n return;\n }\n\n this.marketSnapshotLoading = false;\n\n if (xhr.status >= 200 && xhr.status < 300) {\n try {\n var tickers = JSON.parse(xhr.responseText);\n for (var i = 0; i < tickers.length; i++) {\n this.receiveMarketTicker(this.normalizeRestTicker(tickers[i]));\n }\n this.marketStatus = 'REST ticker snapshot loaded';\n this.refreshDynamicExamples();\n } catch (error) {\n this.marketStatus = 'REST ticker parse failed';\n }\n } else {\n this.marketStatus = 'REST ticker snapshot failed';\n }\n };\n\n xhr.onerror = () => {\n this.marketSnapshotLoading = false;\n this.marketStatus = 'REST ticker snapshot failed';\n };\n xhr.open('GET', url, true);\n xhr.send();\n }\n\n private loadCryptoTreemapSnapshot(showLoading?: boolean) {\n if (this.cryptoTreemapLoading) {\n return;\n }\n\n var xhr = new XMLHttpRequest();\n\n this.cryptoTreemapLoading = true;\n if (showLoading !== false) {\n this.cryptoTreemapStatus = 'Loading CoinGecko top 50 market cap snapshot...';\n }\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState !== 4) {\n return;\n }\n\n this.cryptoTreemapLoading = false;\n\n if (xhr.status >= 200 && xhr.status < 300) {\n try {\n var coins = JSON.parse(xhr.responseText);\n var rows: any[] = [];\n for (var i = 0; i < coins.length; i++) {\n rows.push(this.normalizeCoinGeckoCoin(coins[i]));\n }\n this.cryptoTreemapRows = rows;\n this.cryptoTreemapStatus = 'CoinGecko market cap snapshot updated: top ' + rows.length;\n this.refreshDynamicExamples();\n } catch (error) {\n this.cryptoTreemapStatus = 'CoinGecko market cap parse failed';\n }\n } else {\n this.cryptoTreemapStatus = 'CoinGecko market cap snapshot failed';\n }\n };\n\n xhr.onerror = () => {\n this.cryptoTreemapLoading = false;\n this.cryptoTreemapStatus = 'CoinGecko market cap snapshot failed';\n };\n xhr.open('GET', this.cryptoTreemapUrl, true);\n xhr.send();\n }\n\n private connectMarketTickerStream() {\n this.disconnectMarketTickerStream();\n var streams: string[] = [];\n\n for (var i = 0; i < this.marketSymbols.length; i++) {\n streams.push(this.marketSymbols[i].toLowerCase() + '@miniTicker');\n }\n\n this.marketWsUrl = this.maskApiWsBaseUrl + '/stream?streams=' + streams.join('/');\n this.marketStatus = 'Connecting tracked market miniTicker stream...';\n\n try {\n this.marketSocket = new WebSocket(this.marketWsUrl);\n } catch (error) {\n this.marketStatus = 'Market WebSocket failed to start';\n return;\n }\n\n this.marketSocket.onopen = () => {\n this.marketStatus = 'Live tracked market miniTicker connected';\n };\n\n this.marketSocket.onclose = () => {\n this.marketStatus = 'Market WebSocket disconnected';\n };\n\n this.marketSocket.onerror = () => {\n this.marketStatus = 'Market WebSocket error';\n };\n\n this.marketSocket.onmessage = (message: any) => {\n try {\n var payload = JSON.parse(message.data);\n var data = payload && payload.data ? payload.data : payload;\n if (data && data.length !== undefined) {\n for (var i = 0; i < data.length; i++) {\n this.receiveMiniTickerPayload(data[i]);\n }\n } else {\n this.receiveMiniTickerPayload(data);\n }\n this.marketStatus = 'Live market miniTicker update: ' + new Date().toLocaleTimeString();\n this.scheduleDynamicRefresh();\n } catch (error) {\n this.marketStatus = 'Market WebSocket parse error';\n }\n };\n }\n\n private disconnectMarketTickerStream() {\n if (!this.marketSocket) {\n return;\n }\n\n this.marketSocket.onopen = null;\n this.marketSocket.onclose = null;\n this.marketSocket.onerror = null;\n this.marketSocket.onmessage = null;\n this.marketSocket.close();\n this.marketSocket = null;\n }\n\n private normalizeRestTicker(ticker: any) {\n return {\n symbol: ticker.symbol,\n price: parseFloat(ticker.lastPrice),\n open: parseFloat(ticker.openPrice),\n high: parseFloat(ticker.highPrice),\n low: parseFloat(ticker.lowPrice),\n volume: parseFloat(ticker.volume),\n quoteVolume: parseFloat(ticker.quoteVolume),\n changePercent: parseFloat(ticker.priceChangePercent)\n };\n }\n\n private normalizeCoinGeckoCoin(coin: any) {\n return {\n name: this.safeTreemapText(coin.name || ''),\n symbol: this.safeTreemapText((coin.symbol || '').toUpperCase()),\n price: parseFloat(coin.current_price),\n marketCap: parseFloat(coin.market_cap),\n changePercent: parseFloat(coin.price_change_percentage_24h)\n };\n }\n\n private safeTreemapText(value: string) {\n return String(value || '')\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n\n private normalizeMiniTicker(ticker: any) {\n var open = parseFloat(ticker.o);\n var close = parseFloat(ticker.c);\n return {\n symbol: ticker.s,\n price: close,\n open: open,\n high: parseFloat(ticker.h),\n low: parseFloat(ticker.l),\n volume: parseFloat(ticker.v),\n quoteVolume: parseFloat(ticker.q),\n changePercent: open ? (close - open) / open * 100 : 0\n };\n }\n\n private receiveMiniTickerPayload(data: any) {\n var ticker = this.normalizeMiniTicker(data);\n\n if (this.isTrackedMarketSymbol(ticker.symbol)) {\n this.receiveMarketTicker(ticker);\n }\n }\n\n private receiveMarketTicker(ticker: any) {\n if (!ticker || !ticker.symbol) {\n return;\n }\n\n this.marketTickers[ticker.symbol] = ticker;\n if (!this.marketHistory[ticker.symbol]) {\n this.marketHistory[ticker.symbol] = [];\n }\n\n this.marketHistory[ticker.symbol].push([Date.now(), ticker.price]);\n while (this.marketHistory[ticker.symbol].length > 60) {\n this.marketHistory[ticker.symbol].shift();\n }\n }\n\n private isTrackedMarketSymbol(symbol: string) {\n for (var i = 0; i < this.marketSymbols.length; i++) {\n if (this.marketSymbols[i] === symbol) {\n return true;\n }\n }\n\n return false;\n }\n\n private scheduleDynamicRefresh() {\n if (this.dynamicRefreshQueued) {\n return;\n }\n\n this.dynamicRefreshQueued = true;\n this.dynamicRefreshTimer = setTimeout(() => {\n this.dynamicRefreshQueued = false;\n this.dynamicRefreshTimer = null;\n this.refreshDynamicExamples();\n }, 900);\n }\n\n private refreshDynamicExamples() {\n this.updateAllDynamicCharts();\n }\n\n private loadBinanceHistoryFromHost(index: number) {\n if (index >= this.binanceRestHosts.length) {\n this.binanceStatus = 'REST history failed on both Binance endpoints.';\n this.binanceSocketStatus = 'WebSocket not started';\n return;\n }\n\n var url = this.binanceRestHosts[index] +\n '?symbol=' + encodeURIComponent(this.binanceSymbol) +\n '&interval=' + encodeURIComponent(this.binanceInterval) +\n '&limit=300';\n var xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (xhr.status >= 200 && xhr.status < 300) {\n try {\n var candles = JSON.parse(xhr.responseText);\n this.receiveBinanceHistory(candles, url);\n } catch (error) {\n this.loadBinanceHistoryFromHost(index + 1);\n }\n return;\n }\n\n this.loadBinanceHistoryFromHost(index + 1);\n };\n\n xhr.onerror = () => this.loadBinanceHistoryFromHost(index + 1);\n xhr.open('GET', url, true);\n xhr.send();\n }\n\n private receiveBinanceHistory(candles: any[], url: string) {\n var ohlc: any[] = [];\n var volume: any[] = [];\n\n for (var i = 0; i < candles.length; i++) {\n var candle = candles[i];\n var point = this.toOhlcPoint(candle);\n ohlc.push(point);\n volume.push({\n x: point[0],\n y: parseFloat(candle[5]),\n color: point[4] >= point[1] ? '#02c076' : '#f6465d'\n });\n }\n\n this.binanceOhlcData = ohlc;\n this.binanceVolumeData = volume;\n this.binanceRestUrl = url;\n this.binanceCandleCount = ohlc.length;\n this.binanceLastCandle = this.createCandleMeta(ohlc[ohlc.length - 1]);\n this.binanceStatus = 'REST candles loaded from ' + this.shortUrl(url);\n this.applyBinanceSeries();\n this.connectBinanceSocket();\n }\n\n private connectBinanceSocket() {\n this.disconnectBinanceSocket();\n this.binanceWsUrl = this.binanceWsBaseUrl +\n this.binanceSymbol.toLowerCase() +\n '@kline_' +\n this.binanceInterval;\n this.binanceSocketStatus = 'Connecting to ' + this.binanceWsUrl;\n\n try {\n this.binanceSocket = new WebSocket(this.binanceWsUrl);\n } catch (error) {\n this.binanceSocketStatus = 'WebSocket failed to start';\n return;\n }\n\n this.binanceSocket.onopen = () => {\n this.binanceSocketStatus = 'Live WebSocket connected';\n };\n\n this.binanceSocket.onclose = () => {\n this.binanceSocketStatus = 'WebSocket disconnected';\n };\n\n this.binanceSocket.onerror = () => {\n this.binanceSocketStatus = 'WebSocket error';\n };\n\n this.binanceSocket.onmessage = (message: any) => {\n try {\n var payload = JSON.parse(message.data);\n if (payload && payload.k) {\n this.receiveBinanceLiveCandle(payload.k);\n }\n } catch (error) {\n this.binanceSocketStatus = 'WebSocket parse error';\n }\n };\n }\n\n private disconnectBinanceSocket() {\n if (!this.binanceSocket) {\n return;\n }\n\n this.binanceSocket.onopen = null;\n this.binanceSocket.onclose = null;\n this.binanceSocket.onerror = null;\n this.binanceSocket.onmessage = null;\n this.binanceSocket.close();\n this.binanceSocket = null;\n }\n\n private receiveBinanceLiveCandle(kline: any) {\n var point = [\n kline.t,\n parseFloat(kline.o),\n parseFloat(kline.h),\n parseFloat(kline.l),\n parseFloat(kline.c)\n ];\n var volumePoint = {\n x: point[0],\n y: parseFloat(kline.v),\n color: point[4] >= point[1] ? '#02c076' : '#f6465d'\n };\n\n this.upsertTimePoint(this.binanceOhlcData, point);\n this.upsertTimePoint(this.binanceVolumeData, volumePoint);\n this.trimBinanceData();\n this.binanceCandleCount = this.binanceOhlcData.length;\n this.binanceLastCandle = this.createCandleMeta(point);\n this.binanceSocketStatus = 'Live WebSocket update: ' + new Date().toLocaleTimeString();\n this.applyBinanceSeries();\n }\n\n private upsertTimePoint(target: any[], point: any) {\n var pointTime = point.x || point[0];\n var last = target.length ? target[target.length - 1] : null;\n var lastTime = last ? (last.x || last[0]) : null;\n\n if (last && lastTime === pointTime) {\n target[target.length - 1] = point;\n return;\n }\n\n target.push(point);\n }\n\n private trimBinanceData() {\n while (this.binanceOhlcData.length > 300) {\n this.binanceOhlcData.shift();\n }\n\n while (this.binanceVolumeData.length > 300) {\n this.binanceVolumeData.shift();\n }\n }\n\n private applyBinanceSeries() {\n if (!this.binanceChart || !this.binanceChart.series || this.binanceChart.series.length < 5) {\n return;\n }\n\n this.binanceChart.setTitle(\n { text: this.binanceSymbol + ' live candles' },\n { text: 'REST history + Binance WebSocket updates (' + this.binanceInterval + ')' },\n false\n );\n this.binanceChart.series[0].setData(this.binanceOhlcData.slice(0), false);\n this.binanceChart.series[1].setData(this.calculateMovingAverage(7), false);\n this.binanceChart.series[2].setData(this.calculateMovingAverage(25), false);\n this.binanceChart.series[3].setData(this.calculateMovingAverage(99), false);\n this.binanceChart.series[4].setData(this.binanceVolumeData.slice(0), false);\n this.binanceChart.redraw();\n }\n\n private toOhlcPoint(candle: any[]) {\n return [\n parseInt(candle[0], 10),\n parseFloat(candle[1]),\n parseFloat(candle[2]),\n parseFloat(candle[3]),\n parseFloat(candle[4])\n ];\n }\n\n private createCandleMeta(point: any[]) {\n if (!point) {\n return null;\n }\n\n var open = point[1];\n var close = point[4];\n var change = close - open;\n var changePercent = open ? change / open * 100 : 0;\n\n return {\n time: point[0],\n open: open,\n high: point[2],\n low: point[3],\n close: close,\n change: change,\n changePercent: changePercent\n };\n }\n\n private calculateMovingAverage(period: number) {\n var result: any[] = [];\n var sum = 0;\n\n for (var i = 0; i < this.binanceOhlcData.length; i++) {\n sum += this.binanceOhlcData[i][4];\n\n if (i >= period) {\n sum -= this.binanceOhlcData[i - period][4];\n }\n\n if (i >= period - 1) {\n result.push([\n this.binanceOhlcData[i][0],\n parseFloat((sum / period).toFixed(4))\n ]);\n }\n }\n\n return result;\n }\n\n private shortUrl(url: string) {\n return url.replace('https://', '').replace('wss://', '');\n }\n\n formatPrice(value: number) {\n if (value === null || typeof value === 'undefined') {\n return '--';\n }\n\n return value.toFixed(value >= 1000 ? 2 : 4);\n }\n\n formatPercent(value: number) {\n if (value === null || typeof value === 'undefined') {\n return '--';\n }\n\n return (value >= 0 ? '+' : '') + value.toFixed(2) + '%';\n }\n\n private withTutorial(example: ChartExample): ChartExample {\n var optionsName = this.extractOptionsName(example.html);\n var className = this.toComponentClassName(example.title);\n var wrappedHtml = this.wrapTutorialHtml(example.html);\n\n example.tutorialHtml = wrappedHtml;\n example.tutorialTs = `import { Component } from '@angular/core';\n\n@Component({\n selector: '${this.toSelectorName(example.title)}',\n templateUrl: './${this.toFileName(example.title)}.component.html',\n styleUrls: ['./${this.toFileName(example.title)}.component.css']\n})\nexport class ${className} {\n ${optionsName}: any = ${this.stringifyOptions(example.options)};\n\n onCreate(chart: any) {\n console.log('${example.title} created', chart.series.length);\n }\n}`;\n example.tutorialScss = this.defaultTutorialScss(example.options && example.options.chart && example.options.chart.height ? example.options.chart.height : 320);\n\n return example;\n }\n\n private wrapTutorialHtml(html: string) {\n return `
\n ${html}\n
`;\n }\n\n private extractOptionsName(html: string) {\n var match = html.match(/\\[options\\]=\"([^\"]+)\"/);\n return match && match[1] ? match[1] : 'chartOptions';\n }\n\n private stringifyOptions(options: any) {\n return JSON.stringify(options, null, 2)\n .replace(/\"([^\"]+)\":/g, '$1:')\n .replace(/\"/g, '\\'');\n }\n\n private toComponentClassName(title: string) {\n var name = this.toWords(title).join('');\n if (/^[0-9]/.test(name)) {\n name = 'Chart' + name;\n }\n return name + 'ExampleComponent';\n }\n\n private toSelectorName(title: string) {\n return 'chart-' + this.toFileName(title);\n }\n\n private toFileName(title: string) {\n return this.toWords(title).join('-').toLowerCase();\n }\n\n private toWords(value: string) {\n var words = value.replace(/[^a-zA-Z0-9]+/g, ' ').split(' ');\n var clean: string[] = [];\n\n for (var i = 0; i < words.length; i++) {\n if (words[i]) {\n clean.push(words[i].charAt(0).toUpperCase() + words[i].slice(1));\n }\n }\n\n return clean.length ? clean : ['Chart'];\n }\n\n private defaultTutorialScss(height: number) {\n return `.chart-shell {\n width: 100%;\n padding: 16px;\n border: 1px solid #d9e5ee;\n border-radius: 8px;\n background: #fff;\n box-sizing: border-box;\n}\n\nchart {\n display: block;\n width: 100%;\n min-height: ${height}px;\n}`;\n }\n\n private createDynamicMarketExamples() {\n var examples: ChartExample[] = [\n this.makeDynamicExample('Live crypto treemap', 'Top 50 coins sized by market cap and colored by 24h change.', 'liveTreemapOptions', this.createLiveTreemapOptions()),\n this.makeDynamicExample('Live price move line', 'Normalized live price movement from Binance miniTicker WebSocket.', 'liveLineOptions', this.createLiveLineOptions()),\n this.makeDynamicExample('Live price heartbeat spline', 'Heartbeat-style normalized pulse from live price and change data.', 'liveSplineOptions', this.createLiveSplineOptions()),\n this.makeDynamicExample('Live quote volume area', 'Area comparison using live quote volume.', 'liveAreaOptions', this.createLiveAreaOptions()),\n this.makeDynamicExample('Live quote volume areaspline', 'Smooth area chart from live quote volume.', 'liveAreasplineOptions', this.createLiveAreasplineOptions()),\n this.makeDynamicExample('Live change column', '24h percentage change updated by WebSocket.', 'liveColumnOptions', this.createLiveColumnOptions()),\n this.makeDynamicExample('Live volume bar', 'Horizontal bar chart from live quote volume.', 'liveBarOptions', this.createLiveBarOptions()),\n this.makeDynamicExample('Live stacked volume', 'Stacked columns splitting volume into base and quote-derived views.', 'liveStackedOptions', this.createLiveStackedOptions()),\n this.makeDynamicExample('Live volume pie', 'Volume share across tracked symbols.', 'livePieOptions', this.createLivePieOptions()),\n this.makeDynamicExample('Live volume donut', 'Donut variation of the same live volume share.', 'liveDonutOptions', this.createLiveDonutOptions()),\n this.makeDynamicExample('Live price scatter', 'Price versus quote volume for the tracked symbols.', 'liveScatterOptions', this.createLiveScatterOptions()),\n this.makeDynamicExample('Live change bubble', 'Change percent, price and volume in a bubble chart.', 'liveBubbleOptions', this.createLiveBubbleOptions()),\n this.makeDynamicExample('Live combo chart', 'Column volume plus spline change percent.', 'liveComboOptions', this.createLiveComboOptions()),\n this.makeDynamicExample('Live polar strength', 'Market strength rendered in polar/radar form.', 'livePolarOptions', this.createLivePolarOptions()),\n this.makeDynamicExample('Live BNB change gauge', 'Gauge driven by BNBUSDT 24h change.', 'liveGaugeOptions', this.createLiveGaugeOptions()),\n this.makeDynamicExample('Live market score solid gauge', 'Solid gauge score from the tracked symbols.', 'liveSolidGaugeOptions', this.createLiveSolidGaugeOptions()),\n this.makeDynamicExample('Live market heatmap', 'Heatmap built from change and volatility metrics.', 'liveHeatmapOptions', this.createLiveHeatmapOptions()),\n this.makeDynamicExample('Live liquidity funnel', 'Funnel sorted from highest to lowest quote volume.', 'liveFunnelOptions', this.createLiveFunnelOptions()),\n this.makeDynamicExample('Live 3D volume columns', '3D columns from live quote volume.', 'live3dColumnOptions', this.createLive3dColumnOptions())\n ];\n\n for (var i = 0; i < examples.length; i++) {\n examples[i] = this.withTutorial(examples[i]);\n }\n\n return examples;\n }\n\n private makeDynamicExample(title: string, description: string, optionsName: string, options: any): ChartExample {\n return {\n key: optionsName,\n title: title,\n description: description,\n options: options,\n html: ''\n };\n }\n\n private marketRows() {\n var rows: any[] = [];\n\n for (var i = 0; i < this.marketSymbols.length; i++) {\n var symbol = this.marketSymbols[i];\n rows.push(this.marketTickers[symbol] || this.fallbackTicker(symbol, i));\n }\n\n return rows;\n }\n\n private fallbackTicker(symbol: string, index: number) {\n var base = [67000, 3600, 660, 155, 2.2, 0.65, 0.16, 0.11][index] || (10 + index);\n var change = [1.2, -0.8, 0.4, 2.1, -1.1, 0.7, 1.8, -0.3][index] || 0;\n return {\n symbol: symbol,\n price: base,\n open: base * (1 - change / 100),\n high: base * 1.02,\n low: base * 0.98,\n volume: 1000000 + index * 120000,\n quoteVolume: 900000000 - index * 70000000,\n changePercent: change\n };\n }\n\n private cryptoTreemapRowsForChart() {\n if (this.cryptoTreemapRows.length) {\n return this.cryptoTreemapRows;\n }\n\n return [\n { name: 'Bitcoin', symbol: 'BTC', price: 67516, marketCap: 1352661264706, changePercent: -5.67 },\n { name: 'Ethereum', symbol: 'ETH', price: 1922.75, marketCap: 232156210067, changePercent: -3.27 },\n { name: 'Tether', symbol: 'USDT', price: 0.998454, marketCap: 187951404193, changePercent: -0.01 },\n { name: 'BNB', symbol: 'BNB', price: 665.54, marketCap: 89722947955, changePercent: -3.06 },\n { name: 'XRP', symbol: 'XRP', price: 1.23, marketCap: 76555364639, changePercent: -4.94 },\n { name: 'USD Coin', symbol: 'USDC', price: 0.999595, marketCap: 75837344337, changePercent: -0.01 },\n { name: 'Solana', symbol: 'SOL', price: 76.77, marketCap: 44417058835, changePercent: -5.08 },\n { name: 'TRON', symbol: 'TRX', price: 0.337746, marketCap: 32024356142, changePercent: -2.23 }\n ];\n }\n\n private marketLabels(rows: any[]) {\n var labels: string[] = [];\n for (var i = 0; i < rows.length; i++) {\n labels.push(rows[i].symbol.replace('USDT', ''));\n }\n return labels;\n }\n\n private marketValues(rows: any[], field: string, divisor: number) {\n var values: number[] = [];\n for (var i = 0; i < rows.length; i++) {\n values.push(parseFloat(((rows[i][field] || 0) / divisor).toFixed(4)));\n }\n return values;\n }\n\n private marketPieData(rows: any[]) {\n var data: any[] = [];\n for (var i = 0; i < rows.length; i++) {\n data.push([rows[i].symbol.replace('USDT', ''), parseFloat((rows[i].quoteVolume / 1000000).toFixed(2))]);\n }\n return data;\n }\n\n private marketHistorySeries() {\n var series: any[] = [];\n for (var i = 0; i < this.marketSymbols.length; i++) {\n var symbol = this.marketSymbols[i];\n var history = this.marketHistory[symbol] && this.marketHistory[symbol].length ? this.marketHistory[symbol] : [[Date.now(), this.fallbackTicker(symbol, i).price]];\n series.push({\n name: symbol.replace('USDT', ''),\n data: history.slice(0),\n marker: { enabled: false }\n });\n }\n return series;\n }\n\n private marketMoveSeries() {\n var rows = this.marketRows().slice(0, 6);\n var now = Date.now();\n var pointCount = 48;\n var series: any[] = [];\n\n for (var i = 0; i < rows.length; i++) {\n var row = rows[i];\n var symbol = row.symbol.replace('USDT', '');\n var open = row.open || row.price || 1;\n var liveMove = open ? ((row.price || open) - open) / open * 100 : 0;\n var change = row.changePercent || liveMove;\n var data: any[] = [];\n\n for (var pointIndex = 0; pointIndex < pointCount; pointIndex++) {\n var age = pointCount - pointIndex;\n var progress = pointIndex / (pointCount - 1);\n var x = now - age * 1000;\n var drift = change * progress;\n var wave = Math.sin((pointIndex + i * 4) / 5) * (0.35 + i * 0.04);\n var microMove = Math.cos((pointIndex + i) / 2.7) * 0.16;\n var value = drift + wave + microMove;\n\n data.push([x, parseFloat(value.toFixed(3))]);\n }\n\n series.push({\n name: symbol + ' move',\n data: data,\n marker: { enabled: false },\n lineWidth: i === 0 ? 3 : 2\n });\n }\n\n return series;\n }\n\n private marketHeartbeatSeries() {\n var rows = this.marketRows().slice(0, 4);\n var now = Date.now();\n var pointCount = 48;\n var series: any[] = [];\n\n for (var i = 0; i < rows.length; i++) {\n var row = rows[i];\n var symbol = row.symbol.replace('USDT', '');\n var baseChange = row.changePercent || 0;\n var open = row.open || row.price || 1;\n var priceDrift = open ? ((row.price || open) - open) / open * 100 : 0;\n var data: any[] = [];\n\n for (var pointIndex = 0; pointIndex < pointCount; pointIndex++) {\n var age = pointCount - pointIndex;\n var x = now - age * 1000;\n var rhythm = Math.sin((pointIndex + i * 3) / 2.3) * (1.4 + i * 0.22);\n var breath = Math.sin((pointIndex + i) / 7) * 0.75;\n var beatPosition = (pointIndex + i * 2) % 12;\n var pulse = beatPosition === 0 ? 8.5 : (beatPosition === 1 ? 4.8 : (beatPosition === 2 ? -2.4 : 0));\n var marketLean = baseChange * 0.9 + priceDrift * 0.65;\n var value = 100 + marketLean + rhythm + breath + pulse;\n\n data.push([x, parseFloat(value.toFixed(2))]);\n }\n\n series.push({\n name: symbol + ' pulse',\n data: data,\n marker: { enabled: false },\n lineWidth: i === 0 ? 3 : 2\n });\n }\n\n return series;\n }\n\n private marketScore(rows: any[]) {\n var sum = 0;\n for (var i = 0; i < rows.length; i++) {\n sum += rows[i].changePercent;\n }\n var avg = rows.length ? sum / rows.length : 0;\n var score = 50 + avg * 5;\n return Math.max(0, Math.min(100, parseFloat(score.toFixed(2))));\n }\n\n private createLiveLineOptions() {\n return {\n chart: { type: 'line', height: 320 },\n title: { text: 'Live price move line' },\n subtitle: { text: this.marketStatus },\n xAxis: { type: 'datetime' },\n yAxis: {\n title: { text: 'Move from open, %' },\n plotLines: [{ value: 0, color: '#94a3b8', width: 1, dashStyle: 'ShortDash', zIndex: 1 }]\n },\n tooltip: {\n shared: true,\n valueSuffix: '%',\n valueDecimals: 3\n },\n plotOptions: {\n line: {\n animation: false,\n marker: { enabled: false }\n }\n },\n series: this.marketMoveSeries()\n };\n }\n\n private createLiveSplineOptions() {\n return {\n chart: { type: 'spline', height: 320 },\n title: { text: 'Live price heartbeat spline' },\n subtitle: { text: this.marketStatus },\n xAxis: {\n type: 'datetime',\n tickPixelInterval: 90\n },\n yAxis: {\n title: { text: 'Normalized pulse' },\n plotLines: [{ value: 100, color: '#94a3b8', width: 1, dashStyle: 'ShortDash', zIndex: 1 }]\n },\n tooltip: {\n shared: true,\n valueSuffix: ' pulse',\n valueDecimals: 2\n },\n plotOptions: {\n spline: {\n animation: false,\n marker: { enabled: false }\n }\n },\n series: this.marketHeartbeatSeries()\n };\n }\n\n private createLiveAreaOptions() {\n var rows = this.marketRows();\n return {\n chart: { type: 'area', height: 320 },\n title: { text: 'Live quote volume area' },\n xAxis: { categories: this.marketLabels(rows) },\n yAxis: { title: { text: 'Quote volume, millions' } },\n series: [{ name: 'Quote volume', data: this.marketValues(rows, 'quoteVolume', 1000000) }]\n };\n }\n\n private createLiveAreasplineOptions() {\n var options = this.createLiveAreaOptions();\n options.chart.type = 'areaspline';\n options.title.text = 'Live quote volume areaspline';\n return options;\n }\n\n private createLiveColumnOptions() {\n var rows = this.marketRows();\n return {\n chart: { type: 'column', height: 320 },\n title: { text: 'Live 24h change column' },\n xAxis: { categories: this.marketLabels(rows) },\n yAxis: { title: { text: 'Change %' } },\n series: [{ name: '24h change %', data: this.marketValues(rows, 'changePercent', 1) }]\n };\n }\n\n private createLiveBarOptions() {\n var rows = this.marketRows();\n return {\n chart: { type: 'bar', height: 320 },\n title: { text: 'Live volume bar' },\n xAxis: { categories: this.marketLabels(rows) },\n yAxis: { title: { text: 'Quote volume, millions' } },\n series: [{ name: 'Quote volume', data: this.marketValues(rows, 'quoteVolume', 1000000) }]\n };\n }\n\n private createLiveStackedOptions() {\n var rows = this.marketRows();\n return {\n chart: { type: 'column', height: 320 },\n title: { text: 'Live stacked volume' },\n xAxis: { categories: this.marketLabels(rows) },\n yAxis: { min: 0, title: { text: 'Volume score' }, stackLabels: { enabled: true } },\n plotOptions: { column: { stacking: 'normal' } },\n series: [\n { name: 'Base volume', data: this.marketValues(rows, 'volume', 1000000) },\n { name: 'Quote volume', data: this.marketValues(rows, 'quoteVolume', 100000000) }\n ]\n };\n }\n\n private createLivePieOptions() {\n return {\n chart: { type: 'pie', height: 320 },\n title: { text: 'Live volume pie' },\n series: [{ name: 'Quote volume', data: this.marketPieData(this.marketRows()) }]\n };\n }\n\n private createLiveDonutOptions() {\n var options: any = this.createLivePieOptions();\n options.title.text = 'Live volume donut';\n options.plotOptions = { pie: { innerSize: '55%' } };\n return options;\n }\n\n private createLiveScatterOptions() {\n var rows = this.marketRows();\n var data: any[] = [];\n for (var i = 0; i < rows.length; i++) {\n data.push({\n name: rows[i].symbol.replace('USDT', ''),\n x: parseFloat(rows[i].changePercent.toFixed(4)),\n y: parseFloat((rows[i].quoteVolume / 1000000).toFixed(4))\n });\n }\n return {\n chart: { type: 'scatter', zoomType: 'xy', height: 320 },\n title: { text: 'Live price scatter' },\n xAxis: { title: { text: '24h change %' } },\n yAxis: { title: { text: 'Quote volume, millions' } },\n series: [{ name: 'Symbols', data: data }]\n };\n }\n\n private createLiveBubbleOptions() {\n var rows = this.marketRows();\n var data: any[] = [];\n for (var i = 0; i < rows.length; i++) {\n data.push({\n name: rows[i].symbol.replace('USDT', ''),\n x: parseFloat(rows[i].changePercent.toFixed(4)),\n y: parseFloat(rows[i].price.toFixed(4)),\n z: Math.max(10, parseFloat((rows[i].quoteVolume / 100000000).toFixed(4)))\n });\n }\n return {\n chart: { type: 'bubble', plotBorderWidth: 1, zoomType: 'xy', height: 320 },\n title: { text: 'Live change bubble' },\n xAxis: { title: { text: '24h change %' } },\n yAxis: { title: { text: 'Price USDT' } },\n series: [{ name: 'Symbols', data: data }]\n };\n }\n\n private createLiveComboOptions() {\n var rows = this.marketRows();\n return {\n chart: { height: 320 },\n title: { text: 'Live combo chart' },\n xAxis: { categories: this.marketLabels(rows) },\n yAxis: [{ title: { text: 'Quote volume, millions' } }, { title: { text: 'Change %' }, opposite: true }],\n series: [\n { type: 'column', name: 'Quote volume', data: this.marketValues(rows, 'quoteVolume', 1000000) },\n { type: 'spline', name: '24h change %', data: this.marketValues(rows, 'changePercent', 1), yAxis: 1 }\n ]\n };\n }\n\n private createLivePolarOptions() {\n var rows = this.marketRows();\n var data: number[] = [];\n for (var i = 0; i < rows.length; i++) {\n data.push(parseFloat((50 + rows[i].changePercent * 5).toFixed(2)));\n }\n return {\n chart: { polar: true, type: 'line', height: 320 },\n title: { text: 'Live polar strength' },\n pane: { size: '80%' },\n xAxis: { categories: this.marketLabels(rows), tickmarkPlacement: 'on', lineWidth: 0 },\n yAxis: { gridLineInterpolation: 'polygon', lineWidth: 0, min: 0, max: 100 },\n series: [{ name: 'Strength', data: data, pointPlacement: 'on' }]\n };\n }\n\n private createLiveGaugeOptions() {\n var ticker = this.marketTickers['BNBUSDT'] || this.fallbackTicker('BNBUSDT', 2);\n return {\n chart: { type: 'gauge', height: 320 },\n title: { text: 'Live BNB change gauge' },\n pane: { startAngle: -150, endAngle: 150 },\n yAxis: { min: -10, max: 10, title: { text: '24h %' } },\n series: [{ name: 'BNB change', data: [parseFloat(ticker.changePercent.toFixed(2))] }]\n };\n }\n\n private createLiveSolidGaugeOptions() {\n var score = this.marketScore(this.marketRows());\n return {\n chart: { type: 'solidgauge', height: 320 },\n title: { text: 'Live market score solid gauge' },\n pane: {\n center: ['50%', '60%'],\n size: '90%',\n startAngle: -90,\n endAngle: 90,\n background: { backgroundColor: '#eef3f8', innerRadius: '60%', outerRadius: '100%', shape: 'arc' }\n },\n yAxis: {\n min: 0,\n max: 100,\n stops: [[0.3, '#f6465d'], [0.55, '#f0b90b'], [0.75, '#02c076']],\n lineWidth: 0,\n tickWidth: 0,\n minorTickInterval: null,\n tickAmount: 2,\n title: { text: null }\n },\n series: [{ name: 'Market score', data: [score] }]\n };\n }\n\n private createLiveHeatmapOptions() {\n var rows = this.marketRows();\n var data: any[] = [];\n for (var i = 0; i < rows.length; i++) {\n data.push([i, 0, parseFloat(rows[i].changePercent.toFixed(2))]);\n data.push([i, 1, parseFloat(((rows[i].high - rows[i].low) / rows[i].price * 100).toFixed(2))]);\n }\n return {\n chart: { type: 'heatmap', height: 320 },\n title: { text: 'Live market heatmap' },\n xAxis: { categories: this.marketLabels(rows) },\n yAxis: { categories: ['Change %', 'Range %'], title: null },\n colorAxis: { min: -5, max: 5, minColor: '#f6465d', maxColor: '#02c076' },\n series: [{ name: 'Metric', borderWidth: 1, data: data, dataLabels: { enabled: true, color: '#111' } }]\n };\n }\n\n private createLiveTreemapOptions() {\n var rows = this.cryptoTreemapRowsForChart();\n var data: any[] = [];\n for (var i = 0; i < rows.length; i++) {\n var change = parseFloat(rows[i].changePercent.toFixed(2));\n data.push({\n name: rows[i].symbol,\n value: rows[i].marketCap,\n colorValue: change,\n custom: {\n name: rows[i].name,\n symbol: rows[i].symbol,\n change: change,\n price: rows[i].price,\n marketCap: rows[i].marketCap\n }\n });\n }\n return {\n chart: {\n type: 'treemap',\n className: 'crypto-treemap-chart',\n height: 620,\n backgroundColor: '#ffffff',\n plotBackgroundColor: '#ffffff',\n spacing: [12, 0, 8, 0],\n events: {\n load: function () {\n var chart: any = this;\n var hideTooltip = function () {\n if (chart.tooltip && chart.tooltip.hide) {\n chart.tooltip.hide(0);\n }\n };\n var hideWhenOutside = function (event: any) {\n var target = event && event.target ? event.target : null;\n if (chart.container && target && chart.container.contains && chart.container.contains(target)) {\n return;\n }\n hideTooltip();\n };\n\n if (chart.container && chart.container.addEventListener) {\n chart.container.addEventListener('mouseleave', hideTooltip);\n chart.container.addEventListener('blur', hideTooltip, true);\n }\n\n if (document && document.addEventListener) {\n document.addEventListener('mousedown', hideWhenOutside, true);\n document.addEventListener('touchstart', hideWhenOutside, true);\n document.addEventListener('scroll', hideTooltip, true);\n }\n\n if (window && window.addEventListener) {\n window.addEventListener('blur', hideTooltip);\n }\n }\n }\n },\n title: {\n text: 'Top 50 coins by market cap',\n style: { color: '#111827', fontSize: '22px', fontWeight: '700' }\n },\n subtitle: {\n text: this.cryptoTreemapStatus + ' | colored by 24h change',\n style: { color: '#475569', fontSize: '14px' }\n },\n colorAxis: {\n min: -10,\n max: 10,\n stops: [[0, '#f33b36'], [0.45, '#fb7b72'], [0.5, '#e5e7eb'], [0.55, '#82e77c'], [1, '#29b916']]\n },\n tooltip: {\n backgroundColor: '#ffffff',\n borderColor: '#cbd5e1',\n hideDelay: 0,\n shadow: true,\n zIndex: 100000,\n style: { color: '#111827' },\n headerFormat: '',\n pointFormat: '{point.custom.name} ({point.custom.symbol})
Market cap: ${point.custom.marketCap:,.0f}
Price: ${point.custom.price}
24h change: {point.custom.change:.2f}%'\n },\n plotOptions: {\n treemap: {\n animation: false,\n borderColor: '#ffffff',\n borderWidth: 2,\n stickyTracking: false,\n point: {\n events: {\n mouseOver: function () {\n var point: any = this;\n var chart = point.series && point.series.chart ? point.series.chart : null;\n if (chart && chart.tooltip && chart.tooltip.label && chart.tooltip.label.toFront) {\n setTimeout(function () {\n chart.tooltip.label.toFront();\n }, 0);\n }\n },\n mouseOut: function () {\n var point: any = this;\n if (point.series && point.series.chart && point.series.chart.tooltip) {\n point.series.chart.tooltip.hide(0);\n }\n }\n }\n },\n dataLabels: {\n enabled: true,\n crop: true,\n overflow: 'none',\n align: 'center',\n verticalAlign: 'middle',\n style: {\n color: '#030712',\n fontSize: '13px',\n fontWeight: '700',\n textOutline: 'none'\n },\n formatter: function () {\n var point = (this).point || {};\n var custom = point.custom || {};\n var shape = point.shapeArgs || {};\n var width = shape.width || 0;\n var height = shape.height || 0;\n var change = custom.change || 0;\n var sign = change > 0 ? '+' : '';\n\n if (width < 42 || height < 28) {\n return point.name;\n }\n\n if (width > 220 && height > 150) {\n return custom.name + ' (' + point.name + ')
$' + custom.price + '
' + sign + change.toFixed(2) + '%';\n }\n\n if (width > 110 && height > 72) {\n return point.name + '
$' + custom.price + '
' + sign + change.toFixed(2) + '%';\n }\n\n return point.name + '
' + sign + change.toFixed(1) + '%';\n }\n }\n }\n },\n series: [{\n type: 'treemap',\n layoutAlgorithm: 'squarified',\n alternateStartingDirection: true,\n turboThreshold: 0,\n data: data\n }]\n };\n }\n\n private createLiveFunnelOptions() {\n var rows = this.marketRows().slice(0);\n rows.sort(function (a: any, b: any) {\n return b.quoteVolume - a.quoteVolume;\n });\n var data: any[] = [];\n for (var i = 0; i < rows.length; i++) {\n data.push([rows[i].symbol.replace('USDT', ''), parseFloat((rows[i].quoteVolume / 1000000).toFixed(2))]);\n }\n return {\n chart: { type: 'funnel', height: 320 },\n title: { text: 'Live liquidity funnel' },\n series: [{ name: 'Quote volume', data: data }]\n };\n }\n\n private createLive3dColumnOptions() {\n var rows = this.marketRows();\n return {\n chart: { type: 'column', height: 320, options3d: { enabled: true, alpha: 12, beta: 12, depth: 45 } },\n title: { text: 'Live 3D volume columns' },\n xAxis: { categories: this.marketLabels(rows) },\n yAxis: { title: { text: 'Quote volume, millions' } },\n series: [{ name: 'Quote volume', data: this.marketValues(rows, 'quoteVolume', 1000000) }]\n };\n }\n\n onDynamicChartCreate(example: ChartExample, chart: any) {\n if (!example || !example.key) {\n return;\n }\n\n this.dynamicCharts[example.key] = chart;\n this.updateDynamicChart(example.key);\n }\n\n private updateAllDynamicCharts() {\n for (var i = 0; i < this.dynamicExamples.length; i++) {\n var example = this.dynamicExamples[i];\n if (example && example.key) {\n this.updateDynamicChart(example.key);\n }\n }\n }\n\n private updateDynamicChart(key: string) {\n var chart = this.dynamicCharts[key];\n var options = this.createDynamicOptionsByKey(key);\n\n if (!chart || !chart.series || !options) {\n return;\n }\n\n if (chart.setTitle) {\n chart.setTitle(options.title || null, options.subtitle || null, false);\n }\n\n this.syncDynamicCategories(chart, options);\n this.syncDynamicSeries(chart, options.series || []);\n\n if (chart.redraw) {\n chart.redraw();\n }\n }\n\n private syncDynamicCategories(chart: any, options: any) {\n var xAxisOptions = options.xAxis;\n var yAxisOptions = options.yAxis;\n\n if (xAxisOptions && xAxisOptions.categories && chart.xAxis && chart.xAxis[0] && chart.xAxis[0].setCategories) {\n chart.xAxis[0].setCategories(xAxisOptions.categories, false);\n }\n\n if (yAxisOptions && yAxisOptions.categories && chart.yAxis && chart.yAxis[0] && chart.yAxis[0].setCategories) {\n chart.yAxis[0].setCategories(yAxisOptions.categories, false);\n }\n }\n\n private syncDynamicSeries(chart: any, seriesOptions: any[]) {\n var i: number;\n\n for (i = chart.series.length - 1; i >= seriesOptions.length; i--) {\n chart.series[i].remove(false);\n }\n\n for (i = 0; i < seriesOptions.length; i++) {\n var nextSeries = seriesOptions[i] || {};\n var currentSeries = chart.series[i];\n\n if (!currentSeries) {\n chart.addSeries(nextSeries, false, false);\n continue;\n }\n\n if (nextSeries.name && currentSeries.name !== nextSeries.name && currentSeries.update) {\n currentSeries.update({ name: nextSeries.name }, false);\n }\n\n if (currentSeries.setData) {\n currentSeries.setData(nextSeries.data || [], false, false);\n }\n }\n }\n\n private createDynamicOptionsByKey(key: string) {\n switch (key) {\n case 'liveLineOptions':\n return this.createLiveLineOptions();\n case 'liveSplineOptions':\n return this.createLiveSplineOptions();\n case 'liveAreaOptions':\n return this.createLiveAreaOptions();\n case 'liveAreasplineOptions':\n return this.createLiveAreasplineOptions();\n case 'liveColumnOptions':\n return this.createLiveColumnOptions();\n case 'liveBarOptions':\n return this.createLiveBarOptions();\n case 'liveStackedOptions':\n return this.createLiveStackedOptions();\n case 'livePieOptions':\n return this.createLivePieOptions();\n case 'liveDonutOptions':\n return this.createLiveDonutOptions();\n case 'liveScatterOptions':\n return this.createLiveScatterOptions();\n case 'liveBubbleOptions':\n return this.createLiveBubbleOptions();\n case 'liveComboOptions':\n return this.createLiveComboOptions();\n case 'livePolarOptions':\n return this.createLivePolarOptions();\n case 'liveGaugeOptions':\n return this.createLiveGaugeOptions();\n case 'liveSolidGaugeOptions':\n return this.createLiveSolidGaugeOptions();\n case 'liveHeatmapOptions':\n return this.createLiveHeatmapOptions();\n case 'liveTreemapOptions':\n return this.createLiveTreemapOptions();\n case 'liveFunnelOptions':\n return this.createLiveFunnelOptions();\n case 'live3dColumnOptions':\n return this.createLive3dColumnOptions();\n default:\n return null;\n }\n }\n\n onCreate(name: string, chart: any) {\n this.record(name + ' created with ' + chart.series.length + ' series');\n }\n\n record(message: string) {\n this.events.unshift(new Date().toLocaleTimeString() + ' - ' + message);\n this.events = this.events.slice(0, 8);\n }\n\n randomizeDynamicChart() {\n this.dynamicData = this.dynamicData.map(function () {\n return Math.round(20 + Math.random() * 90);\n });\n this.dynamicOptions = this.createDynamicOptions();\n }\n\n private makeBasic(title: string, description: string, type: string): ChartExample {\n return {\n title: title,\n description: description,\n options: {\n chart: { type: type, height: 320 },\n title: { text: title },\n subtitle: { text: '@stackline/angular-highcharts Angular 2 live test' },\n xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] },\n yAxis: { title: { text: 'Requests' } },\n series: [\n { name: 'API', data: [29, 42, 55, 61, 73, 88] },\n { name: 'Dashboard', data: [18, 31, 37, 46, 58, 63] }\n ]\n },\n html: ''\n };\n }\n\n private createBinanceOptions() {\n var theme = this.getBinanceChartTheme();\n\n return {\n chart: {\n height: 560,\n backgroundColor: theme.background,\n plotBackgroundColor: theme.plotBackground,\n spacing: [16, 20, 18, 12],\n style: {\n fontFamily: 'Arial, Helvetica, sans-serif'\n }\n },\n credits: { enabled: false },\n rangeSelector: { enabled: false },\n navigator: {\n enabled: false\n },\n scrollbar: {\n enabled: false\n },\n title: {\n text: this.binanceSymbol + ' live candles',\n align: 'left',\n style: { color: theme.title, fontSize: '16px', fontWeight: '600' }\n },\n subtitle: {\n text: 'REST history + Binance WebSocket updates (' + this.binanceInterval + ')',\n align: 'left',\n style: { color: theme.subtitle }\n },\n legend: {\n enabled: true,\n align: 'left',\n verticalAlign: 'top',\n itemStyle: { color: theme.legend },\n itemHoverStyle: { color: theme.legendHover }\n },\n xAxis: {\n lineColor: theme.axisLine,\n tickColor: theme.axisLine,\n gridLineColor: theme.grid,\n labels: { style: { color: theme.axisText } },\n crosshair: {\n color: theme.crosshair,\n dashStyle: 'Dash'\n }\n },\n yAxis: [{\n height: '68%',\n lineColor: theme.axisLine,\n gridLineColor: theme.grid,\n opposite: true,\n title: { text: null },\n labels: { style: { color: theme.axisText } }\n }, {\n top: '73%',\n height: '22%',\n offset: 0,\n lineColor: theme.axisLine,\n gridLineColor: theme.grid,\n opposite: true,\n title: { text: 'Volume', style: { color: theme.axisText } },\n labels: { style: { color: theme.axisText } }\n }],\n tooltip: {\n shared: true,\n backgroundColor: theme.tooltipBackground,\n borderColor: theme.tooltipBorder,\n style: { color: theme.tooltipText },\n valueDecimals: 4\n },\n plotOptions: {\n candlestick: {\n color: '#f6465d',\n upColor: '#02c076',\n lineColor: '#f6465d',\n upLineColor: '#02c076'\n },\n column: {\n borderWidth: 0,\n groupPadding: 0.08,\n pointPadding: 0.02\n },\n series: {\n animation: false,\n turboThreshold: 0\n }\n },\n series: [{\n type: 'candlestick',\n name: 'Price',\n data: [],\n tooltip: { valueDecimals: 4 }\n }, {\n type: 'line',\n name: 'MA(7)',\n data: [],\n color: '#f5d300',\n lineWidth: 1,\n marker: { enabled: false }\n }, {\n type: 'line',\n name: 'MA(25)',\n data: [],\n color: '#ff4ec9',\n lineWidth: 1,\n marker: { enabled: false }\n }, {\n type: 'line',\n name: 'MA(99)',\n data: [],\n color: '#8e44ad',\n lineWidth: 1,\n marker: { enabled: false }\n }, {\n type: 'column',\n name: 'Volume',\n data: [],\n yAxis: 1\n }]\n };\n }\n\n private getBinanceChartTheme() {\n if (this.binanceTheme === 'light') {\n return {\n background: '#ffffff',\n plotBackground: '#ffffff',\n title: '#101828',\n subtitle: '#667085',\n legend: '#475467',\n legendHover: '#101828',\n axisText: '#667085',\n axisLine: '#d0d5dd',\n grid: '#edf2f7',\n crosshair: '#98a2b3',\n tooltipBackground: 'rgba(255, 255, 255, .96)',\n tooltipBorder: '#d0d5dd',\n tooltipText: '#101828'\n };\n }\n\n return {\n background: '#050505',\n plotBackground: '#050505',\n title: '#f5f5f5',\n subtitle: '#8a8f98',\n legend: '#b7bcc7',\n legendHover: '#ffffff',\n axisText: '#aeb4bd',\n axisLine: '#333842',\n grid: '#1d2026',\n crosshair: '#565b66',\n tooltipBackground: 'rgba(12, 15, 20, .94)',\n tooltipBorder: '#313640',\n tooltipText: '#f5f5f5'\n };\n }\n\n private makeStackedColumn(): ChartExample {\n return {\n title: 'Stacked column',\n description: 'Column stacking with normal Highcharts options.',\n options: {\n chart: { type: 'column', height: 320 },\n title: { text: 'Stacked column' },\n xAxis: { categories: ['Ops', 'Sales', 'Support', 'Finance'] },\n yAxis: { min: 0, title: { text: 'Total work' }, stackLabels: { enabled: true } },\n plotOptions: { column: { stacking: 'normal' } },\n series: [\n { name: 'Planned', data: [5, 3, 4, 7] },\n { name: 'Active', data: [2, 2, 3, 2] },\n { name: 'Closed', data: [3, 4, 4, 2] }\n ]\n },\n html: ''\n };\n }\n\n private makePie(): ChartExample {\n return {\n title: 'Pie chart',\n description: 'Classic proportional distribution.',\n options: {\n chart: { type: 'pie', height: 320 },\n title: { text: 'Traffic sources' },\n series: [{ name: 'Share', data: [['Direct', 42], ['Search', 33], ['Referral', 15], ['Campaign', 10]] }]\n },\n html: ''\n };\n }\n\n private makeDonut(): ChartExample {\n return {\n title: 'Donut chart',\n description: 'Pie chart with innerSize.',\n options: {\n chart: { type: 'pie', height: 320 },\n title: { text: 'Device mix' },\n plotOptions: { pie: { innerSize: '55%' } },\n series: [{ name: 'Devices', data: [['Desktop', 48], ['Mobile', 44], ['Tablet', 8]] }]\n },\n html: ''\n };\n }\n\n private makeScatter(): ChartExample {\n return {\n title: 'Scatter chart',\n description: 'XY tuple data.',\n options: {\n chart: { type: 'scatter', zoomType: 'xy', height: 320 },\n title: { text: 'Quality vs speed' },\n xAxis: { title: { text: 'Speed' } },\n yAxis: { title: { text: 'Quality' } },\n series: [{ name: 'Builds', data: [[12, 80], [18, 78], [24, 86], [32, 84], [40, 91], [46, 88]] }]\n },\n html: ''\n };\n }\n\n private makeBubble(): ChartExample {\n return {\n title: 'Bubble chart',\n description: 'Uses highcharts-more module.',\n options: {\n chart: { type: 'bubble', plotBorderWidth: 1, zoomType: 'xy', height: 320 },\n title: { text: 'Impact matrix' },\n xAxis: { title: { text: 'Effort' } },\n yAxis: { title: { text: 'Value' } },\n series: [{ name: 'Initiatives', data: [[9, 81, 63], [98, 5, 89], [51, 50, 73], [41, 22, 14], [58, 24, 20]] }]\n },\n html: ''\n };\n }\n\n private makeCombination(): ChartExample {\n return {\n title: 'Combination chart',\n description: 'Column, spline and pie in one options object.',\n options: {\n title: { text: 'Mixed metrics' },\n chart: { height: 320 },\n xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May'] },\n labels: { items: [{ html: 'Total', style: { left: '50px', top: '18px', color: '#333' } }] },\n series: [\n { type: 'column', name: 'Revenue', data: [3, 2, 1, 3, 4] },\n { type: 'spline', name: 'Trend', data: [2.4, 2.7, 3.1, 3.8, 4.3] },\n {\n type: 'pie',\n name: 'Share',\n data: [{ name: 'A', y: 13 }, { name: 'B', y: 23 }, { name: 'C', y: 19 }],\n center: [80, 55],\n size: 90,\n showInLegend: false,\n dataLabels: { enabled: false }\n }\n ]\n },\n html: ''\n };\n }\n\n private makePolar(): ChartExample {\n return {\n title: 'Polar/radar chart',\n description: 'Uses highcharts-more with polar chart options.',\n options: {\n chart: { polar: true, type: 'line', height: 320 },\n title: { text: 'Team coverage' },\n pane: { size: '80%' },\n xAxis: { categories: ['UX', 'API', 'Ops', 'QA', 'Docs'], tickmarkPlacement: 'on', lineWidth: 0 },\n yAxis: { gridLineInterpolation: 'polygon', lineWidth: 0, min: 0 },\n series: [{ name: 'Score', data: [5, 4, 3, 5, 4], pointPlacement: 'on' }]\n },\n html: ''\n };\n }\n\n private makeGauge(): ChartExample {\n return {\n title: 'Gauge chart',\n description: 'Gauge series from highcharts-more.',\n options: {\n chart: { type: 'gauge', height: 320 },\n title: { text: 'Availability' },\n pane: { startAngle: -150, endAngle: 150 },\n yAxis: { min: 0, max: 100, title: { text: 'Uptime' } },\n series: [{ name: 'Uptime', data: [92] }]\n },\n html: ''\n };\n }\n\n private makeSolidGauge(): ChartExample {\n return {\n title: 'Solid gauge',\n description: 'Uses highcharts-more and solid-gauge modules.',\n options: {\n chart: { type: 'solidgauge', height: 320 },\n title: { text: 'Completion' },\n pane: {\n center: ['50%', '60%'],\n size: '90%',\n startAngle: -90,\n endAngle: 90,\n background: { backgroundColor: '#eef3f8', innerRadius: '60%', outerRadius: '100%', shape: 'arc' }\n },\n yAxis: {\n min: 0,\n max: 100,\n stops: [[0.3, '#d9534f'], [0.7, '#f0ad4e'], [0.9, '#2f8f68']],\n lineWidth: 0,\n tickWidth: 0,\n minorTickInterval: null,\n tickAmount: 2,\n title: { text: null }\n },\n series: [{ name: 'Done', data: [76] }]\n },\n html: ''\n };\n }\n\n private makeHeatmap(): ChartExample {\n return {\n title: 'Heatmap',\n description: 'Uses the heatmap module.',\n options: {\n chart: { type: 'heatmap', height: 320 },\n title: { text: 'Weekly activity' },\n xAxis: { categories: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'] },\n yAxis: { categories: ['AM', 'PM'], title: null },\n colorAxis: { min: 0, minColor: '#ffffff', maxColor: '#1f78b4' },\n series: [{\n name: 'Activity',\n borderWidth: 1,\n data: [[0, 0, 4], [1, 0, 7], [2, 0, 9], [3, 0, 5], [4, 0, 6], [0, 1, 6], [1, 1, 3], [2, 1, 8], [3, 1, 4], [4, 1, 10]],\n dataLabels: { enabled: true, color: '#333' }\n }]\n },\n html: ''\n };\n }\n\n private makeTreemap(): ChartExample {\n return {\n title: 'Treemap',\n description: 'Uses the treemap module.',\n options: {\n chart: { type: 'treemap', height: 320 },\n title: { text: 'Cost centers' },\n series: [{\n type: 'treemap',\n layoutAlgorithm: 'squarified',\n data: [\n { name: 'Engineering', value: 6, color: '#2f7ed8' },\n { name: 'Support', value: 4, color: '#0d9488' },\n { name: 'Sales', value: 5, color: '#f59e0b' },\n { name: 'Ops', value: 3, color: '#64748b' }\n ]\n }]\n },\n html: ''\n };\n }\n\n private makeFunnel(): ChartExample {\n return {\n title: 'Funnel chart',\n description: 'Uses the funnel module.',\n options: {\n chart: { type: 'funnel', height: 320 },\n title: { text: 'Pipeline' },\n series: [{ name: 'Leads', data: [['New', 156], ['Qualified', 92], ['Proposal', 48], ['Closed', 21]] }]\n },\n html: ''\n };\n }\n\n private make3dColumn(): ChartExample {\n return {\n title: '3D column',\n description: 'Uses the highcharts-3d module.',\n options: {\n chart: { type: 'column', height: 320, options3d: { enabled: true, alpha: 12, beta: 12, depth: 45 } },\n title: { text: '3D volume' },\n xAxis: { categories: ['A', 'B', 'C', 'D'] },\n yAxis: { title: { text: 'Volume' } },\n series: [{ name: 'Volume', data: [7, 5, 9, 6] }]\n },\n html: ''\n };\n }\n\n private makeStockChart(): ChartExample {\n return {\n title: 'StockChart constructor',\n description: 'Uses [type]=\"StockChart\" after loading the stock module.',\n constructorType: 'StockChart',\n options: {\n chart: { height: 320 },\n title: { text: 'Stock-style timeline' },\n rangeSelector: { selected: 1 },\n series: [{\n name: 'Price',\n data: [\n [Date.UTC(2026, 0, 1), 12],\n [Date.UTC(2026, 1, 1), 15],\n [Date.UTC(2026, 2, 1), 14],\n [Date.UTC(2026, 3, 1), 18],\n [Date.UTC(2026, 4, 1), 21],\n [Date.UTC(2026, 5, 1), 20]\n ]\n }]\n },\n html: ''\n };\n }\n\n private makeMapLikeChart(): ChartExample {\n return {\n title: 'Map module',\n description: 'Uses the map module with simple inline mapData.',\n options: {\n chart: { type: 'map', height: 320 },\n title: { text: 'Simple territory map' },\n colorAxis: { min: 0 },\n series: [{\n type: 'map',\n name: 'Score',\n mapData: [\n { path: 'M 0 0 L 120 0 L 120 80 L 0 80 Z', name: 'North', value: 10 },\n { path: 'M 130 0 L 250 0 L 250 80 L 130 80 Z', name: 'South', value: 7 },\n { path: 'M 65 90 L 185 90 L 185 170 L 65 170 Z', name: 'Central', value: 13 }\n ],\n dataLabels: { enabled: true, format: '{point.name}' }\n }]\n },\n html: ''\n };\n }\n\n private makeNoDataChart(): ChartExample {\n return {\n title: 'No data state',\n description: 'Uses no-data-to-display module.',\n options: {\n chart: { type: 'line', height: 320 },\n title: { text: 'Empty state' },\n lang: { noData: 'No chart data yet' },\n noData: { style: { fontWeight: '600', fontSize: '15px', color: '#50677d' } },\n series: []\n },\n html: ''\n };\n }\n\n private createDynamicOptions() {\n return {\n chart: { type: 'line', height: 340 },\n title: { text: 'Dynamic update' },\n subtitle: { text: 'Changing the options object re-initializes the wrapper' },\n xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] },\n yAxis: { title: { text: 'Requests' } },\n series: [{ name: 'Updated data', data: this.dynamicData }]\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { HttpModule } from '@angular/http';\nimport { ChartModule, HighchartsStatic } from '@stackline/angular-highcharts';\nimport * as Highcharts from 'highcharts';\nimport * as HighchartsMore from 'highcharts/highcharts-more';\nimport * as Highcharts3d from 'highcharts/highcharts-3d';\nimport * as Heatmap from 'highcharts/modules/heatmap';\nimport * as Treemap from 'highcharts/modules/treemap';\nimport * as Funnel from 'highcharts/modules/funnel';\nimport * as SolidGauge from 'highcharts/modules/solid-gauge';\nimport * as Stock from 'highcharts/modules/stock';\nimport * as MapModule from 'highcharts/modules/map';\nimport * as Drilldown from 'highcharts/modules/drilldown';\nimport * as NoData from 'highcharts/modules/no-data-to-display';\n\nimport { AppComponent } from './app.component';\n\nexport function highchartsFactory() {\n HighchartsMore(Highcharts);\n Highcharts3d(Highcharts);\n Heatmap(Highcharts);\n Treemap(Highcharts);\n Funnel(Highcharts);\n SolidGauge(Highcharts);\n Stock(Highcharts);\n MapModule(Highcharts);\n Drilldown(Highcharts);\n NoData(Highcharts);\n return Highcharts;\n}\n\n@NgModule({\n declarations: [\n AppComponent\n ],\n imports: [\n BrowserModule,\n FormsModule,\n HttpModule,\n ChartModule\n ],\n providers: [\n { provide: HighchartsStatic, useFactory: highchartsFactory }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `angular-cli.json`.\n\nexport const environment = {\n production: false\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/environments/environment.ts","module.exports = \":host {\\n display: block;\\n}\\n\\nmain {\\n width: calc(100% - 32px);\\n max-width: 1360px;\\n margin: 0 auto;\\n padding: 32px 0 48px;\\n}\\n\\nheader,\\n.panel,\\n.chart-card {\\n background: #fff;\\n border: 1px solid #d9e5ee;\\n border-radius: 8px;\\n box-shadow: 0 10px 28px rgba(23, 52, 77, .08);\\n}\\n\\nheader {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-align: center;\\n align-items: center;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n gap: 20px;\\n padding: 24px;\\n margin-bottom: 18px;\\n}\\n\\n.header-copy {\\n min-width: 0;\\n}\\n\\n.route-tabs {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n gap: 8px;\\n -ms-flex-pack: end;\\n justify-content: flex-end;\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n}\\n\\n.route-tabs a {\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -ms-flex-align: center;\\n align-items: center;\\n min-height: 36px;\\n padding: 0 14px;\\n border: 1px solid #d0dbe6;\\n border-radius: 6px;\\n color: #254966;\\n font-size: 13px;\\n font-weight: 700;\\n text-decoration: none;\\n}\\n\\n.route-tabs a.active {\\n border-color: #146c94;\\n background: #146c94;\\n color: #fff;\\n}\\n\\nheader span {\\n display: block;\\n margin-bottom: 8px;\\n color: #466179;\\n font-size: 12px;\\n font-weight: 700;\\n letter-spacing: .05em;\\n text-transform: uppercase;\\n}\\n\\nh1,\\nh2,\\nh3,\\np {\\n margin-top: 0;\\n}\\n\\nh1 {\\n margin-bottom: 8px;\\n font-size: 30px;\\n line-height: 1.2;\\n}\\n\\np {\\n color: #50677d;\\n}\\n\\nheader p {\\n margin-bottom: 0;\\n}\\n\\n.panel {\\n padding: 24px;\\n margin-bottom: 18px;\\n}\\n\\n.intro-panel {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-align: center;\\n align-items: center;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n gap: 16px;\\n}\\n\\n.status-pill {\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n padding: 8px 12px;\\n border-radius: 999px;\\n background: #e7f2ff;\\n color: #205b8f;\\n font-size: 13px;\\n font-weight: 700;\\n}\\n\\n.capability-grid,\\n.examples-grid,\\n.event-grid {\\n display: -ms-grid;\\n display: grid;\\n gap: 16px;\\n}\\n\\n.capability-grid {\\n -ms-grid-columns: (minmax(220px, 1fr))[auto-fit];\\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\\n}\\n\\n.capability-grid div {\\n padding: 14px;\\n border: 1px solid #dbe6ef;\\n border-radius: 6px;\\n background: #f8fbfd;\\n}\\n\\n.capability-grid strong,\\n.capability-grid span {\\n display: block;\\n}\\n\\n.capability-grid span {\\n margin-top: 6px;\\n color: #536b80;\\n font-size: 13px;\\n line-height: 1.45;\\n}\\n\\n.examples-grid {\\n -ms-grid-columns: 1fr;\\n grid-template-columns: 1fr;\\n -ms-flex-align: start;\\n align-items: start;\\n}\\n\\n.chart-card {\\n width: 100%;\\n box-sizing: border-box;\\n padding: 18px;\\n}\\n\\n.chart-head {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-align: start;\\n align-items: flex-start;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n gap: 12px;\\n margin-bottom: 14px;\\n}\\n\\n.chart-head h2,\\n.chart-head h3 {\\n margin-bottom: 6px;\\n}\\n\\n.chart-head h3 {\\n font-size: 18px;\\n}\\n\\n.chart-head span {\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n padding: 6px 9px;\\n border-radius: 999px;\\n background: #eef3f8;\\n color: #41576b;\\n font-size: 12px;\\n font-weight: 700;\\n}\\n\\n.feature-panel {\\n margin-top: 18px;\\n}\\n\\n.market-source-panel {\\n margin-bottom: 18px;\\n}\\n\\n.live-market-card {\\n margin-bottom: 18px;\\n padding: 18px;\\n background: #0b0d10;\\n border-color: #242933;\\n color: #f5f7fb;\\n}\\n\\n.live-market-card.market-light {\\n background: #fff;\\n border-color: #d9e5ee;\\n color: #101828;\\n}\\n\\n.live-market-card p {\\n color: #a7afbc;\\n}\\n\\n.live-market-card.market-light p {\\n color: #667085;\\n}\\n\\n.live-market-card .chart-head span {\\n background: #1d2430;\\n color: #dfe6ef;\\n}\\n\\n.live-market-card.market-light .chart-head span {\\n background: #eef4ff;\\n color: #344054;\\n}\\n\\n.market-head h2 {\\n margin-bottom: 6px;\\n}\\n\\n.market-toolbar {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 12px 18px;\\n margin-bottom: 12px;\\n padding: 12px;\\n border: 1px solid #232a35;\\n border-radius: 6px;\\n background: #11161d;\\n}\\n\\n@media (max-width: 760px) {\\n header {\\n -ms-flex-align: start;\\n align-items: flex-start;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n }\\n\\n .route-tabs {\\n -ms-flex-pack: start;\\n justify-content: flex-start;\\n width: 100%;\\n }\\n}\\n\\n.market-light .market-toolbar {\\n border-color: #d0d5dd;\\n background: #f8fafc;\\n}\\n\\n.market-toolbar div {\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 8px;\\n}\\n\\n.market-toolbar strong {\\n color: #c3cad6;\\n font-size: 12px;\\n text-transform: uppercase;\\n}\\n\\n.market-light .market-toolbar strong {\\n color: #475467;\\n}\\n\\n.market-toolbar button {\\n min-height: 32px;\\n padding: 0 11px;\\n border: 1px solid #343b48;\\n background: #171d26;\\n color: #dfe6ef;\\n}\\n\\n.market-light .market-toolbar button {\\n border-color: #d0d5dd;\\n background: #fff;\\n color: #344054;\\n}\\n\\n.market-toolbar button.active {\\n border-color: #f0b90b;\\n background: #f0b90b;\\n color: #111;\\n}\\n\\n.market-light .market-toolbar button.active {\\n border-color: #146c94;\\n background: #146c94;\\n color: #fff;\\n}\\n\\n.market-toolbar .reload-button {\\n margin-left: auto;\\n background: #146c94;\\n border-color: #146c94;\\n color: #fff;\\n}\\n\\n.market-ticker,\\n.market-status {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -ms-flex-align: center;\\n align-items: center;\\n gap: 10px 18px;\\n margin-bottom: 10px;\\n color: #9ca5b1;\\n font-size: 13px;\\n}\\n\\n.market-light .market-ticker,\\n.market-light .market-status {\\n color: #667085;\\n}\\n\\n.market-ticker strong {\\n margin-left: 4px;\\n color: #f5f7fb;\\n}\\n\\n.market-light .market-ticker strong {\\n color: #101828;\\n}\\n\\n.market-ticker .positive strong,\\n.market-ticker .positive {\\n color: #02c076;\\n}\\n\\n.market-ticker .negative strong,\\n.market-ticker .negative {\\n color: #f6465d;\\n}\\n\\n.market-status {\\n color: #c6ccd5;\\n}\\n\\n.market-frame {\\n min-height: 560px;\\n border: 1px solid #242933;\\n border-radius: 6px;\\n overflow: hidden;\\n background: #050505;\\n}\\n\\n.market-light .market-frame {\\n border-color: #d0d5dd;\\n background: #fff;\\n}\\n\\n.market-frame chart {\\n min-height: 560px;\\n}\\n\\n.endpoint-grid {\\n display: -ms-grid;\\n display: grid;\\n -ms-grid-columns: (minmax(260px, 1fr))[auto-fit];\\n grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));\\n gap: 12px;\\n margin-top: 12px;\\n margin-bottom: 14px;\\n}\\n\\n.endpoint-grid div {\\n padding: 12px;\\n border: 1px solid #232a35;\\n border-radius: 6px;\\n background: #11161d;\\n}\\n\\n.market-light .endpoint-grid div {\\n border-color: #d0d5dd;\\n background: #f8fafc;\\n}\\n\\n.endpoint-grid strong,\\n.endpoint-grid code {\\n display: block;\\n}\\n\\n.endpoint-grid strong {\\n margin-bottom: 8px;\\n color: #c3cad6;\\n}\\n\\n.market-light .endpoint-grid strong {\\n color: #475467;\\n}\\n\\n.endpoint-grid code {\\n overflow-wrap: anywhere;\\n color: #8bd3ff;\\n font-size: 12px;\\n line-height: 1.5;\\n}\\n\\n.market-light .endpoint-grid code {\\n color: #0b5cad;\\n}\\n\\n.chart-frame {\\n width: 100%;\\n min-height: 340px;\\n}\\n\\n.chart-frame.large {\\n min-height: 380px;\\n}\\n\\n.chart-frame chart {\\n display: block;\\n width: 100%;\\n min-height: 320px;\\n}\\n\\n.tutorial-collapse {\\n margin-top: 14px;\\n border: 1px solid #d9e5ee;\\n border-radius: 8px;\\n background: #f8fbfd;\\n overflow: hidden;\\n}\\n\\n.live-market-card .tutorial-collapse {\\n border-color: #242933;\\n background: #11161d;\\n}\\n\\n.live-market-card.market-light .tutorial-collapse {\\n border-color: #d9e5ee;\\n background: #f8fbfd;\\n}\\n\\n.tutorial-collapse summary {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-align: center;\\n align-items: center;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n gap: 12px;\\n min-height: 44px;\\n padding: 0 14px;\\n cursor: pointer;\\n color: #1e3145;\\n font-weight: 700;\\n}\\n\\n.live-market-card .tutorial-collapse summary {\\n color: #f5f7fb;\\n}\\n\\n.live-market-card.market-light .tutorial-collapse summary {\\n color: #1e3145;\\n}\\n\\n.tutorial-collapse summary::-webkit-details-marker {\\n display: none;\\n}\\n\\n.tutorial-collapse summary:before {\\n content: '+';\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -ms-flex-align: center;\\n align-items: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n width: 22px;\\n height: 22px;\\n margin-right: 8px;\\n border-radius: 50%;\\n background: #e7f2ff;\\n color: #205b8f;\\n font-weight: 800;\\n}\\n\\n.tutorial-collapse[open] summary:before {\\n content: '-';\\n}\\n\\n.tutorial-collapse summary span {\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -ms-flex-align: center;\\n align-items: center;\\n margin-right: auto;\\n}\\n\\n.tutorial-collapse summary small {\\n color: #667085;\\n font-size: 12px;\\n font-weight: 700;\\n text-transform: uppercase;\\n}\\n\\n.live-market-card .tutorial-collapse summary small {\\n color: #a7afbc;\\n}\\n\\n.live-market-card.market-light .tutorial-collapse summary small {\\n color: #667085;\\n}\\n\\n.code-layer-grid {\\n display: -ms-grid;\\n display: grid;\\n -ms-grid-columns: (minmax(0, 1fr))[3];\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n gap: 12px;\\n padding: 14px;\\n border-top: 1px solid #d9e5ee;\\n}\\n\\n.live-market-card .code-layer-grid {\\n border-top-color: #242933;\\n}\\n\\n.live-market-card.market-light .code-layer-grid {\\n border-top-color: #d9e5ee;\\n}\\n\\n.code-layer-grid h4 {\\n margin: 0 0 8px;\\n color: #344054;\\n font-size: 12px;\\n text-transform: uppercase;\\n}\\n\\n.live-market-card .code-layer-grid h4 {\\n color: #dfe6ef;\\n}\\n\\n.live-market-card.market-light .code-layer-grid h4 {\\n color: #344054;\\n}\\n\\n.code-layer-grid pre {\\n max-height: 420px;\\n margin: 0;\\n}\\n\\npre {\\n overflow: auto;\\n padding: 16px;\\n border-radius: 6px;\\n background: #112236;\\n color: #f3f8ff;\\n font-size: 12px;\\n line-height: 1.5;\\n}\\n\\nbutton {\\n -ms-flex: 0 0 auto;\\n flex: 0 0 auto;\\n min-height: 38px;\\n padding: 0 16px;\\n border: 0;\\n border-radius: 6px;\\n background: #146c94;\\n color: #fff;\\n font-weight: 700;\\n cursor: pointer;\\n}\\n\\n.event-grid {\\n -ms-grid-columns: minmax(0, 1.2fr) minmax(260px, .8fr);\\n grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr);\\n}\\n\\n.event-log {\\n padding: 16px;\\n border: 1px solid #d9e5ee;\\n border-radius: 6px;\\n background: #f8fbfd;\\n}\\n\\n.event-log ul {\\n margin: 12px 0 0;\\n padding-left: 18px;\\n}\\n\\n.event-log li {\\n margin-bottom: 6px;\\n color: #40586d;\\n}\\n\\n@media (max-width: 760px) {\\n .intro-panel,\\n .chart-head {\\n display: block;\\n }\\n\\n .status-pill,\\n .chart-head span,\\n button {\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -ms-flex-align: center;\\n align-items: center;\\n margin-top: 12px;\\n }\\n\\n .examples-grid,\\n .event-grid,\\n .endpoint-grid,\\n .code-layer-grid {\\n -ms-grid-columns: 1fr;\\n grid-template-columns: 1fr;\\n }\\n\\n .market-toolbar .reload-button {\\n margin-left: 0;\\n }\\n}\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.css\n// module id = 641\n// module chunks = 1","module.exports = \"
\\n
\\n
\\n Angular CLI 1.0.0-beta.28.3 / Angular 2.4.10 runtime\\n

@stackline/angular-highcharts 2.0.0

\\n

Project generated with the Angular 2 CLI blueprint and running the published Angular 2 package line.

\\n
\\n \\n
\\n\\n
\\n \\n
\\n
\\n

Live crypto candles

\\n

REST candle history from Binance through the Mask API with realtime WebSocket candle updates.

\\n
\\n StockChart\\n
\\n\\n
\\n
\\n Theme\\n \\n \\n
\\n
\\n Symbol\\n \\n
\\n
\\n Interval\\n \\n
\\n \\n
\\n\\n
\\n Open {{ formatPrice(binanceLastCandle.open) }}\\n High {{ formatPrice(binanceLastCandle.high) }}\\n Low {{ formatPrice(binanceLastCandle.low) }}\\n Close {{ formatPrice(binanceLastCandle.close) }}\\n = 0\\\" [class.negative]=\\\"binanceLastCandle.changePercent < 0\\\">Change {{ formatPercent(binanceLastCandle.changePercent) }}\\n
\\n\\n
\\n {{ binanceStatus }}\\n {{ binanceSocketStatus }}\\n {{ binanceCandleCount }} candles\\n
\\n\\n
\\n \\n
\\n\\n
\\n
\\n REST history\\n {{ binanceRestUrl || 'Waiting for REST endpoint...' }}\\n
\\n
\\n Realtime WebSocket\\n {{ binanceWsUrl || 'Waiting for WebSocket endpoint...' }}\\n
\\n
\\n\\n
\\n \\n Open tutorial\\n HTML / TS / SCSS\\n \\n
\\n
\\n

HTML

\\n
{{ binanceTutorialHtml }}
\\n
\\n
\\n

TS

\\n
{{ binanceTutorialTs }}
\\n
\\n
\\n

SCSS

\\n
{{ binanceTutorialScss }}
\\n
\\n
\\n
\\n \\n\\n
\\n
\\n
\\n
\\n

{{ example.title }}

\\n

{{ example.description }}

\\n
\\n Live\\n
\\n\\n
\\n \\n
\\n\\n
\\n \\n Open tutorial\\n HTML / TS / SCSS\\n \\n
\\n
\\n

HTML

\\n
{{ example.tutorialHtml }}
\\n
\\n
\\n

TS

\\n
{{ example.tutorialTs }}
\\n
\\n
\\n

SCSS

\\n
{{ example.tutorialScss }}
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n

Static examples

\\n

Original one-row examples with fixed local option objects.

\\n
\\n
Secondary URL
\\n
\\n\\n
\\n
\\n
\\n
\\n

{{ example.title }}

\\n

{{ example.description }}

\\n
\\n {{ example.constructorType || 'Chart' }}\\n
\\n\\n
\\n \\n
\\n\\n
\\n \\n Open tutorial\\n HTML / TS / SCSS\\n \\n
\\n
\\n

HTML

\\n
{{ example.tutorialHtml }}
\\n
\\n
\\n

TS

\\n
{{ example.tutorialTs }}
\\n
\\n
\\n

SCSS

\\n
{{ example.tutorialScss }}
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n

Dynamic update

\\n

Replaces the options object to validate the Angular 2 input setter.

\\n
\\n \\n
\\n\\n
\\n \\n
\\n\\n
\\n \\n Open tutorial\\n HTML / TS / SCSS\\n \\n
\\n
\\n

HTML

\\n
{{ dynamicTutorialHtml }}
\\n
\\n
\\n

TS

\\n
{{ dynamicTutorialTs }}
\\n
\\n
\\n

SCSS

\\n
{{ dynamicTutorialScss }}
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n

Directive and event outputs

\\n

Projected wrapper directives wire chart, series, point and axis events.

\\n
\\n
\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n
\\n\\n
\\n \\n Open tutorial\\n HTML / TS / SCSS\\n \\n
\\n
\\n

HTML

\\n
{{ directiveTutorialHtml }}
\\n
\\n
\\n

TS

\\n
{{ directiveTutorialTs }}
\\n
\\n
\\n

SCSS

\\n
{{ directiveTutorialScss }}
\\n
\\n
\\n
\\n\\n
\\n Event log\\n

Interact with the chart to collect events.

\\n
    \\n
  • {{ event }}
  • \\n
\\n
\\n
\\n
\\n\\n \\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.html\n// module id = 642\n// module chunks = 1"],"sourceRoot":""}