vertex-ai-proxy 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAe,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAA4C,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAiChC,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AASrD,IAAI,UAAU,GAAe;IAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;IACrB,YAAY,EAAE,CAAC;IACf,eAAe,EAAE,IAAI;IACrB,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,SAAS,aAAa;IACpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CAAC,OAAe,EAAE,QAAmC,MAAM;IACrE,aAAa,EAAE,CAAC;IAChB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,SAAS,MAAM,KAAK,KAAK,OAAO,IAAI,CAAC;IAEzD,iBAAiB;IACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAE5B,cAAc;IACd,IAAI,CAAC;QACH,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAErC,uBAAuB;QACvB,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC;YACnC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACzD,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,6BAA6B;IAC/B,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,aAAa,EAAE,CAAC;IAChB,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,2BAA2B;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IACd,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,aAAa,GAA8B;IACtD,gBAAgB;IAChB,0BAA0B,EAAE;QAC1B,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,WAAW;QACrB,aAAa,EAAE,MAAM;QACrB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC;QACrC,YAAY,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;KAC1C;IACD,4BAA4B,EAAE;QAC5B,EAAE,EAAE,4BAA4B;QAChC,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,WAAW;QACrB,aAAa,EAAE,MAAM;QACrB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC;QACrC,YAAY,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;KAC1C;IACD,2BAA2B,EAAE;QAC3B,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,WAAW;QACrB,aAAa,EAAE,MAAM;QACrB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC;QACrC,YAAY,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;KAC1C;IACD,gBAAgB;IAChB,cAAc,EAAE;QACd,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,OAAO;QACtB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;QACxC,YAAY,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;KACnD;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,OAAO;QACtB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;QACxC,YAAY,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;KACjC;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,OAAO;QACtB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;QACxC,YAAY,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;KACjC;IACD,uBAAuB,EAAE;QACvB,EAAE,EAAE,uBAAuB;QAC3B,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,OAAO;QACtB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;QACxC,YAAY,EAAE,CAAC,MAAM,CAAC;KACvB;IACD,gBAAgB;IAChB,yBAAyB,EAAE;QACzB,EAAE,EAAE,yBAAyB;QAC7B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD,8BAA8B,EAAE;QAC9B,EAAE,EAAE,8BAA8B;QAClC,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;IACD,+BAA+B,EAAE;QAC/B,EAAE,EAAE,+BAA+B;QACnC,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,YAAY,EAAE,CAAC,kBAAkB,CAAC;KACnC;CACF,CAAC;AAEF,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,sBAAsB,CAAC,OAAe;IAC7C,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,4CAA4C;QAC5C,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;IACvC,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IAElE,4EAA4E;IAC5E,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,SAAS,UAAU;IACjB,MAAM,aAAa,GAAW;QAC5B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;QAClD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,UAAU;QAC7D,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,aAAa;QACtE,aAAa,EAAE;YACb,OAAO,EAAE,0BAA0B;YACnC,aAAa,EAAE,4BAA4B;YAC3C,QAAQ,EAAE,4BAA4B;YACtC,aAAa,EAAE,2BAA2B;YAC1C,eAAe,EAAE,2BAA2B;YAC5C,QAAQ,EAAE,0BAA0B;YACpC,eAAe,EAAE,0BAA0B;YAC3C,MAAM,EAAE,0BAA0B;YAClC,QAAQ,EAAE,4BAA4B;YACtC,OAAO,EAAE,2BAA2B;SACrC;QACD,eAAe,EAAE,EAAE;QACnB,aAAa,EAAE,IAAI;QACnB,qBAAqB,EAAE,IAAI;KAC5B,CAAC;IAEF,0BAA0B;IAC1B,MAAM,WAAW,GAAG;QAClB,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,aAAa,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,YAAY,CAAC;QACtD,eAAe;KAChB,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;IAE9B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoB,CAAC;gBACzD,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,uCAAuC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,SAAS,YAAY,CAAC,UAAkB,EAAE,MAAc;IACtD,sBAAsB;IACtB,IAAI,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,8BAA8B;IAC9B,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,8CAA8C;IAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,sBAAsB;QACtB,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACvD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe;IACf,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAuB;IACnD,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,MAAM,gBAAgB,GAAkB,EAAE,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,mCAAmC;YACnC,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5F,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,qCAAqC;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAuB,EACvB,SAAiB,EACjB,aAAqB;IAErB,MAAM,YAAY,GAAG,SAAS,GAAG,aAAa,CAAC;IAC/C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,oCAAoC;IACpC,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAErD,oCAAoC;IACpC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5F,WAAW,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,2DAA2D;IAC3D,MAAM,WAAW,GAAkB,EAAE,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAI,WAAW,GAAG,MAAM,GAAG,YAAY,EAAE,CAAC;YACxC,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM;QACR,CAAC;QAED,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,WAAW,IAAI,MAAM,CAAC;IACxB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC;QAC3C,SAAS;KACV,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,KAAK,UAAU,qBAAqB,CAAC,GAAY,EAAE,GAAa,EAAE,MAAc;IAC9E,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IAElF,sBAAsB;IACtB,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,GAAG,CAAC,kBAAkB,UAAU,OAAO,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,EAAE,QAAQ,IAAI,WAAW,CAAC;IAEpD,6DAA6D;IAC7D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE3E,0BAA0B;IAC1B,IAAI,aAAa,GAAG,aAAa,CAAC;IAClC,IAAI,MAAM,CAAC,aAAa,IAAI,SAAS,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,gBAAgB,CAC7B,aAAa,EACb,SAAS,CAAC,aAAa,EACvB,MAAM,CAAC,qBAAqB,CAC7B,CAAC;QACF,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,GAAG,CAAC,aAAa,aAAa,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,0BAA0B,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,GAAG,CAAC,SAAS,UAAU,OAAO,OAAO,KAAK,QAAQ,aAAa,MAAM,cAAc,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IAE3G,eAAe;IACf,UAAU,CAAC,YAAY,EAAE,CAAC;IAC1B,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACxC,SAAS,EAAE,CAAC;IAEZ,IAAI,CAAC;QACH,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,MAAM,+BAA+B,CAAC,GAAG,EAAE;gBACzC,OAAO;gBACP,MAAM;gBACN,QAAQ,EAAE,aAAa;gBACvB,MAAM,EAAE,MAAM,IAAI,KAAK;gBACvB,SAAS,EAAE,UAAU,IAAI,SAAS,EAAE,SAAS,IAAI,IAAI;gBACrD,WAAW;gBACX,MAAM;aACP,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,gBAAgB,CAAC,GAAG,EAAE;gBAC1B,OAAO;gBACP,MAAM;gBACN,QAAQ,EAAE,aAAa;gBACvB,MAAM,EAAE,MAAM,IAAI,KAAK;gBACvB,SAAS,EAAE,UAAU,IAAI,SAAS,EAAE,SAAS,IAAI,IAAI;gBACrD,WAAW;gBACX,MAAM;aACP,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,QAAQ,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,GAAG,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAExC,6BAA6B;QAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,0BAA0B,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG;aAC1B;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,+BAA+B,CAAC,GAAa,EAAE,OAQ7D;IACC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACpC,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,SAAS,GAAQ,IAAI,CAAC;IAE1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,GAAG,CAAC,kBAAkB,MAAM,cAAc,OAAO,EAAE,CAAC,CAAC;YACrD,MAAM,mBAAmB,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,gBAAgB;QAC1B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,SAAS,GAAG,KAAK,CAAC;YAClB,GAAG,CAAC,UAAU,MAAM,YAAY,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;YAEzD,6DAA6D;YAC7D,MAAM,WAAW,GACf,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,aAAa;gBACrC,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,sBAAsB;gBAC9C,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,iBAAiB;gBACzC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC;gBACnC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC;gBACrC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;YAEzC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,KAAK,CAAC,CAAC,gDAAgD;YAC/D,CAAC;YAED,0BAA0B;QAC5B,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,GAAa,EAAE,OASjD;IACC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE9F,2CAA2C;IAC3C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,gDAAgD,EAAE,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;IACpD,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC;IAExC,MAAM,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,cAAc,CAAC;IAClD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;IACpC,MAAM,GAAG,GAAG,WAAW,SAAS,0CAA0C,SAAS,cAAc,SAAS,gCAAgC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;IAElM,uCAAuC;IACvC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,EAAE,GAAG,CAAC,IAA4B;QACtC,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC,CAAC,CAAC;IAEJ,MAAM,WAAW,GAAQ;QACvB,iBAAiB,EAAE,mBAAmB;QACtC,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,iBAAiB;KAC5B,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;IACxC,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;QAE1B,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QACnD,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,WAAW,EAAE;gBACxC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAEhB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;wBAClC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,QAAQ;4BAAE,SAAS;wBAEzC,IAAI,CAAC;4BACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAE/B,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;gCAC/E,MAAM,KAAK,GAAG;oCACZ,EAAE,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE;oCAC5B,MAAM,EAAE,uBAAuB;oCAC/B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;oCACtC,KAAK,EAAE,OAAO;oCACd,OAAO,EAAE,CAAC;4CACR,KAAK,EAAE,CAAC;4CACR,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;4CACpC,aAAa,EAAE,IAAI;yCACpB,CAAC;iCACH,CAAC;gCACF,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAClD,CAAC;iCAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gCACzC,MAAM,KAAK,GAAG;oCACZ,EAAE,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE;oCAC5B,MAAM,EAAE,uBAAuB;oCAC/B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;oCACtC,KAAK,EAAE,OAAO;oCACd,OAAO,EAAE,CAAC;4CACR,KAAK,EAAE,CAAC;4CACR,KAAK,EAAE,EAAE;4CACT,aAAa,EAAE,MAAM;yCACtB,CAAC;iCACH,CAAC;gCACF,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAClD,CAAC;wBACH,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,sBAAsB;wBACxB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC9B,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,yBAAyB;QACzB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,WAAW,EAAE;gBACxC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;QAE1C,2BAA2B;QAC3B,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;aACjC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;aAC7C,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aAC/B,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE;YACvC,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACtC,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,WAAW;wBACjB,OAAO;qBACR;oBACD,aAAa,EAAE,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW;iBAC3E,CAAC;YACF,KAAK,EAAE;gBACL,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;gBAC5C,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;gBACjD,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,CAAC;aACjF;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAa,EAAE,OAQ9C;IACC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEtF,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC,UAAU;QAC1B,QAAQ,EAAE,MAAM,CAAC,aAAa;KAC/B,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,kBAAkB,CAAC;QACxC,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE;YAChB,eAAe,EAAE,SAAS;YAC1B,WAAW,EAAE,WAAW;SACzB;QACD,iBAAiB,EAAE,MAAM,IAAI,SAAS;KACvC,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;QACjD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;KAC/F,CAAC,CAAC,CAAC;IAEJ,IAAI,MAAM,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QACnD,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE/D,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YACpE,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,WAAW,GAAG;oBAClB,EAAE,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE;oBAC5B,MAAM,EAAE,uBAAuB;oBAC/B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;oBACtC,KAAK,EAAE,OAAO;oBACd,OAAO,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;4BACxB,aAAa,EAAE,IAAI;yBACpB,CAAC;iBACH,CAAC;gBACF,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG;YACjB,EAAE,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE;YAC5B,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACtC,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,EAAE;oBACT,aAAa,EAAE,MAAM;iBACtB,CAAC;SACH,CAAC;QACF,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACrD,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC9B,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QAEvE,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE;YAC5B,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACtC,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,IAAI;qBACd;oBACD,aAAa,EAAE,MAAM;iBACtB,CAAC;YACF,KAAK,EAAE;gBACL,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,gBAAgB,IAAI,CAAC;gBAC5D,iBAAiB,EAAE,QAAQ,CAAC,aAAa,EAAE,oBAAoB,IAAI,CAAC;gBACpE,YAAY,EAAE,QAAQ,CAAC,aAAa,EAAE,eAAe,IAAI,CAAC;aAC3D;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,GAAY,EAAE,GAAa,EAAE,MAAc;IAChF,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IAE1F,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAExC,GAAG,CAAC,iBAAiB,UAAU,OAAO,OAAO,YAAY,MAAM,EAAE,CAAC,CAAC;IAEnE,eAAe;IACf,UAAU,CAAC,YAAY,EAAE,CAAC;IAC1B,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACxC,SAAS,EAAE,CAAC;IAEZ,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,SAAS,GAAQ,IAAI,CAAC;IAE1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,GAAG,CAAC,kBAAkB,MAAM,cAAc,OAAO,EAAE,CAAC,CAAC;YAErD,2CAA2C;YAC3C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,gDAAgD,EAAE,CAAC,CAAC;YAC1F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;YACpD,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC;YAExC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;YACpC,MAAM,GAAG,GAAG,WAAW,MAAM,0CAA0C,SAAS,cAAc,MAAM,gCAAgC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;YAE5L,MAAM,WAAW,GAAQ;gBACvB,iBAAiB,EAAE,mBAAmB;gBACtC,UAAU,EAAE,UAAU,IAAI,SAAS,EAAE,SAAS,IAAI,IAAI;gBACtD,QAAQ,EAAE,QAAQ;aACnB,CAAC;YAEF,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;YAC9B,CAAC;YAED,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;YACxC,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;YAC5B,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,eAAe,EAAE,UAAU,WAAW,EAAE;oBACxC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;aAClC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;gBAEnE,+BAA+B;gBAC/B,MAAM,WAAW,GACf,QAAQ,CAAC,MAAM,KAAK,GAAG;oBACvB,QAAQ,CAAC,MAAM,KAAK,GAAG;oBACvB,QAAQ,CAAC,MAAM,KAAK,GAAG;oBACvB,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC9B,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAEnC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,SAAS,GAAG,KAAK,CAAC;gBAClB,GAAG,CAAC,UAAU,MAAM,YAAY,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;gBACrD,SAAS;YACX,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;gBACnD,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;gBAC3C,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAE1C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;gBAClC,IAAI,MAAM,GAAG,EAAE,CAAC;gBAEhB,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,IAAI,EAAE,CAAC;wBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;wBAC5C,IAAI,IAAI;4BAAE,MAAM;wBAEhB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;wBAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;wBAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAC5D,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;4BACzB,CAAC;iCAAM,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gCACvB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAClB,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;YAED,OAAO,CAAC,UAAU;QAEpB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,SAAS,GAAG,KAAK,CAAC;YAClB,GAAG,CAAC,UAAU,MAAM,YAAY,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;YAEzD,2BAA2B;YAC3B,MAAM,WAAW,GACf,KAAK,CAAC,MAAM,KAAK,GAAG;gBACpB,KAAK,CAAC,MAAM,KAAK,GAAG;gBACpB,KAAK,CAAC,MAAM,KAAK,GAAG;gBACpB,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC;gBACnC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;YAExC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,GAAG,CAAC,0BAA0B,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QACxC,KAAK,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,SAAS,EAAE,OAAO,IAAI,oBAAoB;SACpD;KACF,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAY,EAAE,GAAa,EAAE,MAAc;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAChE,EAAE;QACF,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;QAChE,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,IAAI;QACZ,aAAa;QACb,aAAa,EAAE;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,aAAa;YAClC,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,kBAAkB,EAAE,IAAI,CAAC,UAAU;YACnC,mBAAmB,EAAE,IAAI,CAAC,WAAW;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC;KACF,CAAC,CAAC,CAAC;IAEJ,cAAc;IACd,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACnE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,cAAc;gBACxB,UAAU,EAAE,EAAE;gBACd,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,IAAI;gBACZ,aAAa,EAAE;oBACb,IAAI,EAAE,GAAG,KAAK,MAAM,UAAU,CAAC,IAAI,EAAE;oBACrC,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,cAAc,EAAE,UAAU,CAAC,aAAa;oBACxC,UAAU,EAAE,UAAU,CAAC,SAAS;oBAChC,kBAAkB,EAAE,UAAU,CAAC,UAAU;oBACzC,mBAAmB,EAAE,UAAU,CAAC,WAAW;oBAC3C,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,YAAY,EAAE,UAAU,CAAC,YAAY;iBACtC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CAAC;QACP,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E,KAAK,UAAU,qBAAqB,CAAC,GAAY,EAAE,GAAa,EAAE,MAAc;IAC9E,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAE9D,eAAe;QACf,UAAU,CAAC,YAAY,EAAE,CAAC;QAC1B,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxC,SAAS,EAAE,CAAC;QAEZ,sBAAsB;QACtB,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,yBAAyB,CAAC;QACtF,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;QAE/C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,KAAK,EAAE;oBACL,OAAO,EAAE,SAAS,aAAa,mCAAmC;oBAClE,IAAI,EAAE,uBAAuB;iBAC9B;aACF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,KAAK,EAAE;oBACL,OAAO,EAAE,oBAAoB;oBAC7B,IAAI,EAAE,uBAAuB;iBAC9B;aACF,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,WAAW,aAAa,aAAa,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QAExE,iCAAiC;QACjC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,KAAK,GAAG,MAAM;YAAE,WAAW,GAAG,MAAM,CAAC;aACpC,IAAI,MAAM,GAAG,KAAK;YAAE,WAAW,GAAG,MAAM,CAAC;QAE9C,qCAAqC;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,IAAI,aAAa,CAAC;QACrD,MAAM,QAAQ,GAAG,WAAW,MAAM,0CAA0C,MAAM,CAAC,UAAU,cAAc,MAAM,6BAA6B,aAAa,UAAU,CAAC;QAEtK,mBAAmB;QACnB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;YAC1B,MAAM,EAAE,CAAC,gDAAgD,CAAC;SAC3D,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QAElD,MAAM,aAAa,GAAG;YACpB,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,sBAAsB;gBACnD,WAAW;gBACX,gCAAgC;gBAChC,aAAa,EAAE,wBAAwB;aACxC;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;YACrC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,WAAW,CAAC,KAAK,EAAE;gBAC9C,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,MAAM,IAAI,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;gBACtC,KAAK,EAAE;oBACL,OAAO,EAAE,qBAAqB,SAAS,EAAE;oBACzC,IAAI,EAAE,WAAW;iBAClB;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;QAE5C,8CAA8C;QAC9C,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;YAC3E,QAAQ,EAAE,IAAI,CAAC,kBAAkB;YACjC,cAAc,EAAE,MAAM;SACvB,CAAC,CAAC,CAAC;QAEJ,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACtC,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,GAAG,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,WAAW;aAClB;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAU,GAAG,KAAK;IACjD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,CAAC;IAE/D,mBAAmB;IACnB,UAAU,GAAG;QACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,IAAI;QACrB,IAAI;KACL,CAAC;IACF,SAAS,EAAE,CAAC;IAEZ,aAAa;IACb,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAEzC,qBAAqB;IACrB,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YACpC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,UAAU,IAAI,QAAQ,IAAI,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,SAAS;IACT,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACxB,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,MAAM,CAAC,UAAU;YAC1B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YAC9D,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,OAAO,EAAE;gBACP,MAAM,EAAE,MAAM,CAAC,cAAc;gBAC7B,MAAM,EAAE,MAAM,CAAC,aAAa;gBAC5B,MAAM,EAAE,MAAM,CAAC,aAAa;aAC7B;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,YAAY;gBACpB,IAAI,EAAE,sBAAsB;gBAC5B,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,wBAAwB;aACjC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9B,GAAG,CAAC,IAAI,CAAC;YACP,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YAC9D,YAAY,EAAE,UAAU,CAAC,YAAY;SACtC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAEpE,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAExF,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAClF,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAE/E,4BAA4B;IAC5B,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1F,eAAe;IACf,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG;;;;;gBAKH,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;;;;;;;;;;;;CAY9C,CAAC;QACE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QACD,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+BAA+B;AAC/B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAErD,2BAA2B;AAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vertex-ai-proxy",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "description": "OpenAI-compatible proxy for Google Vertex AI (Claude + Gemini) with automatic failover, retries, and prompt caching",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/dist/server.d.ts DELETED
@@ -1,22 +0,0 @@
1
- import { ProxyConfig } from './types.js';
2
- export declare function createServer(config?: Partial<ProxyConfig>): {
3
- app: import("express-serve-static-core").Express;
4
- config: {
5
- projectId: string;
6
- claudeRegions: string[];
7
- geminiLocation: string;
8
- port: number;
9
- host: string;
10
- maxRetries: number;
11
- retryBaseDelay: number;
12
- requestTimeout: number;
13
- enablePromptCache: boolean;
14
- enableMetrics: boolean;
15
- enableRequestLogging: boolean;
16
- heartbeatInterval: number;
17
- maxConcurrent: number;
18
- queueSize: number;
19
- };
20
- };
21
- export declare function startServer(config?: Partial<ProxyConfig>): void;
22
- //# sourceMappingURL=server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EAEZ,MAAM,YAAY,CAAC;AAwNpB,wBAAgB,YAAY,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM;;;;;;;;;;;;;;;;;;EAuI7D;AAED,wBAAgB,WAAW,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,IAAI,CAOnE"}
package/dist/server.js DELETED
@@ -1,383 +0,0 @@
1
- import express from 'express';
2
- import { AnthropicVertex } from '@anthropic-ai/vertex-sdk';
3
- import { GoogleGenAI } from '@google/genai';
4
- import { DEFAULT_CONFIG, CLAUDE_MODELS, GEMINI_MODELS } from './types.js';
5
- // Request Queue for concurrency control
6
- class RequestQueue {
7
- maxConcurrent;
8
- maxQueueSize;
9
- queue = [];
10
- activeCount = 0;
11
- constructor(maxConcurrent, maxQueueSize) {
12
- this.maxConcurrent = maxConcurrent;
13
- this.maxQueueSize = maxQueueSize;
14
- }
15
- async acquire() {
16
- if (this.activeCount < this.maxConcurrent) {
17
- this.activeCount++;
18
- return;
19
- }
20
- if (this.queue.length >= this.maxQueueSize) {
21
- throw new Error('Queue full');
22
- }
23
- return new Promise((resolve, reject) => {
24
- this.queue.push({ resolve, reject });
25
- });
26
- }
27
- release() {
28
- this.activeCount--;
29
- const next = this.queue.shift();
30
- if (next) {
31
- this.activeCount++;
32
- next.resolve();
33
- }
34
- }
35
- get stats() {
36
- return { active: this.activeCount, queued: this.queue.length };
37
- }
38
- }
39
- // Metrics collector
40
- class Metrics {
41
- enabled;
42
- requestsTotal = new Map();
43
- requestDurations = [];
44
- retriesTotal = new Map();
45
- regionFailures = new Map();
46
- cacheHits = 0;
47
- constructor(enabled) {
48
- this.enabled = enabled;
49
- }
50
- incRequest(model, status) {
51
- if (!this.enabled)
52
- return;
53
- const key = `${model}:${status}`;
54
- this.requestsTotal.set(key, (this.requestsTotal.get(key) || 0) + 1);
55
- }
56
- observeDuration(duration) {
57
- if (!this.enabled)
58
- return;
59
- this.requestDurations.push(duration);
60
- if (this.requestDurations.length > 1000)
61
- this.requestDurations.shift();
62
- }
63
- incRetry(model, region) {
64
- if (!this.enabled)
65
- return;
66
- const key = `${model}:${region}`;
67
- this.retriesTotal.set(key, (this.retriesTotal.get(key) || 0) + 1);
68
- }
69
- incRegionFailure(region) {
70
- if (!this.enabled)
71
- return;
72
- this.regionFailures.set(region, (this.regionFailures.get(region) || 0) + 1);
73
- }
74
- incCacheHit() {
75
- if (this.enabled)
76
- this.cacheHits++;
77
- }
78
- getPrometheusMetrics() {
79
- const lines = [];
80
- lines.push('# HELP vertex_proxy_requests_total Total requests');
81
- lines.push('# TYPE vertex_proxy_requests_total counter');
82
- for (const [key, value] of this.requestsTotal) {
83
- const [model, stat] = key.split(':');
84
- lines.push(`vertex_proxy_requests_total{model="${model}",status="${stat}"} ${value}`);
85
- }
86
- lines.push(`# HELP vertex_proxy_cache_hits_total Cache hits`);
87
- lines.push(`# TYPE vertex_proxy_cache_hits_total counter`);
88
- lines.push(`vertex_proxy_cache_hits_total ${this.cacheHits}`);
89
- return lines.join('\n');
90
- }
91
- }
92
- // Client pool with region failover
93
- class ClientPool {
94
- config;
95
- metrics;
96
- claudeClients = new Map();
97
- geminiClient = null;
98
- regionHealth = new Map();
99
- constructor(config, metrics) {
100
- this.config = config;
101
- this.metrics = metrics;
102
- this.initClients();
103
- }
104
- initClients() {
105
- for (const region of this.config.claudeRegions) {
106
- try {
107
- this.claudeClients.set(region.trim(), new AnthropicVertex({
108
- projectId: this.config.projectId,
109
- region: region.trim(),
110
- }));
111
- this.regionHealth.set(region.trim(), Date.now());
112
- console.log(`Initialized Claude client for region: ${region}`);
113
- }
114
- catch (e) {
115
- console.warn(`Failed to init Claude client for ${region}: ${e}`);
116
- }
117
- }
118
- try {
119
- this.geminiClient = new GoogleGenAI({
120
- vertexai: true,
121
- project: this.config.projectId,
122
- location: this.config.geminiLocation,
123
- });
124
- console.log(`Initialized Gemini client for: ${this.config.geminiLocation}`);
125
- }
126
- catch (e) {
127
- console.warn(`Failed to init Gemini client: ${e}`);
128
- }
129
- }
130
- getClaudeClient() {
131
- const sorted = [...this.regionHealth.entries()].sort((a, b) => b[1] - a[1]);
132
- for (const [region] of sorted) {
133
- const client = this.claudeClients.get(region);
134
- if (client)
135
- return { client, region };
136
- }
137
- throw new Error('No Claude clients available');
138
- }
139
- getGeminiClient() {
140
- if (!this.geminiClient)
141
- throw new Error('Gemini client not available');
142
- return this.geminiClient;
143
- }
144
- markRegionSuccess(region) { this.regionHealth.set(region, Date.now()); }
145
- markRegionFailure(region) { this.regionHealth.set(region, 0); this.metrics.incRegionFailure(region); }
146
- }
147
- // Helpers
148
- function getModelType(model) {
149
- if (!model)
150
- return { type: 'claude', modelId: CLAUDE_MODELS['opus'] };
151
- const ml = model.toLowerCase();
152
- if (ml in CLAUDE_MODELS)
153
- return { type: 'claude', modelId: CLAUDE_MODELS[ml] };
154
- if (ml in GEMINI_MODELS)
155
- return { type: 'gemini', modelId: GEMINI_MODELS[ml] };
156
- if (ml.includes('gemini'))
157
- return { type: 'gemini', modelId: model };
158
- return { type: 'claude', modelId: CLAUDE_MODELS[ml] || CLAUDE_MODELS['opus'] };
159
- }
160
- function processContent(content) {
161
- if (typeof content === 'string')
162
- return content;
163
- if (!Array.isArray(content))
164
- return String(content || '');
165
- return content.map(item => {
166
- if (item?.type === 'text')
167
- return { type: 'text', text: item.text || '' };
168
- if (item?.type === 'image_url') {
169
- const url = item.image_url?.url || '';
170
- if (url.startsWith('data:')) {
171
- const [meta, data] = url.split(',');
172
- const mediaType = meta.includes(':') ? meta.split(':')[1].split(';')[0] : 'image/png';
173
- return { type: 'image', source: { type: 'base64', media_type: mediaType, data } };
174
- }
175
- }
176
- return item;
177
- }).filter(Boolean);
178
- }
179
- function convertTools(tools) {
180
- if (!tools?.length)
181
- return undefined;
182
- return tools.filter(t => t.type === 'function').map(t => ({
183
- name: t.function.name,
184
- description: t.function.description || '',
185
- input_schema: t.function.parameters || {},
186
- }));
187
- }
188
- function extractSystemAndMessages(messages, enableCache) {
189
- const systemParts = [];
190
- const anthropicMsgs = [];
191
- for (const msg of messages) {
192
- if (msg.role === 'system') {
193
- systemParts.push(typeof msg.content === 'string' ? msg.content : '');
194
- }
195
- else if (msg.role === 'tool') {
196
- anthropicMsgs.push({
197
- role: 'user',
198
- content: [{ type: 'tool_result', tool_use_id: msg.tool_call_id || '', content: typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content) }],
199
- });
200
- }
201
- else if (msg.role === 'user' || msg.role === 'assistant') {
202
- let processed = processContent(msg.content);
203
- if (msg.role === 'assistant' && msg.tool_calls?.length) {
204
- processed = msg.tool_calls.map(tc => ({
205
- type: 'tool_use', id: tc.id, name: tc.function.name,
206
- input: JSON.parse(tc.function.arguments || '{}'),
207
- }));
208
- }
209
- anthropicMsgs.push({ role: msg.role, content: processed });
210
- }
211
- }
212
- let system = systemParts.length ? systemParts.join('\n\n') : undefined;
213
- if (enableCache && system && typeof system === 'string' && system.length > 1024) {
214
- system = [{ type: 'text', text: system, cache_control: { type: 'ephemeral' } }];
215
- }
216
- return { system, messages: anthropicMsgs };
217
- }
218
- function makeStreamChunk(id, model, delta, finishReason) {
219
- return { id, object: 'chat.completion.chunk', created: Math.floor(Date.now() / 1000), model, choices: [{ index: 0, delta, finish_reason: finishReason }] };
220
- }
221
- const sleep = (ms) => new Promise(r => setTimeout(r, ms));
222
- // Main server
223
- export function createServer(config = {}) {
224
- const finalConfig = { ...DEFAULT_CONFIG, ...config };
225
- const metrics = new Metrics(finalConfig.enableMetrics);
226
- const pool = new ClientPool(finalConfig, metrics);
227
- const queue = new RequestQueue(finalConfig.maxConcurrent, finalConfig.queueSize);
228
- const app = express();
229
- app.use(express.json({ limit: '50mb' }));
230
- app.use((req, res, next) => {
231
- res.header('Access-Control-Allow-Origin', '*');
232
- res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
233
- res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
234
- if (req.method === 'OPTIONS')
235
- return res.sendStatus(200);
236
- next();
237
- });
238
- app.get(['/', '/health'], (req, res) => {
239
- res.json({ status: 'ok', version: '1.0.0', project: finalConfig.projectId, claude_regions: finalConfig.claudeRegions, gemini_location: finalConfig.geminiLocation, queue: queue.stats });
240
- });
241
- app.get('/metrics', (req, res) => {
242
- if (!finalConfig.enableMetrics)
243
- return res.status(404).send('Metrics disabled');
244
- res.type('text/plain').send(metrics.getPrometheusMetrics());
245
- });
246
- app.post('/v1/chat/completions', async (req, res) => {
247
- const startTime = Date.now();
248
- try {
249
- await queue.acquire();
250
- }
251
- catch {
252
- return res.status(429).json({ error: { message: 'Too many requests' } });
253
- }
254
- const timeoutId = setTimeout(() => { if (!res.headersSent)
255
- res.status(504).json({ error: { message: 'Timeout' } }); }, finalConfig.requestTimeout * 1000);
256
- try {
257
- const body = req.body;
258
- const { type: modelType, modelId } = getModelType(body.model);
259
- const chunkId = `chatcmpl-${Date.now()}`;
260
- if (finalConfig.enableRequestLogging)
261
- console.log(`[${modelType.toUpperCase()}] model=${modelId}, msgs=${body.messages?.length}, stream=${body.stream}`);
262
- if (modelType === 'gemini') {
263
- const prompt = body.messages.map(m => `${m.role}: ${m.content}`).join('\n');
264
- const client = pool.getGeminiClient();
265
- if (body.stream) {
266
- res.setHeader('Content-Type', 'text/event-stream');
267
- res.write(`data: ${JSON.stringify(makeStreamChunk(chunkId, modelId, { role: 'assistant' }, null))}\n\n`);
268
- const stream = await client.models.generateContentStream({ model: modelId, contents: prompt });
269
- for await (const chunk of stream) {
270
- if (chunk.text)
271
- res.write(`data: ${JSON.stringify(makeStreamChunk(chunkId, modelId, { content: chunk.text }, null))}\n\n`);
272
- }
273
- res.write(`data: ${JSON.stringify(makeStreamChunk(chunkId, modelId, {}, 'stop'))}\n\n`);
274
- res.write('data: [DONE]\n\n');
275
- return res.end();
276
- }
277
- const resp = await client.models.generateContent({ model: modelId, contents: prompt });
278
- return res.json({ id: chunkId, object: 'chat.completion', created: Math.floor(Date.now() / 1000), model: modelId, choices: [{ index: 0, message: { role: 'assistant', content: resp.text }, finish_reason: 'stop' }], usage: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 } });
279
- }
280
- // Claude
281
- const { system, messages: anthropicMsgs } = extractSystemAndMessages(body.messages, finalConfig.enablePromptCache);
282
- const claudeParams = { model: modelId, max_tokens: body.max_tokens || 8192, messages: anthropicMsgs };
283
- if (system)
284
- claudeParams.system = system;
285
- if (body.temperature !== undefined)
286
- claudeParams.temperature = body.temperature;
287
- if (body.tools)
288
- claudeParams.tools = convertTools(body.tools);
289
- let lastError = null;
290
- for (let attempt = 0; attempt < finalConfig.maxRetries; attempt++) {
291
- const { client, region } = pool.getClaudeClient();
292
- try {
293
- if (body.stream && !body.tools) {
294
- res.setHeader('Content-Type', 'text/event-stream');
295
- res.write(`data: ${JSON.stringify(makeStreamChunk(chunkId, modelId, { role: 'assistant' }, null))}\n\n`);
296
- let lastHb = Date.now();
297
- const stream = client.messages.stream(claudeParams);
298
- for await (const event of stream) {
299
- if (event.type === 'content_block_delta' && event.delta.type === 'text_delta') {
300
- res.write(`data: ${JSON.stringify(makeStreamChunk(chunkId, modelId, { content: event.delta.text }, null))}\n\n`);
301
- }
302
- if (Date.now() - lastHb > finalConfig.heartbeatInterval * 1000) {
303
- res.write(': ping\n\n');
304
- lastHb = Date.now();
305
- }
306
- }
307
- res.write(`data: ${JSON.stringify(makeStreamChunk(chunkId, modelId, {}, 'stop'))}\n\n`);
308
- res.write('data: [DONE]\n\n');
309
- pool.markRegionSuccess(region);
310
- metrics.incRequest(modelId, 'success');
311
- return res.end();
312
- }
313
- const response = await client.messages.create(claudeParams);
314
- pool.markRegionSuccess(region);
315
- let contentText = '';
316
- const toolCalls = [];
317
- for (const block of response.content) {
318
- if ('text' in block)
319
- contentText += block.text;
320
- if (block.type === 'tool_use')
321
- toolCalls.push({ id: block.id, type: 'function', function: { name: block.name, arguments: JSON.stringify(block.input) } });
322
- }
323
- const msg = { role: 'assistant', content: contentText || null };
324
- if (toolCalls.length)
325
- msg.tool_calls = toolCalls;
326
- const result = { id: `chatcmpl-${response.id}`, object: 'chat.completion', created: Math.floor(Date.now() / 1000), model: modelId, choices: [{ index: 0, message: msg, finish_reason: toolCalls.length ? 'tool_calls' : 'stop' }], usage: { prompt_tokens: response.usage.input_tokens, completion_tokens: response.usage.output_tokens, total_tokens: response.usage.input_tokens + response.usage.output_tokens } };
327
- metrics.incRequest(modelId, 'success');
328
- metrics.observeDuration((Date.now() - startTime) / 1000);
329
- if (body.stream) {
330
- res.setHeader('Content-Type', 'text/event-stream');
331
- res.write(`data: ${JSON.stringify(makeStreamChunk(chunkId, modelId, { role: 'assistant' }, null))}\n\n`);
332
- if (contentText)
333
- res.write(`data: ${JSON.stringify(makeStreamChunk(chunkId, modelId, { content: contentText }, null))}\n\n`);
334
- for (let i = 0; i < toolCalls.length; i++) {
335
- const tc = toolCalls[i];
336
- res.write(`data: ${JSON.stringify(makeStreamChunk(chunkId, modelId, { tool_calls: [{ index: i, id: tc.id, type: 'function', function: { name: tc.function.name, arguments: '' } }] }, null))}\n\n`);
337
- res.write(`data: ${JSON.stringify(makeStreamChunk(chunkId, modelId, { tool_calls: [{ index: i, function: { arguments: tc.function.arguments } }] }, null))}\n\n`);
338
- }
339
- res.write(`data: ${JSON.stringify(makeStreamChunk(chunkId, modelId, {}, toolCalls.length ? 'tool_calls' : 'stop'))}\n\n`);
340
- res.write('data: [DONE]\n\n');
341
- return res.end();
342
- }
343
- return res.json(result);
344
- }
345
- catch (e) {
346
- lastError = e;
347
- if (e?.status === 429) {
348
- pool.markRegionFailure(region);
349
- metrics.incRetry(modelId, region);
350
- continue;
351
- }
352
- if (e?.status >= 500) {
353
- metrics.incRetry(modelId, region);
354
- await sleep(finalConfig.retryBaseDelay * Math.pow(2, attempt) * 1000);
355
- continue;
356
- }
357
- throw e;
358
- }
359
- }
360
- throw lastError || new Error('All retries exhausted');
361
- }
362
- catch (e) {
363
- console.error('Error:', e.message || e);
364
- metrics.incRequest(req.body?.model || 'unknown', 'error');
365
- if (!res.headersSent)
366
- res.status(500).json({ error: { message: e.message || 'Internal error' } });
367
- }
368
- finally {
369
- clearTimeout(timeoutId);
370
- queue.release();
371
- }
372
- });
373
- return { app, config: finalConfig };
374
- }
375
- export function startServer(config = {}) {
376
- const { app, config: finalConfig } = createServer(config);
377
- app.listen(finalConfig.port, finalConfig.host, () => {
378
- console.log(`Vertex AI Proxy running at http://${finalConfig.host}:${finalConfig.port}`);
379
- console.log(`Project: ${finalConfig.projectId}`);
380
- console.log(`Claude regions: ${finalConfig.claudeRegions.join(', ')}`);
381
- });
382
- }
383
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAA8B,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACQ,cAAc,EAC3B,aAAa,EAAE,aAAa,EAC7B,MAAM,YAAY,CAAC;AAEpB,wCAAwC;AACxC,MAAM,YAAY;IAII;IAA+B;IAH3C,KAAK,GAAiE,EAAE,CAAC;IACzE,WAAW,GAAG,CAAC,CAAC;IAExB,YAAoB,aAAqB,EAAU,YAAoB;QAAnD,kBAAa,GAAb,aAAa,CAAQ;QAAU,iBAAY,GAAZ,YAAY,CAAQ;IAAG,CAAC;IAE3E,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACP,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACjE,CAAC;CACF;AAED,oBAAoB;AACpB,MAAM,OAAO;IAOS;IANZ,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,gBAAgB,GAAa,EAAE,CAAC;IAChC,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,SAAS,GAAG,CAAC,CAAC;IAEtB,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC,UAAU,CAAC,KAAa,EAAE,MAAc;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,GAAG,GAAG,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,eAAe,CAAC,QAAgB;QAC9B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,IAAI;YAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACzE,CAAC;IAED,QAAQ,CAAC,KAAa,EAAE,MAAc;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,GAAG,GAAG,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IACrC,CAAC;IAED,oBAAoB;QAClB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QACzD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,sCAAsC,KAAK,aAAa,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,mCAAmC;AACnC,MAAM,UAAU;IAKM;IAA6B;IAJzC,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAC;IACnD,YAAY,GAAuB,IAAI,CAAC;IACxC,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEjD,YAAoB,MAAmB,EAAU,OAAgB;QAA7C,WAAM,GAAN,MAAM,CAAa;QAAU,YAAO,GAAP,OAAO,CAAS;QAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,eAAe,CAAC;oBACxD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;oBAChC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;iBACtB,CAAC,CAAC,CAAC;gBACJ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,yCAAyC,MAAM,EAAE,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,oCAAoC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC;gBAClC,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;aACrC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,eAAe;QACb,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,MAAM;gBAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACxC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,iBAAiB,CAAC,MAAc,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAChF,iBAAiB,CAAC,MAAc,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAC/G;AAED,UAAU;AACV,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;IACtE,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC/B,IAAI,EAAE,IAAI,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/E,IAAI,EAAE,IAAI,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/E,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;AACjF,CAAC;AAED,SAAS,cAAc,CAAC,OAAuB;IAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACxB,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QAC1E,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBACtF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;YACpF,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACrC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;QACrB,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;QACzC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE;KAC1C,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAmB,EAAE,WAAoB;IACzE,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,aAAa,GAAU,EAAE,CAAC;IAEhC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,aAAa,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;aAC9J,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC3D,IAAI,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;gBACvD,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACpC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;oBACnD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC;iBACjD,CAAC,CAAC,CAAC;YACN,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,IAAI,MAAM,GAA+B,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnG,IAAI,WAAW,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QAChF,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,eAAe,CAAC,EAAU,EAAE,KAAa,EAAE,KAAU,EAAE,YAA2B;IACzF,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAC7J,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAElE,cAAc;AACd,MAAM,UAAU,YAAY,CAAC,SAA+B,EAAE;IAC5D,MAAM,WAAW,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAEjF,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAC/C,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;QACjE,GAAG,CAAC,MAAM,CAAC,8BAA8B,EAAE,6BAA6B,CAAC,CAAC;QAC1E,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACrC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,CAAC,aAAa,EAAE,eAAe,EAAE,WAAW,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3L,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/B,IAAI,CAAC,WAAW,CAAC,aAAa;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChF,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAAC,CAAC;QAElH,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW;YAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;QAE1J,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAmB,CAAC;YACrC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAEzC,IAAI,WAAW,CAAC,oBAAoB;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC,QAAQ,EAAE,MAAM,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAEzJ,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;oBACnD,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;oBACzG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC/F,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAAC,IAAI,KAAK,CAAC,IAAI;4BAAE,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;oBAAC,CAAC;oBACjK,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;oBACxF,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;oBAC9B,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;gBACnB,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvF,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5R,CAAC;YAED,SAAS;YACT,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;YACnH,MAAM,YAAY,GAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;YAC3G,IAAI,MAAM;gBAAE,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC;YACzC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAChF,IAAI,IAAI,CAAC,KAAK;gBAAE,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE9D,IAAI,SAAS,GAAiB,IAAI,CAAC;YACnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;gBAClE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAClD,IAAI,CAAC;oBACH,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;wBAC/B,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;wBACnD,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;wBACzG,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBACxB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACpD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4BACjC,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gCAC9E,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;4BACnH,CAAC;4BACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,WAAW,CAAC,iBAAiB,GAAG,IAAI,EAAE,CAAC;gCAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gCAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC;wBACnH,CAAC;wBACD,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;wBACxF,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;wBAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;wBAC/B,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;wBACvC,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;oBACnB,CAAC;oBAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC5D,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBAE/B,IAAI,WAAW,GAAG,EAAE,CAAC;oBACrB,MAAM,SAAS,GAAU,EAAE,CAAC;oBAC5B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACrC,IAAI,MAAM,IAAI,KAAK;4BAAE,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC;wBAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;4BAAE,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5J,CAAC;oBAED,MAAM,GAAG,GAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,CAAC;oBACrE,IAAI,SAAS,CAAC,MAAM;wBAAE,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC;oBAEjD,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,YAAY,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;oBAEpZ,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBACvC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;oBAEzD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;wBACnD,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;wBACzG,IAAI,WAAW;4BAAE,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;wBAC7H,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC1C,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;4BACxB,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;4BACpM,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;wBACpK,CAAC;wBACD,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;wBAC1H,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;wBAC9B,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;oBACnB,CAAC;oBACD,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAE1B,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,SAAS,GAAG,CAAC,CAAC;oBACd,IAAI,CAAC,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;wBAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;wBAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBAAC,SAAS;oBAAC,CAAC;oBACvG,IAAI,CAAC,EAAE,MAAM,IAAI,GAAG,EAAE,CAAC;wBAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBAAC,MAAM,KAAK,CAAC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;wBAAC,SAAS;oBAAC,CAAC;oBAC7I,MAAM,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;YACD,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS,EAAE,OAAO,CAAC,CAAC;YAC1D,IAAI,CAAC,GAAG,CAAC,WAAW;gBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACpG,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAA+B,EAAE;IAC3D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAC1D,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE;QAClD,OAAO,CAAC,GAAG,CAAC,qCAAqC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC"}