@aws/lsp-codewhisperer 0.0.3
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/CHANGELOG.md +7 -0
- package/README.md +19 -0
- package/out/client/sigv4/codewhisperer.d.ts +3 -0
- package/out/client/sigv4/codewhisperer.js +14 -0
- package/out/client/sigv4/codewhisperer.js.map +1 -0
- package/out/client/sigv4/service.json +346 -0
- package/out/client/token/bearer-token-service.json +1627 -0
- package/out/client/token/codewhisperer.d.ts +14 -0
- package/out/client/token/codewhisperer.js +23 -0
- package/out/client/token/codewhisperer.js.map +1 -0
- package/out/index.d.ts +2 -0
- package/out/index.js +19 -0
- package/out/index.js.map +1 -0
- package/out/language-server/auto-trigger/autoTrigger.d.ts +38 -0
- package/out/language-server/auto-trigger/autoTrigger.js +119 -0
- package/out/language-server/auto-trigger/autoTrigger.js.map +1 -0
- package/out/language-server/auto-trigger/autoTrigger.test.d.ts +1 -0
- package/out/language-server/auto-trigger/autoTrigger.test.js +82 -0
- package/out/language-server/auto-trigger/autoTrigger.test.js.map +1 -0
- package/out/language-server/auto-trigger/coefficients.json +405 -0
- package/out/language-server/codeWhispererSecurityScanServer.d.ts +4 -0
- package/out/language-server/codeWhispererSecurityScanServer.js +76 -0
- package/out/language-server/codeWhispererSecurityScanServer.js.map +1 -0
- package/out/language-server/codeWhispererServer.d.ts +7 -0
- package/out/language-server/codeWhispererServer.js +425 -0
- package/out/language-server/codeWhispererServer.js.map +1 -0
- package/out/language-server/codeWhispererServer.test.d.ts +1 -0
- package/out/language-server/codeWhispererServer.test.js +1218 -0
- package/out/language-server/codeWhispererServer.test.js.map +1 -0
- package/out/language-server/codeWhispererService.d.ts +84 -0
- package/out/language-server/codeWhispererService.js +168 -0
- package/out/language-server/codeWhispererService.js.map +1 -0
- package/out/language-server/dependencyGraph/commonUtil.d.ts +2 -0
- package/out/language-server/dependencyGraph/commonUtil.js +20 -0
- package/out/language-server/dependencyGraph/commonUtil.js.map +1 -0
- package/out/language-server/dependencyGraph/constants.d.ts +2 -0
- package/out/language-server/dependencyGraph/constants.js +6 -0
- package/out/language-server/dependencyGraph/constants.js.map +1 -0
- package/out/language-server/dependencyGraph/csharpDependencyGraph.d.ts +27 -0
- package/out/language-server/dependencyGraph/csharpDependencyGraph.js +145 -0
- package/out/language-server/dependencyGraph/csharpDependencyGraph.js.map +1 -0
- package/out/language-server/dependencyGraph/csharpDependencyGraph.test.d.ts +1 -0
- package/out/language-server/dependencyGraph/csharpDependencyGraph.test.js +341 -0
- package/out/language-server/dependencyGraph/csharpDependencyGraph.test.js.map +1 -0
- package/out/language-server/dependencyGraph/dependencyGraph.d.ts +125 -0
- package/out/language-server/dependencyGraph/dependencyGraph.js +152 -0
- package/out/language-server/dependencyGraph/dependencyGraph.js.map +1 -0
- package/out/language-server/dependencyGraph/dependencyGraphFactory.d.ts +15 -0
- package/out/language-server/dependencyGraph/dependencyGraphFactory.js +22 -0
- package/out/language-server/dependencyGraph/dependencyGraphFactory.js.map +1 -0
- package/out/language-server/languageDetection.d.ts +3 -0
- package/out/language-server/languageDetection.js +56 -0
- package/out/language-server/languageDetection.js.map +1 -0
- package/out/language-server/mergeRightUtils.d.ts +6 -0
- package/out/language-server/mergeRightUtils.js +37 -0
- package/out/language-server/mergeRightUtils.js.map +1 -0
- package/out/language-server/mergeRightUtils.test.d.ts +1 -0
- package/out/language-server/mergeRightUtils.test.js +53 -0
- package/out/language-server/mergeRightUtils.test.js.map +1 -0
- package/out/language-server/proxy-server.d.ts +2 -0
- package/out/language-server/proxy-server.js +35 -0
- package/out/language-server/proxy-server.js.map +1 -0
- package/out/language-server/securityScan/securityScanHandler.d.ts +17 -0
- package/out/language-server/securityScan/securityScanHandler.js +139 -0
- package/out/language-server/securityScan/securityScanHandler.js.map +1 -0
- package/out/language-server/securityScan/securityScanHandler.test.d.ts +1 -0
- package/out/language-server/securityScan/securityScanHandler.test.js +170 -0
- package/out/language-server/securityScan/securityScanHandler.test.js.map +1 -0
- package/out/language-server/securityScan/types.d.ts +49 -0
- package/out/language-server/securityScan/types.js +3 -0
- package/out/language-server/securityScan/types.js.map +1 -0
- package/out/language-server/session/sessionManager.d.ts +91 -0
- package/out/language-server/session/sessionManager.js +234 -0
- package/out/language-server/session/sessionManager.js.map +1 -0
- package/out/language-server/session/sessionManager.test.d.ts +1 -0
- package/out/language-server/session/sessionManager.test.js +584 -0
- package/out/language-server/session/sessionManager.test.js.map +1 -0
- package/out/language-server/telemetry/codePercentage.d.ts +17 -0
- package/out/language-server/telemetry/codePercentage.js +82 -0
- package/out/language-server/telemetry/codePercentage.js.map +1 -0
- package/out/language-server/telemetry/codePercentage.test.d.ts +1 -0
- package/out/language-server/telemetry/codePercentage.test.js +85 -0
- package/out/language-server/telemetry/codePercentage.test.js.map +1 -0
- package/out/language-server/telemetry/types.d.ts +68 -0
- package/out/language-server/telemetry/types.js +3 -0
- package/out/language-server/telemetry/types.js.map +1 -0
- package/out/language-server/telemetry/userTriggerDecision.test.d.ts +1 -0
- package/out/language-server/telemetry/userTriggerDecision.test.js +946 -0
- package/out/language-server/telemetry/userTriggerDecision.test.js.map +1 -0
- package/out/language-server/telemetry.test.d.ts +1 -0
- package/out/language-server/telemetry.test.js +96 -0
- package/out/language-server/telemetry.test.js.map +1 -0
- package/out/language-server/testUtils.d.ts +69 -0
- package/out/language-server/testUtils.js +90 -0
- package/out/language-server/testUtils.js.map +1 -0
- package/out/language-server/utils.d.ts +6 -0
- package/out/language-server/utils.js +31 -0
- package/out/language-server/utils.js.map +1 -0
- package/package.json +53 -0
- package/script/generateServiceClient.ts +242 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeWhispererServer.test.js","sourceRoot":"","sources":["../../src/language-server/codeWhispererServer.test.ts"],"names":[],"mappings":";;AAEA,uEAAwE;AACxE,iCAAgC;AAEhC,uCAAgE;AAChE,iEAAsF;AACtF,2FAAiE;AACjE,+DAA4F;AAE5F,6DAA4F;AAC5F,2CAoBoB;AAEpB,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,MAAM,OAAO,GAAG,kBAAK,CAAC,aAAa,EAAE,CAAA;IACrC,IAAI,eAAe,GAAa,EAAE,CAAA;IAClC,IAAI,cAA8B,CAAA;IAClC,IAAI,iBAA2D,CAAA;IAC/D,IAAI,qBAAsC,CAAA;IAE1C,UAAU,CAAC,GAAG,EAAE;QACZ,MAAM,sBAAsB,GAAG,GAAG,EAAE;YAChC,MAAM,EAAE,GAAG,2BAA2B,GAAG,eAAe,CAAC,MAAM,CAAA;YAC/D,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAExB,OAAO,EAAE,CAAA;QACb,CAAC,CAAA;QACD,qBAAqB,GAAG,kBAAK;aACxB,IAAI,CAAC,qCAAoB,CAAC,SAAS,EAAE,mBAAmB,CAAC;aACzD,SAAS,CAAC,sBAAsB,CAAC,CAAA;QACtC,cAAc,GAAG,+BAAc,CAAC,WAAW,EAAE,CAAA;QAC7C,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACX,qBAAqB,CAAC,OAAO,EAAE,CAAA;QAC/B,+BAAc,CAAC,KAAK,EAAE,CAAA;QACtB,OAAO,CAAC,OAAO,EAAE,CAAA;QACjB,eAAe,GAAG,EAAE,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC7B,IAAI,QAAsB,CAAA;QAC1B,IAAI,MAAc,CAAA;QAClB,iFAAiF;QACjF,uGAAuG;QACvG,kDAAkD;QAClD,IAAI,OAAkD,CAAA;QAEtD,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,8EAA8E;YAC9E,OAAO,GAAG,IAAA,wBAAa,GAA4B,CAAA;YACnD,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,+BAAmB;gBAChC,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YAED,MAAM,GAAG,IAAA,gDAA0B,EAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;YAErD,sDAAsD;YACtD,QAAQ,GAAG,IAAI,sBAAY,EAAE,CAAA;YAE7B,qDAAqD;YACrD,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;YAEpE,uCAAuC;YACvC,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,QAAQ;iBACH,YAAY,CAAC,qBAAS,CAAC;iBACvB,YAAY,CAAC,gDAAoC,CAAC;iBAClD,YAAY,CAAC,iCAAqB,CAAC;iBACnC,YAAY,CAAC,oCAAwB,CAAC;iBACtC,YAAY,CAAC,iCAAqB,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,GAAG,EAAE;YACX,QAAQ,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,2BAAe,CAAC,CAAA;YAEzC,MAAM,kCAAkC,GAAG;gBACvC,WAAW,EAAE;oBACT,QAAQ,EAAE,qBAAS,CAAC,GAAG;oBACvB,mBAAmB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;oBAC/C,eAAe,EAAE,EAAE;oBACnB,gBAAgB,EAAE,iCAAqB;iBAC1C;gBACD,UAAU,EAAE,CAAC;aAChB,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,EAAE,kCAAkC,CAAC,CAAA;QACvG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,UAAU,GAAG,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG,iCAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC/C,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAClE,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEzD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;gBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,2BAAe,CAAC,CAAA;YAEzC,MAAM,kCAAkC,GAAG;gBACvC,WAAW,EAAE;oBACT,QAAQ,EAAE,qBAAS,CAAC,GAAG;oBACvB,mBAAmB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;oBAC/C,eAAe,EAAE,aAAa;oBAC9B,gBAAgB,EAAE,cAAc;iBACnC;gBACD,UAAU,EAAE,CAAC;aAChB,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,EAAE,kCAAkC,CAAC,CAAA;QACvG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACnD,MAAM,QAAQ,GAAG,iDAAY,CAAC,MAAM,CAAC,qBAAqB,EAAE,QAAQ,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAA;YAC1F,MAAM,UAAU,GAAG,IAAI,CAAA;YACvB,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;YAE/B,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE;gBACnC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;gBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YACD,MAAM,kBAAkB,GAAG,CAAC,WAAmB,EAAE,EAAE,CAC/C,WAAW,CAAC,MAAM,IAAI,8CAAwB,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACjF,MAAM,mBAAmB,GAAG,CAAC,YAAoB,EAAE,EAAE,CACjD,YAAY,CAAC,MAAM,IAAI,8CAAwB,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAErF,kBAAK,CAAC,MAAM,CAAC,UAAU,CACnB,OAAO,CAAC,mBAAmB,EAC3B,kBAAK,CAAC,KAAK,CAAC,SAAS,CAAC,6BAA6B,EAAE,kBAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CACxF,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,UAAU,CACnB,OAAO,CAAC,mBAAmB,EAC3B,kBAAK,CAAC,KAAK,CAAC,SAAS,CAAC,8BAA8B,EAAE,kBAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAC1F,CAAA;QACL,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;YACpF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,gDAAoC,CAAC,GAAG,EAAE;gBAC/D,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,2BAAe,CAAC,CAAA;YAEzC,MAAM,kCAAkC,GAAG;gBACvC,WAAW,EAAE;oBACT,QAAQ,EAAE,gDAAoC,CAAC,GAAG;oBAClD,mBAAmB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;oBAC/C,eAAe,EAAE,EAAE;oBACnB,gBAAgB,EAAE,iCAAqB;iBAC1C;gBACD,UAAU,EAAE,CAAC;aAChB,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,EAAE,kCAAkC,CAAC,CAAA;QACvG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,4BAAgB,CAAC,GAAG,EAAE;gBAC3C,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YACD,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAY,CAAC,CAAA;YAEtC,mCAAmC;YACnC,kBAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,iCAAqB,CAAC,GAAG,EAAE;gBAChD,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YACD,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAY,CAAC,CAAA;YAEtC,mCAAmC;YACnC,kBAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,oCAAwB,CAAC,GAAG,EAAE;gBACnD,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,2BAAe,CAAC,CAAA;YAEzC,MAAM,kCAAkC,GAAG;gBACvC,WAAW,EAAE;oBACT,QAAQ,EAAE,oCAAwB,CAAC,GAAG;oBACtC,mBAAmB,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE;oBAC5C,eAAe,EAAE,EAAE;oBACnB,gBAAgB,EAAE,iCAAqB;iBAC1C;gBACD,UAAU,EAAE,CAAC;aAChB,CAAA;YAED,yDAAyD;YACzD,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,EAAE,kCAAkC,CAAC,CAAA;QACvG,CAAC,CAAC,CAAA;QAEF,oBAAoB;QACpB,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;YAC9F,2FAA2F;YAC3F,MAAM,mBAAmB,GAAiB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,iCAAqB,EAAE,CAAC,CAAA;YACvG,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,mBAAmB;gBAChC,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAY,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2GAA2G,EAAE,KAAK,IAAI,EAAE;YACvH,MAAM,UAAU,GAAG,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG,iCAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC/C,iGAAiG;YACjG,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzD,qFAAqF;YACrF,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAElD,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzC,MAAM,OAAO,GAAG,iDAAY,CAAC,MAAM,CAAC,yBAAyB,EAAE,QAAQ,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAA;YAC7F,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YAE9B,MAAM,mBAAmB,GAAiB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;YAChG,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,mBAAmB;gBAChC,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YACD,4DAA4D;YAC5D,kGAAkG;YAClG,MAAM,eAAe,GAAG;gBACpB,SAAS,EAAE,+BAAmB;gBAC9B,KAAK,EAAE;oBACH;wBACI,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM;wBACrC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;wBACxC,KAAK,EAAE,SAAS;wBAChB,UAAU,EAAE,SAAS;qBACxB;iBACJ;aACJ,CAAA;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBAClC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;gBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;YAEzC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAChE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACvD,MAAM,kCAAkC,GAAG;gBACvC,WAAW,EAAE;oBACT,QAAQ,EAAE,OAAO,CAAC,GAAG;oBACrB,mBAAmB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;oBAC/C,eAAe,EAAE,WAAW;oBAC5B,gBAAgB,EAAE,YAAY;iBACjC;gBACD,UAAU,EAAE,CAAC;aAChB,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,EAAE,kCAAkC,CAAC,CAAA;QACvG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;YACvF,MAAM,UAAU,GAAG,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG,2CAA+B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE3D,MAAM,eAAe,GAAG,iDAAY,CAAC,MAAM,CACvC,yBAAyB,EACzB,QAAQ,EACR,CAAC,EACD,2CAA+B,CAClC,CAAA;YACD,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;YAEtC,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE;gBAC1C,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;gBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YACxE,MAAM,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC/D,MAAM,kCAAkC,GAAG;gBACvC,WAAW,EAAE;oBACT,QAAQ,EAAE,eAAe,CAAC,GAAG;oBAC7B,mBAAmB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;oBAC/C,eAAe,EAAE,mBAAmB;oBACpC,gBAAgB,EAAE,oBAAoB;iBACzC;gBACD,UAAU,EAAE,CAAC;aAChB,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,EAAE,kCAAkC,CAAC,CAAA;QACvG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8FAA8F,EAAE,KAAK,IAAI,EAAE;YAC1G,MAAM,mBAAmB,GAAiB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,4BAAgB,EAAE,CAAC,CAAA;YAClG,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,mBAAmB;gBAChC,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YACD,MAAM,eAAe,GAAG;gBACpB,SAAS,EAAE,+BAAmB;gBAC9B,KAAK,EAAE;oBACH;wBACI,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM;wBACrC,UAAU,EAAE,4BAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,yCAA6B,CAAC;wBACxE,KAAK,EAAE,SAAS;wBAChB,UAAU,EAAE,SAAS;qBACxB;iBACJ;aACJ,CAAA;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,iCAAqB,CAAC,GAAG,EAAE;gBAChD,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;YACnG,MAAM,mBAAmB,GAAiB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAA;YACvG,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,mBAAmB;gBAChC,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YACD,MAAM,eAAe,GAAG;gBACpB,SAAS,EAAE,+BAAmB;gBAC9B,KAAK,EAAE;oBACH;wBACI,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM;wBACrC,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO;wBAC1C,KAAK,EAAE,SAAS;wBAChB,UAAU,EAAE,SAAS;qBACxB;iBACJ;aACJ,CAAA;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YACxE,kBAAkB;YAClB,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAA;YAE3E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YACD,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAY,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,4DAA4D;QAC5D,wEAAwE;QACxE,mFAAmF;QACnF,wFAAwF;QACxF,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACzD,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACrE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,gCAAgC,EAAE,KAAK,EAAE,CAAC,CAC/D,CAAA;gBACD,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBAE5B,MAAM,CAAC,OAAO,CAAC,gCAAgC,KAAK,KAAK,CAAC,CAAA;YAC9D,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;gBACtF,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,gCAAgC,EAAE,KAAK,EAAE,CAAC,CAC/D,CAAA;gBACD,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBAC5B,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,gCAAgC,EAAE,IAAI,EAAE,CAAC,CAC9D,CAAA;gBACD,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAC,qBAAqB,EAAE,CAAA;gBAE9D,MAAM,CAAC,OAAO,CAAC,gCAAgC,KAAK,IAAI,CAAC,CAAA;YAC7D,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;gBACtE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;gBACpE,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBAE5B,MAAM,CAAC,OAAO,CAAC,gCAAgC,KAAK,KAAK,CAAC,CAAA;YAC9D,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC7C,IAAI,QAAsB,CAAA;QAC1B,IAAI,MAAc,CAAA;QAClB,iFAAiF;QACjF,uGAAuG;QACvG,kDAAkD;QAClD,IAAI,OAAkD,CAAA;QAEtD,UAAU,CAAC,GAAG,EAAE;YACZ,8EAA8E;YAC9E,OAAO,GAAG,IAAA,wBAAa,GAA4B,CAAA;YACnD,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,oCAAwB;gBACrC,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YACD,MAAM,GAAG,IAAA,gDAA0B,EAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;YAErD,sDAAsD;YACtD,QAAQ,GAAG,IAAI,sBAAY,EAAE,CAAA;QACjC,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,GAAG,EAAE;YACX,QAAQ,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC7E,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;YACpE,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAC,gCAAgC,CAClF;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,8CAAkC,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gGAAgG,EAAE,KAAK,IAAI,EAAE;YAC5G,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAA;YACrG,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAC,gCAAgC,CAClF;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,8CAAkC,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACpE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,oCAAoC,EAAE,IAAI,EAAE,CAAC,CAClE,CAAA;YACD,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAC,gCAAgC,CAClF;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,2CAA+B,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;YACzG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,oCAAoC,EAAE,KAAK,EAAE,CAAC,CACnE,CAAA;YACD,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAC,gCAAgC,CAClF;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,8CAAkC,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;YACzG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,oCAAoC,EAAE,IAAI,EAAE,CAAC,CAClE,CAAA;YACD,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,oCAAoC,EAAE,KAAK,EAAE,CAAC,CACnE,CAAA;YACD,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAC,qBAAqB,EAAE,CAAA;YAExF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,gCAAgC,CACnE;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,8CAAkC,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4FAA4F,EAAE,KAAK,IAAI,EAAE;YACxG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,oCAAoC,EAAE,KAAK,EAAE,CAAC,CACnE,CAAA;YACD,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,oCAAoC,EAAE,IAAI,EAAE,CAAC,CAClE,CAAA;YACD,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAC,qBAAqB,EAAE,CAAA;YAExF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,gCAAgC,CACnE;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,2CAA+B,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;YACtF,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,oCAAoC,EAAE,IAAI,EAAE,CAAC,CAClE,CAAA;YACD,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,MAAM,mBAAmB,GAAiB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,iCAAqB,EAAE,CAAC,CAAA;YACvG,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,mBAAmB;gBAChC,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAC,gCAAgC,CAClF;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAY,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;YACpG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,oCAAoC,EAAE,IAAI,EAAE,CAAC,CAClE,CAAA;YACD,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,MAAM,UAAU,GAAG,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG,iCAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC/C,iGAAiG;YACjG,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzD,qFAAqF;YACrF,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAElD,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzC,MAAM,OAAO,GAAG,iDAAY,CAAC,MAAM,CAAC,yBAAyB,EAAE,QAAQ,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAA;YAC7F,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YAE9B,MAAM,kCAAkC,GAAG;gBACvC,GAAG,8BAAkB;gBACrB,yBAAyB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,iCAAqB,CAAC,MAAM,EAAE;aAC7E,CAAA;YAED,MAAM,mBAAmB,GAAiB;gBACtC,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,kCAAkC,CAAC,EAAE;aACzG,CAAA;YACD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC/C,MAAM,eAAe,GAAG;gBACpB,SAAS,EAAE,+BAAmB;gBAC9B,KAAK,EAAE;oBACH;wBACI,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM;wBACrC,UAAU,EAAE,UAAU;wBACtB,KAAK,EAAE,SAAS;wBAChB,UAAU,EAAE;4BACR;gCACI,WAAW,EAAE,kCAAkC,CAAC,WAAW;gCAC3D,aAAa,EAAE,kCAAkC,CAAC,UAAU;gCAC5D,YAAY,EAAE,kCAAkC,CAAC,GAAG;gCACpD,QAAQ,EAAE;oCACN,cAAc,EAAE,kCAAkC,CAAC,yBAAyB,EAAE,KAAK;oCACnF,YAAY,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC;iCACtC;6BACJ;yBACJ;qBACJ;iBACJ;aACJ,CAAA;YACD,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,mBAAmB;gBAChC,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,gCAAgC,CAChF;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBAClC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;gBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;YACjG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,oCAAoC,EAAE,IAAI,EAAE,CAAC,CAClE,CAAA;YACD,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,MAAM,UAAU,GAAG,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG,iCAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC/C,iGAAiG;YACjG,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzD,qFAAqF;YACrF,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAElD,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzC,MAAM,OAAO,GAAG,iDAAY,CAAC,MAAM,CAAC,yBAAyB,EAAE,QAAQ,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAA;YAC7F,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YAE9B,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAE/C,gEAAgE;YAChE,MAAM,mCAAmC,GAAG;gBACxC,GAAG,8BAAkB;gBACrB,yBAAyB,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,MAAM,EAAE;aACtF,CAAA;YAED,MAAM,mBAAmB,GAAiB;gBACtC,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,mCAAmC,CAAC,EAAE;aAC1G,CAAA;YAED,MAAM,eAAe,GAAG;gBACpB,SAAS,EAAE,+BAAmB;gBAC9B,KAAK,EAAE;oBACH;wBACI,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM;wBACrC,UAAU,EAAE,UAAU;wBACtB,KAAK,EAAE,SAAS;wBAChB,UAAU,EAAE,SAAS;qBACxB;iBACJ;aACJ,CAAA;YACD,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,mBAAmB;gBAChC,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,gCAAgC,CAChF;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBAClC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;gBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACrC,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;gBACrG,MAAM,mCAAmC,GAAiB;oBACtD;wBACI,MAAM,EAAE,iBAAiB;wBACzB,OAAO,EAAE,+BAA+B;wBACxC,UAAU,EAAE,CAAC,8BAAkB,CAAC;qBACnC;iBACJ,CAAA;gBACD,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;oBACZ,WAAW,EAAE,mCAAmC;oBAChD,eAAe,EAAE,qCAAyB;iBAC7C,CAAC,CACL,CAAA;gBACD,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAC3C,OAAO,CAAC,OAAO,CAAC,EAAE,oCAAoC,EAAE,KAAK,EAAE,CAAC,CACnE,CAAA;gBACD,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBAE5B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAC,gCAAgC,CAClF;oBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;oBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;oBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;iBAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;gBAED,8BAA8B;gBAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAY,CAAC,CAAA;gBAEtC,6BAA6B;gBAC7B,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,EAAE,EAAE,SAAS,CAAC,CAAA;gBAC1D,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;gBAC1D,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;YAC7D,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,qBAAqB,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;QACxD,MAAM,iBAAiB,GAAG,iCAAqB,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAChE,MAAM,kBAAkB,GAAG,iCAAqB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAE9D,IAAI,QAAsB,CAAA;QAC1B,IAAI,MAAc,CAAA;QAClB,iFAAiF;QACjF,uGAAuG;QACvG,kDAAkD;QAClD,IAAI,OAAkD,CAAA;QAEtD,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,8EAA8E;YAC9E,OAAO,GAAG,IAAA,wBAAa,GAA4B,CAAA;YACnD,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,+BAAmB;gBAChC,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YAED,MAAM,GAAG,IAAA,gDAA0B,EAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;YAErD,sDAAsD;YACtD,QAAQ,GAAG,IAAI,sBAAY,EAAE,CAAA;YAE7B,qDAAqD;YACrD,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;YAEpE,uCAAuC;YACvC,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,GAAG,EAAE;YACX,QAAQ,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;YACvF,wGAAwG;YACxG,MAAM,qCAAqC,GAAG,iCAAqB,CAAC,SAAS,EAAE,CAAA;YAC/E,MAAM,SAAS,GAAG,iDAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,EAAE,qCAAqC,CAAC,CAAA;YAC5G,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;YAChC,MAAM,iBAAiB,GAAG,qCAAqC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAChF,MAAM,kBAAkB,GAAG,qCAAqC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;YAE9E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,qBAAqB;gBAC/B,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,SAAS,EAAE;aAClE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,2BAAe,CAAC,CAAA;YAEzC,MAAM,kCAAkC,GAAG;gBACvC,WAAW,EAAE;oBACT,QAAQ,EAAE,SAAS,CAAC,GAAG;oBACvB,mBAAmB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;oBAC/C,eAAe,EAAE,iBAAiB;oBAClC,gBAAgB,EAAE,kBAAkB;iBACvC;gBACD,UAAU,EAAE,CAAC;aAChB,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,mBAAmB,EAAE,kCAAkC,CAAC,CAAA;QACvG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;YACzF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,SAAS,EAAE;aAClE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,8BAA8B;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAY,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACnD,MAAM,cAAc,GAAG;YACnB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE;gBACT,QAAQ,EAAE,UAAU;gBACpB,mBAAmB,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;gBAC/C,eAAe,EAAE,iBAAiB;gBAClC,gBAAgB,EAAE,kBAAkB;aACvC;SACJ,CAAA;QAED,MAAM,WAAW,GAAgB;YAC7B,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YACxC,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,cAAc;SACjC,CAAA;QAED,MAAM,iBAAiB,GAAG;YACtB,SAAS,EAAE,4BAA4B;YACvC,uBAAuB,EAAE;gBACrB,eAAe,EAAE;oBACb,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,KAAK;oBACf,SAAS,EAAE,KAAK;iBACnB;aACJ;YACD,6BAA6B,EAAE,EAAE;YACjC,uBAAuB,EAAE,IAAI;SAChC,CAAA;QAED,IAAI,QAAsB,CAAA;QAC1B,IAAI,MAAc,CAAA;QAClB,iFAAiF;QACjF,uGAAuG;QACvG,kDAAkD;QAClD,IAAI,OAAkD,CAAA;QAEtD,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,8EAA8E;YAC9E,OAAO,GAAG,IAAA,wBAAa,GAA4B,CAAA;YAEnD,MAAM,GAAG,IAAA,gDAA0B,EAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;YAErD,sDAAsD;YACtD,QAAQ,GAAG,IAAI,sBAAY,EAAE,CAAA;YAE7B,uCAAuC;YACvC,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,GAAG,EAAE;YACX,QAAQ,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;YAC/F,MAAM,OAAO,GAAG,+BAAc,CAAC,WAAW,EAAE,CAAA;YAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;YAClD,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;YAChC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAErC,MAAM,QAAQ,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,CAAA;YACrE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;YAChG,MAAM,OAAO,GAAG,+BAAc,CAAC,WAAW,EAAE,CAAA;YAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;YAClD,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;YAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;YACnD,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;YACjC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YACrC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAEtC,MAAM,QAAQ,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,CAAA;YACrE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,OAAO,GAAG,+BAAc,CAAC,WAAW,EAAE,CAAA;YAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;YAClD,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;YAChC,MAAM,QAAQ,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,CAAA;YAErE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,uBAAuB,CAAC,CAAA;YACxF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,6BAA6B,CAAC,CAAA;YACpG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,uBAAuB,CAAC,CAAA;QAC5F,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,iBAAiB,GAAG;gBACtB,SAAS,EAAE,4BAA4B;gBACvC,uBAAuB,EAAE;oBACrB,eAAe,EAAE;wBACb,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,KAAK;wBACf,SAAS,EAAE,KAAK;qBACnB;iBACJ;aACJ,CAAA;YACD,MAAM,OAAO,GAAG,+BAAc,CAAC,WAAW,EAAE,CAAA;YAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;YAClD,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;YAChC,MAAM,QAAQ,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,CAAA;YAErE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,uBAAuB,CAAC,CAAA;YACxF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAA;YAC9D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACvB,MAAM,yBAAyB,GAAoB;YAC/C,SAAS,EAAE,kBAAkB;YAC7B,sBAAsB,EAAE,kBAAkB;SAC7C,CAAA;QACD,MAAM,iBAAiB,GAAG;YACtB,SAAS,EAAE,4BAA4B;YACvC,uBAAuB,EAAE;gBACrB,eAAe,EAAE;oBACb,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,KAAK;oBACf,SAAS,EAAE,KAAK;iBACnB;aACJ;YACD,6BAA6B,EAAE,EAAE;YACjC,uBAAuB,EAAE,IAAI;SAChC,CAAA;QAED,IAAI,QAAsB,CAAA;QAC1B,IAAI,MAAc,CAAA;QAClB,iFAAiF;QACjF,uGAAuG;QACvG,kDAAkD;QAClD,IAAI,OAAkD,CAAA;QACtD,IAAI,KAA4B,CAAA;QAEhC,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,KAAK,GAAG,kBAAK,CAAC,aAAa,CAAC;gBACxB,GAAG,EAAE,aAAa;aACrB,CAAC,CAAA;YAEF,8EAA8E;YAC9E,OAAO,GAAG,IAAA,wBAAa,GAA4B,CAAA;YACnD,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,+BAAmB;gBAChC,eAAe,EAAE,yBAAyB;aAC7C,CAAC,CACL,CAAA;YAED,MAAM,GAAG,IAAA,gDAA0B,EAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;YAErD,sDAAsD;YACtD,QAAQ,GAAG,IAAI,sBAAY,EAAE,CAAA;YAE7B,qDAAqD;YACrD,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;YAEpE,uCAAuC;YACvC,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,KAAK,IAAI,EAAE;YACjB,KAAK,CAAC,OAAO,EAAE,CAAA;YACf,QAAQ,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;YACpF,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,+BAA+B,GAAgB;gBACjD,IAAI,EAAE,iCAAiC;gBACvC,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE;oBACF,sBAAsB,EAAE,kBAAkB;oBAC1C,sBAAsB,EAAE,kBAAkB;oBAC1C,gCAAgC,EAAE,CAAC;oBACnC,2BAA2B,EAAE,MAAM;oBACnC,wBAAwB,EAAE,UAAU;oBACpC,iCAAiC,EAAE,SAAS;oBAC5C,QAAQ,EAAE,CAAC;oBACX,uBAAuB,EAAE,CAAC;oBAC1B,yBAAyB,EAAE,CAAC;oBAC5B,qBAAqB,EAAE,QAAQ;oBAC/B,kBAAkB,EAAE,SAAS;iBAChC;aACJ,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAA;QACtG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sIAAsI,EAAE,KAAK,IAAI,EAAE;YAClJ,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClE,MAAM,oBAAoB,GAAG;gBACzB,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE;gBACtD,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE;gBACtD,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE;aACzD,CAAA;YACD,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,oBAAoB;gBACjC,eAAe,EAAE,yBAAyB;aAC7C,CAAC,CACL,CAAA;YAED,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,+BAA+B,GAAgB;gBACjD,IAAI,EAAE,iCAAiC;gBACvC,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE;oBACF,sBAAsB,EAAE,kBAAkB;oBAC1C,sBAAsB,EAAE,kBAAkB;oBAC1C,gCAAgC,EAAE,CAAC;oBACnC,2BAA2B,EAAE,OAAO;oBACpC,wBAAwB,EAAE,UAAU;oBACpC,iCAAiC,EAAE,SAAS;oBAC5C,QAAQ,EAAE,CAAC;oBACX,uBAAuB,EAAE,CAAC;oBAC1B,yBAAyB,EAAE,CAAC;oBAC5B,qBAAqB,EAAE,QAAQ;oBAC/B,kBAAkB,EAAE,SAAS;iBAChC;aACJ,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAA;QACtG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;YAC/C,KAAK,CAAC,IAAI,GAAG,WAAW,CAAA;YACxB,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YAE1D,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,+BAA+B,GAAgB;gBACjD,IAAI,EAAE,iCAAiC;gBACvC,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE;oBACF,sBAAsB,EAAE,SAAS;oBACjC,sBAAsB,EAAE,SAAS;oBACjC,gCAAgC,EAAE,CAAC,CAAC;oBACpC,wBAAwB,EAAE,UAAU;oBACpC,iCAAiC,EAAE,SAAS;oBAC5C,MAAM,EAAE,+CAA+C;oBACvD,QAAQ,EAAE,CAAC;oBACX,uBAAuB,EAAE,CAAC;oBAC1B,yBAAyB,EAAE,CAAC;oBAC5B,qBAAqB,EAAE,QAAQ;oBAC/B,kBAAkB,EAAE,SAAS;iBAChC;gBACD,SAAS,EAAE;oBACP,MAAM,EAAE,WAAW;oBACnB,SAAS,EAAE,SAAS;oBACpB,cAAc,EAAE,SAAS;iBAC5B;aACJ,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAA;QACtG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;YACrF,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAA;YAE3E,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,+BAA+B,GAAgB;gBACjD,IAAI,EAAE,iCAAiC;gBACvC,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE;oBACF,sBAAsB,EAAE,SAAS;oBACjC,sBAAsB,EAAE,SAAS;oBACjC,gCAAgC,EAAE,CAAC,CAAC;oBACpC,wBAAwB,EAAE,UAAU;oBACpC,iCAAiC,EAAE,SAAS;oBAC5C,MAAM,EAAE,kDAAkD;oBAC1D,QAAQ,EAAE,CAAC;oBACX,uBAAuB,EAAE,CAAC;oBAC1B,yBAAyB,EAAE,CAAC;oBAC5B,qBAAqB,EAAE,QAAQ;oBAC/B,kBAAkB,EAAE,SAAS;iBAChC;gBACD,SAAS,EAAE;oBACP,MAAM,EAAE,cAAc;oBACtB,SAAS,EAAE,SAAS;oBACpB,cAAc,EAAE,SAAS;iBAC5B;aACJ,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAA;QACtG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mHAAmH,EAAE,KAAK,IAAI,EAAE;YAC/H,MAAM,KAAK,GAAa,IAAI,KAAK,CAAC,YAAY,CAAa,CAAA;YAC3D,KAAK,CAAC,IAAI,GAAG,cAAc,CAAA;YAC3B,KAAK,CAAC,IAAI,GAAG,qBAAqB,CAAA;YAClC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAA;YACtB,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;YACvB,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAA;YAErC,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAEhB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAChC,CAAC,CAAC,CAAA;YAEF,MAAM,qBAAqB,GAAG,QAAQ,CAAC,gCAAgC,CACnE;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YACD,MAAM,qBAAqB,CAAA;YAE3B,MAAM,+BAA+B,GAAgB;gBACjD,IAAI,EAAE,iCAAiC;gBACvC,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE;oBACF,sBAAsB,EAAE,mBAAmB;oBAC3C,sBAAsB,EAAE,SAAS;oBACjC,gCAAgC,EAAE,CAAC,CAAC;oBACpC,wBAAwB,EAAE,UAAU;oBACpC,iCAAiC,EAAE,SAAS;oBAC5C,MAAM,EAAE,kDAAkD;oBAC1D,QAAQ,EAAE,IAAI;oBACd,uBAAuB,EAAE,CAAC;oBAC1B,yBAAyB,EAAE,CAAC;oBAC5B,qBAAqB,EAAE,QAAQ;oBAC/B,kBAAkB,EAAE,SAAS;iBAChC;gBACD,SAAS,EAAE;oBACP,MAAM,EAAE,cAAc;oBACtB,SAAS,EAAE,qBAAqB;oBAChC,cAAc,EAAE,GAAG;iBACtB;aACJ,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAA;QACtG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,QAAQ,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,CAAA;YAErE,MAAM,8BAA8B,GAAgB;gBAChD,IAAI,EAAE,gCAAgC;gBACtC,IAAI,EAAE;oBACF,sBAAsB,EAAE,yBAAyB,CAAC,SAAS;oBAC3D,sBAAsB,EAAE,yBAAyB,CAAC,sBAAsB;oBACxE,2BAA2B,EAAE,MAAM;oBACnC,wBAAwB,EAAE,UAAU;oBACpC,QAAQ,EAAE,EAAE;oBACZ,qBAAqB,EAAE,QAAQ;oBAC/B,kBAAkB,EAAE,SAAS;iBAChC;aACJ,CAAA;YACD,kBAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAA;QACjG,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;YACnG,MAAM,+BAA+B,GAAG;gBACpC,GAAG,iBAAiB;gBACpB,6BAA6B,EAAE,SAAS;aAC3C,CAAA;YACD,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,QAAQ,CAAC,mCAAmC,CAAC,+BAA+B,CAAC,CAAA;YAEnF,kBAAK,CAAC,MAAM,CAAC,eAAe,CACxB,QAAQ,CAAC,SAAS,CAAC,UAAU,EAC7B,kBAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAC5D,CAAA;QACL,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;YAC1D,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;gBACxF,QAAQ,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,OAAO,CAAC;oBACvD,GAAG,EAAE;wBACD,QAAQ,EAAE,qBAAqB;qBAClC;iBACJ,CAAC,CAAA;gBAEF,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;oBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;oBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;oBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;iBAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;gBAED,MAAM,CAAC,KAAK,CACR,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EACxE,qBAAqB,CACxB,CAAA;YACL,CAAC,CAAC,CAAA;YAEF,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;gBAChG,QAAQ,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBAErE,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;oBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;oBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;oBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;iBAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;gBAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAA;YACrG,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAChD,MAAM,qBAAqB,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;QAExD,IAAI,QAAsB,CAAA;QAC1B,IAAI,MAAc,CAAA;QAClB,iFAAiF;QACjF,uGAAuG;QACvG,kDAAkD;QAClD,IAAI,OAAkD,CAAA;QACtD,IAAI,KAA4B,CAAA;QAEhC,UAAU,CAAC,KAAK,IAAI,EAAE;YAClB,KAAK,GAAG,kBAAK,CAAC,aAAa,CAAC;gBACxB,GAAG,EAAE,aAAa;aACrB,CAAC,CAAA;YACF,8EAA8E;YAC9E,OAAO,GAAG,IAAA,wBAAa,GAA4B,CAAA;YACnD,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,+BAAmB;gBAChC,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YAED,MAAM,GAAG,IAAA,gDAA0B,EAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;YAErD,sDAAsD;YACtD,QAAQ,GAAG,IAAI,sBAAY,EAAE,CAAA;YAE7B,qDAAqD;YACrD,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;YAEpE,uCAAuC;YACvC,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAE5B,QAAQ,CAAC,YAAY,CAAC,qBAAS,CAAC,CAAC,YAAY,CAAC,gDAAoC,CAAC,CAAA;QACvF,CAAC,CAAC,CAAA;QAEF,SAAS,CAAC,GAAG,EAAE;YACX,KAAK,CAAC,OAAO,EAAE,CAAA;YACf,QAAQ,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC5E,IAAI,aAAa,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAA;YACtD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;YAEtC,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,qBAAqB;gBAC/B,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,SAAS,EAAE;aAClE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,iCAAiC;YACjC,aAAa,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAA;YAElD,MAAM,mBAAmB,GAAG;gBACxB,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;gBACtB,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBACrE,eAAe,EAAE,qCAAyB;gBAC1C,sBAAsB,EAAE,qCAAyB,CAAC,sBAAsB;gBACxE,yBAAyB,EAAE,CAAC;aAC/B,CAAA;YACD,MAAM,CAAC,aAAa,CAAC,CAAA;YACrB,kBAAK,CAAC,MAAM,CAAC,KAAK,CACd;gBACI,EAAE,EAAE,aAAa,CAAC,EAAE;gBACpB,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,WAAW,EAAE,aAAa,CAAC,WAAW;gBACtC,eAAe,EAAE,aAAa,CAAC,eAAe;gBAC9C,sBAAsB,EAAE,aAAa,CAAC,sBAAsB;gBAC5D,yBAAyB,EAAE,aAAa,CAAC,yBAAyB;aACrE,EACD,mBAAmB,CACtB,CAAA;QACL,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kHAAkH,EAAE,KAAK,IAAI,EAAE;YAC9H,MAAM,uBAAuB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,QAAQ,CAAC,gCAAgC,CACrC;oBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;oBACpC,QAAQ,EAAE,qBAAqB;oBAC/B,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,SAAS,EAAE;iBAClE,EACD,yCAAiB,CAAC,IAAI,CACzB;gBACD,QAAQ,CAAC,gCAAgC,CACrC;oBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;oBACpC,QAAQ,EAAE,qBAAqB;oBAC/B,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,SAAS,EAAE;iBAClE,EACD,yCAAiB,CAAC,IAAI,CACzB;gBACD,QAAQ,CAAC,gCAAgC,CACrC;oBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;oBACpC,QAAQ,EAAE,qBAAqB;oBAC/B,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,SAAS,EAAE;iBAClE,EACD,yCAAiB,CAAC,IAAI,CACzB;aACJ,CAAC,CAAA;YAEF,4EAA4E;YAC5E,MAAM,6BAA6B,GAAG;gBAClC,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC5B,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC5B,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,2BAAe,CAAC,KAAK,EAAE,EAAE,oBAAoB;aACxF,CAAA;YACD,iDAAiD;YACjD,MAAM,CAAC,SAAS,CAAC,uBAAuB,EAAE,6BAA6B,CAAC,CAAA;YAExE,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;YAE1D,iCAAiC;YACjC,MAAM,aAAa,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAA;YAExD,0BAA0B;YAC1B,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YAEvC,qDAAqD;YACrD,MAAM,mBAAmB,GAAG;gBACxB,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;gBACtB,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;aACxE,CAAA;YACD,MAAM,CAAC,aAAa,CAAC,CAAA;YACrB,kBAAK,CAAC,MAAM,CAAC,KAAK,CACd;gBACI,EAAE,EAAE,aAAa,CAAC,EAAE;gBACpB,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,WAAW,EAAE,aAAa,CAAC,WAAW;aACzC,EACD,mBAAmB,CACtB,CAAA;QACL,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YACzE,gDAAgD;YAChD,MAAM,OAAO,CAAC,GAAG,CAAC;gBACd,QAAQ,CAAC,gCAAgC,CACrC;oBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;oBACpC,QAAQ,EAAE,qBAAqB;oBAC/B,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,SAAS,EAAE;iBAClE,EACD,yCAAiB,CAAC,IAAI,CACzB;gBACD,QAAQ,CAAC,gCAAgC,CACrC;oBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;oBACpC,QAAQ,EAAE,qBAAqB;oBAC/B,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,SAAS,EAAE;iBAClE,EACD,yCAAiB,CAAC,IAAI,CACzB;gBACD,QAAQ,CAAC,gCAAgC,CACrC;oBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;oBACpC,QAAQ,EAAE,qBAAqB;oBAC/B,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,SAAS,EAAE;iBAClE,EACD,yCAAiB,CAAC,IAAI,CACzB;aACJ,CAAC,CAAA;YAEF,iCAAiC;YACjC,MAAM,kBAAkB,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAA;YAE7D,2DAA2D;YAC3D,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,qBAAqB;gBAC/B,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,SAAS,EAAE;aAClE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;YAC1D,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YAEvD,MAAM,aAAa,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAA;YAExD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAA;YAC9D,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,cAAc,CAAC,iBAAiB,EAAE,CAAC,CAAA;YAE/D,eAAe;YACf,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,EAAE,4BAA4B,CAAC,CAAA;QACtE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;YACrF,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,EAAE;gBACf,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YAED,MAAM,aAAa,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAA;YACxD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;YAEtC,MAAM,QAAQ,CAAC,gCAAgC,CAC3C;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,qBAAqB;gBAC/B,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,SAAS,EAAE;aAClE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,iCAAiC;YACjC,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAA;YACzD,MAAM,CAAC,cAAc,CAAC,CAAA;YACtB,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;YAC7C,kBAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;QACtF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,YAAY,GAAG,mDAA2B,CAAC,OAAO,CAAA;YAExD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,sBAAsB;gBACtB,OAAO,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE;aACzC,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,2BAAe,CAAC,CAAA;YACzC,MAAM,YAAY,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAA;YAEtD,0BAA0B;YAC1B,MAAM,CAAC,YAAY,CAAC,CAAA;YACpB,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,YAAY,CAAC,CAAA;YAC9D,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAE1C,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAChE;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,qBAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE;aACzC,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YACD,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,GAAG,2BAAe,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACrF,kBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kGAAkG,EAAE,KAAK,IAAI,EAAE;YAC9G,2FAA2F;YAC3F,8GAA8G;YAC9G,gEAAgE;YAChE,MAAM,qCAAqC,GAAG,iCAAqB,CAAC,SAAS,EAAE,CAAA;YAC/E,MAAM,SAAS,GAAG,iDAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,EAAE,qCAAqC,CAAC,CAAA;YAC5G,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;YAChC,MAAM,mBAAmB,GAAiB;gBACtC,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,qCAAqC,EAAE;aAC9E,CAAA;YACD,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAC/B,OAAO,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,mBAAmB;gBAChC,eAAe,EAAE,qCAAyB;aAC7C,CAAC,CACL,CAAA;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAC1D;gBACI,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE;gBACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBACnC,OAAO,EAAE,EAAE,WAAW,EAAE,mDAA2B,CAAC,OAAO,EAAE;aAChE,EACD,yCAAiB,CAAC,IAAI,CACzB,CAAA;YACD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAY,CAAC,CAAA;YAEtC,MAAM,OAAO,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAA;YAElD,MAAM,CAAC,OAAO,CAAC,CAAA;YACf,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAC/B,kBAAK,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { CredentialsProvider } from '@aws/language-server-runtimes/out/features';
|
|
2
|
+
import { AWSError } from 'aws-sdk';
|
|
3
|
+
import { PromiseResult } from 'aws-sdk/lib/request';
|
|
4
|
+
export interface Suggestion extends CodeWhispererTokenClient.Completion, CodeWhispererSigv4Client.Recommendation {
|
|
5
|
+
itemId: string;
|
|
6
|
+
}
|
|
7
|
+
export interface GenerateSuggestionsRequest extends CodeWhispererTokenClient.GenerateCompletionsRequest, CodeWhispererSigv4Client.GenerateRecommendationsRequest {
|
|
8
|
+
maxResults: number;
|
|
9
|
+
}
|
|
10
|
+
export type FileContext = GenerateSuggestionsRequest['fileContext'];
|
|
11
|
+
export interface ResponseContext {
|
|
12
|
+
requestId: string;
|
|
13
|
+
codewhispererSessionId: string;
|
|
14
|
+
nextToken?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface GenerateSuggestionsResponse {
|
|
17
|
+
suggestions: Suggestion[];
|
|
18
|
+
responseContext: ResponseContext;
|
|
19
|
+
}
|
|
20
|
+
import CodeWhispererSigv4Client = require('../client/sigv4/codewhisperersigv4client');
|
|
21
|
+
import CodeWhispererTokenClient = require('../client/token/codewhispererbearertokenclient');
|
|
22
|
+
export declare abstract class CodeWhispererServiceBase {
|
|
23
|
+
shareCodeWhispererContentWithAWS: boolean;
|
|
24
|
+
abstract client: CodeWhispererSigv4Client | CodeWhispererTokenClient;
|
|
25
|
+
abstract generateSuggestions(request: GenerateSuggestionsRequest): Promise<GenerateSuggestionsResponse>;
|
|
26
|
+
}
|
|
27
|
+
export declare class CodeWhispererServiceIAM extends CodeWhispererServiceBase {
|
|
28
|
+
client: CodeWhispererSigv4Client;
|
|
29
|
+
private readonly codeWhispererRegion;
|
|
30
|
+
private readonly codeWhispererEndpoint;
|
|
31
|
+
constructor(credentialsProvider: CredentialsProvider);
|
|
32
|
+
generateSuggestions(request: GenerateSuggestionsRequest): Promise<GenerateSuggestionsResponse>;
|
|
33
|
+
generateItemId: () => string;
|
|
34
|
+
}
|
|
35
|
+
export declare class CodeWhispererServiceToken extends CodeWhispererServiceBase {
|
|
36
|
+
client: CodeWhispererTokenClient;
|
|
37
|
+
private readonly codeWhispererRegion;
|
|
38
|
+
private readonly codeWhispererEndpoint;
|
|
39
|
+
constructor(credentialsProvider: CredentialsProvider, additionalAwsConfig: any);
|
|
40
|
+
generateSuggestions(request: GenerateSuggestionsRequest): Promise<GenerateSuggestionsResponse>;
|
|
41
|
+
codeModernizerCreateUploadUrl(request: CodeWhispererTokenClient.CreateUploadUrlRequest): Promise<CodeWhispererTokenClient.CreateUploadUrlResponse>;
|
|
42
|
+
/**
|
|
43
|
+
* @description Use this function to start the transformation job.
|
|
44
|
+
* @param request
|
|
45
|
+
* @returns transformationJobId - String id for the Job
|
|
46
|
+
*/
|
|
47
|
+
codeModernizerStartCodeTransformation(request: CodeWhispererTokenClient.StartTransformationRequest): Promise<PromiseResult<CodeWhispererTokenClient.StartTransformationResponse, AWSError>>;
|
|
48
|
+
/**
|
|
49
|
+
* @description Use this function to stop the transformation job.
|
|
50
|
+
* @param request
|
|
51
|
+
* @returns transformationJobId - String id for the Job
|
|
52
|
+
*/
|
|
53
|
+
codeModernizerStopCodeTransformation(request: CodeWhispererTokenClient.StopTransformationRequest): Promise<PromiseResult<CodeWhispererTokenClient.StopTransformationResponse, AWSError>>;
|
|
54
|
+
/**
|
|
55
|
+
* @description Use this function to get the status of the code transformation. We should
|
|
56
|
+
* be polling this function periodically to get updated results. When this function
|
|
57
|
+
* returns COMPLETED we know the transformation is done.
|
|
58
|
+
*/
|
|
59
|
+
codeModernizerGetCodeTransformation(request: CodeWhispererTokenClient.GetTransformationRequest): Promise<PromiseResult<CodeWhispererTokenClient.GetTransformationResponse, AWSError>>;
|
|
60
|
+
/**
|
|
61
|
+
* @description After starting a transformation use this function to display the LLM
|
|
62
|
+
* transformation plan to the user.
|
|
63
|
+
* @params tranformationJobId - String id returned from StartCodeTransformationResponse
|
|
64
|
+
*/
|
|
65
|
+
codeModernizerGetCodeTransformationPlan(request: CodeWhispererTokenClient.GetTransformationPlanRequest): Promise<PromiseResult<CodeWhispererTokenClient.GetTransformationPlanResponse, AWSError>>;
|
|
66
|
+
/**
|
|
67
|
+
* @description get a pre-signed url to upload source code into S3 bucket
|
|
68
|
+
*/
|
|
69
|
+
createUploadUrl(request: CodeWhispererTokenClient.CreateUploadUrlRequest): Promise<PromiseResult<CodeWhispererTokenClient.CreateUploadUrlResponse, AWSError>>;
|
|
70
|
+
/**
|
|
71
|
+
* @description Once source code uploaded to S3, send a request to run security scan on uploaded source code.
|
|
72
|
+
*/
|
|
73
|
+
startCodeAnalysis(request: CodeWhispererTokenClient.StartCodeAnalysisRequest): Promise<PromiseResult<CodeWhispererTokenClient.StartCodeAnalysisResponse, AWSError>>;
|
|
74
|
+
/**
|
|
75
|
+
* @description Send a request to get the code scan status detail.
|
|
76
|
+
*/
|
|
77
|
+
getCodeAnalysis(request: CodeWhispererTokenClient.GetCodeAnalysisRequest): Promise<PromiseResult<CodeWhispererTokenClient.GetCodeAnalysisResponse, AWSError>>;
|
|
78
|
+
/**
|
|
79
|
+
* @description Once scan completed successfully, send a request to get list of all the findings for the given scan.
|
|
80
|
+
*/
|
|
81
|
+
listCodeAnalysisFindings(request: CodeWhispererTokenClient.ListCodeAnalysisFindingsRequest): Promise<PromiseResult<CodeWhispererTokenClient.ListCodeAnalysisFindingsResponse, AWSError>>;
|
|
82
|
+
updateAwsConfiguration: (awsConfig: any) => void;
|
|
83
|
+
generateItemId: () => string;
|
|
84
|
+
}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CodeWhispererServiceToken = exports.CodeWhispererServiceIAM = exports.CodeWhispererServiceBase = void 0;
|
|
4
|
+
const aws_sdk_1 = require("aws-sdk");
|
|
5
|
+
const uuid_1 = require("uuid");
|
|
6
|
+
const codewhisperer_1 = require("../client/sigv4/codewhisperer");
|
|
7
|
+
const codewhisperer_2 = require("../client/token/codewhisperer");
|
|
8
|
+
const AWS = require("aws-sdk");
|
|
9
|
+
// Right now the only difference between the token client and the IAM client for codewhsiperer is the difference in function name
|
|
10
|
+
// This abstract class can grow in the future to account for any additional changes across the clients
|
|
11
|
+
class CodeWhispererServiceBase {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.shareCodeWhispererContentWithAWS = false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.CodeWhispererServiceBase = CodeWhispererServiceBase;
|
|
17
|
+
class CodeWhispererServiceIAM extends CodeWhispererServiceBase {
|
|
18
|
+
constructor(credentialsProvider) {
|
|
19
|
+
super();
|
|
20
|
+
this.codeWhispererRegion = 'us-east-1';
|
|
21
|
+
this.codeWhispererEndpoint = 'https://codewhisperer.us-east-1.amazonaws.com/';
|
|
22
|
+
this.generateItemId = () => (0, uuid_1.v4)();
|
|
23
|
+
const options = {
|
|
24
|
+
region: this.codeWhispererRegion,
|
|
25
|
+
endpoint: this.codeWhispererEndpoint,
|
|
26
|
+
credentialProvider: new aws_sdk_1.CredentialProviderChain([
|
|
27
|
+
() => credentialsProvider.getCredentials('iam'),
|
|
28
|
+
]),
|
|
29
|
+
onRequestSetup: [
|
|
30
|
+
req => {
|
|
31
|
+
req.on('build', ({ httpRequest }) => {
|
|
32
|
+
httpRequest.headers['x-amzn-codewhisperer-optout'] = `${!this.shareCodeWhispererContentWithAWS}`;
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
};
|
|
37
|
+
this.client = (0, codewhisperer_1.createCodeWhispererSigv4Client)(options);
|
|
38
|
+
}
|
|
39
|
+
async generateSuggestions(request) {
|
|
40
|
+
// add cancellation check
|
|
41
|
+
// add error check
|
|
42
|
+
const response = await this.client.generateRecommendations(request).promise();
|
|
43
|
+
const responseContext = {
|
|
44
|
+
requestId: response?.$response?.requestId,
|
|
45
|
+
codewhispererSessionId: response?.$response?.httpResponse?.headers['x-amzn-sessionid'],
|
|
46
|
+
nextToken: response.nextToken,
|
|
47
|
+
};
|
|
48
|
+
for (const recommendation of response?.recommendations ?? []) {
|
|
49
|
+
Object.assign(recommendation, { itemId: this.generateItemId() });
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
suggestions: response.recommendations,
|
|
53
|
+
responseContext,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.CodeWhispererServiceIAM = CodeWhispererServiceIAM;
|
|
58
|
+
class CodeWhispererServiceToken extends CodeWhispererServiceBase {
|
|
59
|
+
constructor(credentialsProvider, additionalAwsConfig) {
|
|
60
|
+
super();
|
|
61
|
+
this.codeWhispererRegion = 'us-east-1';
|
|
62
|
+
this.codeWhispererEndpoint = 'https://codewhisperer.us-east-1.amazonaws.com/';
|
|
63
|
+
this.updateAwsConfiguration = (awsConfig) => {
|
|
64
|
+
if (awsConfig.proxy) {
|
|
65
|
+
AWS.config.update({
|
|
66
|
+
httpOptions: { agent: awsConfig.proxy },
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
this.generateItemId = () => (0, uuid_1.v4)();
|
|
71
|
+
this.updateAwsConfiguration(additionalAwsConfig);
|
|
72
|
+
const options = {
|
|
73
|
+
region: this.codeWhispererRegion,
|
|
74
|
+
endpoint: this.codeWhispererEndpoint,
|
|
75
|
+
onRequestSetup: [
|
|
76
|
+
req => {
|
|
77
|
+
req.on('build', ({ httpRequest }) => {
|
|
78
|
+
const creds = credentialsProvider.getCredentials('bearer');
|
|
79
|
+
if (!creds?.token) {
|
|
80
|
+
throw new Error('Authorization failed, bearer token is not set');
|
|
81
|
+
}
|
|
82
|
+
httpRequest.headers['Authorization'] = `Bearer ${creds.token}`;
|
|
83
|
+
httpRequest.headers['x-amzn-codewhisperer-optout'] = `${!this.shareCodeWhispererContentWithAWS}`;
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
};
|
|
88
|
+
this.client = (0, codewhisperer_2.createCodeWhispererTokenClient)(options);
|
|
89
|
+
}
|
|
90
|
+
async generateSuggestions(request) {
|
|
91
|
+
// add cancellation check
|
|
92
|
+
// add error check
|
|
93
|
+
const response = await this.client.generateCompletions(request).promise();
|
|
94
|
+
const responseContext = {
|
|
95
|
+
requestId: response?.$response?.requestId,
|
|
96
|
+
codewhispererSessionId: response?.$response?.httpResponse?.headers['x-amzn-sessionid'],
|
|
97
|
+
nextToken: response.nextToken,
|
|
98
|
+
};
|
|
99
|
+
for (const recommendation of response?.completions ?? []) {
|
|
100
|
+
Object.assign(recommendation, { itemId: this.generateItemId() });
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
suggestions: response.completions,
|
|
104
|
+
responseContext,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
async codeModernizerCreateUploadUrl(request) {
|
|
108
|
+
return this.client.createUploadUrl(request).promise();
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* @description Use this function to start the transformation job.
|
|
112
|
+
* @param request
|
|
113
|
+
* @returns transformationJobId - String id for the Job
|
|
114
|
+
*/
|
|
115
|
+
async codeModernizerStartCodeTransformation(request) {
|
|
116
|
+
return await this.client.startTransformation(request).promise();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* @description Use this function to stop the transformation job.
|
|
120
|
+
* @param request
|
|
121
|
+
* @returns transformationJobId - String id for the Job
|
|
122
|
+
*/
|
|
123
|
+
async codeModernizerStopCodeTransformation(request) {
|
|
124
|
+
return await this.client.stopTransformation(request).promise();
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* @description Use this function to get the status of the code transformation. We should
|
|
128
|
+
* be polling this function periodically to get updated results. When this function
|
|
129
|
+
* returns COMPLETED we know the transformation is done.
|
|
130
|
+
*/
|
|
131
|
+
async codeModernizerGetCodeTransformation(request) {
|
|
132
|
+
return await this.client.getTransformation(request).promise();
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* @description After starting a transformation use this function to display the LLM
|
|
136
|
+
* transformation plan to the user.
|
|
137
|
+
* @params tranformationJobId - String id returned from StartCodeTransformationResponse
|
|
138
|
+
*/
|
|
139
|
+
async codeModernizerGetCodeTransformationPlan(request) {
|
|
140
|
+
return this.client.getTransformationPlan(request).promise();
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* @description get a pre-signed url to upload source code into S3 bucket
|
|
144
|
+
*/
|
|
145
|
+
async createUploadUrl(request) {
|
|
146
|
+
return this.client.createUploadUrl(request).promise();
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* @description Once source code uploaded to S3, send a request to run security scan on uploaded source code.
|
|
150
|
+
*/
|
|
151
|
+
async startCodeAnalysis(request) {
|
|
152
|
+
return this.client.startCodeAnalysis(request).promise();
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* @description Send a request to get the code scan status detail.
|
|
156
|
+
*/
|
|
157
|
+
async getCodeAnalysis(request) {
|
|
158
|
+
return this.client.getCodeAnalysis(request).promise();
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* @description Once scan completed successfully, send a request to get list of all the findings for the given scan.
|
|
162
|
+
*/
|
|
163
|
+
async listCodeAnalysisFindings(request) {
|
|
164
|
+
return this.client.listCodeAnalysisFindings(request).promise();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
exports.CodeWhispererServiceToken = CodeWhispererServiceToken;
|
|
168
|
+
//# sourceMappingURL=codeWhispererService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeWhispererService.js","sourceRoot":"","sources":["../../src/language-server/codeWhispererService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sleep = exports.asyncCallWithTimeout = void 0;
|
|
4
|
+
function asyncCallWithTimeout(asyncPromise, message, timeLimit) {
|
|
5
|
+
let timeoutHandle;
|
|
6
|
+
const timeoutPromise = new Promise((_resolve, reject) => {
|
|
7
|
+
timeoutHandle = setTimeout(() => reject(new Error(message)), timeLimit);
|
|
8
|
+
});
|
|
9
|
+
return Promise.race([asyncPromise, timeoutPromise]).then(result => {
|
|
10
|
+
clearTimeout(timeoutHandle);
|
|
11
|
+
return result;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
exports.asyncCallWithTimeout = asyncCallWithTimeout;
|
|
15
|
+
// Todo: duplicate function. remove it when other PRs are merged
|
|
16
|
+
function sleep(duration = 0) {
|
|
17
|
+
return new Promise(r => setTimeout(r, Math.max(duration, 0)));
|
|
18
|
+
}
|
|
19
|
+
exports.sleep = sleep;
|
|
20
|
+
//# sourceMappingURL=commonUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commonUtil.js","sourceRoot":"","sources":["../../../src/language-server/dependencyGraph/commonUtil.ts"],"names":[],"mappings":";;;AAAA,SAAgB,oBAAoB,CAAI,YAAwB,EAAE,OAAe,EAAE,SAAiB;IAChG,IAAI,aAA6B,CAAA;IACjC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QACpD,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IAC3E,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QAC9D,YAAY,CAAC,aAAa,CAAC,CAAA;QAC3B,OAAO,MAAW,CAAA;IACtB,CAAC,CAAC,CAAA;AACN,CAAC;AATD,oDASC;AAED,gEAAgE;AAChE,SAAgB,KAAK,CAAC,QAAQ,GAAG,CAAC;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAFD,sBAEC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.codeScanCsharpPayloadSizeLimitBytes = exports.codeScanTruncDirPrefix = void 0;
|
|
4
|
+
exports.codeScanTruncDirPrefix = 'codewhisperer_scan';
|
|
5
|
+
exports.codeScanCsharpPayloadSizeLimitBytes = Math.pow(2, 20); // 1 MB
|
|
6
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/language-server/dependencyGraph/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,oBAAoB,CAAA;AAC7C,QAAA,mCAAmC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,CAAC,OAAO"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Workspace } from '@aws/language-server-runtimes/out/features';
|
|
2
|
+
import { DependencyGraph, Truncation } from './dependencyGraph';
|
|
3
|
+
export declare const importRegex: RegExp;
|
|
4
|
+
export declare class CsharpDependencyGraph extends DependencyGraph {
|
|
5
|
+
namespaceToFilepathDirectory: Map<string, Set<string>>;
|
|
6
|
+
constructor(workspace: Workspace);
|
|
7
|
+
/**
|
|
8
|
+
* Creates a dictionary of namespace to associated filepaths. There is no direct way to find a file which contains the namespace
|
|
9
|
+
* used as part of the dependecy of a file. Also, more than one file can have same namespace name. Hence, this method reads all
|
|
10
|
+
* the files within given workspace and creates a dictionary of namespace name to set of filepaths.
|
|
11
|
+
* @param workspacePath provides absolute path for workspace
|
|
12
|
+
*/
|
|
13
|
+
createNamespaceFilenameMapper(workspacePath: string): Promise<void>;
|
|
14
|
+
generateTruncation(uri: string): Promise<Truncation>;
|
|
15
|
+
searchDependency(uri: string): Promise<Set<string>>;
|
|
16
|
+
/**
|
|
17
|
+
* Get a list of all the imports being used in the given input content.
|
|
18
|
+
* @param content file content to detect import lines
|
|
19
|
+
* @returns list of import lines
|
|
20
|
+
*/
|
|
21
|
+
readImports(content: string): string[];
|
|
22
|
+
getDependencies(imports: string[]): Set<string>;
|
|
23
|
+
traverseDir(dirPath: string): Promise<void>;
|
|
24
|
+
getPayloadSizeLimitInBytes(): number;
|
|
25
|
+
}
|
|
26
|
+
export declare class CsharpDependencyGraphError extends Error {
|
|
27
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CsharpDependencyGraphError = exports.CsharpDependencyGraph = exports.importRegex = void 0;
|
|
4
|
+
const path = require("path");
|
|
5
|
+
const commonUtil_1 = require("./commonUtil");
|
|
6
|
+
const CodeWhispererConstants = require("./constants");
|
|
7
|
+
const dependencyGraph_1 = require("./dependencyGraph");
|
|
8
|
+
exports.importRegex = /((global\s+)?using\s+(static\s+)?)([A-Z]\w*\s*?=\s*)?([A-Z]\w*(.[A-Z]\w*)*);/gm;
|
|
9
|
+
class CsharpDependencyGraph extends dependencyGraph_1.DependencyGraph {
|
|
10
|
+
constructor(workspace) {
|
|
11
|
+
super(workspace);
|
|
12
|
+
// This contains a dictionary of namespace name and the set of filepaths, where namespace has been defined.
|
|
13
|
+
this.namespaceToFilepathDirectory = new Map();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Creates a dictionary of namespace to associated filepaths. There is no direct way to find a file which contains the namespace
|
|
17
|
+
* used as part of the dependecy of a file. Also, more than one file can have same namespace name. Hence, this method reads all
|
|
18
|
+
* the files within given workspace and creates a dictionary of namespace name to set of filepaths.
|
|
19
|
+
* @param workspacePath provides absolute path for workspace
|
|
20
|
+
*/
|
|
21
|
+
async createNamespaceFilenameMapper(workspacePath) {
|
|
22
|
+
const files = await this.workspace.fs.readdir(workspacePath, true);
|
|
23
|
+
const csharpFiles = files.filter(f => f.name.match(/.*.cs$/gi) && f.isFile());
|
|
24
|
+
const searchRegEx = new RegExp('namespace ([A-Z]\\w*(.[A-Z]\\w*)*)', 'g');
|
|
25
|
+
for (const file of csharpFiles) {
|
|
26
|
+
const absFilePath = path.join(file.path, file.name);
|
|
27
|
+
const content = await this.workspace.fs.readFile(absFilePath);
|
|
28
|
+
if (!content) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
for (const matchedStr of content.matchAll(searchRegEx)) {
|
|
32
|
+
if (this.namespaceToFilepathDirectory.has(matchedStr[1])) {
|
|
33
|
+
this.namespaceToFilepathDirectory.get(matchedStr[1])?.add(absFilePath);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.namespaceToFilepathDirectory.set(matchedStr[1], new Set([absFilePath]));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async generateTruncation(uri) {
|
|
42
|
+
const workspaceFolder = this.workspace.getWorkspaceFolder(uri);
|
|
43
|
+
const dirName = path.dirname(uri);
|
|
44
|
+
if (!dirName || !workspaceFolder) {
|
|
45
|
+
this._pickedSourceFiles.add(uri);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
await this.createNamespaceFilenameMapper(workspaceFolder.uri);
|
|
49
|
+
await this.searchDependency(uri);
|
|
50
|
+
await this.traverseDir(workspaceFolder.uri);
|
|
51
|
+
}
|
|
52
|
+
await (0, commonUtil_1.sleep)(1000);
|
|
53
|
+
const truncDirPath = this.getTruncDirPath();
|
|
54
|
+
this.copyFilesToTmpDir(this._pickedSourceFiles, truncDirPath);
|
|
55
|
+
const { zipFileBuffer, zipFileSize } = this.createZip(truncDirPath);
|
|
56
|
+
return {
|
|
57
|
+
rootDir: truncDirPath,
|
|
58
|
+
zipFileBuffer,
|
|
59
|
+
scannedFiles: new Set(this._pickedSourceFiles),
|
|
60
|
+
srcPayloadSizeInBytes: this._totalSize,
|
|
61
|
+
zipFileSizeInBytes: zipFileSize,
|
|
62
|
+
buildPayloadSizeInBytes: 0,
|
|
63
|
+
lines: this._totalLines,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async searchDependency(uri) {
|
|
67
|
+
const filePath = uri;
|
|
68
|
+
const q = [];
|
|
69
|
+
q.push(filePath);
|
|
70
|
+
while (q.length > 0) {
|
|
71
|
+
let count = q.length;
|
|
72
|
+
while (count > 0) {
|
|
73
|
+
if (this.exceedsSizeLimit(this._totalSize)) {
|
|
74
|
+
return this._pickedSourceFiles;
|
|
75
|
+
}
|
|
76
|
+
count -= 1;
|
|
77
|
+
const currentFilePath = q.shift();
|
|
78
|
+
if (currentFilePath === undefined) {
|
|
79
|
+
throw new Error('"undefined" is invalid for queued file.');
|
|
80
|
+
}
|
|
81
|
+
this._pickedSourceFiles.add(currentFilePath);
|
|
82
|
+
this._totalSize += (await this.workspace.fs.getFileSize(currentFilePath)).size;
|
|
83
|
+
const content = await this.workspace.fs.readFile(currentFilePath);
|
|
84
|
+
if (content) {
|
|
85
|
+
const imports = this.readImports(content);
|
|
86
|
+
const dependencies = this.getDependencies(imports);
|
|
87
|
+
dependencies.forEach(dependency => {
|
|
88
|
+
q.push(dependency);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return this._pickedSourceFiles;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get a list of all the imports being used in the given input content.
|
|
97
|
+
* @param content file content to detect import lines
|
|
98
|
+
* @returns list of import lines
|
|
99
|
+
*/
|
|
100
|
+
readImports(content) {
|
|
101
|
+
const lineBreakRegex = new RegExp('\\r?\\n', 'g');
|
|
102
|
+
this._totalLines += content.split(lineBreakRegex).length;
|
|
103
|
+
const importNamespaceRegex = new RegExp('(\\s*(global\\s+)?using\\s+(static\\s+)?)([A-Z]\\w*\\s*?=\\s*)?([A-Z]\\w*(.[A-Z]\\w*)*);', 'g');
|
|
104
|
+
const imports = [];
|
|
105
|
+
for (const matchedStr of content.matchAll(importNamespaceRegex)) {
|
|
106
|
+
imports.push(matchedStr[5]);
|
|
107
|
+
}
|
|
108
|
+
return imports;
|
|
109
|
+
}
|
|
110
|
+
getDependencies(imports) {
|
|
111
|
+
const dep = imports.map(importStr => {
|
|
112
|
+
const files = this.namespaceToFilepathDirectory.get(importStr);
|
|
113
|
+
return files?.size ? Array.from(files) : [];
|
|
114
|
+
});
|
|
115
|
+
return new Set(dep.flat());
|
|
116
|
+
}
|
|
117
|
+
async traverseDir(dirPath) {
|
|
118
|
+
if (this.exceedsSizeLimit(this._totalSize)) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const files = await this.workspace.fs.readdir(dirPath, true);
|
|
122
|
+
const csharpFiles = files.filter(f => f.name.match(/.*.cs$/gi) && f.isFile());
|
|
123
|
+
for (const file of csharpFiles) {
|
|
124
|
+
const absFilePath = path.join(file.path, file.name);
|
|
125
|
+
const fileSize = (await this.workspace.fs.getFileSize(absFilePath)).size;
|
|
126
|
+
const doesExceedsSize = this.exceedsSizeLimit(this._totalSize + fileSize);
|
|
127
|
+
this.isProjectTruncated = this.isProjectTruncated || doesExceedsSize;
|
|
128
|
+
if (doesExceedsSize) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (!this._pickedSourceFiles.has(absFilePath)) {
|
|
132
|
+
await this.searchDependency(absFilePath);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Payload Size for C#: 1MB
|
|
137
|
+
getPayloadSizeLimitInBytes() {
|
|
138
|
+
return CodeWhispererConstants.codeScanCsharpPayloadSizeLimitBytes;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
exports.CsharpDependencyGraph = CsharpDependencyGraph;
|
|
142
|
+
class CsharpDependencyGraphError extends Error {
|
|
143
|
+
}
|
|
144
|
+
exports.CsharpDependencyGraphError = CsharpDependencyGraphError;
|
|
145
|
+
//# sourceMappingURL=csharpDependencyGraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csharpDependencyGraph.js","sourceRoot":"","sources":["../../../src/language-server/dependencyGraph/csharpDependencyGraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|