@vekil/app-sdk 0.4.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../app-protocol/src/common.ts","../../app-protocol/src/app-compilation-binding.ts","../../app-protocol/src/app-categories.ts","../../app-context/src/context-envelope.ts","../../app-context/src/context-scopes.ts","../../app-context/src/context-projection.ts","../../app-protocol/src/app-definition.ts","../../app-protocol/src/app-manifest.ts","../../api-contracts/src/identity.ts","../../api-contracts/src/auth.ts","../../api-contracts/src/public-page.ts","../../api-contracts/src/usage.ts","../../api-contracts/src/vekil.ts","../../../product/domain/src/agent.ts","../../../product/domain/src/communication.ts","../../../product/domain/src/identity.ts","../../../product/domain/src/request.ts","../../api-contracts/src/app-development.ts","../../api-contracts/src/administration.ts","../../api-contracts/src/health.ts","../../api-contracts/src/assets.ts","../../api-contracts/src/apps.ts","../../api-contracts/src/bubbles.ts","../../api-contracts/src/communication.ts","../../api-contracts/src/errors.ts","../../api-contracts/src/inbox.ts","../../api-contracts/src/policies.ts","../../api-contracts/src/requests.ts","../../app-protocol/src/canonical-json.ts","../../app-protocol/src/runtime-envelopes.ts","../../app-protocol/src/declarative-host-envelopes.ts","../../app-protocol/src/signature-envelope.ts","../../app-compiler/src/app-compiler.ts","../src/definition-tooling.ts","../../app-runtime/src/protocol-signature.ts","../../app-runtime/src/declarative-runtime/egress-policy.ts","../src/signing.ts","../src/cli.ts"],"names":["AppCategoryId","z","isOriginUrl","PublicHandleClaimStatus","PreferredColorScheme","AuthAdminRole","UserOnboardingStatus","UserOnboardingStep","ManagedAiServiceStatus","ProductPlanKey","PublicVekilRequestAvailability","AgentStatus","PublicRequestSessionStatus","RequestStatus","AppSubmissionViewStatus","AppBuilderProjectViewStatus","BuilderProfileViewStatus","AppTestRunViewStatus","AppBuilderAudience","AppBuilderLifecycleState","AppBuilderCandidateTestStatus","AdminAppDefinitionStatus","AdminAppRuntimeType","AdminAppTrustLevel","AdminAppVersionStatus","AdminAppVisibility","AdminBuilderProfileStatus","AppReviewAction","AppReviewEventType","AdminAppModerationEventType","HealthDependencyStatus","ServiceReadinessStatus","UploadAssetKind","UploadAssetViewStatus","appManifestSnapshotSchema","AppAvailabilitySource","AppConnectionStartStatus","optionalTrimmedString"],"mappings":";;;;;;;;;;;AAEO,IAAM,kBAAA,GAAqB,YAAA;AAC3B,IAAM,oBAAA,GAAuB,SAAA;AAC7B,IAAM,kBAAA,GAAqB,SAAA;AAC3B,IAAM,wBAAA,GAA2B,CAAA;AACjC,IAAM,wBAAA,GAA2B,CAAA;AAajC,IAAK,aAAA,qBAAAA,cAAAA,KAAL;AACL,EAAAA,eAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,eAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,eAAA,wBAAA,CAAA,GAAyB,wBAAA;AACzB,EAAAA,eAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,eAAA,uBAAA,CAAA,GAAwB,uBAAA;AACxB,EAAAA,eAAA,uBAAA,CAAA,GAAwB,uBAAA;AACxB,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,eAAA,sBAAA,CAAA,GAAuB,sBAAA;AACvB,EAAAA,eAAA,0BAAA,CAAA,GAA2B,0BAAA;AAC3B,EAAAA,eAAA,oBAAA,CAAA,GAAqB,oBAAA;AACrB,EAAAA,eAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,eAAA,uBAAA,CAAA,GAAwB,uBAAA;AACxB,EAAAA,eAAA,wBAAA,CAAA,GAAyB,wBAAA;AACzB,EAAAA,eAAA,OAAA,CAAA,GAAQ,OAAA;AAdE,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA,CAAA;AA4JwB,CAAA,CAAE,IAAA,CAAK,CAAC,aAAA,oBAA4B,sBAAsB;AAEvF,IAAM,uBAAA,GAA0B,EAAE,IAAA,CAAK;AAAA,EAC5C,MAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AACF,CAAC,CAAA;AAEM,IAAM,mBAAA,GAAsB,CAAA,CAAE,IAAA,CAAK,aAAa,CAAA;AAEhD,IAAM,8BAAA,GAAiC,EAAE,IAAA,CAAK;AAAA,EACnD,UAAA;AAAA,EACA,WAAA;AACF,CAAC,CAAA;AAEM,IAAM,kBAAA,GAAqB,EAAE,IAAA,CAAK;AAAA,EACvC,KAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AACF,CAAC,CAAA;AAEM,IAAM,uBAAA,GAA0B,EAAE,IAAA,CAAK;AAAA,EAC5C,WAAA;AAAA,EACA,eAAA;AAAA,EACA,sBAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AACF,CAAC,CAAA;AAEM,IAAM,qBAAA,GAAwB,EAAE,IAAA,CAAK;AAAA,EAC1C,cAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AACF,CAAC,CAAA;AAEM,IAAM,qBAAA,GAAwB,EAAE,IAAA,CAAK;AAAA,EAC1C,OAAA;AAAA,EACA,kBAAA;AAAA,EACA,MAAA;AACF,CAAC,CAAA;AAEM,IAAM,eAAA,GAAkB,EAAE,IAAA,CAAK;AAAA,EACpC,cAAA;AAAA,EACA,0BAAA;AAAA,EACA,sBAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AACF,CAAC,CAAA;AAEM,IAAM,mBAAA,GAAsB,EAAE,IAAA,CAAK;AAAA,EACxC,QAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AACF,CAAC,CAAA;AAEM,IAAM,0BAAA,GAA6B,EAAE,IAAA,CAAK;AAAA,EAC/C,QAAA;AAAA,EACA,oBAAA;AAAA,EACA,OAAA;AACF,CAAC,CAAA;AAE2C,EAAE,IAAA,CAAK;AAAA,EACjD,SAAA;AAAA,EACA,SAAA;AACF,CAAC;AAEgD,EAAE,IAAA,CAAK;AAAA,EACtD,cAAA;AAAA,EACA,OAAA;AACF,CAAC;AAEM,IAAM,kBAAA,GAAqB,EAAE,IAAA,CAAK;AAAA,EACvC,aAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,wBAAA;AACF,CAAC,CAAA;AAEM,IAAM,yBAAyB,CAAA,CAAE,IAAA,CAAK,CAAC,SAAA,gBAA0B,oBAAuB,CAAA;AAExF,IAAM,mBAAA,GAAsB,EAAE,IAAA,CAAK;AAAA,EACxC,KAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AACF,CAAC,CAAA;AAEM,IAAM,mBAAA,GAAsB,EAAE,IAAA,CAAK;AAAA,EACxC,OAAA;AAAA,EACA,qBAAA;AAAA,EACA,UAAA;AACF,CAAC,CAAA;AAEM,IAAM,wBAAA,GAA2B,EAAE,IAAA,CAAK;AAAA,EAC7C,WAAA;AAAA,EACA,QAAA;AACF,CAAC,CAAA;AAEM,IAAM,4BAAA,GAA+B,EAAE,IAAA,CAAK;AAAA,EACjD,SAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AACF,CAAC,CAAA;AAEM,IAAM,WAAA,GAAc,CAAA,CACxB,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,EAAE,CAAA,CACN,KAAA,CAAM,iCAAiC,CAAA;AAEnC,IAAM,gBAAA,GAAmB,EAAA;AACzB,IAAM,gBAAA,GAAmB,CAAC,OAAA,EAAS,WAAW,CAAA;AAE9C,IAAM,aAAA,GAAgB,EAC1B,MAAA,EAAO,CACP,IAAI,CAAC,CAAA,CACL,IAAI,gBAAgB,CAAA,CACpB,MAAM,iCAAiC,CAAA,CACvC,OAAO,CAAC,KAAA,KAAU,CAAE,gBAAA,CAAuC,QAAA,CAAS,KAAK,CAAA,EAAG;AAAA,EAC3E,OAAA,EAAS;AACX,CAAC,CAAA;AAEI,IAAM,iBAAA,GAAoB,CAAA,CAC9B,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,EAAE,CAAA,CACN,KAAA,CAAM,qCAAqC,CAAA;AAEvC,IAAM,qBAAA,GAAwB,CAAA,CAClC,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,GAAG,CAAA,CACP,KAAA,CAAM,yCAAyC,CAAA;AAE3C,IAAM,gBAAA,GAAmB,CAAA,CAC7B,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,EAAE,CAAA,CACN,KAAA,CAAM,uCAAuC,CAAA;AAEzC,IAAM,qBAAA,GAAwB,CAAA,CAClC,MAAA,EAAO,CACP,MAAM,gEAAgE,CAAA;AAElE,IAAM,iBAAA,GAAoB,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAE9D,IAAM,mBAAA,GAAsB,CAAA,CAAE,MAAA,CAAO,gBAAA,EAAkB,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAK,CAAC,CAAA;AAEnF,IAAM,0BAA0B,CAAA,CAAE,MAAA;AAAA,EACvC,gBAAA;AAAA,EACA,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAC,CAAA,CAAE,IAAI,EAAE;AAC5C,CAAA;AAEO,IAAM,eAAA,GAAkB,CAAA,CAC5B,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,GAAG,CAAA,CACP,KAAA,CAAM,qCAAqC,CAAA;AAEvC,IAAM,gBAAA,GAAmB,EAAE,MAAA,CAAO,CAAA,CAAE,QAAO,EAAG,CAAA,CAAE,MAAM,CAAA;AACtD,IAAM,gBAAA,GAAmB,EAAE,MAAA,CAAO,CAAA,CAAE,QAAO,EAAG,CAAA,CAAE,MAAM,CAAA;AAEtD,IAAM,cAAA,GAAiB,CAAA,CAC3B,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,GAAG,CAAA,CACP,KAAA,CAAM,uCAAuC,CAAA;AAEzC,IAAM,yBAAA,GAA4B,EACtC,MAAA,EAAO,CACP,KAAI,CACJ,MAAA,CAAO,CAAC,KAAA,KAAU;AACjB,EAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,KAAK,CAAA;AACzB,EAAA,MAAM,WAAA,GAAc,GAAA,CAAI,QAAA,KAAa,WAAA,IAAe,IAAI,QAAA,KAAa,WAAA;AAErE,EAAA,OAAO,GAAA,CAAI,QAAA,KAAa,QAAA,IAAa,WAAA,IAAe,IAAI,QAAA,KAAa,OAAA;AACvE,CAAA,EAAG,sCAAsC,CAAA;AAEpC,IAAM,cAAA,GAAiB,CAAA,CAC3B,MAAA,EAAO,CACP,GAAA,EAAI,CACJ,MAAA,CAAO,CAAC,KAAA,KAAU,KAAA,CAAM,UAAA,CAAW,UAAU,GAAG,oBAAoB,CAAA;AAEhE,IAAM,4BAAA,GAA+B,CAAA,CACzC,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,GAAG,CAAA,CACP,KAAA,CAAM,qCAAqC,CAAA;;;ACrXvC,IAAM,6BAAA,GAAgCC,EAAE,YAAA,CAAa;AAAA,EAC1D,EAAA,EAAI,iBAAA;AAAA,EACJ,MAAA,EAAQA,CAAAA,CACL,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,EAAE,CAAA,CACN,KAAA,CAAM,kBAAkB,CAAA;AAAA,EAC3B,IAAA,EAAMA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAC/B,UAAA,EAAY,eAAe,QAAA,EAAS;AAAA,EACpC,WAAA,EAAa,eAAe,QAAA,EAAS;AAAA,EACrC,cAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,GAAQ,QAAA,EAAS;AAAA,EAC1C,QAAA,EAAUA,EAAE,OAAA,EAAQ;AAAA,EACpB,kBAAA,EAAoBA,EAAE,OAAA;AACxB,CAAC,CAAA;AAE0CA,EAAE,YAAA,CAAa;AAAA,EACxD,KAAA,EAAO,WAAA;AAAA,EACP,IAAA,EAAM,aAAA;AAAA,EACN,cAAA,EAAgB,qBAAA;AAAA,EAChB,WAAA,EAAaA,EAAE,OAAA,EAAQ;AAAA,EACvB,SAAA,EAAW;AACb,CAAC;;;ACrBD,IAAM,qBAAA,GAAwB,OAAO,MAAA,CAAO;AAAA,EAC1C,uCAA+B;AAAA,IAC7B,kBAAA,EAAoB,0CAAA;AAAA,IACpB,EAAA,EAAA,eAAA;AAAA,IACA,YAAA,EAAc,oCAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,qCAA8B;AAAA,IAC5B,kBAAA,EAAoB,yCAAA;AAAA,IACpB,EAAA,EAAA,cAAA;AAAA,IACA,YAAA,EAAc,mCAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,yDAAwC;AAAA,IACtC,kBAAA,EAAoB,mDAAA;AAAA,IACpB,EAAA,EAAA,wBAAA;AAAA,IACA,YAAA,EAAc,6CAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,6CAAkC;AAAA,IAChC,kBAAA,EAAoB,6CAAA;AAAA,IACpB,EAAA,EAAA,kBAAA;AAAA,IACA,YAAA,EAAc,uCAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,uDAAuC;AAAA,IACrC,kBAAA,EAAoB,kDAAA;AAAA,IACpB,EAAA,EAAA,uBAAA;AAAA,IACA,YAAA,EAAc,4CAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,uDAAuC;AAAA,IACrC,kBAAA,EAAoB,kDAAA;AAAA,IACpB,EAAA,EAAA,uBAAA;AAAA,IACA,YAAA,EAAc,4CAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,2BAAyB;AAAA,IACvB,kBAAA,EAAoB,oCAAA;AAAA,IACpB,EAAA,EAAA,SAAA;AAAA,IACA,YAAA,EAAc,8BAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,qDAAsC;AAAA,IACpC,kBAAA,EAAoB,iDAAA;AAAA,IACpB,EAAA,EAAA,sBAAA;AAAA,IACA,YAAA,EAAc,2CAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,6DAA0C;AAAA,IACxC,kBAAA,EAAoB,qDAAA;AAAA,IACpB,EAAA,EAAA,0BAAA;AAAA,IACA,YAAA,EAAc,+CAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,iDAAoC;AAAA,IAClC,kBAAA,EAAoB,+CAAA;AAAA,IACpB,EAAA,EAAA,oBAAA;AAAA,IACA,YAAA,EAAc,yCAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,6CAAkC;AAAA,IAChC,kBAAA,EAAoB,6CAAA;AAAA,IACpB,EAAA,EAAA,kBAAA;AAAA,IACA,YAAA,EAAc,uCAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,uDAAuC;AAAA,IACrC,kBAAA,EAAoB,kDAAA;AAAA,IACpB,EAAA,EAAA,uBAAA;AAAA,IACA,YAAA,EAAc,4CAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,yDAAwC;AAAA,IACtC,kBAAA,EAAoB,mDAAA;AAAA,IACpB,EAAA,EAAA,wBAAA;AAAA,IACA,YAAA,EAAc,6CAAA;AAAA,IACd,SAAA,EAAW;AAAA,GACb;AAAA,EACA,uBAAuB;AAAA,IACrB,kBAAA,EAAoB,kCAAA;AAAA,IACpB,EAAA,EAAA,OAAA;AAAA,IACA,YAAA,EAAc,4BAAA;AAAA,IACd,SAAA,EAAW;AAAA;AAEf,CAAwD,CAAA;AAEkB,MAAA,CAAO,MAAA;AAAA,EAC/E,MAAA,CAAO,MAAA,CAAO,qBAAqB,CAAA,CAAE,IAAA,CAAK,CAAC,IAAA,EAAM,KAAA,KAAU,IAAA,CAAK,SAAA,GAAY,KAAA,CAAM,SAAS;AAC7F;AChGO,IAAM,yBAAA,GAA4B,SAAA;AAElC,IAAM,eAAA,GAAkB;AAAA,EAC7B,mBAAA;AAAA,EACA,0BAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACF,CAAA;AAIO,IAAM,qBAAA,GAAwB;AAAA,EACnC,cAAA;AAAA,EACA,0BAAA;AAAA,EACA,sBAAA;AAAA,EACA,gBAAA;AAAA,EACA,uBAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAA;AAIO,IAAM,qBAAA,GAAwB;AAAA,EACnC,OAAA;AAAA,EACA,mBAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA;AAIO,IAAM,2BAAA,GAA8B,CAAC,KAAA,EAAO,QAAA,EAAU,MAAM,CAAA;AAI5D,IAAM,0BAAA,GAA6B,YAAA;AAEnC,IAAM,+BAAA,GAAkC,CAAC,KAAA,EAAO,MAAA,EAAQ,aAAa,CAAA;AAIrE,IAAM,kCAAA,GAAqC;AAAA,EAChD,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA;AAmIA,IAAM,YAAA,GAAeA,EAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAGA,CAAAA,CAAE,SAAS,CAAA;AAE9C,IAAM,kCAAA,GAAqCA,EAAE,YAAA,CAAa;AAAA,EAC/D,iBAAA,EAAmBA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAC5C,gBAAA,EAAkBA,CAAAA,CAAE,IAAA,CAAK,2BAA2B,CAAA;AAAA,EACpD,iBAAA,EAAmBA,EAAE,OAAA,EAAQ;AAAA,EAC7B,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EACpD,2BAAA,EAA6BA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EACjE,oBAAA,EAAsBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EAC1D,YAAA,EAAcA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACvC,aAAA,EAAeA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACxC,eAAA,EAAiBA,CAAAA,CAAE,IAAA,CAAK,kCAAkC;AAC5D,CAAC,CAAA;AAEM,IAAM,6BAAA,GAAgCA,EAAE,YAAA,CAAa;AAAA,EAC1D,UAAA,EAAYA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACrC,WAAA,EAAaA,CAAAA,CAAE,IAAA,CAAK,+BAA+B,CAAA;AAAA,EACnD,UAAA,EAAYA,EAAE,KAAA,CAAM,kCAAkC,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EACrE,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAK,CAAA;AAAA,EAChD,KAAA,EAAOA,EAAE,IAAA;AACX,CAAC,CAAA;AAEM,IAAM,iCAAiCA,CAAAA,CAAE,KAAA,CAAM,6BAA6B,CAAA,CAAE,IAAI,EAAE,CAAA;AAE3F,IAAM,iBAAA,GAAoB,YAAA,CAAa,WAAA,CAAY,CAAC,OAAO,OAAA,KAAY;AACrE,EAAA,MAAM,cAAA,GAAiB,MAAM,0BAA0B,CAAA;AAEvD,EAAA,IAAI,mBAAmB,MAAA,EAAW;AAChC,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,MAAA,GAAS,8BAAA,CAA+B,SAAA,CAAU,cAAc,CAAA;AAEtE,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,6CAAA;AAAA,MACT,IAAA,EAAM,CAAC,0BAA0B;AAAA,KAClC,CAAA;AAAA,EACH;AACF,CAAC,CAAA;AAEM,IAAM,wBAAA,GAA2BA,EAAE,YAAA,CAAa;AAAA,EACrD,kBAAA,EAAoBA,CAAAA,CAAE,OAAA,CAAQ,yBAAyB,CAAA;AAAA,EACvD,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC9B,cAAA,EAAgBA,CAAAA,CAAE,IAAA,CAAK,eAAe,CAAA;AAAA,EACtC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC7B,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC9B,QAAA,EAAUA,EAAE,YAAA,CAAa;AAAA,IACvB,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,OAAO,CAAA;AAAA,IACvB,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAC7B,kBAAA,EAAoBA,CAAAA,CAAE,OAAA,CAAQ,yBAAyB;AAAA,GACxD,CAAA;AAAA,EACD,GAAA,EAAKA,EAAE,YAAA,CAAa;AAAA,IAClB,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAC1B,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAClC,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAC/B,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAChC,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AAAA,GACjC,CAAA;AAAA,EACD,YAAA,EAAcA,EAAE,YAAA,CAAa;AAAA,IAC3B,qBAAA,EAAuBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IACvC,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IACnC,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IACxB,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AAAA,GACnC,CAAA;AAAA,EACD,SAAA,EAAWA,EAAE,YAAA,CAAa;AAAA,IACxB,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAChC,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAC9B,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACtC,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACtC,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IACnC,SAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA;AAAS,GACpC,CAAA;AAAA,EACD,MAAA,EAAQA,EAAE,YAAA,CAAa;AAAA,IACrB,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,qBAAqB,CAAA;AAAA,IAClC,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAC5B,cAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA;AAAS,GAC9C,CAAA;AAAA,EACD,MAAA,EAAQA,EAAE,YAAA,CAAa;AAAA,IACrB,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,qBAAqB,CAAA;AAAA,IAClC,QAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,IACvC,gBAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,IAC/C,eAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,IAC9C,uBAAuBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,IACtD,OAAA,EAASA,EACN,YAAA,CAAa;AAAA,MACZ,OAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,MACtC,gBAAA,EAAkBA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,MACvC,OAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,MACtC,gBAAA,EAAkBA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,KACxC,EACA,QAAA;AAAS,GACb,CAAA;AAAA,EACD,cAAA,EAAgBA,EAAE,YAAA,CAAa;AAAA,IAC7B,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC5B,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAChC,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACnC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IACtB,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AAAA,GAC3B,CAAA;AAAA,EACD,OAAA,EAASA,EAAE,YAAA,CAAa;AAAA,IACtB,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IACpB,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACjC,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IACxB,0BAAA,EAA4BA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAChD,QAAA,EAAU,YAAA;AAAA,IACV,gBAAA,EAAkBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA;AAAA,IACpC,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AAAA,GACzB,CAAA;AAAA,EACD,MAAA,EAAQA,EAAE,YAAA,CAAa;AAAA,IACrB,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAC7B,eAAA,EAAiBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IACjC,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAC9B,aAAA,EAAeA,EAAE,OAAA;AAAQ,GAC1B,CAAA;AAAA,EACD,KAAA,EAAO,iBAAA;AAAA,EACP,QAAA,EAAU,YAAA;AAAA,EACV,eAAA,EAAiBA,EAAE,YAAA,CAAa;AAAA,IAC9B,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,IACnB,mBAAA,EAAqBA,EAAE,OAAA,EAAQ;AAAA,IAC/B,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAC9B,WAAA,EAAa,YAAA;AAAA,IACb,UAAA,EAAYA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ;AAAA,GAC/B,CAAA;AAAA,EACD,iBAAA,EAAmBA,EAAE,YAAA,CAAa;AAAA,IAChC,QAAQA,CAAAA,CAAE,IAAA,CAAK,CAAC,UAAA,EAAY,cAAA,EAAgB,SAAS,CAAC,CAAA;AAAA,IACtD,eAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,IAC9C,eAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,IAC9C,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACtC,oBAAA,EAAsBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC1C,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC7B,CAAA;AAAA,EACD,MAAA,EAAQA,EAAE,YAAA,CAAa;AAAA,IACrB,kBAAA,EAAoBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IACpC,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAChC,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IAC9B,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,IACnC,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AAAA,GAC3B,CAAA;AAAA,EACD,QAAA,EAAUA,EAAE,YAAA,CAAa;AAAA,IACvB,uBAAuBA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,gBAAgB,CAAC,CAAA;AAAA,IACxD,eAAA,EAAiBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA;AAAA,IACnC,aAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA;AAAS,GAC7C;AACH,CAAC,CAAA;;;AC1UM,IAAM,gBAAA,GAAmB;AAAA,EAC9B,uBAAA;AAAA,EACA,yBAAA;AAAA,EACA,iCAAA;AAAA,EACA,uBAAA;AAAA,EACA,6BAAA;AAAA,EACA,qBAAA;AAAA,EACA,kCAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,0BAAA;AAAA,EACA,8BAAA;AAAA,EACA,6BAAA;AAAA,EACA,2BAAA;AAAA,EACA,2BAAA;AAAA,EACA,yBAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA;AAIO,IAAM,wBAAA,GAA2B;AAAA,EACtC,0BAAA;AAAA,EACA,6BAAA;AAAA,EACA;AACF,CAAA;AAEO,IAAM,yBAAA,GAA4B;AAAA,EACvC,0BAAA;AAAA,EACA,uBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAA;;;AC7BuB,IAAI,GAAA,CAAqB,wBAAwB;AC8DjE,IAAM,uBAAA,GAA0BA,CAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,EAClEA,EAAE,YAAA,CAAa;AAAA,IACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,OAAA,aAAiB;AAAA,IACjC,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG;AAAA,GACjC,CAAA;AAAA,EACDA,EAAE,YAAA,CAAa;AAAA,IACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,KAAA,WAAe;AAAA,IAC/B,KAAA,EAAO;AAAA,GACR;AACH,CAAC,CAAA;AAEM,IAAM,8BAAA,GAAiCA,EAAE,YAAA,CAAa;AAAA,EAC3D,UAAA,EAAY,eAAe,QAAA,EAAS;AAAA,EACpC,cAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,GAAQ,QAAA,EAAS;AAAA,EAC1C,gBAAA,EAAkB,eAAe,QAAA,EAAS;AAAA,EAC1C,QAAA,EAAU,eAAe,QAAA;AAC3B,CAAC,CAAA;AAEM,IAAM,6BAAA,GAAgCA,EAAE,YAAA,CAAa;AAAA,EAC1D,GAAA,EAAK,iBAAA;AAAA,EACL,KAAA,EAAO,mBAAA;AAAA,EACP,WAAA,EAAa,mBAAA;AAAA,EACb,WAAA,EAAa;AACf,CAAC,CAAA;AAEM,IAAM,6BAAA,GAAgCA,EAAE,YAAA,CAAa;AAAA,EAC1D,IAAA,EAAM,uBAAA;AAAA,EACN,QAAA,EAAUA,EAAE,OAAA,EAAQ;AAAA,EACpB,KAAA,EAAO,mBAAA;AAAA,EACP,WAAA,EAAa,mBAAA;AAAA,EACb,WAAA,EAAaA,CAAAA,CAAE,KAAA,CAAM,6BAA6B,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE;AACxE,CAAC,CAAA;AAED,IAAM,8BAAA,GAAiCA,EAAE,YAAA,CAAa;AAAA,EACpD,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,CAACA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAC,CAAA;AAAA,EACpD,KAAA,EAAO;AACT,CAAC,CAAA;AAED,IAAM,qCAAA,GAAwCA,EAAE,YAAA,CAAa;AAAA,EAC3D,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,YAAA,kBAAuC;AAAA,EACvD,SAAA,EAAW,iBAAA;AAAA,EACX,eAAA,EAAiBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,KAAM,CAAA;AAAA,EACnD,UAAA,EAAYA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACzD,UAAA,EAAY,kBAAkB,QAAA,EAAS;AAAA,EACvC,UAAA,EAAY,kBAAkB,QAAA;AAChC,CAAC,CAAA;AAEM,IAAM,wBAAA,GAA2BA,EAAE,YAAA,CAAa;AAAA,EACrD,GAAA,EAAK,iBAAA;AAAA,EACL,IAAA,EAAM,kBAAA;AAAA,EACN,KAAA,EAAO,mBAAA;AAAA,EACP,WAAA,EAAa,oBAAoB,QAAA,EAAS;AAAA,EAC1C,IAAA,EAAM,oBAAoB,QAAA,EAAS;AAAA,EACnC,QAAA,EAAUA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA;AAAA,EACnC,OAAA,EAASA,CAAAA,CAAE,IAAA,EAAK,CAAE,QAAA,EAAS;AAAA,EAC3B,UAAA,EAAY,iBAAiB,QAAA,EAAS;AAAA,EACtC,OAAA,EAASA,EAAE,KAAA,CAAM,8BAA8B,EAAE,GAAA,CAAI,GAAG,EAAE,QAAA,EAAS;AAAA,EACnE,aAAA,EAAe,sCAAsC,QAAA;AACvD,CAAC,CAAA;AAEM,IAAM,2BAAA,GAA8BA,EAAE,YAAA,CAAa;AAAA,EACxD,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAM,wBAAwB,CAAA,CAAE,IAAI,GAAG,CAAA,CAAE,OAAA,CAAQ,EAAE;AAC/D,CAAC,CAAA;AAEM,IAAM,iCAAA,GAAoCA,EAAE,YAAA,CAAa;AAAA,EAC9D,MAAA,EAAQ,qBAAA;AAAA,EACR,KAAA,EAAO,iBAAA;AAAA,EACP,KAAA,EAAO;AACT,CAAC,CAAA;AAEM,IAAM,6BAAA,GAAgCA,EAC1C,YAAA,CAAa;AAAA,EACZ,GAAA,EAAK,iBAAA;AAAA,EACL,KAAA,EAAO,mBAAA;AAAA,EACP,WAAA,EAAa,mBAAA;AAAA,EACb,eAAA,EAAiBA,CAAAA,CACd,KAAA,CAAM,wBAAwB,CAAA,CAC9B,GAAA,CAAI,CAAA,EAAG,mFAAmF,CAAA,CAC1F,OAAA,CAAQ,EAAE,CAAA;AAAA,EACb,SAAA,EAAWA,EAAE,KAAA,CAAM,iCAAiC,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EACnE,eAAA,EAAiB;AACnB,CAAC,CAAA,CACA,WAAA,CAAY,CAAC,IAAA,EAAM,OAAA,KAAY;AAC9B,EAAA,MAAM,iBAAiB,IAAA,CAAK,SAAA,CAAU,IAAI,CAAC,QAAA,KAAa,SAAS,KAAK,CAAA;AAEtE,EAAA,IAAI,IAAI,GAAA,CAAI,cAAc,CAAA,CAAE,IAAA,KAAS,eAAe,MAAA,EAAQ;AAC1D,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,wCAAA;AAAA,MACT,IAAA,EAAM,CAAC,WAAW;AAAA,KACnB,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,CAAC,cAAA,CAAe,QAAA,CAAS,IAAA,CAAK,eAAe,CAAA,EAAG;AAClD,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,iEAAA;AAAA,MACT,IAAA,EAAM,CAAC,iBAAiB;AAAA,KACzB,CAAA;AAAA,EACH;AACF,CAAC,CAAA;AAEI,IAAM,yBAAA,GAA4BA,EAAE,YAAA,CAAa;AAAA,EACtD,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,6BAA6B,CAAA,CAAE,IAAI,GAAG,CAAA,CAAE,OAAA,CAAQ,EAAE;AACnE,CAAC,CAAA;AAEM,IAAM,mCAAA,GAAsCA,EAAE,YAAA,CAAa;AAAA,EAChE,SAAA,EAAWA,EACR,KAAA,CAAMA,CAAAA,CAAE,KAAK,CAAC,eAAA,sBAAmC,oCAAkC,CAAC,EACpF,GAAA,CAAI,CAAC,EACL,GAAA,CAAI,CAAC,EACL,OAAA,CAAQ,CAAC,oCAAkC,CAAA;AAAA,EAC9C,GAAA,EAAK,iBAAA;AAAA,EACL,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAK,CAAA;AAAA,EAChD,MAAA,EAAQ,gBAAA;AAAA,EACR,WAAA,EAAa,mBAAA;AAAA,EACb,kBAAkBA,CAAAA,CAAE,IAAA,CAAK,2BAA2B,CAAA,CAAE,QAAQ,MAAM;AACtE,CAAC,CAAA;AAEM,IAAM,oCAAA,GAAuCA,EAAE,YAAA,CAAa;AAAA,EACjE,WAAA,EAAa,iBAAA;AAAA,EACb,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAK,CAAA;AAAA,EAChD,QAAA,EAAUA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA;AAAA,EAClC,WAAA,EAAaA,EACV,IAAA,CAAK;AAAA,IACJ,KAAA;AAAA,IACA,MAAA;AAAA,IACA,aAAA;AAAA,GACD,CAAA,CACA,OAAA,CAAQ,KAAA;AACb,CAAC,CAAA;AAEM,IAAM,6BAAA,GAAgCA,EAAE,YAAA,CAAa;AAAA,EAC1D,GAAA,EAAK,iBAAA;AAAA,EACL,KAAA,EAAO,mBAAA;AAAA,EACP,WAAA,EAAa,mBAAA;AAAA,EACb,WAAA,EAAa,gBAAA;AAAA,EACb,YAAA,EAAc,gBAAA;AAAA,EACd,SAAA,EAAW,kBAAA;AAAA,EACX,QAAA,EAAU,qBAAA;AAAA,EACV,UAAA,EAAYA,EAAE,KAAA,CAAM,iBAAiB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE;AACtD,CAAC,CAAA;AAEM,IAAM,gCAAA,GAAmCA,EAAE,YAAA,CAAa;AAAA,EAC7D,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,KAAK,gBAAgB,CAAC,CAAA,CAAE,GAAA,CAAI,gBAAA,CAAiB,MAAM,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACzF,gBAAA,EAAkBA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC/D,gBAAA,EAAkBA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE;AACjE,CAAC,CAAA;AAEM,IAAM,8BAAA,GAAiC;AAAA,EAC5C,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA;AAEA,SAAS,2BAAA,CACP,eACA,OAAA,EACM;AACN,EAAA,IAAI,IAAI,IAAI,aAAA,CAAc,gBAAgB,EAAE,IAAA,KAAS,aAAA,CAAc,iBAAiB,MAAA,EAAQ;AAC1F,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,sCAAA;AAAA,MACT,IAAA,EAAM,CAAC,SAAA,EAAW,kBAAkB;AAAA,KACrC,CAAA;AAAA,EACH;AAEA,EAAA,KAAA,MAAW,iBAAiB,8BAAA,EAAgC;AAC1D,IAAA,IAAI,CAAC,aAAA,CAAc,cAAA,CAAe,QAAA,CAAS,aAAa,CAAA,EAAG;AACzD,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,qCAAqC,aAAa,CAAA,OAAA,CAAA;AAAA,QAC3D,IAAA,EAAM,CAAC,SAAA,EAAW,gBAAgB;AAAA,OACnC,CAAA;AAAA,IACH;AAAA,EACF;AAEA,EAAA,IAAI,aAAA,CAAc,gBAAA,CAAiB,MAAA,KAAW,CAAA,EAAG;AAEjD,EAAA,IAAI,CAAC,aAAA,CAAc,cAAA,CAAe,QAAA,CAAS,2BAA2B,CAAA,EAAG;AACvE,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,iFAAA;AAAA,MACT,IAAA,EAAM,CAAC,SAAA,EAAW,gBAAgB;AAAA,KACnC,CAAA;AAAA,EACH;AACF;AAEO,IAAM,8BAAA,GAAiCA,EAAE,YAAA,CAAa;AAAA,EAC3D,QAAA,EAAUA,EAAE,OAAA,EAAQ;AAAA,EACpB,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAM,cAAc,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE;AACvD,CAAC,CAAA;AAEM,IAAM,8BAAA,GAAiCA,EAAE,YAAA,CAAa;AAAA,EAC3D,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA;AAAA,EAC1C,oBAAA,EAAsBA,EAAE,KAAA,CAAMA,CAAAA,CAAE,QAAO,CAAE,GAAA,GAAM,GAAA,CAAI,GAAG,EAAE,GAAA,CAAI,GAAG,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE;AACtF,CAAC,CAAA;AAEM,IAAM,yBAAA,GAA4BA,EACtC,YAAA,CAAa;AAAA,EACZ,GAAA,EAAK,iBAAA;AAAA,EACL,aAAA,EAAe,iBAAA;AAAA,EACf,KAAA,EAAO,mBAAA;AAAA,EACP,WAAA,EAAa,mBAAA;AAAA,EACb,UAAA,EAAYA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA;AAAA,EACrC,OAAA,EAAS,gCAAA;AAAA,EACT,eAAA,EAAiB,iBAAA;AAAA,EACjB,WAAA,EAAa,gBAAA;AAAA,EACb,YAAA,EAAc,gBAAA;AAAA,EACd,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAM,oCAAoC,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAChF,eAAA,EAAiBA,CAAAA,CAAE,KAAA,CAAM,oCAAoC,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACjF,SAAA,EAAW,kBAAA;AAAA,EACX,UAAA,EAAY,uBAAA;AAAA,EACZ,QAAA,EAAU,qBAAA;AAAA,EACV,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,GAAG,CAAA,CAAE,GAAA,CAAI,IAAO,CAAA;AAAA,EAChD,WAAA,EAAa,8BAAA;AAAA,EACb,KAAA,EAAO,8BAAA;AAAA,EACP,WAAA,EAAaA,EAAE,KAAA,CAAM,iBAAiB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE;AACvD,CAAC,CAAA,CACA,WAAA,CAAY,CAAC,MAAA,EAAQ,OAAA,KAAY;AAChC,EAAA,2BAAA,CAA4B,MAAA,CAAO,SAAS,OAAO,CAAA;AAEnD,EAAA,IACE,OAAO,QAAA,KAAA,QAAA,iBACP,MAAA,CAAO,OAAA,CAAQ,gBAAA,CAAiB,WAAW,CAAA,EAC3C;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,wDAAA;AAAA,MACT,IAAA,EAAM,CAAC,SAAA,EAAW,kBAAkB;AAAA,KACrC,CAAA;AAAA,EACH;AACF,CAAC,CAAA;AAEI,IAAM,yBAAA,GAA4BA,EAAE,YAAA,CAAa;AAAA,EACtD,GAAA,EAAK,iBAAA;AAAA,EACL,IAAA,EAAM,mBAAA;AAAA,EACN,KAAA,EAAO,mBAAA;AAAA,EACP,WAAA,EAAa,mBAAA;AAAA,EACb,oBAAA,EAAsB,mBAAA;AAAA,EACtB,QAAA,EAAU,uBAAA;AAAA,EACV,gBAAA,EAAkB,uBAAA,CAAwB,OAAA,CAAQ,EAAE,CAAA;AAAA,EACpD,WAAA,EAAa,gBAAA,CAAiB,OAAA,CAAQ,EAAE,CAAA;AAAA,EACxC,WAAA,EAAa,gBAAA;AAAA,EACb,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC7D,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC7D,aAAA,EAAeA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC5D,cAAA,EAAgBA,EAAE,KAAA,CAAM,iBAAiB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EACxD,UAAA,EAAYA,EAAE,KAAA,CAAM,iBAAiB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EACpD,SAAA,EAAW,kBAAA;AAAA,EACX,cAAA,EAAgBA,EAAE,KAAA,CAAM,eAAe,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA;AAAA,EACrD,iBAAA,EAAmBA,EAAE,IAAA,CAAK;AAAA,IACxB,oBAAA;AAAA,IACA,WAAA;AAAA,GACD,CAAA;AAAA,EACD,qBAAA,EAAuB,mBAAA;AAAA,EACvB,cAAA,EAAgBA,CAAAA,CAAE,MAAA,CAAO,iBAAA,EAAmB,mBAAmB,CAAA;AAAA,EAC/D,iBAAiBA,CAAAA,CAAE,IAAA,CAAK,CAAC,cAAA,qBAAqC,0BAAgC;AAChG,CAAC,CAAA;AAEM,IAAM,4BAAA,GAA+BA,EAAE,YAAA,CAAa;AAAA,EACzD,GAAA,EAAK,iBAAA;AAAA,EACL,KAAA,EAAO,mBAAA;AAAA,EACP,WAAA,EAAa,oBAAoB,QAAA,EAAS;AAAA,EAC1C,QAAA,EAAU,0BAAA;AAAA,EACV,MAAA,EAAQA,CAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,IACnCA,EAAE,YAAA,CAAa;AAAA,MACb,IAAA,EAAMA,EAAE,OAAA,CAAA,SAAA,eAAsC;AAAA,MAC9C,UAAA,EAAY;AAAA,KACb,CAAA;AAAA,IACDA,EAAE,YAAA,CAAa;AAAA,MACb,IAAA,EAAMA,EAAE,OAAA,CAAA,SAAA;AAAsC,KAC/C;AAAA,GACF;AACH,CAAC,CAAA;AAEM,IAAM,0BAAA,GAA6BA,EAAE,YAAA,CAAa;AAAA,EACvD,GAAA,EAAK,iBAAA;AAAA,EACL,SAAA,EAAW,iBAAA;AAAA,EACX,MAAA,EAAQ,sBAAA;AAAA,EACR,KAAA,EAAO,mBAAA;AAAA,EACP,WAAA,EAAa,mBAAA;AAAA,EACb,MAAA,EAAQ,gBAAA;AAAA,EACR,aAAaA,CAAAA,CACV,KAAA;AAAA,IACCA,EAAE,YAAA,CAAa;AAAA,MACb,WAAA,EAAa,kBAAkB,QAAA,EAAS;AAAA,MACxC,GAAA,EAAK,iBAAA;AAAA,MACL,KAAA,EAAO;AAAA,KACR;AAAA,IAEF,GAAA,CAAI,EAAE,CAAA,CACN,OAAA,CAAQ,EAAE;AACf,CAAC,CAAA;AAEM,IAAM,+BAAA,GAAkCA,EAAE,YAAA,CAAa;AAAA,EAC5D,GAAA,EAAK,iBAAA;AAAA,EACL,SAAA,EAAW,iBAAA;AAAA,EACX,KAAA,EAAO,mBAAA;AAAA,EACP,WAAA,EAAa,mBAAA;AAAA,EACb,cAAA,EAAgBA,EAAE,KAAA,CAAM,iBAAiB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EACxD,cAAA,EAAgBA,EAAE,KAAA,CAAM,eAAe,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA;AAAA,EACrD,SAAA,EAAW;AACb,CAAC,CAAA;AAEM,IAAM,0BAAA,GAA6BA,EAAE,YAAA,CAAa;AAAA,EACvD,GAAA,EAAK,iBAAA;AAAA,EACL,QAAA,EAAU,iBAAA;AAAA,EACV,aAAA,EAAe,iBAAA;AAAA,EACf,SAAA,EAAW,kBAAA;AAAA,EACX,WAAA,EAAa;AACf,CAAC,CAAA;AAEM,IAAM,kCAAA,GAAqCA,EAAE,YAAA,CAAa;AAAA,EAC/D,aAAA,EAAeA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,KAAK,gBAAgB,CAAC,CAAA,CAAE,GAAA,CAAI,gBAAA,CAAiB,MAAM,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACxF,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,KAAK,gBAAgB,CAAC,CAAA,CAAE,GAAA,CAAI,gBAAA,CAAiB,MAAM,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACzF,gBAAA,EAAkBA,CAAAA,CACf,KAAA,CAAMA,CAAAA,CAAE,KAAK,yBAAyB,CAAC,CAAA,CACvC,GAAA,CAAI,yBAAA,CAA0B,MAAM,CAAA,CACpC,OAAA,CAAQ,EAAE,CAAA;AAAA,EACb,IAAA,EAAMA,EAAE,YAAA,CAAa;AAAA,IACnB,UAAUA,CAAAA,CACP,KAAA;AAAA,MACCA,EAAE,YAAA,CAAa;AAAA,QACb,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,gBAAgB,CAAA;AAAA,QAC9B,KAAA,EAAO,mBAAA;AAAA,QACP,WAAA,EAAa;AAAA,OACd;AAAA,MAEF,GAAA,CAAI,gBAAA,CAAiB,MAAM,CAAA,CAC3B,OAAA,CAAQ,EAAE,CAAA;AAAA,IACb,gBAAgBA,CAAAA,CACb,KAAA;AAAA,MACCA,EAAE,YAAA,CAAa;AAAA,QACb,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,yBAAyB,CAAA;AAAA,QACvC,KAAA,EAAO,mBAAA;AAAA,QACP,WAAA,EAAa;AAAA,OACd;AAAA,MAEF,GAAA,CAAI,yBAAA,CAA0B,MAAM,CAAA,CACpC,OAAA,CAAQ,EAAE;AAAA,GACd;AACH,CAAC,CAAA;AAEM,IAAM,8BAAA,GAAiCA,EAAE,YAAA,CAAa;AAAA,EAC3D,QAAA,EAAUA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACvD,QAAA,EAAU,uBAAA,CAAwB,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC5C,mBAAA,EAAqB,uBAAA,CAAwB,OAAA,CAAQ,EAAE;AACzD,CAAC,CAAA;AAEM,IAAM,wBAAA,GAA2BA,CAAAA,CAAE,kBAAA,CAAmB,QAAA,EAAU;AAAA,EACrEA,EAAE,YAAA,CAAa;AAAA,IACb,MAAA,EAAQA,EAAE,OAAA,CAAA,SAAA,eAA8B;AAAA,IACxC,KAAA,EAAOA,EAAE,IAAA;AAAK,GACf,CAAA;AAAA,EACDA,EAAE,YAAA,CAAa;AAAA,IACb,MAAA,EAAQA,EAAE,OAAA,CAAA,OAAA,aAA4B;AAAA,IACtC,IAAA,EAAM,cAAA;AAAA,IACN,QAAA,EAAUA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,GAChC,CAAA;AAAA,EACDA,EAAE,YAAA,CAAa;AAAA,IACb,MAAA,EAAQA,EAAE,OAAA,CAAA,SAAA,eAA8B;AAAA,IACxC,IAAA,EAAM;AAAA,GACP,CAAA;AAAA,EACDA,EAAE,YAAA,CAAa;AAAA,IACb,MAAA,EAAQA,EAAE,OAAA,CAAA,SAAA,eAA8B;AAAA,IACxC,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACDA,EAAE,YAAA,CAAa;AAAA,IACb,MAAA,EAAQA,EAAE,OAAA,CAAA,QAAA,cAA6B;AAAA,IACvC,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACDA,EAAE,YAAA,CAAa;AAAA,IACb,MAAA,EAAQA,EAAE,OAAA,CAAA,aAAA,mBAAkC;AAAA,IAC5C,OAAA,EAAS,iBAAA;AAAA,IACT,IAAA,EAAM,eAAe,QAAA;AAAS,GAC/B;AACH,CAAC,CAAA;AAED,IAAM,mBAAA,GAAsB;AAAA,EAC1B,GAAA,EAAK,iBAAA;AAAA,EACL,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE;AAC1D,CAAA;AAEA,IAAM,oBAAA,GAAuBA,CAAAA,CAC1B,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,GAAG,CAAA,CACP,KAAA,CAAM,+BAA+B,CAAA;AAExC,IAAM,mBAAA,GAAsB,yBAAA,CAA0B,MAAA,CAAO,WAAA,EAAa;AAAA,EACxE,OAAA,EAAS;AACX,CAAC,CAAA;AAEM,IAAM,wBAAA,GAA2BA,EAAE,YAAA,CAAa;AAAA,EACrD,GAAG,mBAAA;AAAA,EACH,IAAA,EAAMA,EAAE,OAAA,CAAA,cAAA,oBAAwC;AAAA,EAChD,MAAA,EAAQ,mBAAA;AAAA,EACR,GAAA,EAAK,yBAAA;AAAA,EACL,OAAA,EAASA,CAAAA,CACN,MAAA,CAAO,oBAAA,EAAsB,wBAAwB,CAAA,CACrD,MAAA;AAAA,IACC,CAAC,OAAA,KAAY,MAAA,CAAO,IAAA,CAAK,OAAO,EAAE,MAAA,IAAU,EAAA;AAAA,IAC5C;AAAA,GACF,CACC,OAAA,CAAQ,EAAE,CAAA;AAAA,EACb,KAAA,EAAOA,CAAAA,CACJ,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,EAAG,wBAAwB,CAAA,CAC3D,MAAA;AAAA,IACC,CAAC,UAAA,KAAe,MAAA,CAAO,IAAA,CAAK,UAAU,EAAE,MAAA,IAAU,EAAA;AAAA,IAClD;AAAA,GACF,CACC,OAAA,CAAQ,EAAE,CAAA;AAAA,EACb,IAAA,EAAM,yBAAyB,QAAA,EAAS;AAAA,EACxC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,GAAG,CAAA,CAAE,GAAA,CAAI,GAAM;AACjD,CAAC,CAAA;AAEM,IAAM,sBAAA,GAAyBA,EAAE,YAAA,CAAa;AAAA,EACnD,GAAG,mBAAA;AAAA,EACH,IAAA,EAAMA,EAAE,OAAA,CAAA,WAAA,iBAAqC;AAAA,EAC7C,OAAA,EAASA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,EAAG,wBAAwB;AACxE,CAAC,CAAA;AAEM,IAAM,sBAAA,GAAyBA,EAAE,YAAA,CAAa;AAAA,EACnD,GAAG,mBAAA;AAAA,EACH,IAAA,EAAMA,EAAE,OAAA,CAAA,WAAA,iBAAqC;AAAA,EAC7C,SAAA,EAAW,wBAAA;AAAA,EACX,QAAA,EAAU,iBAAA;AAAA,EACV,SAAA,EAAW,kBAAkB,QAAA;AAC/B,CAAC,CAAA;AAEM,IAAM,qBAAA,GAAwBA,EAAE,YAAA,CAAa;AAAA,EAClD,GAAG,mBAAA;AAAA,EACH,IAAA,EAAMA,EAAE,OAAA,CAAA,UAAA,gBAAoC;AAAA,EAC5C,QAAA,EAAUA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAK,CAAA;AAAA,EACrC,WAAWA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,EAAG,wBAAwB,CAAA,CAAE,OAAA,CAAQ,EAAE;AACrF,CAAC,CAAA;AAEM,IAAM,yBAAA,GAA4BA,EAAE,YAAA,CAAa;AAAA,EACtD,GAAG,mBAAA;AAAA,EACH,IAAA,EAAMA,EAAE,OAAA,CAAA,eAAA,qBAAyC;AAAA,EACjD,WAAA,EAAa,iBAAA;AAAA,EACb,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAK,CAAA;AAAA,EAChD,KAAA,EAAO;AACT,CAAC,CAAA;AAEM,IAAM,uBAAA,GAA0BA,EAAE,YAAA,CAAa;AAAA,EACpD,GAAG,mBAAA;AAAA,EACH,IAAA,EAAMA,EAAE,OAAA,CAAA,aAAA,mBAAuC;AAAA,EAC/C,UAAA,EAAY;AACd,CAAC,CAAA;AAEM,IAAM,uBAAA,GAA0BA,EAAE,YAAA,CAAa;AAAA,EACpD,GAAG,mBAAA;AAAA,EACH,IAAA,EAAMA,EAAE,OAAA,CAAA,aAAA,mBAAuC;AAAA,EAC/C,UAAA,EAAY,iBAAA;AAAA,EACZ,MAAA,EAAQ;AACV,CAAC,CAAA;AAEM,IAAM,qBAAA,GAAwBA,CAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,EAChE,wBAAA;AAAA,EACA,sBAAA;AAAA,EACA,sBAAA;AAAA,EACA,qBAAA;AAAA,EACA,yBAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACF,CAAC,CAAA;AAEM,IAAM,2BAAA,GAA8BA,EAAE,YAAA,CAAa;AAAA,EACxD,SAAA,EAAW,iBAAA;AAAA,EACX,KAAA,EAAOA,EAAE,KAAA,CAAM,qBAAqB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE;AACrD,CAAC,CAAA;AAED,IAAM,6BAAA,GAAgCA,EAAE,YAAA,CAAa;AAAA,EACnD,IAAA,EAAMA,EAAE,OAAA,CAAA,MAAA;AACV,CAAC,CAAA;AAED,IAAM,iCAAA,GAAoCA,EAAE,YAAA,CAAa;AAAA,EACvD,IAAA,EAAMA,EAAE,OAAA,CAAA,SAAA,eAAiC;AAAA,EACzC,QAAQA,CAAAA,CACL,KAAA;AAAA,IACCA,EAAE,YAAA,CAAa;AAAA,MACb,GAAA,EAAK,iBAAA;AAAA,MACL,cAAA,EAAgBA,EAAE,KAAA,CAAM,mBAAmB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,MAC1D,UAAA,EAAY,oBAAA;AAAA,MACZ,KAAA,EAAO,mBAAA;AAAA,MACP,WAAA,EAAa,mBAAA;AAAA,MACb,SAAA,EAAW;AAAA,KACZ;AAAA,GACH,CACC,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,EAAE;AACX,CAAC,CAAA;AAED,IAAM,gCAAA,GAAmCA,EAAE,YAAA,CAAa;AAAA,EACtD,IAAA,EAAMA,EAAE,OAAA,CAAA,QAAA,cAAgC;AAAA,EACxC,gBAAA,EAAkB,cAAA;AAAA,EAClB,QAAA,EAAU,cAAA;AAAA,EACV,UAAA,EAAY,eAAe,QAAA,EAAS;AAAA,EACpC,eAAA,EAAiBA,EAAE,KAAA,CAAM,mBAAmB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EAC3D,iBAAA,EAAmB,4BAAA;AAAA,EACnB,qBAAA,EAAuB,6BAA6B,QAAA,EAAS;AAAA,EAC7D,YAAA,EAAcA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,IAAI,CAAA;AAAA,EACtC,QAAQA,CAAAA,CACL,KAAA;AAAA,IACCA,EAAE,YAAA,CAAa;AAAA,MACb,aAAA,EAAe,iBAAA;AAAA,MACf,aAAA,EAAeA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG;AAAA,KACzC;AAAA,GACH,CACC,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,EAAE;AACX,CAAC,CAAA;AAEM,IAAM,kCAAA,GAAqCA,EAAE,YAAA,CAAa;AAAA,EAC/D,IAAA,EAAMA,EAAE,OAAA,CAAA,aAAA,mBAAkC;AAAA,EAC1C,UAAA,EAAYA,CAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,IACvC,6BAAA;AAAA,IACA,iCAAA;AAAA,IACA;AAAA,GACD,CAAA;AAAA,EACD,SAAA,EAAWA,EAAE,KAAA,CAAM,2BAA2B,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE;AAC/D,CAAC,CAAA;AAED,SAAS,YAAY,KAAA,EAAwB;AAC3C,EAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,KAAK,CAAA;AACzB,EAAA,OAAO,CAAC,GAAA,CAAI,QAAA,IAAY,CAAC,GAAA,CAAI,QAAA,IAAY,CAAC,GAAA,CAAI,MAAA,IAAU,CAAC,GAAA,CAAI,IAAA,IAAQ,IAAI,QAAA,KAAa,GAAA;AACxF;AAEO,IAAM,6BAAA,GAAgCA,EAAE,YAAA,CAAa;AAAA,EAC1D,IAAA,EAAMA,EAAE,OAAA,CAAA,QAAA,cAA6B;AAAA,EACrC,OAAA,EAAS,yBAAA;AAAA,EACT,OAAA,EAAS,yBAAA;AAAA,EACT,kBAAA,EAAoBA,EAAE,OAAA;AACxB,CAAC,CAAA;AAEM,IAAM,mBAAA,GAAsBA,EAAE,YAAA,CAAa;AAAA,EAChD,iBAAA,EAAmBA,CAAAA,CAAE,OAAA,CAAQ,oBAAoB,CAAA;AAAA,EACjD,aAAA,EAAe,gBAAA;AAAA,EACf,GAAA,EAAKA,EAAE,YAAA,CAAa;AAAA,IAClB,IAAA,EAAM,mBAAA;AAAA,IACN,gBAAA,EAAkB,mBAAA;AAAA,IAClB,eAAA,EAAiB,mBAAA;AAAA,IACjB,UAAA,EAAY,mBAAA;AAAA,IACZ,IAAA,EAAM,wBAAwB,QAAA,EAAS;AAAA,IACvC,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA;AAAS,GACnD,CAAA;AAAA,EACD,WAAA,EAAa,8BAAA,CAA+B,OAAA,CAAQ,EAAE,CAAA;AAAA,EACtD,UAAA,EAAY,6BAAA;AAAA,EACZ,OAAA,EAASA,EAAE,KAAA,CAAM,yBAAyB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA;AAAA,EAC1D,YAAA,EAAcA,EAAE,KAAA,CAAM,6BAA6B,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA;AAAA,EACnE,OAAA,EAASA,EAAE,KAAA,CAAM,yBAAyB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA;AAAA,EAC1D,QAAA,EAAUA,CAAAA,CAAE,KAAA,CAAM,0BAA0B,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAChE,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,GAAG,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACzD,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAM,4BAA4B,CAAA,CAAE,IAAI,GAAG,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACpE,iBAAA,EAAmBA,CAAAA,CAAE,KAAA,CAAM,mCAAmC,CAAA,CAAE,IAAI,GAAG,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACnF,OAAA,EAAS,kCAAA;AAAA,EACT,QAAA,EAAU,2BAAA;AAAA,EACV,QAAA,EAAU,yBAAA;AAAA,EACV,WAAA,EAAa,8BAAA;AAAA,EACb,aAAA,EAAeA,CAAAA,CAAE,KAAA,CAAM,+BAA+B,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC1E,QAAA,EAAUA,EAAE,KAAA,CAAM,0BAA0B,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA;AAAA,EAC5D,OAAA,EAASA,CAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,IACpC,kCAAA;AAAA,IACA;AAAA,GACD;AACH,CAAC,CAAA;AAQM,SAAS,6BAAA,GAAyD;AACvE,EAAA,OAAOA,CAAAA,CAAE,aAAa,mBAAmB,CAAA;AAC3C;AC9kBwBA,EAAE,YAAA,CAAa;AAAA,EACrC,QAAA,EAAU,eAAA;AAAA,EACV,cAAA,EAAgB;AAClB,CAAC;AAED,IAAM,yBAAA,GAA4BA,EAAE,YAAA,CAAa;AAAA,EAC/C,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,CAACA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAC,CAAA;AAAA,EACpD,QAAA,EAAU;AACZ,CAAC,CAAA;AAED,IAAM,gCAAA,GAAmCA,EAAE,YAAA,CAAa;AAAA,EACtD,IAAA,EAAMA,EAAE,OAAA,CAAA,YAAA,kBAA+C;AAAA,EACvD,QAAA,EAAU,qBAAA;AAAA,EACV,eAAA,EAAiBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,KAAM,CAAA;AAAA,EACnD,YAAYA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EAC7C,UAAA,EAAY,kBAAkB,QAAA,EAAS;AAAA,EACvC,UAAA,EAAY,kBAAkB,QAAA;AAChC,CAAC,CAAA;AAEM,IAAM,sBAAA,GAAyBA,EAAE,YAAA,CAAa;AAAA,EACnD,GAAA,EAAK,iBAAA;AAAA,EACL,IAAA,EAAM,kBAAA;AAAA,EACN,QAAA,EAAU,eAAA;AAAA,EACV,cAAA,EAAgB,gBAAgB,QAAA,EAAS;AAAA,EACzC,OAAA,EAAS,gBAAgB,QAAA,EAAS;AAAA,EAClC,QAAA,EAAUA,EAAE,OAAA,EAAQ;AAAA,EACpB,OAAA,EAASA,CAAAA,CAAE,IAAA,EAAK,CAAE,QAAA,EAAS;AAAA,EAC3B,UAAA,EAAY,iBAAiB,QAAA,EAAS;AAAA,EACtC,OAAA,EAASA,EAAE,KAAA,CAAM,yBAAyB,EAAE,GAAA,CAAI,GAAG,EAAE,QAAA,EAAS;AAAA,EAC9D,aAAA,EAAe,iCAAiC,QAAA;AAClD,CAAC,CAAA;AAEM,IAAM,2BAAA,GAA8BA,EAAE,YAAA,CAAa;AAAA,EACxD,EAAA,EAAI,qBAAA;AAAA,EACJ,QAAA,EAAU,eAAA;AAAA,EACV,cAAA,EAAgB,eAAA;AAAA,EAChB,WAAA,EAAa,gBAAA;AAAA,EACb,YAAA,EAAc,gBAAA;AAAA,EACd,SAAA,EAAW,kBAAA;AAAA,EACX,QAAA,EAAU,qBAAA;AAAA,EACV,SAAA,EAAWA,EAAE,KAAA,CAAM,qBAAqB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE;AACzD,CAAC,CAAA;AAED,IAAM,kCAAA,GAAqCA,EAAE,YAAA,CAAa;AAAA,EACxD,UAAA,EAAY,qBAAA;AAAA,EACZ,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAK,CAAA;AAAA,EAChD,QAAA,EAAUA,EAAE,OAAA,EAAQ;AAAA,EACpB,WAAA,EAAaA,EAAE,IAAA,CAAK;AAAA,IAAA,KAAA;AAAA,IAAA,MAAA;AAAA,IAAA,aAAA;AAAA,GAInB;AACH,CAAC,CAAA;AAEM,IAAM,uBAAA,GAA0BA,EACpC,YAAA,CAAa;AAAA,EACZ,EAAA,EAAI,qBAAA;AAAA,EACJ,YAAA,EAAc,qBAAA;AAAA,EACd,QAAA,EAAU,eAAA;AAAA,EACV,cAAA,EAAgB,eAAA;AAAA,EAChB,UAAA,EAAYA,EAAE,OAAA,EAAQ;AAAA,EACtB,OAAA,EAASA,EAAE,YAAA,CAAa;AAAA,IACtB,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,gBAAgB,CAAC,CAAA,CAAE,GAAA,CAAI,gBAAA,CAAiB,MAAM,CAAA;AAAA,IAC7E,kBAAkBA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,IACnD,kBAAkBA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE;AAAA,GACpD,CAAA;AAAA,EACD,eAAA,EAAiB,iBAAA;AAAA,EACjB,WAAA,EAAa,gBAAA;AAAA,EACb,YAAA,EAAc,gBAAA;AAAA,EACd,gBAAgBA,CAAAA,CAAE,KAAA,CAAM,kCAAkC,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EAClE,iBAAiBA,CAAAA,CAAE,KAAA,CAAM,kCAAkC,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EACnE,SAAA,EAAW,kBAAA;AAAA,EACX,UAAA,EAAY,uBAAA;AAAA,EACZ,QAAA,EAAU,qBAAA;AAAA,EACV,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,GAAG,CAAA,CAAE,GAAA,CAAI,IAAO,CAAA;AAAA,EAChD,WAAA,EAAaA,EAAE,YAAA,CAAa;AAAA,IAC1B,QAAA,EAAUA,EAAE,OAAA,EAAQ;AAAA,IACpB,WAAWA,CAAAA,CAAE,KAAA,CAAM,cAAc,CAAA,CAAE,IAAI,EAAE;AAAA,GAC1C,CAAA;AAAA,EACD,KAAA,EAAOA,EAAE,YAAA,CAAa;AAAA,IACpB,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA;AAAA,IAC1C,sBAAsBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,GAAS,GAAA,EAAI,CAAE,GAAA,CAAI,GAAG,EAAE,GAAA,CAAI,GAAG,CAAC,CAAA,CAAE,IAAI,EAAE;AAAA,GACzE,CAAA;AAAA,EACD,UAAA,EAAYA,EAAE,KAAA,CAAM,qBAAqB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE;AAC1D,CAAC,CAAA,CACA,WAAA,CAAY,CAAC,MAAA,EAAQ,OAAA,KAAY;AAChC,EAAA,IAAI,IAAI,GAAA,CAAI,MAAA,CAAO,OAAA,CAAQ,gBAAgB,EAAE,IAAA,KAAS,MAAA,CAAO,OAAA,CAAQ,gBAAA,CAAiB,MAAA,EAAQ;AAC5F,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,sCAAA;AAAA,MACT,IAAA,EAAM,CAAC,SAAA,EAAW,kBAAkB;AAAA,KACrC,CAAA;AAAA,EACH;AAEA,EAAA,IACE,OAAO,QAAA,KAAA,QAAA,iBACP,MAAA,CAAO,OAAA,CAAQ,gBAAA,CAAiB,WAAW,CAAA,EAC3C;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,wDAAA;AAAA,MACT,IAAA,EAAM,CAAC,SAAA,EAAW,kBAAkB;AAAA,KACrC,CAAA;AAAA,EACH;AAEA,EAAA,KAAA,MAAW,iBAAiB,8BAAA,EAAgC;AAC1D,IAAA,IAAI,CAAC,MAAA,CAAO,OAAA,CAAQ,cAAA,CAAe,QAAA,CAAS,aAAa,CAAA,EAAG;AAC1D,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,qCAAqC,aAAa,CAAA,OAAA,CAAA;AAAA,QAC3D,IAAA,EAAM,CAAC,SAAA,EAAW,gBAAgB;AAAA,OACnC,CAAA;AAAA,IACH;AAAA,EACF;AAEA,EAAA,IAAI,MAAA,CAAO,OAAA,CAAQ,gBAAA,CAAiB,MAAA,KAAW,CAAA,EAAG;AAElD,EAAA,IAAI,CAAC,MAAA,CAAO,OAAA,CAAQ,cAAA,CAAe,QAAA,CAAS,2BAA2B,CAAA,EAAG;AACxE,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,iFAAA;AAAA,MACT,IAAA,EAAM,CAAC,SAAA,EAAW,gBAAgB;AAAA,KACnC,CAAA;AAAA,EACH;AACF,CAAC,CAAA;AAEI,IAAM,uBAAA,GAA0BA,EAAE,YAAA,CAAa;AAAA,EACpD,EAAA,EAAI,qBAAA;AAAA,EACJ,IAAA,EAAM,mBAAA;AAAA,EACN,QAAA,EAAU,eAAA;AAAA,EACV,cAAA,EAAgB,eAAA;AAAA,EAChB,uBAAA,EAAyB,eAAA;AAAA,EACzB,UAAUA,CAAAA,CAAE,MAAA,CAAO,kBAAkBA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,EAAE,GAAA,CAAI,GAAG,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAC,CAAA;AAAA,EAChF,kBAAkBA,CAAAA,CAAE,MAAA,CAAO,kBAAkBA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,EAAE,GAAA,CAAI,GAAG,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAC,CAAA;AAAA,EACxF,WAAA,EAAa,gBAAA;AAAA,EACb,WAAA,EAAa,gBAAA;AAAA,EACb,gBAAgBA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EACjD,gBAAgBA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EACjD,cAAcA,CAAAA,CAAE,KAAA,CAAM,qBAAqB,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EACnD,aAAA,EAAeA,EAAE,KAAA,CAAM,qBAAqB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EAC3D,SAAA,EAAWA,EAAE,KAAA,CAAM,qBAAqB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EACvD,SAAA,EAAW,kBAAA;AAAA,EACX,cAAA,EAAgBA,EAAE,KAAA,CAAM,eAAe,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA;AAAA,EACrD,iBAAA,EAAmBA,EAAE,IAAA,CAAK;AAAA,IAAA,oBAAA;AAAA,IAAA,WAAA;AAAA,GAGzB,CAAA;AAAA,EACD,wBAAA,EAA0B,eAAA;AAAA,EAC1B,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,CAAO,iBAAA,EAAmB,eAAe,CAAA;AAAA,EAC9D,eAAA,EAAiBA,CAAAA,CAAE,IAAA,CAAK,CAAA,cAAA,qBAAA,UAAA,gBAAsE;AAChG,CAAC,CAAA;AAEM,IAAM,0BAAA,GAA6BA,EAAE,YAAA,CAAa;AAAA,EACvD,EAAA,EAAI,qBAAA;AAAA,EACJ,QAAA,EAAU,eAAA;AAAA,EACV,cAAA,EAAgB,gBAAgB,QAAA,EAAS;AAAA,EACzC,QAAA,EAAU,0BAAA;AAAA,EACV,MAAA,EAAQA,CAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,IACnCA,EAAE,YAAA,CAAa;AAAA,MACb,IAAA,EAAMA,EAAE,OAAA,CAAA,SAAA,eAAsC;AAAA,MAC9C,UAAA,EAAY;AAAA,KACb,CAAA;AAAA,IACDA,EAAE,YAAA,CAAa;AAAA,MACb,IAAA,EAAMA,EAAE,OAAA,CAAA,SAAA;AAAsC,KAC/C;AAAA,GACF;AACH,CAAC,CAAA;AAEM,IAAM,wBAAA,GAA2BA,EAAE,YAAA,CAAa;AAAA,EACrD,EAAA,EAAI,qBAAA;AAAA,EACJ,QAAA,EAAU,qBAAA;AAAA,EACV,MAAA,EAAQ,sBAAA;AAAA,EACR,QAAA,EAAU,eAAA;AAAA,EACV,cAAA,EAAgB,eAAA;AAAA,EAChB,MAAA,EAAQ,gBAAA;AAAA,EACR,aAAaA,CAAAA,CACV,KAAA;AAAA,IACCA,EAAE,YAAA,CAAa;AAAA,MACb,UAAA,EAAY,sBAAsB,QAAA,EAAS;AAAA,MAC3C,EAAA,EAAI,qBAAA;AAAA,MACJ,QAAA,EAAU;AAAA,KACX;AAAA,GACH,CACC,IAAI,EAAE;AACX,CAAC,CAAA;AAED,IAAM,6BAAA,GAAgCA,EAAE,YAAA,CAAa;AAAA,EACnD,EAAA,EAAI,qBAAA;AAAA,EACJ,QAAA,EAAU,qBAAA;AAAA,EACV,QAAA,EAAU,eAAA;AAAA,EACV,cAAA,EAAgB,eAAA;AAAA,EAChB,aAAA,EAAeA,EAAE,KAAA,CAAM,qBAAqB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EAC3D,cAAA,EAAgBA,EAAE,KAAA,CAAM,eAAe,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA;AAAA,EACrD,SAAA,EAAW;AACb,CAAC,CAAA;AAED,IAAM,wBAAA,GAA2BA,EAAE,YAAA,CAAa;AAAA,EAC9C,EAAA,EAAI,qBAAA;AAAA,EACJ,KAAA,EAAO,qBAAA;AAAA,EACP,YAAA,EAAc,qBAAA;AAAA,EACd,SAAA,EAAW,kBAAA;AAAA,EACX,WAAA,EAAa;AACf,CAAC,CAAA;AAED,IAAM,iCAAA,GAAoCA,EACvC,YAAA,CAAa;AAAA,EACZ,SAAA,EAAWA,CAAAA,CACR,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,CAAA,eAAA,sBAAA,eAAA,qBAAsE,CAAC,CAAA,CACpF,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,CAAC,CAAA;AAAA,EACR,EAAA,EAAI,qBAAA;AAAA,EACJ,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAK,CAAA;AAAA,EAChD,MAAA,EAAQ,gBAAA;AAAA,EACR,cAAA,EAAgB,eAAA;AAAA,EAChB,gBAAA,EAAkBA,CAAAA,CAAE,IAAA,CAAK,2BAA2B;AACtD,CAAC,CAAA,CACA,WAAA,CAAY,CAAC,KAAA,EAAO,OAAA,KAAY;AAC/B,EAAA,IAAI,CAAC,KAAA,CAAM,SAAA,CAAU,QAAA,CAAA,eAAA,qBAA0C,EAAG;AAChE,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,6DAAA;AAAA,MACT,IAAA,EAAM,CAAC,WAAW;AAAA,KACnB,CAAA;AAAA,EACH;AAEA,EAAA,IACE,MAAM,gBAAA,KAAqB,MAAA,IAC3B,KAAA,CAAM,SAAA,CAAU,6CAA0C,EAC1D;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,iEAAA;AAAA,MACT,IAAA,EAAM,CAAC,WAAW;AAAA,KACnB,CAAA;AAAA,EACH;AACF,CAAC,CAAA;AAEH,IAAM,+BAAA,GAAkCA,EAAE,YAAA,CAAa;AAAA,EACrD,MAAA,EAAQ,qBAAA;AAAA,EACR,KAAA,EAAO,iBAAA;AAAA,EACP,QAAA,EAAU;AACZ,CAAC,CAAA;AAED,IAAM,2BAAA,GAA8BA,EACjC,YAAA,CAAa;AAAA,EACZ,GAAA,EAAK,iBAAA;AAAA,EACL,QAAA,EAAU,eAAA;AAAA,EACV,cAAA,EAAgB,eAAA;AAAA,EAChB,iBAAiBA,CAAAA,CACd,KAAA,CAAM,sBAAsB,CAAA,CAC5B,GAAA,CAAI,GAAG,mFAAmF,CAAA;AAAA,EAC7F,SAAA,EAAWA,EAAE,KAAA,CAAM,+BAA+B,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EACjE,eAAA,EAAiB;AACnB,CAAC,CAAA,CACA,WAAA,CAAY,CAAC,IAAA,EAAM,OAAA,KAAY;AAC9B,EAAA,MAAM,iBAAiB,IAAA,CAAK,SAAA,CAAU,IAAI,CAAC,QAAA,KAAa,SAAS,KAAK,CAAA;AAEtE,EAAA,IAAI,IAAI,GAAA,CAAI,cAAc,CAAA,CAAE,IAAA,KAAS,eAAe,MAAA,EAAQ;AAC1D,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,wCAAA;AAAA,MACT,IAAA,EAAM,CAAC,WAAW;AAAA,KACnB,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,CAAC,cAAA,CAAe,QAAA,CAAS,IAAA,CAAK,eAAe,CAAA,EAAG;AAClD,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,iEAAA;AAAA,MACT,IAAA,EAAM,CAAC,iBAAiB;AAAA,KACzB,CAAA;AAAA,EACH;AACF,CAAC,CAAA;AAEH,IAAM,0BAAA,GAA6BA,EAAE,YAAA,CAAa;AAAA,EAChD,IAAA,EAAMA,EAAE,OAAA,CAAA,MAAA;AACV,CAAC,CAAA;AAED,IAAM,8BAAA,GAAiCA,EAAE,YAAA,CAAa;AAAA,EACpD,IAAA,EAAMA,EAAE,OAAA,CAAA,SAAA,eAAiC;AAAA,EACzC,QAAQA,CAAAA,CACL,KAAA;AAAA,IACCA,EAAE,YAAA,CAAa;AAAA,MACb,GAAA,EAAK,iBAAA;AAAA,MACL,gBAAgBA,CAAAA,CACb,KAAA;AAAA,QACC,yBAAA,CAA0B,OAAOC,YAAAA,EAAa;AAAA,UAC5C,OAAA,EACE;AAAA,SACH;AAAA,OACH,CACC,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,EAAE,CAAA;AAAA,MACT,UAAA,EAAYD,CAAAA,CACT,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,GAAG,CAAA,CACP,KAAA,CAAM,+BAA+B,CAAA;AAAA,MACxC,QAAA,EAAU,eAAA;AAAA,MACV,cAAA,EAAgB,eAAA;AAAA,MAChB,SAAA,EAAW;AAAA,KACZ;AAAA,GACH,CACC,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,EAAE;AACX,CAAC,CAAA;AAED,IAAM,6BAAA,GAAgCA,EAAE,YAAA,CAAa;AAAA,EACnD,IAAA,EAAMA,EAAE,OAAA,CAAA,QAAA,cAAgC;AAAA,EACxC,gBAAA,EAAkB,cAAA;AAAA,EAClB,QAAA,EAAU,cAAA;AAAA,EACV,UAAA,EAAY,eAAe,QAAA,EAAS;AAAA,EACpC,iBAAiBA,CAAAA,CACd,KAAA;AAAA,IACC,yBAAA,CAA0B,OAAOC,YAAAA,EAAa;AAAA,MAC5C,OAAA,EACE;AAAA,KACH;AAAA,GACH,CACC,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,EAAE,CAAA;AAAA,EACT,iBAAA,EAAmB,4BAAA;AAAA,EACnB,qBAAA,EAAuB,6BAA6B,QAAA,EAAS;AAAA,EAC7D,YAAA,EAAcD,EAAE,OAAA,EAAQ;AAAA,EACxB,QAAQA,CAAAA,CACL,KAAA;AAAA,IACCA,EAAE,YAAA,CAAa;AAAA,MACb,aAAA,EAAe,iBAAA;AAAA,MACf,aAAA,EAAeA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG;AAAA,KACzC;AAAA,GACH,CACC,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,EAAE;AACX,CAAC,CAAA;AAED,IAAM,4BAAA,GAA+BA,EAAE,YAAA,CAAa;AAAA,EAClD,GAAA,EAAK,iBAAA;AAAA,EACL,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACxD,IAAA,EAAMA,EAAE,OAAA,CAAA,aAAA,mBAAuC;AAAA,EAC/C,SAAA,EAAW,qBAAA;AAAA,EACX,MAAA,EAAQ;AACV,CAAC,CAAA;AAED,IAAM,8BAAA,GAAiCA,EAAE,YAAA,CAAa;AAAA,EACpD,GAAA,EAAK,iBAAA;AAAA,EACL,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACxD,IAAA,EAAMA,EAAE,OAAA,CAAA,eAAA,qBAAyC;AAAA,EACjD,UAAA,EAAY,qBAAA;AAAA,EACZ,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAK,CAAA;AAAA,EAChD,KAAA,EAAO;AACT,CAAC,CAAA;AAED,SAASC,aAAY,KAAA,EAAwB;AAC3C,EAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,KAAK,CAAA;AACzB,EAAA,OAAO,CAAC,GAAA,CAAI,QAAA,IAAY,CAAC,GAAA,CAAI,QAAA,IAAY,CAAC,GAAA,CAAI,MAAA,IAAU,CAAC,GAAA,CAAI,IAAA,IAAQ,IAAI,QAAA,KAAa,GAAA;AACxF;AAEO,IAAM,6BAAA,GAAgCD,CAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,EACxE,wBAAA;AAAA,EACA,sBAAA;AAAA,EACA,sBAAA;AAAA,EACA,qBAAA;AAAA,EACA,8BAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACF,CAAC,CAAA;AAED,IAAM,gCAAA,GAAmCA,EAAE,YAAA,CAAa;AAAA,EACtD,IAAA,EAAMA,EAAE,OAAA,CAAA,aAAA,mBAAkC;AAAA,EAC1C,UAAA,EAAYA,CAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,IACvC,0BAAA;AAAA,IACA,8BAAA;AAAA,IACA;AAAA,GACD,CAAA;AAAA,EACD,WAAWA,CAAAA,CACR,KAAA;AAAA,IACCA,EAAE,YAAA,CAAa;AAAA,MACb,QAAA,EAAU,qBAAA;AAAA,MACV,KAAA,EAAOA,EAAE,KAAA,CAAM,6BAA6B,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE;AAAA,KAC5D;AAAA,GACH,CACC,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,EAAE;AACX,CAAC,CAAA;AAED,IAAM,2BAAA,GAA8BA,EAAE,YAAA,CAAa;AAAA,EACjD,IAAA,EAAMA,EAAE,OAAA,CAAA,QAAA,cAA6B;AAAA,EACrC,OAAA,EAAS,yBAAA;AAAA,EACT,OAAA,EAAS,yBAAA;AAAA,EACT,kBAAA,EAAoBA,EAAE,OAAA;AACxB,CAAC,CAAA;AAEM,IAAM,iBAAA,GAAoBA,EAC9B,YAAA,CAAa;AAAA,EACZ,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,GAAA,EAAKA,EAAE,YAAA,CAAa;AAAA,IAClB,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,aAAA;AAAA,IACN,OAAA,EAAS,qBAAA;AAAA,IACT,OAAA,EAAS,eAAA;AAAA,IACT,mBAAA,EAAqB,eAAA;AAAA,IACrB,kBAAA,EAAoB,eAAA;AAAA,IACpB,UAAA,EAAY,mBAAA;AAAA,IACZ,IAAA,EAAM,wBAAwB,QAAA,EAAS;AAAA,IACvC,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,IAClD,QAAA,EAAUA,EAAE,OAAA,EAAQ;AAAA,IACpB,SAAA,EAAW,6BAAA;AAAA,IACX,WAAA,EAAa;AAAA,GACd,CAAA;AAAA,EACD,UAAA,EAAYA,EAAE,YAAA,CAAa;AAAA,IACzB,IAAA,EAAM,uBAAA;AAAA,IACN,QAAA,EAAUA,EAAE,OAAA,EAAQ;AAAA,IACpB,QAAA,EAAU,eAAA;AAAA,IACV,cAAA,EAAgB,eAAA;AAAA,IAChB,aAAaA,CAAAA,CACV,KAAA;AAAA,MACCA,EAAE,YAAA,CAAa;AAAA,QACb,GAAA,EAAK,iBAAA;AAAA,QACL,QAAA,EAAU,eAAA;AAAA,QACV,cAAA,EAAgB,eAAA;AAAA,QAChB,WAAA,EAAa;AAAA,OACd;AAAA,KACH,CACC,IAAI,EAAE;AAAA,GACV,CAAA;AAAA,EACD,OAAA,EAASA,EAAE,KAAA,CAAM,uBAAuB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA;AAAA,EACxD,YAAA,EAAcA,EAAE,KAAA,CAAM,2BAA2B,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA;AAAA,EACjE,OAAA,EAASA,EAAE,KAAA,CAAM,uBAAuB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA;AAAA,EACxD,UAAUA,CAAAA,CAAE,KAAA,CAAM,wBAAwB,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EAClD,WAAWA,CAAAA,CAAE,KAAA,CAAM,qBAAqB,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACjD,WAAWA,CAAAA,CAAE,KAAA,CAAM,0BAA0B,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACtD,mBAAmBA,CAAAA,CAAE,KAAA,CAAM,iCAAiC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACrE,OAAA,EAASA,EAAE,YAAA,CAAa;AAAA,IACtB,aAAA,EAAeA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,gBAAgB,CAAC,CAAA,CAAE,GAAA,CAAI,gBAAA,CAAiB,MAAM,CAAA;AAAA,IAC5E,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,gBAAgB,CAAC,CAAA,CAAE,GAAA,CAAI,gBAAA,CAAiB,MAAM,CAAA;AAAA,IAC7E,gBAAA,EAAkBA,CAAAA,CACf,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,yBAAyB,CAAC,CAAA,CACvC,GAAA,CAAI,yBAAA,CAA0B,MAAM,CAAA;AAAA,IACvC,IAAA,EAAMA,EAAE,YAAA,CAAa;AAAA,MACnB,UAAUA,CAAAA,CACP,KAAA;AAAA,QACCA,EAAE,YAAA,CAAa;AAAA,UACb,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,gBAAgB,CAAA;AAAA,UAC9B,QAAA,EAAU,eAAA;AAAA,UACV,cAAA,EAAgB;AAAA,SACjB;AAAA,OACH,CACC,GAAA,CAAI,gBAAA,CAAiB,MAAM,CAAA;AAAA,MAC9B,gBAAgBA,CAAAA,CACb,KAAA;AAAA,QACCA,EAAE,YAAA,CAAa;AAAA,UACb,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,yBAAyB,CAAA;AAAA,UACvC,QAAA,EAAU,eAAA;AAAA,UACV,cAAA,EAAgB;AAAA,SACjB;AAAA,OACH,CACC,GAAA,CAAI,yBAAA,CAA0B,MAAM;AAAA,KACxC;AAAA,GACF,CAAA;AAAA,EACD,QAAA,EAAUA,EAAE,YAAA,CAAa;AAAA,IACvB,aAAA,EAAeA,CAAAA,CAAE,OAAA,CAAQ,wBAAwB,CAAA;AAAA,IACjD,QAAQA,CAAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA,CAAE,IAAI,GAAG;AAAA,GAChD,CAAA;AAAA,EACD,QAAA,EAAUA,EAAE,YAAA,CAAa;AAAA,IACvB,aAAA,EAAeA,CAAAA,CAAE,OAAA,CAAQ,wBAAwB,CAAA;AAAA,IACjD,OAAOA,CAAAA,CAAE,KAAA,CAAM,2BAA2B,CAAA,CAAE,IAAI,GAAG;AAAA,GACpD,CAAA;AAAA,EACD,WAAA,EAAaA,EAAE,YAAA,CAAa;AAAA,IAC1B,UAAUA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,IAC3C,UAAUA,CAAAA,CAAE,MAAA,CAAO,kBAAkBA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,EAAE,GAAA,CAAI,GAAG,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAC,CAAA;AAAA,IAChF,qBAAqBA,CAAAA,CAAE,MAAA,CAAO,kBAAkBA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,EAAE,GAAA,CAAI,GAAG,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAC;AAAA,GAC5F,CAAA;AAAA,EACD,eAAeA,CAAAA,CAAE,KAAA,CAAM,6BAA6B,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EAC5D,QAAA,EAAUA,EAAE,KAAA,CAAM,wBAAwB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA;AAAA,EAC1D,OAAA,EAASA,CAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,IACpC,gCAAA;AAAA,IACA;AAAA,GACD,CAAA;AAAA,EACD,OAAA,EAASA,EAAE,YAAA,CAAa;AAAA,IACtB,aAAA,EAAe,gBAAA;AAAA,IACf,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAO,gBAAA,EAAkBA,CAAAA,CAAE,OAAO,eAAA,EAAiBA,CAAAA,CAAE,MAAA,EAAQ,CAAC;AAAA,GAC3E;AACH,CAAC,CAAA,CACA,WAAA,CAAY,CAAC,QAAA,EAAU,OAAA,KAAY;AAClC,EAAA,MAAM,UAAA,GAAa,SAAS,QAAA,CAAS,KAAA,CAAM,IAAI,CAAC,IAAA,KAAS,KAAK,GAAG,CAAA;AACjE,EAAA,MAAM,gBAAA,GAAmB,IAAI,GAAA,CAAI,UAAU,CAAA;AAC3C,EAAA,MAAM,cAAA,uBAAqB,GAAA,CAAI;AAAA,IAC7B,GAAG,SAAS,OAAA,CAAQ,aAAA;AAAA,IACpB,GAAG,SAAS,OAAA,CAAQ;AAAA,GACrB,CAAA;AAED,EAAA,IAAI,gBAAA,CAAiB,IAAA,KAAS,UAAA,CAAW,MAAA,EAAQ;AAC/C,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,kCAAA;AAAA,MACT,IAAA,EAAM,CAAC,UAAA,EAAY,OAAO;AAAA,KAC3B,CAAA;AAAA,EACH;AAEA,EAAA,QAAA,CAAS,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,EAAQ,WAAA,KAAgB;AAChD,IAAA,MAAA,CAAO,OAAA,CAAQ,gBAAA,CAAiB,OAAA,CAAQ,CAAC,SAAA,KAAc;AACrD,MAAA,IAAI,CAAC,gBAAA,CAAiB,GAAA,CAAI,SAAS,CAAA,EAAG;AACpC,QAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,UACf,IAAA,EAAM,QAAA;AAAA,UACN,OAAA,EAAS,oCAAoC,SAAS,CAAA,CAAA,CAAA;AAAA,UACtD,IAAA,EAAM,CAAC,SAAA,EAAW,WAAA,EAAa,WAAW,kBAAkB;AAAA,SAC7D,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAA,CAAO,OAAA,CAAQ,cAAA,CAAe,OAAA,CAAQ,CAAC,KAAA,KAAU;AAC/C,MAAA,IAAI,CAAC,cAAA,CAAe,GAAA,CAAI,KAAK,CAAA,EAAG;AAC9B,QAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,UACf,IAAA,EAAM,QAAA;AAAA,UACN,OAAA,EAAS,kDAAkD,KAAK,CAAA,CAAA,CAAA;AAAA,UAChE,IAAA,EAAM,CAAC,SAAA,EAAW,WAAA,EAAa,WAAW,gBAAgB;AAAA,SAC3D,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AACH,CAAC,CAAA;ACjkBI,IAAM,qBAAA,GAAwB,CAAA;AAC9B,IAAM,qBAAA,GAAwB,EAAA;AAE9B,IAAM,qBAAA,GAAwB;AAAA,EACnC,SAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,uBAAA,GAA0B,IAAI,GAAA,CAAY,qBAAqB,CAAA;AAE9D,SAAS,uBAAuB,KAAA,EAAwB;AAC7D,EAAA,OAAO,uBAAA,CAAwB,GAAA,CAAI,qBAAA,CAAsB,KAAK,CAAC,CAAA;AACjE;AAEO,SAAS,sBAAsB,KAAA,EAAuB;AAC3D,EAAA,OAAO,KAAA,CAAM,IAAA,EAAK,CAAE,WAAA,EAAY;AAClC;AASO,IAAM,qBAAqBA,CAAAA,CAC/B,MAAA,EAAO,CACP,SAAA,CAAU,qBAAqB,CAAA,CAC/B,IAAA;AAAA,EACCA,CAAAA,CACG,MAAA,EAAO,CACP,GAAA,CAAI,qBAAqB,EACzB,GAAA,CAAI,qBAAqB,CAAA,CACzB,KAAA,CAAM,sBAAsB;AACjC,CAAA,CACC,OAAO,CAAC,MAAA,KAAW,CAAC,sBAAA,CAAuB,MAAM,CAAC,CAAA;AAE9C,IAAK,uBAAA,qBAAAE,wBAAAA,KAAL;AACL,EAAAA,yBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,yBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,yBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,yBAAA,aAAA,CAAA,GAAc,aAAA;AAJJ,EAAA,OAAAA,wBAAAA;AAAA,CAAA,EAAA,uBAAA,IAAA,EAAA,CAAA;AAOgCF,EAAE,MAAA,CAAO;AAAA,EACnD,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,EAAE;AAC3B,CAAC;AAI0CA,EAAE,MAAA,CAAO;AAAA,EAClD,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,uBAAuB;AACxC,CAAC;ACpDM,IAAK,oBAAA,qBAAAG,qBAAAA,KAAL;AACL,EAAAA,sBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,sBAAA,MAAA,CAAA,GAAO,MAAA;AAFG,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA,CAAA;AAKL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AACL,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,eAAA,YAAA,CAAA,GAAa,YAAA;AAHH,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA,CAAA;AAqBL,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AACL,EAAAA,sBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,sBAAA,WAAA,CAAA,GAAY,WAAA;AAFF,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA,CAAA;AAKL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACL,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,oBAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,oBAAA,OAAA,CAAA,GAAQ,OAAA;AAHE,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA,CAAA;AAMZ,IAAM,wBAAA,GAA2BN,EAAE,MAAA,CAAO;AAAA,EACxC,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,EAC7D,eAAA,EAAiBA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,EAChE,oBAAA,EAAsBA,CAAAA,CAAE,IAAA,CAAK,oBAAoB,EAAE,QAAA;AACrD,CAAC,CAAA;AAEmCA,EAAE,MAAA,CAAO;AAAA,EAC3C,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,MAAK,CAAE,KAAA,EAAM,CAAE,GAAA,CAAI,GAAG;AAC1C,CAAC;AAID,IAAM,oBAAA,GAAuBA,EAAE,MAAA,CAAO;AAAA,EACpC,WAAA,EAAaA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACtC,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,MAAM,SAAS;AAClC,CAAC,CAAA;AAEoC,oBAAA,CAAqB,MAAA,CAAO,wBAAA,CAAyB,KAAK;AAQlDA,CAAAA,CAAE,kBAAA,CAAmB,QAAA,EAAU;AAAA,EAC1EA,EAAE,MAAA,CAAO;AAAA,IACP,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,IACtB,aAAA,EAAeA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,IACnD,MAAA,EAAQA,CAAAA,CAAE,OAAA,CAAQ,WAAA;AAA0B,GAC7C,CAAA;AAAA,EACDA,EAAE,MAAA,CAAO;AAAA,IACP,MAAA,EAAQA,CAAAA,CAAE,OAAA,CAAQ,UAAA,gBAAyB;AAAA,IAC3C,aAAA,EAAeA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM;AAAA,GACpD;AACH,CAAC;AAI6CA,EAAE,MAAA,CAAO;AAAA,EACrD,MAAA,EAAQA,CAAAA,CAAE,OAAA,CAAQ,UAAA,gBAAyB;AAAA,EAC3C,aAAA,EAAeA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM;AACrD,CAAC;AAIoCA,EAClC,MAAA,CAAO;AAAA,EACN,QAAA,EAAUA,EACP,MAAA,EAAO,CACP,MAAK,CACL,GAAA,CAAI,GAAG,CAAA,CACP,MAAA,CAAO,CAAC,UAAU,KAAA,CAAM,UAAA,CAAW,GAAG,CAAA,IAAK,CAAC,MAAM,UAAA,CAAW,IAAI,CAAC,CAAA,CAClE,QAAA;AACL,CAAC,CAAA,CACA,MAAA,CAAO,wBAAA,CAAyB,KAAK;AAIAA,CAAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,EACnEA,EAAE,MAAA,CAAO;AAAA,IACP,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,IAC5C,MAAA,EAAQ,kBAAA;AAAA,IACR,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,SAAA;AAA0B,GAC3C,CAAA;AAAA,EACDA,EAAE,MAAA,CAAO;AAAA,IACP,GAAA,EAAKA,EAAE,MAAA,EAAO,CAAE,MAAK,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,IACzC,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,aAAA;AAA8B,GAC/C;AACH,CAAC;AAImCA,EAAE,MAAA,CAAO;AAAA,EAC3C,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS;AAAA,EAC5D,WAAA,EAAaA,CAAAA,CAAE,IAAA,CAAK,kBAAkB,CAAA;AAAA,EACtC,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,oBAAoB,CAAA;AAAA,EACnC,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,IACrB,WAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,IACrC,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,IACtB,MAAA,EAAQA,EAAE,MAAA;AAAO,GAClB;AACH,CAAC;AAIoCA,EAAE,MAAA,CAAO;AAAA,EAC5C,MAAA,EAAQA,EAAE,MAAA,CAAO;AAAA,IACf,YAAYA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,aAAa,CAAC,CAAA;AAAA,IACzC,OAAA,EAASA,EAAE,OAAA;AAAQ,GACpB,CAAA;AAAA,EACD,OAAA,EAASA,EAAE,MAAA,CAAO;AAAA,IAChB,iBAAA,EAAmBA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,IACvD,YAAYA,CAAAA,CAAE,IAAA,CAAK,CAAC,KAAA,YAA2B,wBAA8B,CAAA;AAAA,IAC7E,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,IACb,mBAAA,EAAqBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA;AAAS,GACrE,CAAA;AAAA,EACD,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,EAAM;AAAA,IACxB,EAAA,EAAIA,EAAE,MAAA;AAAO,GACd,CAAA;AAAA,EACD,UAAA,EAAYA,EAAE,MAAA,CAAO;AAAA,IACnB,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS;AAAA,IAC5D,WAAA,EAAaA,CAAAA,CAAE,IAAA,CAAK,kBAAkB,CAAA;AAAA,IACtC,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,oBAAoB;AAAA,GACpC,CAAA;AAAA,EACD,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,IACrB,WAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,IACrC,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,IACtB,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,IACjB,EAAA,EAAIA,EAAE,MAAA;AAAO,GACd;AACH,CAAC;AAIwCA,EAAE,MAAA,CAAO;AAAA,EAChD,iBAAA,EAAmBA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EACvD,YAAYA,CAAAA,CAAE,IAAA,CAAK,CAAC,KAAA,YAA2B,wBAA8B,CAAA;AAAA,EAC7E,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC/C,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,EACtB,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,UAAA,EAAYA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM;AAClD,CAAC;;;AC7KM,IAAM,uBAAA,GAA0B;AAAA,EACrC,OAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAEO,IAAM,yBAAA,GAA4B;AAAA,EACvC,MAAA;AAAA,EACA,eAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,cAAA,GAAiBA,CAAAA,CAAE,MAAA,EAAO,CAAE,MAAM,iBAAiB,CAAA;AAElD,IAAM,6BAAA,GAAgCA,EAAE,MAAA,CAAO;AAAA,EACpD,YAAA,EAAc,cAAA;AAAA,EACd,gBAAA,EAAkB,cAAA;AAAA,EAClB,aAAA,EAAe,cAAA;AAAA,EACf,UAAA,EAAYA,CAAAA,CAAE,IAAA,CAAK,yBAAyB,CAAA;AAAA,EAC5C,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA;AAAA,EACjD,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,uBAAuB;AAC1C,CAAC,CAAA;AClDM,IAAK,sBAAA,qBAAAO,uBAAAA,KAAL;AACL,EAAAA,wBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,wBAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,wBAAA,aAAA,CAAA,GAAc,aAAA;AAHJ,EAAA,OAAAA,uBAAAA;AAAA,CAAA,EAAA,sBAAA,IAAA,EAAA,CAAA;AAML,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AACL,EAAAA,gBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,gBAAA,KAAA,CAAA,GAAM,KAAA;AAFI,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA,CAAA;AAKiCR,EAAE,MAAA,CAAO;AAAA,EACpD,eAAA,EAAiBA,CAAAA,CAAE,IAAA,CAAK,sBAAsB,CAAA;AAAA,EAC9C,MAAA,EAAQA,EAAE,MAAA,CAAO;AAAA,IACf,MAAA,EAAQA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,IAC5C,QAAA,EAAUA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM;AAAA,GAC/C,CAAA;AAAA,EACD,OAAA,EAASA,CAAAA,CAAE,IAAA,CAAK,cAAc,CAAA;AAAA,EAC9B,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,YAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,IACzC,sBAAsBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA;AAAY,GACpD;AACH,CAAC;;;ACnBM,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAO;AAAA,EAClD,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,EACtB,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,KAAA,EAAOA,EAAE,MAAA;AACX,CAAC,CAAA;AAEM,IAAK,8BAAA,qBAAAS,+BAAAA,KAAL;AACL,EAAAA,gCAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,gCAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,gCAAA,qBAAA,CAAA,GAAsB,qBAAA;AAHZ,EAAA,OAAAA,+BAAAA;AAAA,CAAA,EAAA,8BAAA,IAAA,EAAA,CAAA;AAML,IAAM,iBAAA,GAAoBT,EAAE,MAAA,CAAO;AAAA,EACxC,YAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACtC,GAAA,EAAKA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,YAAA,EAAcA,EAAE,MAAA,EAAO;AAAA,EACvB,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,oBAAA,EAAsBA,CAAAA,CAAE,IAAA,CAAK,8BAA8B,CAAA;AAAA,EAC3D,WAAA,EAAa,6BAAA;AAAA,EACb,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAM,2BAA2B;AACrD,CAAC,CAAA;AAI0CA,EAAE,MAAA,CAAO;AAAA,EAClD,eAAA,EAAiBA,CAAAA,CAAE,IAAA,CAAK,sBAAsB,CAAA;AAAA,EAC9C,iBAAA,EAAmBA,EAAE,OAAA,EAAQ;AAAA,EAC7B,eAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EAC5C,mBAAA,EAAqBA,CAAAA,CAAE,IAAA,CAAK,8BAA8B;AAC5D,CAAC;AAIuCA,EAAE,MAAA,CAAO;AAAA,EAC/C,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA,EAAS;AAAA,EAChD,GAAA,EAAKA,EAAE,MAAA,EAAO,CAAE,IAAI,GAAG,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,EAC7C,aAAA,EAAeA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,EACrD,MAAA,EAAQ,mBAAmB,QAAA;AAC7B,CAAC;;;AC5CD,IAAM,qBAAA,GAAwB;AAAA,EAC5B,OAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AAE+B,IAAI,GAAA,CAAY,qBAAqB;AAM7D,IAAK,WAAA,qBAAAU,YAAAA,KAAL;AACL,EAAAA,aAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,aAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,aAAA,QAAA,CAAA,GAAS,QAAA;AAHC,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA,CAAA;;;ACQL,IAAM,iCAAA,GAAoC;AAAA,EAC/C,mBAAA,EAAqB,eAAA;AAAA,EACrB,YAAA,EAAc,SAAA;AAAA,EACd,IAAA,EAAM,SAAA;AAAA,EACN,2BAAA,EAA6B,sBAAA;AAAA,EAC7B,mBAAA,EAAqB;AACvB,CAAA;;;ACrBO,IAAK,0BAAA,qBAAAC,2BAAAA,KAAL;AACL,EAAAA,4BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,4BAAA,mBAAA,CAAA,GAAoB,mBAAA;AACpB,EAAAA,4BAAA,uBAAA,CAAA,GAAwB,uBAAA;AACxB,EAAAA,4BAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,4BAAA,eAAA,CAAA,GAAgB,eAAA;AAChB,EAAAA,4BAAA,mBAAA,CAAA,GAAoB,mBAAA;AACpB,EAAAA,4BAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,4BAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,4BAAA,SAAA,CAAA,GAAU,SAAA;AATA,EAAA,OAAAA,2BAAAA;AAAA,CAAA,EAAA,0BAAA,IAAA,EAAA,CAAA;;;ACzBL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AACL,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,eAAA,qBAAA,CAAA,GAAsB,qBAAA;AACtB,EAAAA,eAAA,gBAAA,CAAA,GAAiB,gBAAA;AACjB,EAAAA,eAAA,gBAAA,CAAA,GAAiB,gBAAA;AACjB,EAAAA,eAAA,uBAAA,CAAA,GAAwB,uBAAA;AACxB,EAAAA,eAAA,mBAAA,CAAA,GAAoB,mBAAA;AACpB,EAAAA,eAAA,sBAAA,CAAA,GAAuB,sBAAA;AACvB,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,eAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,eAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,eAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,eAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,eAAA,WAAA,CAAA,GAAY,WAAA;AAhBF,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA,CAAA;ACGL,IAAK,uBAAA,qBAAAC,wBAAAA,KAAL;AACL,EAAAA,yBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,yBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,yBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,yBAAA,mBAAA,CAAA,GAAoB,mBAAA;AACpB,EAAAA,yBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,yBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,yBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,yBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,yBAAA,WAAA,CAAA,GAAY,WAAA;AATF,EAAA,OAAAA,wBAAAA;AAAA,CAAA,EAAA,uBAAA,IAAA,EAAA,CAAA;AAYL,IAAK,2BAAA,qBAAAC,4BAAAA,KAAL;AACL,EAAAA,6BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,6BAAA,UAAA,CAAA,GAAW,UAAA;AAFD,EAAA,OAAAA,4BAAAA;AAAA,CAAA,EAAA,2BAAA,IAAA,EAAA,CAAA;AAUL,IAAK,wBAAA,qBAAAC,yBAAAA,KAAL;AACL,EAAAA,0BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,0BAAA,WAAA,CAAA,GAAY,WAAA;AAFF,EAAA,OAAAA,yBAAAA;AAAA,CAAA,EAAA,wBAAA,IAAA,EAAA,CAAA;AAKL,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AACL,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,sBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,sBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,sBAAA,WAAA,CAAA,GAAY,WAAA;AALF,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA,CAAA;AAQL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACL,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,oBAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AAHC,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA,CAAA;AAML,IAAK,wBAAA,qBAAAC,yBAAAA,KAAL;AACL,EAAAA,0BAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,0BAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,0BAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,0BAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,0BAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,0BAAA,mBAAA,CAAA,GAAoB,mBAAA;AACpB,EAAAA,0BAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,0BAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,0BAAA,SAAA,CAAA,GAAU,SAAA;AATA,EAAA,OAAAA,yBAAAA;AAAA,CAAA,EAAA,wBAAA,IAAA,EAAA,CAAA;AAYL,IAAK,6BAAA,qBAAAC,8BAAAA,KAAL;AACL,EAAAA,+BAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,+BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,+BAAA,QAAA,CAAA,GAAS,QAAA;AAHC,EAAA,OAAAA,8BAAAA;AAAA,CAAA,EAAA,6BAAA,IAAA,EAAA,CAAA;AAMZ,IAAM,yBAAA,GAA4BnB,CAAAA,CAAE,IAAA,CAAK,uBAAuB,CAAA;AAChE,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAGA,CAAAA,CAAE,SAAS,CAAA;AACpE,IAAM,yBAAA,GAA4BA,EAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAGA,CAAAA,CAAE,SAAS,CAAA;AAClE,IAAM,6BAAA,GAAgCA,EAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAGA,CAAAA,CAAE,SAAS,CAAA;AAE/D,IAAM,wCAAA,GAA2CA,EAAE,MAAA,CAAO;AAAA,EAC/D,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,OAAA,EAASA,EAAE,MAAA,EAAO;AAAA,EAClB,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACtB,CAAC,CAAA;AAMD,IAAM,6BAAA,GAAgCA,EAAE,MAAA,CAAO;AAAA,EAC7C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,UAAA,EAAYA,CAAAA,CAAE,IAAA,CAAK,6BAA6B,CAAA;AAAA,EAChD,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS;AAAA,EACzD,OAAA,EAASA,EAAE,MAAA;AACb,CAAC,CAAA;AAED,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAO;AAAA,EAC3C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,WAAA,EAAaA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EACjD,OAAA,EAASA,EAAE,MAAA;AACb,CAAC,CAAA;AAED,IAAM,kCAAA,GAAqC,4BAA4B,MAAA,CAAO;AAAA,EAC5E,SAAA,EAAWA,EAAE,OAAA;AACf,CAAC,CAAA;AAED,IAAM,qCAAA,GAAwCA,EAAE,MAAA,CAAO;AAAA,EACrD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,MAAA,EAAQ,yBAAA;AAAA,EACR,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC/C,OAAA,EAASA,EAAE,MAAA,EAAO;AAAA,EAClB,SAAA,EAAWA,EAAE,MAAA;AACf,CAAC,CAAA;AAEM,IAAM,6BAAA,GAAgCA,EAAE,MAAA,CAAO;AAAA,EACpD,OAAA,EAASA,EAAE,MAAA,CAAO;AAAA,IAChB,cAAA,EAAgBA,EAAE,OAAA,EAAQ;AAAA,IAC1B,cAAA,EAAgBA,EAAE,OAAA,EAAQ;AAAA,IAC1B,eAAA,EAAiBA,EAAE,OAAA,EAAQ;AAAA,IAC3B,iBAAA,EAAmBA,EAAE,OAAA,EAAQ;AAAA,IAC7B,SAAA,EAAWA,EAAE,OAAA,EAAQ;AAAA,IACrB,kBAAA,EAAoBA,EAAE,OAAA;AAAQ,GAC/B,CAAA;AAAA,EACD,kBAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EAC/C,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,kBAAkB,CAAA;AAAA,EACnC,SAAA,EAAW,8BAA8B,QAAA,EAAS;AAAA,EAClD,oBAAA,EAAsBA,EAAE,OAAA,EAAQ;AAAA,EAChC,aAAA,EAAe,4BAA4B,QAAA,EAAS;AAAA,EACpD,wBAAwBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACrD,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAM,kCAAkC,CAAA;AAAA,EAC1D,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,wBAAwB,CAAA;AAAA,EACtC,UAAA,EAAY,sCAAsC,QAAA,EAAS;AAAA,EAC3D,iBAAA,EAAmBA,CAAAA,CAAE,KAAA,CAAM,qCAAqC;AAClE,CAAC,CAAA;AAID,IAAM,yBAAA,GAA4B;AAAA,EAChC,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,EAChB,sBAAA,EAAwBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5C,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC/C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,SAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACnC,SAAA,EAAW,6BAAA;AAAA,EACX,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,2BAA2B,CAAA;AAAA,EAC1C,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM;AACjD,CAAA;AAE2CA,CAAAA,CAAE,kBAAA,CAAmB,YAAA,EAAc;AAAA,EAC5EA,EAAE,MAAA,CAAO;AAAA,IACP,GAAG,yBAAA;AAAA,IACH,aAAA,EAAeA,EAAE,MAAA,EAAO;AAAA,IACxB,MAAA,EAAQ,6BAAA;AAAA,IACR,UAAA,EAAYA,CAAAA,CAAE,OAAA,CAAQ,QAAA,cAAkC;AAAA,IACxD,aAAA,EAAeA,EAAE,MAAA,EAAO;AAAA,IACxB,UAAA,EAAYA,EAAE,MAAA;AAAO,GACtB,CAAA;AAAA,EACDA,EAAE,MAAA,CAAO;AAAA,IACP,GAAG,yBAAA;AAAA,IACH,aAAA,EAAeA,EAAE,IAAA,EAAK;AAAA,IACtB,MAAA,EAAQ,6BAAA;AAAA,IACR,UAAA,EAAYA,CAAAA,CAAE,OAAA,CAAQ,qBAAA,2BAA+C;AAAA,IACrE,aAAA,EAAeA,EAAE,MAAA,EAAO;AAAA,IACxB,UAAA,EAAYA,EAAE,IAAA;AAAK,GACpB;AACH,CAAC;AAIkDA,CAAAA,CAAE,kBAAA,CAAmB,IAAA,EAAM;AAAA,EAC5EA,EAAE,MAAA,CAAO;AAAA,IACP,UAAA,EAAY,2BAAA;AAAA,IACZ,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAM,EAAE,CAAA;AAAA,IAClB,EAAA,EAAIA,CAAAA,CAAE,OAAA,CAAQ,IAAI;AAAA,GACnB,CAAA;AAAA,EACDA,EAAE,MAAA,CAAO;AAAA,IACP,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAM,wCAAwC,CAAA;AAAA,IACxD,EAAA,EAAIA,CAAAA,CAAE,OAAA,CAAQ,KAAK;AAAA,GACpB;AACH,CAAC;AAIgDA,EAAE,MAAA,CAAO;AAAA,EACxD,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,EAChB,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,EACrB,YAAA,EAAcA,EAAE,MAAA,EAAO;AAAA,EACvB,QAAA,EAAU;AACZ,CAAC;AAIqDA,EAAE,YAAA,CAAa;AAAA,EACnE,cAAcA,CAAAA,CAAE,MAAA,GAAS,IAAA,EAAK,CAAE,IAAI,CAAC;AACvC,CAAC;AAM8CA,EAAE,MAAA,CAAO;AAAA,EACtD,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,EAChB,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,EACrB,YAAA,EAAcA,EAAE,MAAA,EAAO;AAAA,EACvB,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS;AAAA,EAC1D,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,cAAA,EAAgBA,EAAE,MAAA,EAAO;AAAA,EACzB,QAAA,EAAU,yBAAA;AAAA,EACV,EAAA,EAAIA,EAAE,OAAA,EAAQ;AAAA,EACd,aAAA,EAAeA,EAAE,IAAA,CAAK,CAAC,WAAW,UAAA,EAAY,WAAW,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,EACrE,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,oBAAoB,CAAA;AAAA,EACnC,OAAA,EAASA,EAAE,MAAA;AACb,CAAC;AAI0DA,EAAE,MAAA,CAAO;AAAA,EAClE,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,EAChB,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,EACrB,YAAA,EAAcA,EAAE,MAAA,EAAO;AAAA,EACvB,cAAA,EAAgBA,EAAE,MAAA;AACpB,CAAC;AAMkDA,EAAE,YAAA,CAAa;AAAA,EAChE,cAAcA,CAAAA,CAAE,MAAA,GAAS,IAAA,EAAK,CAAE,IAAI,CAAC;AACvC,CAAC;AAI+CA,EAAE,YAAA,CAAa;AAAA,EAC7D,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE;AACzC,CAAC;AAI8CA,EAAE,MAAA,CAAO;AAAA,EACtD,WAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACrC,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC/C,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS;AAAA,EAC1D,QAAQA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,SAAS,CAAC;AACtC,CAAC;AAIuCA,EAAE,MAAA,CAAO;AAAA,EAC/C,WAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACrC,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,oBAAA,EAAsBA,EAAE,OAAA,EAAQ;AAAA,EAChC,UAAA,EAAYA,EAAE,OAAA,EAAQ;AAAA,EACtB,aAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACvC,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,wBAAwB,CAAA;AAAA,EACvC,cAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,GAAQ,QAAA,EAAS;AAAA,EAC1C,YAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACtC,aAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA;AAChC,CAAC;AAID,IAAM,wBAAA,GAA2BA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,GAAA,EAAI,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAEnCA,EAAE,YAAA,CAAa;AAAA,EACvD,SAAA,EAAW,wBAAA;AAAA,EACX,WAAA,EAAa,wBAAA;AAAA,EACb,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,KAAA,EAAM,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,EAC5D,UAAA,EAAY,wBAAA;AAAA,EACZ,WAAA,EAAa;AACf,CAAC;AAIgDA,EAAE,YAAA,CAAa;AAAA,EAC9D,SAASA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA;AAC7B,CAAC;;;AC9QD,IAAM,cAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AACjD,IAAM,oBAAoBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAEpD,SAAS,sBAAsB,SAAA,EAAmB;AAChD,EAAA,OAAOA,CAAAA,CAAE,UAAA;AAAA,IACP,CAAC,UAAW,OAAO,KAAA,KAAU,YAAY,KAAA,CAAM,IAAA,EAAK,KAAM,EAAA,GAAK,MAAA,GAAY,KAAA;AAAA,IAC3EA,CAAAA,CAAE,QAAO,CAAE,IAAA,GAAO,GAAA,CAAI,SAAS,EAAE,QAAA;AAAS,GAC5C;AACF;AAEO,IAAK,wBAAA,qBAAAoB,yBAAAA,KAAL;AACL,EAAAA,0BAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,0BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,0BAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,0BAAA,UAAA,CAAA,GAAW,UAAA;AAJD,EAAA,OAAAA,yBAAAA;AAAA,CAAA,EAAA,wBAAA,IAAA,EAAA,CAAA;AAOL,IAAK,mBAAA,qBAAAC,oBAAAA,KAAL;AACL,EAAAA,qBAAA,aAAA,CAAA,GAAc,aAAA;AACd,EAAAA,qBAAA,QAAA,CAAA,GAAS,QAAA;AAFC,EAAA,OAAAA,oBAAAA;AAAA,CAAA,EAAA,mBAAA,IAAA,EAAA,CAAA;AAKL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACL,EAAAA,oBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,oBAAA,UAAA,CAAA,GAAW,UAAA;AAFD,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA,CAAA;AAKL,IAAK,qBAAA,qBAAAC,sBAAAA,KAAL;AACL,EAAAA,uBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,uBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,uBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,uBAAA,WAAA,CAAA,GAAY,WAAA;AAJF,EAAA,OAAAA,sBAAAA;AAAA,CAAA,EAAA,qBAAA,IAAA,EAAA,CAAA;AAOL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACL,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AAFC,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA,CAAA;AAKL,IAAK,yBAAA,qBAAAC,0BAAAA,KAAL;AACL,EAAAA,2BAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,2BAAA,WAAA,CAAA,GAAY,WAAA;AAFF,EAAA,OAAAA,0BAAAA;AAAA,CAAA,EAAA,yBAAA,IAAA,EAAA,CAAA;AAKL,IAAK,eAAA,qBAAAC,gBAAAA,KAAL;AACL,EAAAA,iBAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,iBAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,iBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,iBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,iBAAA,SAAA,CAAA,GAAU,SAAA;AALA,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA,CAAA;AAQL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACL,EAAAA,oBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,oBAAA,gBAAA,CAAA,GAAiB,gBAAA;AACjB,EAAAA,oBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,oBAAA,mBAAA,CAAA,GAAoB,mBAAA;AACpB,EAAAA,oBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,oBAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,oBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,oBAAA,WAAA,CAAA,GAAY,WAAA;AARF,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA,CAAA;AAgBL,IAAK,2BAAA,qBAAAC,4BAAAA,KAAL;AACL,EAAAA,6BAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,6BAAA,UAAA,CAAA,GAAW,UAAA;AAFD,EAAA,OAAAA,4BAAAA;AAAA,CAAA,EAAA,2BAAA,IAAA,EAAA,CAAA;AAUL,IAAM,yBAAA,GAA4B5B,EAAE,MAAA,CAAO;AAAA,EAChD,MAAA,EAAQ,sBAAsB,GAAG,CAAA;AAAA,EACjC,KAAA,EAAOA,CAAAA,CAAE,MAAA,CAAO,MAAA,GAAS,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAQ,EAAE,CAAA;AAAA,EACxD,KAAA,EAAO,sBAAsB,EAAE;AACjC,CAAC,CAAA;AAI2C,0BAA0B,MAAA,CAAO;AAAA,EAC3E,UAAA,EAAY,sBAAsB,EAAE;AACtC,CAAC;AAIsCA,EAAE,MAAA,CAAO;AAAA,EAC9C,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,sBAAA,EAAwB,WAAA;AAAA,IACxB,4BAAA,EAA8B,WAAA;AAAA,IAC9B,uBAAA,EAAyB,WAAA;AAAA,IACzB,SAAA,EAAW;AAAA,GACZ,CAAA;AAAA,EACD,WAAA,EAAaA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EACjD,QAAA,EAAUA,EAAE,MAAA,CAAO;AAAA,IACjB,MAAA,EAAQ,WAAA;AAAA,IACR,gBAAA,EAAkB,WAAA;AAAA,IAClB,eAAA,EAAiB,WAAA;AAAA,IACjB,KAAA,EAAO;AAAA,GACR,CAAA;AAAA,EACD,OAAA,EAASA,EAAE,MAAA,CAAO;AAAA,IAChB,OAAA,EAAS;AAAA,GACV,CAAA;AAAA,EACD,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,YAAA,EAAc,WAAA;AAAA,IACd,eAAA,EAAiB,WAAA;AAAA,IACjB,KAAA,EAAO;AAAA,GACR;AACH,CAAC;AAID,IAAM,uBAAA,GAA0BA,EAAE,MAAA,CAAO;AAAA,EACvC,SAAA,EAAW,iBAAA;AAAA,EACX,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,EACtB,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,gBAAA,EAAkBA,EAAE,OAAA,EAAQ;AAAA,EAC5B,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,WAAW;AAC5B,CAAC,CAAA;AAED,IAAM,yBAAA,GAA4BA,EAAE,MAAA,CAAO;AAAA,EACzC,IAAA,EAAM,WAAA;AAAA,EACN,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,yBAAyB,CAAA;AAAA,EACxC,QAAA,EAAUA,EAAE,OAAA;AACd,CAAC,CAAA;AAED,IAAM,qBAAA,GAAwBA,EAAE,MAAA,CAAO;AAAA,EACrC,cAAA,EAAgB,WAAA;AAAA,EAChB,aAAA,EAAe,WAAA;AAAA,EACf,YAAA,EAAc,WAAA;AAAA,EACd,aAAA,EAAe;AACjB,CAAC,CAAA;AAEM,IAAM,uBAAA,GAA0BA,EAAE,MAAA,CAAO;AAAA,EAC9C,YAAYA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,aAAa,CAAC,CAAA;AAAA,EACzC,OAAA,EAAS,0BAA0B,QAAA,EAAS;AAAA,EAC5C,MAAA,EAAQ,qBAAA;AAAA,EACR,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC/C,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,EAAM;AAAA,EACxB,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC/C,KAAA,EAAO,wBAAwB,QAAA;AACjC,CAAC,CAAA;AAIsCA,EAAE,MAAA,CAAO;AAAA,EAC9C,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,uBAAuB,CAAA;AAAA,EACtC,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC;AAIwC,wBAAwB,MAAA,CAAO;AAAA,EACtE,aAAaA,CAAAA,CAAE,KAAA;AAAA,IACbA,EAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,MAC/C,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,aAAa;AAAA,KAC3B;AAAA,GACH;AAAA,EACA,OAAA,EAAS,0BACN,MAAA,CAAO;AAAA,IACN,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,IAC/C,QAAA,EAAU,WAAA;AAAA,IACV,WAAA,EAAa;AAAA,GACd,EACA,QAAA,EAAS;AAAA,EACZ,qBAAqBA,CAAAA,CAAE,aAAA,CAAcA,EAAE,IAAA,CAAK,aAAa,GAAG,WAAW,CAAA;AAAA,EACvE,aAAA,EAAeA,EACZ,MAAA,CAAO;AAAA,IACN,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACjC,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC5B,QAAA,EAAUA,EAAE,MAAA;AAAO,GACpB,EACA,QAAA,EAAS;AAAA,EACZ,KAAA,EAAO,wBACJ,MAAA,CAAO;AAAA,IACN,GAAA,EAAKA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACzB,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,IACnB,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM;AAAA,GAChD,EACA,QAAA;AACL,CAAC;AAID,IAAM,uBAAA,GAA0BA,EAAE,MAAA,CAAO;AAAA,EACvC,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,EACtB,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,QAAA,EAAUA,EAAE,OAAA;AACd,CAAC,CAAA;AAED,IAAM,4BAAA,GAA+BA,EAAE,MAAA,CAAO;AAAA,EAC5C,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC/C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS;AAAA,EAC5D,WAAA,EAAaA,CAAAA,CAAE,IAAA,CAAK,mBAAmB,CAAA;AAAA,EACvC,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,qBAAqB,CAAA;AAAA,EACpC,OAAA,EAASA,EAAE,MAAA;AACb,CAAC,CAAA;AAED,IAAM,oBAAA,GAAuBA,EAAE,MAAA,CAAO;AAAA,EACpC,4BAAA,EAA8B,WAAA;AAAA,EAC9B,uBAAA,EAAyB,WAAA;AAAA,EACzB,WAAA,EAAa,WAAA;AAAA,EACb,QAAA,EAAU;AACZ,CAAC,CAAA;AAEM,IAAM,sBAAA,GAAyBA,EAAE,MAAA,CAAO;AAAA,EAC7C,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,EACrB,MAAA,EAAQ,oBAAA;AAAA,EACR,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC/C,SAAA,EAAW,uBAAA;AAAA,EACX,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,EACnB,SAAA,EAAWA,EAAE,MAAA,EAAO;AAAA,EACpB,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,aAAA,EAAe,6BAA6B,QAAA,EAAS;AAAA,EACrD,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,aAAA,EAAeA,EAAE,OAAA,EAAQ;AAAA,EACzB,gBAAA,EAAkBA,EAAE,MAAA,EAAO;AAAA,EAC3B,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,wBAAwB,CAAA;AAAA,EACvC,UAAA,EAAYA,CAAAA,CAAE,IAAA,CAAK,kBAAkB,CAAA;AAAA,EACrC,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC/C,UAAA,EAAYA,CAAAA,CAAE,IAAA,CAAK,kBAAkB;AACvC,CAAC,CAAA;AAIqCA,EAAE,MAAA,CAAO;AAAA,EAC7C,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA;AAAA,EACrC,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC;AAI4CA,EAAE,MAAA,CAAO;AAAA,EACpD,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,EAChB,OAAA,EAASA,EAAE,MAAA,CAAO;AAAA,IAChB,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,IACtB,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,IACjB,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,IACb,QAAA,EAAUA,EAAE,OAAA;AAAQ,GACrB,CAAA;AAAA,EACD,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC/C,UAAA,EAAYA,EAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAGA,CAAAA,CAAE,SAAS,CAAA;AAAA,EAC5C,QAAQA,CAAAA,CAAE,KAAA;AAAA,IACRA,EAAE,MAAA,CAAO;AAAA,MACP,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,MAC/C,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,kBAAkB,CAAA;AAAA,MACpC,UAAA,EAAYA,CAAAA,CAAE,IAAA,CAAK,uBAAuB,EAAE,QAAA,EAAS;AAAA,MACrD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,MACb,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC3B,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,aAAa,EAAE,QAAA,EAAS;AAAA,MACrC,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,uBAAuB,EAAE,QAAA;AAAS,KACpD;AAAA,GACH;AAAA,EACA,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,uBAAuB,CAAA;AAAA,EACtC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS;AAAA,EAC5D,kBAAA,EAAoBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxC,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM;AACjD,CAAC;AAIyCA,EAAE,YAAA,CAAa;AAAA,EACvD,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,eAAe,CAAA;AAAA,EAC9B,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,MAAK,CAAE,GAAA,CAAI,GAAK,CAAA,CAAE,QAAA;AACtC,CAAC;AAI4CA,CAAAA,CAAE,kBAAA,CAAmB,QAAA,EAAU;AAAA,EAC1EA,EAAE,YAAA,CAAa;AAAA,IACb,MAAA,EAAQA,CAAAA,CAAE,OAAA,CAAQ,SAAA,eAAgC;AAAA,IAClD,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,GAAA,CAAI,EAAE,CAAA,CAAE,GAAA,CAAI,GAAK;AAAA,GAC5C,CAAA;AAAA,EACDA,EAAE,YAAA,CAAa;AAAA,IACb,MAAA,EAAQA,CAAAA,CAAE,OAAA,CAAQ,SAAA,eAAgC;AAAA,IAClD,MAAA,EAAQA,EAAE,MAAA,EAAO,CAAE,MAAK,CAAE,GAAA,CAAI,GAAK,CAAA,CAAE,QAAA;AAAS,GAC/C;AACH,CAAC;AAID,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAO;AAAA,EAC3C,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,EACtB,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,aAAa;AAC5B,CAAC,CAAA;AAEM,IAAM,0BAAA,GAA6BA,CAAAA,CAAE,kBAAA,CAAmB,QAAA,EAAU;AAAA,EACvEA,EAAE,MAAA,CAAO;AAAA,IACP,KAAA,EAAO,4BAA4B,QAAA,EAAS;AAAA,IAC5C,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,IAC/C,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,kBAAkB,CAAA;AAAA,IACpC,UAAA,EAAYA,CAAAA,CAAE,IAAA,CAAK,uBAAuB,EAAE,QAAA,EAAS;AAAA,IACrD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,IACb,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,MAAA,EAAQA,CAAAA,CAAE,OAAA,CAAQ,QAAA,cAA6B;AAAA,IAC/C,YAAA,EAAcA,EAAE,MAAA,EAAO;AAAA,IACvB,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,uBAAuB,EAAE,QAAA;AAAS,GACpD,CAAA;AAAA,EACDA,EAAE,MAAA,CAAO;AAAA,IACP,KAAA,EAAO,2BAAA;AAAA,IACP,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,IAC/C,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,2BAA2B,CAAA;AAAA,IAC7C,UAAA,EAAYA,CAAAA,CAAE,IAAA,CAAK,wBAAwB,CAAA;AAAA,IAC3C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,IACb,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,MAAA,EAAQA,CAAAA,CAAE,OAAA,CAAQ,YAAA,kBAAiC;AAAA,IACnD,YAAA,EAAcA,EAAE,IAAA,EAAK;AAAA,IACrB,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,wBAAwB;AAAA,GAC1C;AACH,CAAC,CAAA;AAIuC,uBAAuB,MAAA,CAAO;AAAA,EACpE,QAAA,EAAUA,CAAAA,CAAE,KAAA,CAAM,0BAA0B,CAAA;AAAA,EAC5C,eAAA,EAAiBA,EAAE,MAAA,EAAO;AAAA,EAC1B,gBAAA,EAAkB,iBAAA;AAAA,EAClB,aAAaA,CAAAA,CAAE,KAAA;AAAA,IACbA,EAAE,MAAA,CAAO;AAAA,MACP,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,MACb,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,uBAAuB,CAAA;AAAA,MACtC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS;AAAA,MAC5D,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM;AAAA,KAChD;AAAA,GACH;AAAA,EACA,QAAA,EAAU,iBAAA;AAAA,EACV,QAAA,EAAUA,CAAAA,CAAE,KAAA,CAAM,4BAA4B,CAAA;AAAA,EAC9C,UAAA,EAAY;AACd,CAAC;ACzVM,IAAK,sBAAA,qBAAA6B,uBAAAA,KAAL;AACL,EAAAA,wBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,wBAAA,aAAA,CAAA,GAAc,aAAA;AAFJ,EAAA,OAAAA,uBAAAA;AAAA,CAAA,EAAA,sBAAA,IAAA,EAAA,CAAA;AAKL,IAAK,sBAAA,qBAAAC,uBAAAA,KAAL;AACL,EAAAA,wBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,wBAAA,OAAA,CAAA,GAAQ,OAAA;AAFE,EAAA,OAAAA,uBAAAA;AAAA,CAAA,EAAA,sBAAA,IAAA,EAAA,CAAA;AAKsB9B,EAAE,MAAA,CAAO;AAAA,EACzC,EAAA,EAAIA,CAAAA,CAAE,OAAA,CAAQ,IAAI;AACpB,CAAC;AAIkCA,EAAE,MAAA,CAAO;AAAA,EAC1C,YAAA,EAAcA,EAAE,MAAA,CAAO;AAAA,IACrB,QAAA,EAAUA,CAAAA,CAAE,IAAA,CAAK,sBAAsB,CAAA;AAAA,IACvC,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,sBAAsB,CAAA;AAAA,IACxC,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,sBAAsB;AAAA,GACrC,CAAA;AAAA,EACD,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,sBAAsB;AACvC,CAAC;ACvBM,IAAK,eAAA,qBAAA+B,gBAAAA,KAAL;AACL,EAAAA,iBAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,iBAAA,UAAA,CAAA,GAAW,UAAA;AAFD,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA,CAAA;AAKL,IAAK,qBAAA,qBAAAC,sBAAAA,KAAL;AACL,EAAAA,uBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,uBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,uBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,uBAAA,SAAA,CAAA,GAAU,SAAA;AAJA,EAAA,OAAAA,sBAAAA;AAAA,CAAA,EAAA,qBAAA,IAAA,EAAA,CAAA;AAO2BhC,EAAE,YAAA,CAAa;AAAA,EACpD,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA;AAAA,EAC1C,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,eAAe,CAAA;AAAA,EAC5B,UAAUA,CAAAA,CAAE,IAAA,CAAK,CAAC,YAAA,EAAc,WAAA,EAAa,YAAY,CAAC,CAAA;AAAA,EAC1D,SAAA,EAAWA,CAAAA,CACR,MAAA,EAAO,CACP,GAAA,EAAI,CACJ,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,CAAA,GAAI,IAAA,GAAO,IAAI;AACxB,CAAC;AAIM,IAAM,qBAAA,GAAwBA,EAAE,MAAA,CAAO;AAAA,EAC5C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,IAAA,CAAK,eAAe,CAAA;AAAA,EAC5B,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,EACnB,WAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACrC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI;AAAA,EAC1B,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,qBAAqB;AACtC,CAAC,CAAA;AAIwCA,EAAE,MAAA,CAAO;AAAA,EAChD,KAAA,EAAO,qBAAA;AAAA,EACP,MAAA,EAAQA,EAAE,MAAA,CAAO;AAAA,IACf,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,IAC/C,OAAA,EAASA,EAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAGA,CAAAA,CAAE,QAAQ,CAAA;AAAA,IACxC,MAAA,EAAQA,CAAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,IACvB,GAAA,EAAKA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA;AAAI,GACrB;AACH,CAAC;AC1CD,IAAM,eAAA,GAAkB;AAAA,EAAA,WAAA;AAAA,EAAA,iBAAA;AAAA,EAAA,qBAAA;AAAA,EAAA,OAAA;AAAA,EAAA,QAAA;AAAA,EAAA,UAAA;AAAA,EAAA,WAAA;AAAA,EAAA,iBAAA;AAAA,EAAA,WAAA;AAAA,EAAA,YAAA;AAAA,EAAA,aAAA;AAYxB,CAAA;AAEA,IAAMiC,0BAAAA,GAA4BjC,EAAE,OAAA,EAAQ;AAE5C,IAAM,oCAAA,GAAuC;AAAA,EAC3C,WAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,yBAAA,GAA4B;AAAA,EAChC,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,WAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,4BAAA,GAA+B,CAAC,cAAA,EAAgB,qBAAA,EAAuB,YAAY,CAAA;AAEzF,IAAM,sBAAA,GAAyB,CAAC,SAAA,EAAW,QAAA,EAAU,UAAU,CAAA;AAE/D,IAAM,+BAAA,GAAkC,CAAC,OAAA,EAAS,WAAA,EAAa,YAAY,WAAW,CAAA;AAEtF,IAAM,qBAAA,GAAwB;AAAA,EAC5B,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA;AAEO,IAAK,qBAAA,qBAAAkC,sBAAAA,KAAL;AACL,EAAAA,uBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,uBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,uBAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,uBAAA,gBAAA,CAAA,GAAiB,gBAAA;AAJP,EAAA,OAAAA,sBAAAA;AAAA,CAAA,EAAA,qBAAA,IAAA,EAAA,CAAA;AAOL,IAAM,0BAAA,GAA6BlC,EAAE,MAAA,CAAO;AAAA,EACjD,gBAAA,EAAkBA,CAAAA,CAAE,IAAA,CAAK,yBAAyB,CAAA;AAAA,EAClD,mBAAA,EAAqBA,CAAAA,CAAE,IAAA,CAAK,4BAA4B,CAAA;AAAA,EACxD,aAAA,EAAeA,CAAAA,CAAE,IAAA,CAAK,sBAAsB,CAAA;AAAA,EAC5C,YAAA,EAAcA,CAAAA,CAAE,IAAA,CAAK,qBAAqB,CAAA;AAAA,EAC1C,eAAA,EAAiBA,CAAAA,CAAE,IAAA,CAAK,oCAAoC,CAAA;AAAA,EAC5D,sBAAA,EAAwBA,CAAAA,CAAE,IAAA,CAAK,+BAA+B;AAChE,CAAC,CAAA;AAI2CA,EAAE,MAAA,CAAO;AAAA,EACnD,0BAAA,EAA4BA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK;AACvD,CAAC;AAIM,IAAM,uBAAA,GAA0BA,EAAE,MAAA,CAAO;AAAA,EAC9C,UAAA,EAAYA,EAAE,OAAA,EAAQ;AAAA,EACtB,UAAA,EAAYA,EAAE,OAAA,EAAQ;AAAA,EACtB,cAAA,EAAgBA,EAAE,MAAA,EAAO;AAAA,EACzB,gBAAA,EAAkBA,EAAE,MAAA,EAAO;AAAA,EAC3B,aAAA,EAAeA,EAAE,MAAA,EAAO;AAAA,EACxB,eAAA,EAAiBA,EAAE,MAAA,EAAO;AAAA,EAC1B,kBAAkBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,gBAAgB,CAAC,CAAA;AAAA,EAClD,OAAA,EAASA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA;AAAA,EAC3B,sBAAsBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,gBAAgB,CAAC,CAAA;AAAA,EACtD,uBAAA,EAAyBA,EAAE,OAAA,EAAQ;AAAA,EACnC,eAAA,EAAiBA,EAAE,OAAA;AACrB,CAAC,CAAA;AAIM,IAAM,0BAAA,GAA6BA,EAAE,MAAA,CAAO;AAAA,EACjD,aAAaA,CAAAA,CAAE,IAAA,CAAK,CAAC,SAAA,EAAW,UAAU,CAAC,CAAA;AAAA,EAC3C,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,kBAAA,EAAoBA,EAAE,OAAA,EAAQ;AAAA,EAC9B,KAAA,EAAOA,CAAAA,CAAE,IAAA,CAAK,gBAAgB,CAAA;AAAA,EAC9B,aAAaA,CAAAA,CAAE,IAAA,CAAK,CAAC,UAAA,EAAY,WAAW,CAAC;AAC/C,CAAC,CAAA;AAIM,IAAM,sBAAA,GAAyBA,EAAE,MAAA,CAAO;AAAA,EAC7C,cAAA,EAAgBA,EAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACrD,kBAAkBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,yBAAyB,CAAC,CAAA;AAAA,EAC3D,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAM,0BAA0B;AAC5C,CAAC,CAAA;AAIiDA,EAAE,MAAA,CAAO;AAAA,EACzD,OAAA,EAASA,EAAE,OAAA;AACb,CAAC;AAIM,IAAM,yBAAA,GAA4BA,EAAE,MAAA,CAAO;AAAA,EAChD,OAAA,EAASA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA;AAAA,EAC3B,kBAAA,EAAoBA,CAAAA,CAAE,IAAA,CAAK,qBAAqB,CAAA;AAAA,EAChD,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,EAChB,OAAA,EAASA,EAAE,MAAA,EAAO;AAAA,EAClB,YAAA,EAAcA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA;AAAA,EAChC,aAAA,EAAe,sBAAA;AAAA,EACf,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACpC,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,kBAAA,EAAoBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA;AAAA,EACtC,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,YAAA,EAAc,2BAA2B,QAAA,EAAS;AAAA,EAClD,cAAA,EAAgBA,EAAE,OAAA,EAAQ;AAAA,EAC1B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS;AAAA,EAC5D,oBAAA,EAAsBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS;AAAA,EACrE,aAAA,EAAeA,EAAE,MAAA,EAAO;AAAA,EACxB,QAAA,EAAUiC,0BAAAA;AAAA,EACV,IAAA,EAAMjC,EAAE,MAAA,EAAO;AAAA,EACf,cAAA,EAAgBA,EAAE,OAAA,EAAQ;AAAA,EAC1B,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,EACnB,QAAA,EAAUA,EAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAGA,CAAAA,CAAE,SAAS,CAAA;AAAA,EAC1C,mBAAA,EAAqBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA;AAAA,EACvC,QAAA,EAAUA,EAAE,MAAA,CAAOA,CAAAA,CAAE,QAAO,EAAGA,CAAAA,CAAE,SAAS,CAAA;AAAA,EAC1C,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,eAAe,CAAA;AAAA,EAC9B,cAAA,EAAgB,wBAAwB,QAAA;AAC1C,CAAC,CAAA;AAI4CA,EAAE,MAAA,CAAO;AAAA,EACpD,GAAA,EAAK;AACP,CAAC;AAIM,IAAK,wBAAA,qBAAAmC,yBAAAA,KAAL;AACL,EAAAA,0BAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,0BAAA,WAAA,CAAA,GAAY,WAAA;AACZ,EAAAA,0BAAA,QAAA,CAAA,GAAS,QAAA;AAHC,EAAA,OAAAA,yBAAAA;AAAA,CAAA,EAAA,wBAAA,IAAA,EAAA,CAAA;AAMoCnC,EAAE,MAAA,CAAO;AAAA,EACvD,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI;AAAA,EAC5B,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,wBAAwB;AACzC,CAAC;AAIM,IAAM,uBAAA,GAA0BA,EAAE,MAAA,CAAO;AAAA,EAC9C,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,EAChB,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,CAACA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,OAAA,EAAS,CAAC;AACtD,CAAC,CAAA;AAI+CA,EAAE,MAAA,CAAO;AAAA,EACvD,OAAA,EAASA,CAAAA,CAAE,KAAA,CAAM,uBAAuB;AAC1C,CAAC;AC7EM,IAAM,mBAAA,GAAsB,CAAA;AAEnC,IAAM,eAAA,GAAkBA,CAAAA,CACrB,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,EAAE,CAAA,CACN,KAAA,CAAM,yBAAyB,CAAA;AAElC,IAAM,6BAAA,GAAgCA,CAAAA,CACnC,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,EAAE,CAAA,CACN,KAAA,CAAM,yBAAyB,CAAA;AAE3B,IAAM,2BAAA,GAA8BA,CAAAA,CACxC,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,IAAI,CAAA,CACR,MAAA,CAAO,cAAA,EAAgB,uDAAuD,CAAA;AAE1E,IAAM,4BAAA,GAA+BA,CAAAA,CACzC,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,GAAG,CAAA,CACP,MAAA,CAAO,kBAAA,EAAoB,4CAA4C,CAAA;AAEnE,IAAM,mCAAmC,4BAAA,CAA6B,MAAA;AAAA,EAC3E,CAAC,KAAA,KAAU,KAAA,CAAM,UAAA,CAAW,qBAAqB,CAAA;AAAA,EACjD;AACF,CAAA;AAEA,SAAS,eAAe,KAAA,EAAwB;AAC9C,EAAA,IAAI;AACF,IAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,KAAK,CAAA;AAEzB,IAAA,OAAO,IAAI,QAAA,KAAa,QAAA,IAAY,CAAC,GAAA,CAAI,QAAA,IAAY,CAAC,GAAA,CAAI,QAAA;AAAA,EAC5D,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEA,SAAS,mBAAmB,KAAA,EAAwB;AAClD,EAAA,IACE,CAAC,MAAM,UAAA,CAAW,GAAG,KACrB,KAAA,CAAM,UAAA,CAAW,IAAI,CAAA,IACrB,KAAA,CAAM,QAAA,CAAS,IAAI,CAAA,IACnB,IAAA,CAAK,IAAA,CAAK,KAAK,CAAA,IACf,KAAA,CAAM,KAAK,KAAK,CAAA,CAAE,IAAA,CAAK,CAAC,SAAA,KAAc;AACpC,IAAA,MAAM,SAAA,GAAY,SAAA,CAAU,WAAA,CAAY,CAAC,CAAA,IAAK,CAAA;AAE9C,IAAA,OAAO,SAAA,IAAa,MAAM,SAAA,KAAc,GAAA;AAAA,EAC1C,CAAC,CAAA,EACD;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI;AACF,IAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,uBAAuB,CAAA;AAC5C,IAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,KAAA,EAAO,IAAI,CAAA;AAE/B,IAAA,OAAO,GAAA,CAAI,MAAA,KAAW,IAAA,CAAK,MAAA,IAAU,CAAA,EAAG,GAAA,CAAI,QAAQ,CAAA,EAAG,GAAA,CAAI,MAAM,CAAA,EAAG,GAAA,CAAI,IAAI,CAAA,CAAA,KAAO,KAAA;AAAA,EACrF,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEA,IAAM,uBAAuBA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,kBAAkB,CAAC,CAAA;AACjE,IAAM,kBAAA,GAAqBA,EAAE,IAAA,CAAK;AAAA,EAChC,gBAAA;AAAA,EACA,4BAAA;AAAA,EACA,sBAAA;AAAA,EACA,cAAA;AAAA,EACA,0BAAA;AAAA,EACA;AACF,CAAC,CAAA;AAED,IAAM,sBAAA,GAAyBA,EAC5B,KAAA,CAAM,oBAAoB,EAC1B,GAAA,CAAI,CAAC,EACL,GAAA,CAAI,CAAC,EACL,MAAA,CAAO,CAAC,WAAW,IAAI,GAAA,CAAI,MAAM,CAAA,CAAE,IAAA,KAAS,MAAA,CAAO,MAAA,EAAQ,0BAA0B,CAAA;AAExF,IAAM,oBAAA,GAAuBA,EAC1B,KAAA,CAAM,kBAAkB,EACxB,GAAA,CAAI,CAAC,EACL,GAAA,CAAI,CAAC,EACL,MAAA,CAAO,CAAC,WAAW,IAAI,GAAA,CAAI,MAAM,CAAA,CAAE,IAAA,KAAS,MAAA,CAAO,MAAA,EAAQ,wBAAwB,CAAA;AAEtF,IAAM,2BAAA,GAA8BA,EACjC,KAAA,CAAM,kBAAkB,EACxB,GAAA,CAAI,CAAC,CAAA,CACL,MAAA,CAAO,CAAC,MAAA,KAAW,IAAI,GAAA,CAAI,MAAM,EAAE,IAAA,KAAS,MAAA,CAAO,QAAQ,wBAAwB,CAAA,CACnF,OAAA,CAAQ,EAAE,CAAA;AAEN,IAAM,2BAAA,GAA8B;AAAA,EACzC,WAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA;AACO,IAAM,uBAAA,GAA0B,KAAK,IAAA,GAAO,IAAA;AAEnD,IAAM,yBAAA,GAA4BA,CAAAA,CAAE,IAAA,CAAK,2BAA2B,CAAA;AAEpE,IAAM,sBAAA,GAAyB;AAAA,EAC7B,GAAA,EAAKA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAC9B,gBAAA,EAAkBA,EAAE,MAAA,EAAO,CAAE,UAAS,CAAE,GAAA,CAAI,KAAM,CAAA,CAAE,QAAA,EAAS;AAAA,EAC7D,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EAC/C,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS,CAAE,GAAA,CAAI,IAAI,CAAA,CAAE,QAAA,EAAS;AAAA,EACvD,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EAC/C,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,WAAA,EAAY,CAAE,GAAA,CAAI,UAAa,CAAA,CAAE,QAAA,EAAS;AAAA,EACvE,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EAC3C,MAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,aAAsB,OAAA,cAAuB,oBAAsB,CAAA;AAAA,EACjF,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS,CAAE,GAAA,CAAI,IAAI,CAAA,CAAE,QAAA;AAC/C,CAAA;AAEA,IAAM,0BAAA,GAA6BA,CAAAA,CAChC,MAAA,EAAO,CACP,GAAA,CAAI,CAAC,CAAA,CACL,GAAA,CAAI,GAAG,CAAA,CACP,KAAA,CAAM,+BAA+B,CAAA;AAEjC,IAAM,iBAAA,GAAoBA,EAC9B,MAAA,CAAO;AAAA,EACN,GAAG,sBAAA;AAAA,EACH,SAAA,EAAW,0BAAA;AAAA,EACX,mBAAA,EAAqB,2BAA2B,QAAA,EAAS;AAAA,EACzD,mBAAA,EAAqBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EACzD,oBAAA,EAAsBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS,CAAE,GAAA,CAAI,uBAAuB,CAAA,CAAE,QAAA;AACjF,CAAC,EACA,MAAA,EAAO,CACP,WAAA,CAAY,CAAC,OAAO,OAAA,KAAY;AAC/B,EAAA,IAAI,KAAA,CAAM,SAAS,OAAA,cAAuB;AACxC,IAAA,8BAAA;AAAA,MACE,OAAA;AAAA,MACA;AAAA,QACE,WAAW,KAAA,CAAM,SAAA;AAAA,QACjB,YAAY,KAAA,CAAM;AAAA,OACpB;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,oBAAA,GACJ,KAAA,CAAM,mBAAA,KAAwB,MAAA,IAAa,MAAM,oBAAA,KAAyB,MAAA;AAE5E,EAAA,IAAI,MAAM,mBAAA,EAAqB;AAC7B,IAAA,8BAAA;AAAA,MACE,OAAA;AAAA,MACA;AAAA,QACE,WAAW,KAAA,CAAM,mBAAA;AAAA,QACjB,YAAY,KAAA,CAAM;AAAA,OACpB;AAAA,MACA;AAAA,KACF;AAAA,EACF,WAAW,oBAAA,EAAsB;AAC/B,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,wDAAA;AAAA,MACT,IAAA,EAAM,CAAC,qBAAqB;AAAA,KAC7B,CAAA;AAAA,EACH;AACF,CAAC,CAAA;AAIH,SAAS,8BAAA,CACP,OAAA,EACA,QAAA,EAIA,WAAA,EACM;AACN,EAAA,IAAI,CAAC,SAAS,SAAA,EAAW;AACvB,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,6BAAA;AAAA,MACT,IAAA,EAAM,CAAC,CAAA,EAAG,WAAW,CAAA,SAAA,CAAW;AAAA,KACjC,CAAA;AAAA,EACH,CAAA,MAAA,IACE,CAAC,yBAAA,CAA0B,SAAA,CAAU,QAAA,CAAS,SAAA,CAAU,IAAA,EAAK,CAAE,WAAA,EAAa,CAAA,CAAE,OAAA,EAC9E;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,gCAAA;AAAA,MACT,IAAA,EAAM,CAAC,CAAA,EAAG,WAAW,CAAA,SAAA,CAAW;AAAA,KACjC,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,QAAA,CAAS,eAAe,MAAA,EAAW;AACrC,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,wBAAA;AAAA,MACT,IAAA,EAAM,CAAC,CAAA,EAAG,WAAW,CAAA,UAAA,CAAY;AAAA,KAClC,CAAA;AAAA,EACH,WAAW,QAAA,CAAS,UAAA,IAAc,CAAA,IAAK,QAAA,CAAS,aAAa,uBAAA,EAAyB;AACpF,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,2BAAA;AAAA,MACT,IAAA,EAAM,CAAC,CAAA,EAAG,WAAW,CAAA,UAAA,CAAY;AAAA,KAClC,CAAA;AAAA,EACH;AACF;AAEO,IAAM,qBAAA,GAAwBA,EAClC,MAAA,CAAO;AAAA,EACN,GAAG,sBAAA;AAAA,EACH,QAAA,EAAU,0BAAA;AAAA,EACV,aAAA,EAAe,iCAAiC,QAAA,EAAS;AAAA,EACzD,GAAA,EAAK;AACP,CAAC,EACA,MAAA,EAAO,CACP,WAAA,CAAY,CAAC,OAAO,OAAA,KAAY;AAC/B,EAAA,IAAI,KAAA,CAAM,SAAS,OAAA,cAAuB;AACxC,IAAA,8BAAA;AAAA,MACE,OAAA;AAAA,MACA;AAAA,QACE,WAAW,KAAA,CAAM,SAAA;AAAA,QACjB,YAAY,KAAA,CAAM;AAAA,OACpB;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF,CAAC,CAAA;AAI2CA,EAC3C,MAAA,CAAO;AAAA,EACN,OAAA,EAAS,0BAAA;AAAA,EACT,QAAA,EAAUA,EAAE,IAAA,CAAK;AAAA,IACf,OAAA;AAAA,IACA,kBAAA;AAAA,GACD,CAAA;AAAA,EACD,SAAA,EAAWA,CAAAA,CAAE,GAAA,CAAI,QAAA,EAAS;AAAA,EAC1B,GAAA,EAAK;AACP,CAAC,EACA,MAAA;AAII,IAAM,gBAAA,GAAmBA,EAAE,MAAA,CAAO;AAAA,EACvC,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EAC/B,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG;AAClC,CAAC,CAAA;AAIM,IAAM,iBAAA,GAAoBA,EAAE,MAAA,CAAO;AAAA,EACxC,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EAC/B,IAAA,EAAMA,EACH,IAAA,CAAK;AAAA,IACJ,SAAA;AAAA,IACA,MAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,GACD,CAAA,CACA,OAAA,CAAQ,SAAA;AACb,CAAC,CAAA;AAID,IAAM,uBAAA,GAA0B;AAAA,EAC9B,UAAA,EAAY,eAAA;AAAA,EACZ,iBAAA,EAAmB,sBAAA;AAAA,EACnB,eAAA,EAAiB,oBAAA;AAAA,EACjB,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EAC/B,eAAA,EAAiBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EAC3D,iBAAA,EAAmBA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK,CAAA;AAAA,EAC5C,UAAA,EAAYA,EACT,IAAA,CAAK;AAAA,IACJ,KAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA;AAAA,GACD,CAAA,CACA,OAAA,CAAQ,KAAA;AACb,CAAA;AAEA,IAAM,uBAAA,GAA0BA,EAC7B,MAAA,CAAO;AAAA,EACN,GAAG,uBAAA;AAAA,EACH,WAAA,EAAaA,CAAAA,CAAE,OAAA,CAAQ,cAAA,oBAA6B;AAAA,EACpD,aAAA,EAAeA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA,EAAS;AAAA,EAClC,IAAA,EAAM,2BAAA;AAAA,EACN,OAAA,EAASA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA;AACrB,CAAC,EACA,MAAA,EAAO;AAEV,IAAM,oBAAA,GAAuBA,EAC1B,MAAA,CAAO;AAAA,EACN,GAAG,uBAAA;AAAA,EACH,WAAA,EAAaA,CAAAA,CAAE,OAAA,CAAQ,WAAA,iBAA0B;AAAA,EACjD,aAAA,EAAeA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA,EAAS;AAAA,EAClC,IAAA,EAAM,4BAAA;AAAA,EACN,OAAA,EAASA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA;AACrB,CAAC,EACA,MAAA,EAAO;AAEV,IAAM,wBAAA,GAA2BA,EAC9B,MAAA,CAAO;AAAA,EACN,GAAG,uBAAA;AAAA,EACH,WAAA,EAAaA,CAAAA,CAAE,OAAA,CAAQ,eAAA,qBAA8B;AAAA,EACrD,mBAAA,EAAqB,6BAAA;AAAA,EACrB,aAAA,EAAeA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA,EAAS;AAAA,EAClC,IAAA,EAAMA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA,EAAS;AAAA,EACzB,iBAAiBA,CAAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAQ,CAAC,CAAA;AAAA,EACvC,gBAAA,EAAkB,eAAA;AAAA,EAClB,OAAA,EAASA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA,EAAS;AAAA,EAC5B,mBAAmBA,CAAAA,CAAE,OAAA,CAAQ,KAAK,CAAA,CAAE,QAAQ,KAAK,CAAA;AAAA,EACjD,YAAYA,CAAAA,CAAE,OAAA,CAAQ,KAAA,WAAyB,CAAE,QAAQ,KAAA;AAC3D,CAAC,EACA,MAAA,EAAO;AAEV,IAAM,eAAA,GAAkBA,EACrB,MAAA,CAAO;AAAA,EACN,GAAG,uBAAA;AAAA,EACH,WAAA,EAAaA,CAAAA,CAAE,OAAA,CAAQ,YAAA,kBAA2B;AAAA,EAClD,aAAA,EAAeA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACxC,IAAA,EAAMA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA,EAAS;AAAA,EACzB,OAAA,EAASA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC7C,CAAC,EACA,MAAA,EAAO;AAEV,IAAM,oBAAA,GAAuB,CAC3B,UAAA,KAEAA,CAAAA,CACG,MAAA,CAAO;AAAA,EACN,GAAG,uBAAA;AAAA,EACH,WAAA,EAAaA,CAAAA,CAAE,OAAA,CAAQ,UAAU,CAAA;AAAA,EACjC,WAAA,EAAaA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACtC,mBAAA,EAAqBA,CAAAA,CAAE,MAAA,EAAO,CAAE,MAAM,gBAAgB,CAAA;AAAA,EACtD,aAAA,EAAeA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA,EAAS;AAAA,EAClC,IAAA,EAAMA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA,EAAS;AAAA,EACzB,OAAA,EAASA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA;AACrB,CAAC,EACA,MAAA,EAAO;AAEZ,IAAM,gBAAA,GAAmBA,EACtB,MAAA,CAAO;AAAA,EACN,GAAG,uBAAA;AAAA,EACH,WAAA,EAAaA,CAAAA,CAAE,OAAA,CAAQ,MAAA,YAAqB;AAAA,EAC5C,aAAA,EAAeA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA,EAAS;AAAA,EAClC,IAAA,EAAMA,CAAAA,CAAE,KAAA,EAAM,CAAE,QAAA,EAAS;AAAA,EACzB,OAAA,EAASA,EACN,MAAA,CAAO;AAAA,IACN,IAAA,EAAMA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAI;AAAA,GACjC,EACA,MAAA;AACL,CAAC,EACA,MAAA,EAAO;AAEH,IAAM,4BAAA,GAA+BA,CAAAA,CAAE,kBAAA,CAAmB,aAAA,EAAe;AAAA,EAC9E,uBAAA;AAAA,EACA,oBAAA;AAAA,EACA,wBAAA;AAAA,EACA,eAAA;AAAA,EACA,qBAAqB,iBAAA,uBAAgC;AAAA,EACrD,qBAAqB,iBAAA,uBAAgC;AAAA,EACrD;AACF,CAAC,CAAA;AAIM,IAAM,sBAAA,GAAyBA,EACnC,MAAA,CAAO;AAAA,EACN,GAAG,uBAAA;AAAA,EACH,WAAA,EAAaA,EAAE,IAAA,CAAK;AAAA,IAClB,cAAA;AAAA,IACA,WAAA;AAAA,IACA,eAAA;AAAA,IACA,YAAA;AAAA,IACA,iBAAA;AAAA,IACA,iBAAA;AAAA,IACA,MAAA;AAAA,GACD,CAAA;AAAA,EACD,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EACnD,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EACjD,qBAAqBA,CAAAA,CAClB,MAAA,GACA,KAAA,CAAM,gBAAgB,EACtB,QAAA,EAAS;AAAA,EACZ,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,IAAI,CAAA,CAAE,QAAA,EAAS;AAAA,EAC3C,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACpB,MAAA,EAAQA,EAAE,IAAA,CAAK;AAAA,IACb,WAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,GACD;AACH,CAAC,EACA,MAAA,EAAO,CACP,WAAA,CAAY,CAAC,QAAQ,OAAA,KAAY;AAChC,EAAA,IAAI,MAAA,CAAO,gBAAgB,cAAA,qBAA+B;AACxD,IAAA,cAAA,CAAe,OAAA,EAAS,2BAAA,EAA6B,MAAA,CAAO,IAAA,EAAM,MAAM,CAAA;AAAA,EAC1E,CAAA,MAAA,IAAW,MAAA,CAAO,WAAA,KAAgB,WAAA,kBAA4B;AAC5D,IAAA,cAAA,CAAe,OAAA,EAAS,4BAAA,EAA8B,MAAA,CAAO,IAAA,EAAM,MAAM,CAAA;AAAA,EAC3E,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,MAAA,EAAW;AACpC,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,4CAAA;AAAA,MACT,IAAA,EAAM,CAAC,MAAM;AAAA,KACd,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,MAAA,CAAO,WAAA,KAAgB,YAAA,qBAA+B,MAAA,CAAO,kBAAkB,MAAA,EAAW;AAC5F,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,0CAAA;AAAA,MACT,IAAA,EAAM,CAAC,eAAe;AAAA,KACvB,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,MAAA,CAAO,WAAA,KAAgB,YAAA,qBAA+B,MAAA,CAAO,kBAAkB,MAAA,EAAW;AAC5F,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,gDAAA;AAAA,MACT,IAAA,EAAM,CAAC,eAAe;AAAA,KACvB,CAAA;AAAA,EACH;AAEA,EAAA,MAAM,gBAAA,GACJ,MAAA,CAAO,WAAA,KAAgB,iBAAA,0BACvB,OAAO,WAAA,KAAgB,iBAAA;AAEzB,EAAA,IACE,qBACC,MAAA,CAAO,WAAA,KAAgB,MAAA,IAAa,MAAA,CAAO,wBAAwB,MAAA,CAAA,EACpE;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,uEAAA;AAAA,MACT,IAAA,EAAM,CAAC,aAAa;AAAA,KACrB,CAAA;AAAA,EACH;AAEA,EAAA,IACE,CAAC,gBAAA,KACA,MAAA,CAAO,gBAAgB,MAAA,IAAa,MAAA,CAAO,wBAAwB,MAAA,CAAA,EACpE;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,yDAAA;AAAA,MACT,IAAA,EAAM,CAAC,aAAa;AAAA,KACrB,CAAA;AAAA,EACH;AACF,CAAC,CAAA;AAEH,SAAS,cAAA,CACP,OAAA,EACA,MAAA,EACA,KAAA,EACA,IAAA,EACM;AACN,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,SAAA,CAAU,KAAK,CAAA;AAErC,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,OAAO,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,EAAG,OAAA,IAAW,GAAG,IAAI,CAAA,WAAA,CAAA;AAAA,MACnD,IAAA,EAAM,CAAC,IAAI;AAAA,KACZ,CAAA;AAAA,EACH;AACF;AAIO,IAAM,sBAAA,GAAyBA,EAAE,MAAA,CAAO;AAAA,EAC7C,OAAA,EAASA,CAAAA,CAAE,KAAA,CAAM,4BAA4B,CAAA,CAAE,IAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAChE,eAAA,EAAiB,2BAAA;AAAA,EACjB,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACpD,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAI,CAAA,CAAE,QAAA,EAAS;AAAA,EAC3C,WAAA,EAAaA,EAAE,IAAA,CAAK;AAAA,IAClB,aAAA;AAAA,IACA,gBAAA;AAAA,IACA,iBAAA;AAAA,IACA,iBAAA;AAAA,IACA,eAAA;AAAA,GACD,CAAA;AAAA,EACD,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,gBAAgB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACnD,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EAC5C,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,iBAAiB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACpD,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS;AAAA,EACrD,cAAA,EAAgBA,CAAAA,CAAE,OAAA,CAAQ,mBAAmB,CAAA;AAAA,EAC7C,WAAA,EAAaA,EACV,IAAA,CAAK;AAAA,IACJ,QAAA;AAAA,IACA,UAAA;AAAA,IACA,cAAA;AAAA,IACA,YAAA;AAAA,GACD,CAAA,CACA,OAAA,CAAQ,UAAA,gBAA0B;AAAA,EACrC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EAC3C,OAAA,EAASA,EACN,IAAA,CAAK;AAAA,IACJ,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,GACD,CAAA,CACA,OAAA,CAAQ,SAAA,eAAqB;AAAA,EAChC,UAAA,EAAYA,EACT,IAAA,CAAK,CAAC,+BAAoC,kBAAA,wBAAyC,CAAA,CACnF,OAAA,CAAQ,YAAA;AACb,CAAC,CAAA;AAIM,IAAM,sBAAA,GAAyBA,CAAAA,CAAE,kBAAA,CAAmB,aAAA,EAAe;AAAA,EACxEA,EACG,MAAA,CAAO;AAAA,IACN,WAAA,EAAaA,CAAAA,CAAE,OAAA,CAAQ,MAAA;AAAqB,GAC7C,EACA,MAAA,EAAO;AAAA,EACVA,EACG,MAAA,CAAO;AAAA,IACN,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,IAC5C,qBAAqBA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA,EAAS;AAAA,IAChD,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,IAC9C,gBAAgBA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA,EAAS;AAAA,IAC3C,WAAA,EAAaA,CAAAA,CAAE,OAAA,CAAQ,KAAA;AAAoB,GAC5C,EACA,MAAA;AACL,CAAC,CAAA;AAIM,IAAM,gBAAA,GAAmB,uBAC7B,IAAA,CAAK;AAAA,EACJ,OAAA,EAAS,IAAA;AAAA,EACT,KAAA,EAAO,IAAA;AAAA,EACP,QAAA,EAAU;AACZ,CAAC,EACA,MAAA,CAAO;AAAA,EACN,OAAA,EAASA,CAAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA,CAAE,IAAI,CAAC,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC1D,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACpB,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,qBAAqB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACxD,UAAA,EAAY,sBAAA;AAAA,EACZ,QAAA,EAAUA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK;AACrC,CAAC,CAAA,CACA,WAAA,CAAY,CAAC,MAAA,EAAQ,OAAA,KAAY;AAChC,EAAA,IAAI,OAAO,QAAA,EAAU;AACnB,IAAA,MAAM,UAAA,GACJ,MAAA,CAAO,OAAA,CAAQ,MAAA,GAAS,CAAA,IACxB,MAAA,CAAO,eAAA,CAAgB,MAAA,GAAS,CAAA,IAChC,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAA,IACvB,MAAA,CAAO,IAAA,KAAS,MAAA,IAChB,MAAA,CAAO,KAAA,CAAM,MAAA,GAAS,CAAA,IACtB,MAAA,CAAO,MAAA,KAAW,MAAA,IAClB,MAAA,CAAO,KAAA,CAAM,MAAA,GAAS,CAAA,IACtB,MAAA,CAAO,KAAA,KAAU,MAAA;AAEnB,IAAA,IAAI,MAAA,CAAO,UAAA,CAAW,WAAA,KAAgB,KAAA,YAAsB;AAC1D,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,+CAAA;AAAA,QACT,IAAA,EAAM,CAAC,YAAA,EAAc,aAAa;AAAA,OACnC,CAAA;AAAA,IACH;AAEA,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,sEAAA;AAAA,QACT,IAAA,EAAM,CAAC,UAAU;AAAA,OAClB,CAAA;AAAA,IACH;AAEA,IAAA,IAAI,MAAA,CAAO,eAAe,YAAA,mBAAoC;AAC5D,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,qDAAA;AAAA,QACT,IAAA,EAAM,CAAC,YAAY;AAAA,OACpB,CAAA;AAAA,IACH;AAEA,IAAA;AAAA,EACF;AAEA,EAAA,IAAI,MAAA,CAAO,UAAA,CAAW,WAAA,KAAgB,KAAA,YAAsB;AAC1D,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,QAAA,EAAU,qBAAA,EAAuB,YAAY,gBAAgB,CAAA;AAErF,EAAA,KAAA,MAAW,SAAS,cAAA,EAAgB;AAClC,IAAA,IAAI,CAAC,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA,EAAG;AAC7B,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,GAAG,KAAK,CAAA,+BAAA,CAAA;AAAA,QACjB,IAAA,EAAM,CAAC,YAAA,EAAc,KAAK;AAAA,OAC3B,CAAA;AAAA,IACH;AAAA,EACF;AACF,CAAC,CAAA;AAIoCA,EAAE,MAAA,CAAO;AAAA,EAC9C,SAASA,CAAAA,CAAE,KAAA,CAAM,gBAAgB,CAAA,CAAE,OAAA,CAAQ,EAAE;AAC/C,CAAC;AAIwCA,EAAE,MAAA,CAAO;AAAA,EAChD,cAAA,EAAgBA,EAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAC1C,KAAA,EAAOA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC3C,CAAC;AAIoDA,EAClD,MAAA,CAAO;AAAA,EACN,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC1B,UAAA,EAAYA,EAAE,IAAA,CAAK;AAAA,IACjB,cAAA;AAAA,IACA,WAAA;AAAA,IACA,eAAA;AAAA,IACA,YAAA;AAAA,IACA,iBAAA;AAAA,IACA,iBAAA;AAAA,IACA,MAAA;AAAA,GACD,CAAA;AAAA,EACD,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,IAAI,CAAA,CAAE,QAAA,EAAS;AAAA,EAC3C,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC9B,WAAWA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA,EAAS;AAAA,EACtC,MAAA,EAAQA,EAAE,IAAA,CAAK;AAAA,IACb,SAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,GACD,CAAA;AAAA,EACD,MAAMA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,GAAI,EAAE,QAAA;AAC7B,CAAC,EACA,MAAA,EAAO,CACP,WAAA,CAAY,CAAC,UAAU,OAAA,KAAY;AAClC,EAAA,MAAM,YAAA,GAAe,SAAS,MAAA,KAAW,WAAA;AAEzC,EAAA,IACE,YAAA,KACC,SAAS,UAAA,KAAe,cAAA,uBACvB,SAAS,UAAA,KAAe,WAAA,iBAAA,IAC1B,QAAA,CAAS,IAAA,KAAS,MAAA,EAClB;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,+CAAA;AAAA,MACT,IAAA,EAAM,CAAC,MAAM;AAAA,KACd,CAAA;AAAA,EACH;AAEA,EAAA,IACE,gBACA,QAAA,CAAS,UAAA,KAAe,MAAA,eACxB,QAAA,CAAS,SAAS,MAAA,EAClB;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,+CAAA;AAAA,MACT,IAAA,EAAM,CAAC,MAAM;AAAA,KACd,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,QAAA,CAAS,UAAA,KAAe,MAAA,eAAyB,QAAA,CAAS,SAAS,MAAA,EAAW;AAChF,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,yCAAA;AAAA,MACT,IAAA,EAAM,CAAC,MAAM;AAAA,KACd,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,QAAA,CAAS,SAAS,MAAA,EAAW;AAC/B,IAAA;AAAA,EACF,CAAA,MAAA,IAAW,QAAA,CAAS,UAAA,KAAe,cAAA,qBAA+B;AAChE,IAAA,cAAA,CAAe,OAAA,EAAS,2BAAA,EAA6B,QAAA,CAAS,IAAA,EAAM,MAAM,CAAA;AAAA,EAC5E,CAAA,MAAA,IAAW,QAAA,CAAS,UAAA,KAAe,WAAA,kBAA4B;AAC7D,IAAA,cAAA,CAAe,OAAA,EAAS,4BAAA,EAA8B,QAAA,CAAS,IAAA,EAAM,MAAM,CAAA;AAAA,EAC7E,CAAA,MAAO;AACL,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,4CAAA;AAAA,MACT,IAAA,EAAM,CAAC,MAAM;AAAA,KACd,CAAA;AAAA,EACH;AACF,CAAC;ACtwBI,IAAM,gCAAA,GAAmCA,EAAE,MAAA,CAAO;AAAA,EACvD,mBAAA,EAAqBA,EAAE,IAAA,CAAK;AAAA,IAAA,eAAA;AAAA,IAAA,eAAA;AAAA,GAG3B,CAAA;AAAA,EACD,YAAA,EAAcA,CAAAA,CAAE,IAAA,CAAK,CAAA,SAAA,gBAAA,UAAA,gBAAqD,CAAA;AAAA,EAC1E,IAAA,EAAMA,EAAE,IAAA,CAAK;AAAA,IAAA,SAAA;AAAA,IAAA,MAAA;AAAA,IAAA,cAAA;AAAA,IAAA,QAAA;AAAA,GAKZ,CAAA;AAAA,EACD,2BAAA,EAA6BA,EAAE,IAAA,CAAK;AAAA,IAAA,sBAAA;AAAA,IAAA,cAAA;AAAA,GAGnC,CAAA;AAAA,EACD,mBAAA,EAAqBA,EAAE,MAAA,EAAO,CAAE,MAAK,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA;AAClD,CAAC,CAAA;AAEwD,gCAAA,CAAiC,KAAA;AAAA,EACxF;AACF;AC5B8BA,EAAE,MAAA,CAAO;AAAA,EACrC,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,IACf,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,IACrB,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC7B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAChC;AACH,CAAC;ACCD,IAAM,iBAAA,GAAoB;AAAA,EAAA,WAAA;AAAA,EAAA,QAAA;AAAA,EAAA,MAAA;AAAA,EAAA,KAAA;AAK1B,CAAA;AAEA,IAAM,sBAAA,GAAyB;AAAA,EAAA,SAAA;AAAA,EAAA,iBAAA;AAAA,EAAA,iBAAA;AAAA,EAAA,gBAAA;AAK/B,CAAA;AAEA,IAAM,mBAAA,GAAsB;AAAA,EAAA,UAAA;AAAA,EAAA,YAAA;AAAA,EAAA,qBAAA;AAAA,EAAA,gBAAA;AAAA,EAAA,gBAAA;AAAA,EAAA,uBAAA;AAAA,EAAA,mBAAA;AAAA,EAAA,sBAAA;AAAA,EAAA,UAAA;AAAA,EAAA,WAAA;AAAA,EAAA,WAAA;AAAA,EAAA,aAAA;AAAA,EAAA,UAAA;AAAA,EAAA,QAAA;AAAA,EAAA,SAAA;AAAA,EAAA,WAAA;AAiB5B,CAAA;AAEA,IAAMoC,sBAAAA,GAAwB,CAAC,aAAA,KAC7BpC,CAAAA,CAAE,UAAA;AAAA,EACA,CAAC,KAAA,KAAW,OAAO,KAAA,KAAU,QAAA,IAAY,MAAM,IAAA,EAAK,CAAE,MAAA,KAAW,CAAA,GAAI,MAAA,GAAY,KAAA;AAAA,EACjFA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,aAAa,CAAA,CAAE,QAAA;AAC9C,CAAA;AAEK,IAAM,iBAAA,GAAoBA,CAAAA,CAAE,IAAA,CAAK,iBAAiB,CAAA;AAEzBA,EAAE,MAAA,CAAO;AAAA,EACvC,MAAA,EAAQ,iBAAA,CAAkB,QAAA,EAAS,CAAE,OAAA,CAAA,WAAA,iBAA6B;AAAA,EAClE,WAAA,EAAaoC,uBAAsB,GAAG,CAAA;AAAA,EACtC,MAAA,EAAQA,uBAAsB,GAAG,CAAA;AAAA,EACjC,OAAOpC,CAAAA,CAAE,MAAA,CAAO,MAAA,EAAO,CAAE,KAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,QAAA,EAAS,CAAE,QAAQ,EAAE,CAAA;AAAA,EACnE,KAAA,EAAOoC,uBAAsB,GAAG,CAAA;AAAA,EAChC,QAAQpC,CAAAA,CAAE,UAAA;AAAA,IACR,CAAC,KAAA,KAAW,KAAA,KAAU,EAAA,GAAK,MAAA,GAAY,KAAA;AAAA,IACvCA,CAAAA,CAAE,IAAA,CAAK,mBAAmB,CAAA,CAAE,QAAA;AAAS;AAEzC,CAAC;AAIM,IAAM,iBAAA,GAAoBA,EAAE,MAAA,CAAO;AAAA,EACxC,QAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACrC,WAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACxC,MAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA,EAAY;AAAA,EACnC,OAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA;AAC1B,CAAC,CAAA;AAIM,IAAM,mBAAA,GAAsBA,EAAE,MAAA,CAAO;AAAA,EAC1C,OAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACjC,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AACtB,CAAC,CAAA;AAEM,IAAM,eAAA,GAAkBA,EAAE,MAAA,CAAO;AAAA,EACtC,MAAA,EAAQ,iBAAA,CAAkB,OAAA,CAAQ,CAAA,KAAA,WAAiB,CAAA;AAAA,EACnD,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC/C,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACpB,cAAA,EAAgBA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EACpD,WAAA,EAAaA,CAAAA,CAAE,IAAA,CAAK,sBAAsB,EAAE,QAAA,EAAS;AAAA,EACrD,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,mBAAmB,CAAA;AAAA,EAClC,OAAA,EAASA,EAAE,MAAA;AACb,CAAC,CAAA;AAWkCA,EAAE,MAAA,CAAO;AAAA,EAC1C,MAAA,EAAQ,iBAAA;AAAA,EACR,UAAA,EAAYA,CAAAA,CAAE,KAAA,CAAM,mBAAmB,CAAA;AAAA,EACvC,MAAA,EAAQ,iBAAA;AAAA,EACR,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,eAAe,CAAA;AAAA,EAC9B,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC;ACvGkCA,EAAE,MAAA,CAAO;AAAA,EAC1C,wBAAA,EAA0BA,EAAE,IAAA,CAAK;AAAA,IAAA,UAAA;AAAA,IAAA,cAAA;AAAA,GAGhC,CAAA;AAAA,EACD,OAAA,EAASA,EAAE,MAAA,CAAO;AAAA,IAChB,iBAAA,EAAmBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAC,CAAA,CAAE,OAAA,CAAQ,EAAE;AAAA,GACzD;AACH,CAAC;ACC8BA,EAAE,MAAA,CAAO;AAAA,EACtC,IAAA,EAAMA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EAC9B,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA;AACpB,CAAC;AAEM,IAAM,4BAAA,GAA+BA,EAAE,MAAA,CAAO;AAAA,EACnD,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,QAAA,EAAS;AAAA,EACzC,OAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,GAAQ,QAAA;AAC5B,CAAC,CAAA;AAEwCA,EAAE,MAAA,CAAO;AAAA,EAChD,OAAA,EAASA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAI,CAAA;AAAA,EACnC,SAAA,EAAW,6BAA6B,QAAA,EAAS;AAAA,EACjD,cAAA,EAAgBA,EAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,GAAG;AAC5C,CAAC;AAI0CA,EAAE,MAAA,CAAO;AAAA,EAClD,eAAA,EAAiBA,EACd,MAAA,CAAO;AAAA,IACN,EAAA,EAAIA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,IAC7B,UAAA,EAAYA,EAAE,IAAA,CAAK;AAAA,MAAA,QAAA;AAAA,MAAA,QAAA;AAAA,KAGlB;AAAA,GACF,EACA,QAAA,EAAS;AAAA,EACZ,OAAA,EAASA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAI,CAAA;AAAA,EACnC,cAAA,EAAgBA,EAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,GAAG;AAC5C,CAAC;AAIuCA,EAAE,MAAA,CAAO;AAAA,EAC/C,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EACvD,KAAA,EAAOA,CAAAA,CAAE,MAAA,CAAO,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,EAAE,QAAA;AAChD,CAAC;AAIM,IAAM,0BAAA,GAA6BA,EAAE,MAAA,CAAO;AAAA,EACjD,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,OAAA,EAASA,CAAAA,CAAE,KAAA,CAAM,gBAAgB,CAAA;AAAA,EACjC,UAAA,EAAYA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAChD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,MAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,OAAA,EAAS,WAAA,EAAa,OAAO,CAAC;AAC9C,CAAC,CAAA;AAIsCA,EAAE,MAAA,CAAO;AAAA,EAC9C,kBAAA,EAAoBA,EAAE,OAAA,EAAQ;AAAA,EAC9B,QAAA,EAAUA,CAAAA,CAAE,KAAA,CAAM,0BAA0B,CAAA;AAAA,EAC5C,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAChC,CAAC;AAIM,IAAM,qCAAA,GAAwC,2BAA2B,MAAA,CAAO;AAAA,EACrF,MAAMA,CAAAA,CAAE,IAAA,CAAK,CAAC,WAAA,EAAa,OAAO,CAAC;AACrC,CAAC,CAAA;AAEiDA,EAAE,MAAA,CAAO;AAAA,EACzD,kBAAA,EAAoBA,EAAE,OAAA,EAAQ;AAAA,EAC9B,QAAA,EAAUA,CAAAA,CAAE,KAAA,CAAM,qCAAqC,CAAA;AAAA,EACvD,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAChC,CAAC;AAIqCA,EAAE,MAAA,CAAO;AAAA,EAC7C,cAAA,EAAgBA,EAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAC1C,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAI;AAC5C,CAAC;AAIyCA,EAAE,MAAA,CAAO;AAAA,EACjD,gBAAA,EAAkBA,EAAE,OAAA,EAAQ;AAAA,EAC5B,OAAA,EAASA,EAAE,MAAA,CAAO;AAAA,IAChB,IAAA,EAAMA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAI,CAAA;AAAA,IAChC,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,IAC/C,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AAAA,GACrB,CAAA;AAAA,EACD,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC3B,MAAA,EAAQA,EAAE,OAAA,CAAA,WAAA;AACZ,CAAC;AAIM,IAAM,mBAAA,GAAsBA,EAAE,MAAA,CAAO;AAAA,EAC1C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAChC,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,EACpE,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,EAClE,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC9C,CAAC,CAAA;AAE0CA,EAAE,MAAA,CAAO;AAAA,EAClD,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,kBAAA,EAAoBA,EAAE,MAAA,EAAO;AAAA,EAC7B,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACtC,iBAAA,EAAmBA,EAChB,MAAA,CAAO;AAAA,IACN,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,IACf,UAAA,EAAYA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,CAAC;AAAA,GACpC,EACA,QAAA,EAAS;AAAA,EACZ,MAAA,EAAQA,EACL,IAAA,CAAK;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,qBAAA;AAAA,IAAA,gBAAA;AAAA,IAAA,gBAAA;AAAA,IAAA,uBAAA;AAAA,IAAA,mBAAA;AAAA,IAAA,sBAAA;AAAA,IAAA,UAAA;AAAA,IAAA,WAAA;AAAA,IAAA,WAAA;AAAA,IAAA,aAAA;AAAA,IAAA,UAAA;AAAA,IAAA,QAAA;AAAA,IAAA,SAAA;AAAA,IAAA,WAAA;AAAA,GAiBL,EACA,QAAA,EAAS;AAAA,EACZ,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACpC,UAAA,EAAYA,EAAE,IAAA,CAAK;AAAA,IAAA,MAAA;AAAA,IAAA,SAAA;AAAA,IAAA,eAAA;AAAA,IAAA,UAAA;AAAA,IAAA,WAAA;AAAA,GAMlB,CAAA;AAAA,EACD,sBAAA,EAAwBA,EACrB,MAAA,CAAO;AAAA,IACN,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,IAC/C,EAAA,EAAIA,EAAE,MAAA;AAAO,GACd,CAAA,CACA,QAAA,EAAS,CACT,QAAQ,IAAI,CAAA;AAAA,EACf,QAAA,EAAUA,EACP,MAAA,CAAO;AAAA,IACN,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,iBAAiB,CAAA;AAAA,IACjC,OAAA,EAASA,CAAAA,CAAE,KAAA,CAAM,mBAAmB;AAAA,GACrC,EACA,QAAA;AACL,CAAC;AAIM,IAAM,yBAAA,GAA4BA,EAAE,MAAA,CAAO;AAAA,EAChD,kBAAA,EAAoB,kBAAkB,KAAA,CAAM,YAAA;AAAA,EAC5C,YAAA,EAAc,kBAAkB,KAAA,CAAM,MAAA;AAAA,EACtC,cAAA,EAAgBA,EAAE,MAAA,EAAO;AAAA,EACzB,UAAA,EAAY,kBAAkB,KAAA,CAAM,UAAA;AAAA,EACpC,GAAA,EAAK,kBAAkB,KAAA,CAAM,GAAA;AAAA,EAC7B,wBAAA,EAA0BA,EACvB,MAAA,CAAO;AAAA,IACN,UAAA,EAAYA,EAAE,MAAA,EAAO,CAAE,SAAS,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,IAChD,EAAA,EAAIA,EAAE,MAAA;AAAO,GACd,EACA,QAAA,EAAS;AAAA,EACZ,WAAA,EAAa,kBAAkB,KAAA,CAAM,WAAA;AAAA,EACrC,oBAAA,EAAsB,kBAAkB,KAAA,CAAM,oBAAA;AAAA,EAC9C,kBAAA,EAAoBA,EACjB,MAAA,CAAO;AAAA,IACN,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,IACf,UAAA,EAAYA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,CAAC;AAAA,GACpC,EACA,QAAA,EAAS;AAAA,EACZ,cAAA,EAAgBA,CAAAA,CAAE,IAAA,CAAK,0BAA0B,CAAA;AAAA,EACjD,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,aAAa,EAAE,QAAA,EAAS;AAAA,EACvC,MAAA,EAAQA,CAAAA,CAAE,KAAA,CAAM,qCAAqC,CAAA;AAAA,EACrD,WAAA,EAAaA,EAAE,MAAA,CAAO;AAAA,IACpB,kBAAA,EAAoBA,EAAE,OAAA,EAAQ;AAAA,IAC9B,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GACxC;AACH,CAAC,CAAA;AAIgDA,EAAE,MAAA,CAAO;AAAA,EACxD,OAAA,EAAS;AACX,CAAC;AAI2CA,EAAE,MAAA,CAAO;AAAA,EACnD,UAAA,EAAYA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACrC,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,MAAM,gBAAgB,CAAA;AAAA,EACpD,cAAA,EAAgBA,EAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAC1C,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EACtD,cAAcA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,GAAG,EAAE,QAAA;AACpC,CAAC;AAI2CA,EAAE,MAAA,CAAO;AAAA,EACnD,cAAA,EAAgBA,EAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,GAAG;AAC5C,CAAC;AAEmDA,EAAE,MAAA,CAAO;AAAA,EAC3D,QAAA,EAAUA,EAAE,OAAA,EAAQ;AAAA,EACpB,SAAA,EAAWA,EAAE,MAAA,EAAO;AAAA,EACpB,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,CAAA,UAAA,iBAAA,WAAA,kBAAA,QAAA,cAAuE;AACxF,CAAC;AAIkDA,EAAE,MAAA,CAAO;AAAA,EAC1D,MAAA,EAAQA,CAAAA,CAAE,IAAA,CAAK,CAAA,SAAA,gBAAA,SAAA,gBAAA,iBAAA,uBAAgF,CAAA;AAAA,EAC/F,eAAA,EAAiBA,EAAE,OAAA,EAAQ;AAAA,EAC3B,cAAA,EAAgBA,EAAE,IAAA,CAAK;AAAA,IAAA,SAAA;AAAA,IAAA,UAAA;AAAA,IAAA,UAAA;AAAA,IAAA,mBAAA;AAAA,IAAA,SAAA;AAAA,IAAA,WAAA;AAAA,GAOtB,CAAA;AAAA,EACD,UAAA,EAAYA,EAAE,IAAA,CAAK;AAAA,IAAA,MAAA;AAAA,IAAA,SAAA;AAAA,IAAA,eAAA;AAAA,IAAA,UAAA;AAAA,IAAA,WAAA;AAAA,GAMlB,CAAA;AAAA,EACD,SAAA,EAAWA,EAAE,MAAA,EAAO;AAAA,EACpB,MAAA,EAAQA,EAAE,IAAA,CAAK;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,qBAAA;AAAA,IAAA,gBAAA;AAAA,IAAA,gBAAA;AAAA,IAAA,uBAAA;AAAA,IAAA,mBAAA;AAAA,IAAA,sBAAA;AAAA,IAAA,UAAA;AAAA,IAAA,WAAA;AAAA,IAAA,WAAA;AAAA,IAAA,aAAA;AAAA,IAAA,UAAA;AAAA,IAAA,QAAA;AAAA,IAAA,SAAA;AAAA,IAAA,WAAA;AAAA,GAiBd;AACH,CAAC;;;ACtQM,SAAS,iBAAiB,KAAA,EAAyB;AACxD,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,IAAA,OAAO,KAAA,CAAM,IAAI,gBAAgB,CAAA;AAAA,EACnC;AAEA,EAAA,IAAI,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,EAAU;AACtC,IAAA,OAAO,MAAA,CAAO,WAAA;AAAA,MACZ,OAAO,OAAA,CAAQ,KAAgC,EAC5C,MAAA,CAAO,CAAC,GAAG,IAAI,CAAA,KAAM,IAAA,KAAS,MAAS,CAAA,CACvC,IAAA,CAAK,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAA,KAAO,IAAA,GAAO,QAAQ,EAAA,GAAK,IAAA,GAAO,QAAQ,CAAA,GAAI,CAAE,EACpE,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,IAAI,CAAA,KAAM,CAAC,KAAK,gBAAA,CAAiB,IAAI,CAAC,CAAC;AAAA,KACvD;AAAA,EACF;AAEA,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,uBAAuB,KAAA,EAAwB;AAC7D,EAAA,OAAO,IAAA,CAAK,SAAA,CAAU,gBAAA,CAAiB,KAAK,CAAC,CAAA;AAC/C;ACiCA,IAAM,eAAA,GAAkBA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AACjD,IAAM,8BAAA,GAAiC,yBAAyB,MAAA,EAAO;AAChE,IAAM,kCAAA,GAAqCA,CAAAA,CAAE,MAAA,EAAO,CAAE,MAAM,gBAAgB,CAAA;AAE5E,IAAM,0BAAA,GAA6BA,EAAE,YAAA,CAAa;AAAA,EACvD,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,OAAA,EAASA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAClC,cAAA,EAAgBA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACzC,YAAA,EAAcA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACvC,oBAAoBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EAC9C,yBAAA,EAA2B,kCAAA;AAAA,EAC3B,KAAA,EAAO,WAAA;AAAA,EACP,YAAA,EAAcA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACvC,UAAA,EAAY,qBAAA;AAAA,EACZ,aAAA,EAAeA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACxC,eAAA,EAAiB,WAAA;AAAA,EACjB,eAAeA,CAAAA,CAAE,KAAA,CAAM,qBAAqB,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACrD,cAAA,EAAgBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAC,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EACzD,aAAA,EAAeA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,IAAA,CAAK,gBAAgB,CAAC,CAAA,CAAE,GAAA,CAAI,gBAAA,CAAiB,MAAM,CAAA;AAAA,EAC5E,QAAA,EAAU,iBAAA;AAAA,EACV,SAAA,EAAW;AACb,CAAC,CAAA;AAEM,IAAM,qCAAA,GAAwCA,EAAE,YAAA,CAAa;AAAA,EAClE,YAAA,EAAcA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACvC,oBAAoBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EAC9C,uBAAA,EAAyBA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAClD,YAAA,EAAcA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACvC,qBAAA,EAAuBA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAC,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EAChE,yBAAA,EAA2B;AAC7B,CAAC,CAAA;AAEM,IAAM,qBAAA,GAAwBA,EAAE,YAAA,CAAa;AAAA,EAClD,IAAA,EAAMA,EAAE,IAAA,CAAK;AAAA,IACX,iBAAA;AAAA,IACA,wBAAA;AAAA,IACA,qBAAA;AAAA,IACA,sBAAA;AAAA,IACA,iBAAA;AAAA,IACA,cAAA;AAAA,IACA,yBAAA;AAAA,IACA,kBAAA;AAAA,GACD,CAAA;AAAA,EACD,OAAA,EAASA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAClC,SAAA,EAAWA,EAAE,OAAA,EAAQ;AAAA,EACrB,iBAAA,EAAmBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,KAAM,CAAA,CAAE,QAAA,EAAS;AAAA,EAChE,OAAA,EAAS,iBAAiB,QAAA;AAC5B,CAAC,CAAA;AAEM,IAAM,mCAAA,GAAsCA,EAAE,YAAA,CAAa;AAAA,EAChE,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,SAAA,EAAW,eAAA;AAAA,EACX,KAAA,EAAO,0BAAA;AAAA,EACP,SAAA,EAAW,yBAAA;AAAA,EACX,MAAA,EAAQ;AACV,CAAC,CAAA;AAEmDA,EACjD,YAAA,CAAa;AAAA,EACZ,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,SAAA,EAAW,eAAA;AAAA,EACX,MAAA,EAAQA,EAAE,IAAA,CAAK;AAAA,IACb,cAAA;AAAA,IACA,iBAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,GACD,CAAA;AAAA,EACD,gBAAA,EAAkB,0BAA0B,QAAA,EAAS;AAAA,EACrD,sBAAA,EAAwB,kBAAkB,QAAA,EAAS;AAAA,EACnD,UAAA,EAAY,sCAAsC,QAAA,EAAS;AAAA,EAC3D,KAAA,EAAO,sBAAsB,QAAA;AAC/B,CAAC,CAAA,CACA,WAAA,CAAY,CAAC,KAAA,EAAO,OAAA,KAAY;AAC/B,EAAA,IACE,KAAA,CAAM,WAAW,iBAAA,2BAChB,CAAC,MAAM,gBAAA,IAAoB,CAAC,MAAM,sBAAA,CAAA,EACnC;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,0DAAA;AAAA,MACT,IAAA,EAAM,CAAC,QAAQ;AAAA,KAChB,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,WAAA,oBAA6C,CAAC,MAAM,UAAA,EAAY;AACnF,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,6CAAA;AAAA,MACT,IAAA,EAAM,CAAC,QAAQ;AAAA,KAChB,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,QAAA,iBAA0C,CAAC,MAAM,KAAA,EAAO;AAC3E,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,iCAAA;AAAA,MACT,IAAA,EAAM,CAAC,QAAQ;AAAA,KAChB,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,QAAA,iBAA0C,KAAA,CAAM,KAAA,EAAO;AAC1E,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,yCAAA;AAAA,MACT,IAAA,EAAM,CAAC,OAAO;AAAA,KACf,CAAA;AAAA,EACH;AACF,CAAC;AAEI,IAAM,oCAAA,GAAuCA,EAAE,YAAA,CAAa;AAAA,EACjE,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,SAAA,EAAW,eAAA;AAAA,EACX,KAAA,EAAO,0BAAA;AAAA,EACP,eAAA,EAAiBA,EAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,GAAG;AAC7C,CAAC,CAAA;AAEoDA,EAClD,YAAA,CAAa;AAAA,EACZ,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,SAAA,EAAW,eAAA;AAAA,EACX,MAAA,EAAQA,EAAE,IAAA,CAAK;AAAA,IACb,WAAA;AAAA,IACA,QAAA;AAAA,GACD,CAAA;AAAA,EACD,UAAA,EAAY,sCAAsC,QAAA,EAAS;AAAA,EAC3D,KAAA,EAAO,sBAAsB,QAAA;AAC/B,CAAC,CAAA,CACA,WAAA,CAAY,CAAC,KAAA,EAAO,OAAA,KAAY;AAC/B,EAAA,IACE,MAAM,MAAA,KAAW,WAAA,qBAChB,CAAC,KAAA,CAAM,UAAA,IAAc,MAAM,KAAA,CAAA,EAC5B;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,yEAAA;AAAA,MACT,IAAA,EAAM,CAAC,QAAQ;AAAA,KAChB,CAAA;AAAA,EACH;AAEA,EAAA,IACE,MAAM,MAAA,KAAW,QAAA,kBAChB,CAAC,KAAA,CAAM,KAAA,IAAS,MAAM,UAAA,CAAA,EACvB;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,sEAAA;AAAA,MACT,IAAA,EAAM,CAAC,QAAQ;AAAA,KAChB,CAAA;AAAA,EACH;AACF,CAAC;AAEI,IAAM,sCAAA,GAAyCA,EAAE,YAAA,CAAa;AAAA,EACnE,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,SAAA,EAAW,eAAA;AAAA,EACX,KAAA,EAAO,0BAAA;AAAA,EACP,MAAA,EAAQA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG;AACnC,CAAC,CAAA;AAEsDA,EAAE,YAAA,CAAa;AAAA,EACpE,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,SAAA,EAAW,eAAA;AAAA,EACX,YAAA,EAAcA,EAAE,OAAA,EAAQ;AAAA,EACxB,KAAA,EAAO,sBAAsB,QAAA;AAC/B,CAAC;AAEM,IAAM,0BAAA,GAA6BA,EAAE,YAAA,CAAa;AAAA,EACvD,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,SAAA,EAAW,eAAA;AAAA,EACX,KAAA,EAAO,0BAAA;AAAA,EACP,QAAA,EAAU,qBAAA;AAAA,EACV,KAAA,EAAO,gBAAA;AAAA,EACP,OAAA,EAAS;AACX,CAAC,CAAA;AAED,IAAM,sBAAA,GAAyBA,EAAE,YAAA,CAAa;AAAA,EAC5C,OAAA,EAASA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EACjC,QAAA,EAAU,qBAAA;AAAA,EACV,KAAA,EAAO,gBAAA;AAAA,EACP,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAC,CAAA,CAAE,IAAI,EAAE;AACtD,CAAC,CAAA;AAEM,SAAS,yBACd,OAAA,EAIe;AACf,EAAA,MAAM,kBAAA,uBAAyB,GAAA,EAA+B;AAE9D,EAAA,KAAA,MAAW,UAAU,OAAA,EAAS;AAC5B,IAAA,IAAI,kBAAA,CAAmB,GAAA,CAAI,MAAA,CAAO,OAAO,CAAA,EAAG;AAC1C,MAAA,OAAO,CAAA,eAAA,EAAkB,OAAO,OAAO,CAAA,gBAAA,CAAA;AAAA,IACzC;AAEA,IAAA,kBAAA,CAAmB,GAAA,CAAI,MAAA,CAAO,OAAA,EAAS,MAAA,CAAO,SAAS,CAAA;AAAA,EACzD;AAEA,EAAA,KAAA,MAAW,UAAU,OAAA,EAAS;AAC5B,IAAA,MAAM,YAAA,uBAAmB,GAAA,EAAY;AAErC,IAAA,KAAA,MAAW,UAAA,IAAc,OAAO,SAAA,EAAW;AACzC,MAAA,IAAI,YAAA,CAAa,GAAA,CAAI,UAAU,CAAA,EAAG;AAChC,QAAA,OAAO,CAAA,WAAA,EAAc,MAAA,CAAO,OAAO,CAAA,uBAAA,EAA0B,UAAU,CAAA,iBAAA,CAAA;AAAA,MACzE;AAEA,MAAA,YAAA,CAAa,IAAI,UAAU,CAAA;AAE3B,MAAA,IAAI,UAAA,KAAe,OAAO,OAAA,EAAS;AACjC,QAAA,OAAO,CAAA,WAAA,EAAc,OAAO,OAAO,CAAA,0BAAA,CAAA;AAAA,MACrC;AAEA,MAAA,IAAI,CAAC,kBAAA,CAAmB,GAAA,CAAI,UAAU,CAAA,EAAG;AACvC,QAAA,OAAO,CAAA,WAAA,EAAc,MAAA,CAAO,OAAO,CAAA,2BAAA,EAA8B,UAAU,CAAA,EAAA,CAAA;AAAA,MAC7E;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,QAAA,uBAAe,GAAA,EAAY;AACjC,EAAA,MAAM,OAAA,uBAAc,GAAA,EAAY;AAEhC,EAAA,MAAM,KAAA,GAAQ,CAAC,OAAA,KAAmC;AAChD,IAAA,IAAI,QAAA,CAAS,GAAA,CAAI,OAAO,CAAA,EAAG;AACzB,MAAA,OAAO,oDAAoD,OAAO,CAAA,EAAA,CAAA;AAAA,IACpE;AAEA,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,OAAO,CAAA,EAAG;AACxB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,QAAA,CAAS,IAAI,OAAO,CAAA;AAEpB,IAAA,KAAA,MAAW,cAAc,kBAAA,CAAmB,GAAA,CAAI,OAAO,CAAA,IAAK,EAAC,EAAG;AAC9D,MAAA,MAAM,KAAA,GAAQ,MAAM,UAAU,CAAA;AAE9B,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,OAAO,KAAA;AAAA,MACT;AAAA,IACF;AAEA,IAAA,QAAA,CAAS,OAAO,OAAO,CAAA;AACvB,IAAA,OAAA,CAAQ,IAAI,OAAO,CAAA;AACnB,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,KAAA,MAAW,OAAA,IAAW,kBAAA,CAAmB,IAAA,EAAK,EAAG;AAC/C,IAAA,MAAM,KAAA,GAAQ,MAAM,OAAO,CAAA;AAE3B,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,IAAM,sBAAA,GAAyBA,EAAE,YAAA,CAAa;AAAA,EACnD,WAAA,EAAa,qBAAA;AAAA,EACb,KAAA,EAAOA,EAAE,IAAA;AACX,CAAC,CAAA;AAE0CA,EACxC,YAAA,CAAa;AAAA,EACZ,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,SAAA,EAAW,eAAA;AAAA,EACX,MAAA,EAAQ,mBAAA;AAAA,EACR,OAAA,EAASA,CAAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC3D,eAAeA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAC,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACpE,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA,CAAE,IAAI,GAAG,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC9D,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EACnD,KAAA,EAAO,sBAAsB,QAAA;AAC/B,CAAC,CAAA,CACA,WAAA,CAAY,CAAC,KAAA,EAAO,OAAA,KAAY;AAC/B,EAAA,IAAI,MAAM,MAAA,KAAA,OAAA,cAAgC;AACxC,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,MAAA,KAAW,CAAA,EAAG;AAC9B,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,oCAAA;AAAA,QACT,IAAA,EAAM,CAAC,SAAS;AAAA,OACjB,CAAA;AAAA,IACH;AAEA,IAAA,IAAI,KAAA,CAAM,aAAA,CAAc,MAAA,GAAS,CAAA,IAAK,MAAM,KAAA,EAAO;AACjD,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,iDAAA;AAAA,QACT,IAAA,EAAM,CAAC,QAAQ;AAAA,OAChB,CAAA;AAAA,IACH;AAAA,EACF;AAEA,EAAA,IAAI,MAAM,MAAA,KAAA,qBAAA,4BAA8C;AACtD,IAAA,IAAI,KAAA,CAAM,aAAA,CAAc,MAAA,KAAW,CAAA,EAAG;AACpC,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,yDAAA;AAAA,QACT,IAAA,EAAM,CAAC,eAAe;AAAA,OACvB,CAAA;AAAA,IACH;AAEA,IAAA,IAAI,KAAA,CAAM,QAAQ,MAAA,GAAS,CAAA,IAAK,MAAM,SAAA,CAAU,MAAA,GAAS,CAAA,IAAK,KAAA,CAAM,KAAA,EAAO;AACzE,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,oEAAA;AAAA,QACT,IAAA,EAAM,CAAC,QAAQ;AAAA,OAChB,CAAA;AAAA,IACH;AAAA,EACF;AAEA,EAAA,IAAI,MAAM,MAAA,KAAA,UAAA,iBAAmC;AAC3C,IAAA,IAAI,CAAC,MAAM,KAAA,EAAO;AAChB,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,4BAAA;AAAA,QACT,IAAA,EAAM,CAAC,OAAO;AAAA,OACf,CAAA;AAAA,IACH;AAEA,IAAA,IACE,KAAA,CAAM,OAAA,CAAQ,MAAA,GAAS,CAAA,IACvB,KAAA,CAAM,aAAA,CAAc,MAAA,GAAS,CAAA,IAC7B,KAAA,CAAM,SAAA,CAAU,MAAA,GAAS,CAAA,EACzB;AACA,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,+DAAA;AAAA,QACT,IAAA,EAAM,CAAC,QAAQ;AAAA,OAChB,CAAA;AAAA,IACH;AAAA,EACF;AAEA,EAAA,MAAM,aAAA,GAAgB,wBAAA,CAAyB,KAAA,CAAM,OAAO,CAAA;AAE5D,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,aAAA;AAAA,MACT,IAAA,EAAM,CAAC,SAAS;AAAA,KACjB,CAAA;AAAA,EACH;AACF,CAAC;AAEH,IAAM,wBAAA,GAA2BA,EAAE,YAAA,CAAa;AAAA,EAC9C,UAAA,EAAY,qBAAA;AAAA,EACZ,SAAA,EAAW,kBAAkB,QAAA,EAAS;AAAA,EACtC,SAAA,EAAW,iBAAA;AAAA,EACX,aAAA,EAAeA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAK,CAAA;AAAA,EAChD,KAAA,EAAOA,EAAE,IAAA,EAAK;AAAA,EACd,eAAA,EAAiBA,CAAAA,CAAE,IAAA,CAAK,kCAAkC,EAAE,QAAA;AAC9D,CAAC,CAAA;AAEM,IAAM,6BAAA,GAAgCA,EAAE,YAAA,CAAa;AAAA,EAC1D,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,SAAA,EAAW,eAAA;AAAA,EACX,WAAA,EAAaA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACtC,KAAA,EAAO,0BAAA;AAAA,EACP,QAAA,EAAU,qBAAA;AAAA,EACV,KAAA,EAAO,gBAAA;AAAA,EACP,OAAA,EAAS,8BAAA;AAAA,EACT,cAAA,EAAgBA,EAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAC1C,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC;AACxC,CAAC,CAAA;AAE6CA,EAC3C,YAAA,CAAa;AAAA,EACZ,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,SAAA,EAAW,eAAA;AAAA,EACX,WAAA,EAAaA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACtC,MAAA,EAAQ,wBAAA;AAAA,EACR,MAAA,EAAQ,iBAAiB,QAAA,EAAS;AAAA,EAClC,SAAA,EAAW,sBAAsB,QAAA,EAAS;AAAA,EAC1C,SAAA,EAAWA,CAAAA,CAAE,KAAA,CAAM,wBAAwB,CAAA,CAAE,IAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC/D,OAAA,EAASA,CAAAA,CAAE,KAAA,CAAM,sBAAA,CAAuB,MAAA,EAAQ,CAAA,CAAE,GAAA,CAAI,EAAE,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACpE,KAAA,EAAO,sBAAsB,QAAA;AAC/B,CAAC,CAAA,CACA,WAAA,CAAY,CAAC,KAAA,EAAO,OAAA,KAAY;AAC/B,EAAA,MAAM,kBAAA,uBAAyB,GAAA,EAAY;AAE3C,EAAA,KAAA,CAAM,SAAA,CAAU,OAAA,CAAQ,CAAC,QAAA,EAAU,aAAA,KAAkB;AACnD,IAAA,IAAI,kBAAA,CAAmB,GAAA,CAAI,QAAA,CAAS,SAAS,CAAA,EAAG;AAC9C,MAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,QACf,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,CAAA,qBAAA,EAAwB,QAAA,CAAS,SAAS,CAAA,eAAA,CAAA;AAAA,QACnD,IAAA,EAAM,CAAC,WAAA,EAAa,aAAA,EAAe,WAAW;AAAA,OAC/C,CAAA;AAAA,IACH;AAEA,IAAA,kBAAA,CAAmB,GAAA,CAAI,SAAS,SAAS,CAAA;AAAA,EAC3C,CAAC,CAAA;AAED,EAAA,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,EAAQ,WAAA,KAAgB;AAC7C,IAAA,MAAA,CAAO,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,EAAQ,WAAA,KAAgB;AAC9C,MAAA,IACE,OAAO,WAAA,KAAA,eAAA,wBACP,CAAC,mBAAmB,GAAA,CAAI,MAAA,CAAO,mBAAmB,CAAA,EAClD;AACA,QAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,UACf,IAAA,EAAM,QAAA;AAAA,UACN,OAAA,EAAS,CAAA,sDAAA,EAAyD,MAAA,CAAO,mBAAmB,CAAA,CAAA,CAAA;AAAA,UAC5F,MAAM,CAAC,SAAA,EAAW,WAAA,EAAa,SAAA,EAAW,aAAa,qBAAqB;AAAA,SAC7E,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,IACE,KAAA,CAAM,2CACL,CAAC,KAAA,CAAM,UAAU,CAAC,KAAA,CAAM,SAAA,IAAa,KAAA,CAAM,KAAA,CAAA,EAC5C;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,qEAAA;AAAA,MACT,IAAA,EAAM,CAAC,QAAQ;AAAA,KAChB,CAAA;AAAA,EACH;AAEA,EAAA,IACE,KAAA,CAAM,qCACL,CAAC,KAAA,CAAM,SAAS,KAAA,CAAM,MAAA,IAAU,MAAM,SAAA,CAAA,EACvC;AACA,IAAA,OAAA,CAAQ,QAAA,CAAS;AAAA,MACf,IAAA,EAAM,QAAA;AAAA,MACN,OAAA,EAAS,iEAAA;AAAA,MACT,IAAA,EAAM,CAAC,QAAQ;AAAA,KAChB,CAAA;AAAA,EACH;AACF,CAAC;AAE2CA,EAAE,YAAA,CAAa;AAAA,EAC3D,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,MAAA,EAAQ,4BAAA;AAAA,EACR,KAAA,EAAO,WAAA;AAAA,EACP,UAAA,EAAY,qBAAA;AAAA,EACZ,SAAA,EAAW,iBAAA;AAAA,EACX,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA;AACtC,CAAC;;;AChdD,IAAM,4BAA4B,iBAAA,CAAkB,MAAA;AAAA,EAClD,CAAC,QAAA,KAAa,QAAA,CAAS,OAAA,CAAQ,IAAA,KAAA,aAAA;AAAA,EAC/B;AACF,CAAA;AAEqDA,EAAE,YAAA,CAAa;AAAA,EAClE,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,QAAA,EAAU,yBAAA;AAAA,EACV,OAAA,EAAS;AACX,CAAC;AAEqDA,EAAE,YAAA,CAAa;AAAA,EACnE,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,QAAA,EAAU,yBAAA;AAAA,EACV,OAAA,EAAS;AACX,CAAC;AAEuDA,EAAE,YAAA,CAAa;AAAA,EACrE,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,QAAA,EAAU,yBAAA;AAAA,EACV,OAAA,EAAS;AACX,CAAC;AAEiDA,EAAE,YAAA,CAAa;AAAA,EAC/D,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,QAAA,EAAU,yBAAA;AAAA,EACV,OAAA,EAAS;AACX,CAAC;AAEoDA,EAAE,YAAA,CAAa;AAAA,EAClE,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,QAAA,EAAU,yBAAA;AAAA,EACV,OAAA,EAAS;AACX,CAAC;AAEmDA,EAAE,YAAA,CAAa;AAAA,EACjE,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,SAAA,EAAWA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACpC,QAAA,EAAU;AACZ,CAAC;ACzCM,IAAM,UAAA,GAAa,yBAAA;AAEiBA,EAAE,YAAA,CAAa;AAAA,EACxD,GAAA,EAAKA,CAAAA,CAAE,OAAA,CAAQ,OAAA,eAA6B;AAAA,EAC5C,GAAA,EAAKA,CAAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,EACpB,IAAA,EAAMA,EAAE,KAAA,CAAM,CAACA,EAAE,OAAA,CAAQ,KAAK,CAAC,CAAC,CAAA;AAAA,EAChC,GAAA,EAAKA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAC9B,GAAA,EAAKA,CAAAA,CAAE,OAAA,CAAQ,UAAU;AAC3B,CAAC;AAEuCA,EAAE,YAAA,CAAa;AAAA,EACrD,eAAA,EAAiBA,CAAAA,CAAE,OAAA,CAAQ,kBAAkB,CAAA;AAAA,EAC7C,SAAA,EAAWA,CAAAA,CAAE,OAAA,CAAQ,OAAA,eAA6B;AAAA,EAClD,MAAA,EAAQA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACjC,QAAA,EAAU,WAAA;AAAA,EACV,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAChC,MAAA,EAAQA,EAAE,IAAA,CAAK,CAAC,OAAO,MAAA,EAAQ,KAAA,EAAO,OAAA,EAAS,QAAQ,CAAC,CAAA;AAAA,EACxD,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,UAAA,CAAW,GAAG,CAAA;AAAA,EAC/C,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,MAAM,gBAAgB,CAAA;AAAA,EAC7C,QAAA,EAAU,iBAAA;AAAA,EACV,SAAA,EAAW,iBAAA;AAAA,EACX,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EACjC,cAAA,EAAgBA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA,EAAS;AAAA,EACpD,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA;AAC1C,CAAC;AAEmCA,CAAAA,CACjC,MAAA,EAAO,CACP,GAAA,CAAI,EAAE,CAAA,CACN,GAAA,CAAI,IAAK,CAAA,CACT,KAAA,CAAM,oCAAoC;AAEtC,IAAM,yBAAA,GAA4BA,EAAE,YAAA,CAAa;AAAA,EACtD,GAAA,EAAKA,CAAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,EACpB,GAAA,EAAKA,CAAAA,CAAE,OAAA,CAAQ,SAAS,CAAA;AAAA,EACxB,CAAA,EAAGA,EAAE,MAAA,EAAO,CAAE,IAAI,EAAE,CAAA,CAAE,IAAI,EAAE,CAAA;AAAA,EAC5B,GAAA,EAAKA,CAAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,EACpB,GAAA,EAAKA,CAAAA,CAAE,OAAA,CAAQ,OAAA,eAA6B;AAAA,EAC5C,GAAA,EAAKA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG;AAChC,CAAC,CAAA;AAEM,IAAM,aAAA,GAAgBA,EAAE,YAAA,CAAa;AAAA,EAC1C,IAAA,EAAMA,EAAE,KAAA,CAAM,yBAAyB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC;AACvD,CAAC,CAAA;AAEM,IAAM,mBAAA,GAAsBA,EAAE,YAAA,CAAa;AAAA,EAChD,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAAA,EAChC,SAAA,EAAWA,CAAAA,CAAE,OAAA,CAAQ,OAAA,eAA6B;AAAA,EAClD,YAAA,EAAc;AAChB,CAAC,CAAA;AAEuCA,EAAE,YAAA,CAAa;AAAA,EACrD,KAAA,EAAO,WAAA;AAAA,EACP,OAAA,EAAS,yBAAA;AAAA,EACT,IAAA,EAAMA,EAAE,KAAA,CAAM,mBAAmB,EAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,CAAC;AACjD,CAAC;;;AChBM,IAAM,mBAAA,GAAN,cAAkC,KAAA,CAAM;AAAA,EACpC,MAAA;AAAA,EAET,YAAY,MAAA,EAA4B;AACtC,IAAA,KAAA,CAAM,CAAA,uCAAA,EAA0C,MAAA,CAAO,MAAM,CAAA,SAAA,CAAW,CAAA;AACxE,IAAA,IAAA,CAAK,IAAA,GAAO,qBAAA;AACZ,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EAChB;AACF,CAAA;AAuDO,SAAS,sBAAsB,KAAA,EAA+C;AACnF,EAAA,MAAM,gBAAA,GAAmB,mBAAA,CAAoB,SAAA,CAAU,KAAK,CAAA;AAE5D,EAAA,IAAI,CAAC,iBAAiB,OAAA,EAAS;AAC7B,IAAA,OAAO;AAAA,MACL,EAAA,EAAI,KAAA;AAAA,MACJ,QAAQ,gBAAA,CAAiB,KAAA,CAAM,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,MAAW;AAAA,QACpD,IAAA,EAAM,oBAAA;AAAA,QACN,IAAA,EAAM,UAAA,CAAW,KAAA,CAAM,IAAI,CAAA;AAAA,QAC3B,SAAS,KAAA,CAAM;AAAA,OACjB,CAAE;AAAA,KACJ;AAAA,EACF;AAEA,EAAA,MAAM,MAAA,GAAS,kBAAA,CAAmB,gBAAA,CAAiB,IAAI,CAAA;AACvD,EAAA,OAAO,OAAO,MAAA,GAAS,CAAA,GACnB,EAAE,EAAA,EAAI,OAAO,MAAA,EAAO,GACpB,EAAE,UAAA,EAAY,iBAAiB,IAAA,EAAM,MAAA,EAAQ,EAAC,EAAG,IAAI,IAAA,EAAK;AAChE;AAEA,SAAS,mBAAmB,UAAA,EAA+C;AACzE,EAAA,MAAM,SAA6B,EAAC;AACpC,EAAA,MAAM,YAAA,GAAe,IAAI,GAAA,CAAI,UAAA,CAAW,YAAA,CAAa,IAAI,CAAC,UAAA,KAAe,UAAA,CAAW,GAAG,CAAC,CAAA;AACxF,EAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAI,UAAA,CAAW,OAAA,CAAQ,IAAI,CAAC,MAAA,KAAW,MAAA,CAAO,GAAG,CAAC,CAAA;AACtE,EAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAI,UAAA,CAAW,OAAA,CAAQ,IAAI,CAAC,MAAA,KAAW,MAAA,CAAO,GAAG,CAAC,CAAA;AACtE,EAAA,MAAM,QAAA,GAAW,IAAI,GAAA,CAAI,UAAA,CAAW,QAAA,CAAS,IAAI,CAAC,OAAA,KAAY,OAAA,CAAQ,GAAG,CAAC,CAAA;AAC1E,EAAA,MAAM,SAAA,GAAY,IAAI,GAAA,CAAI,UAAA,CAAW,SAAA,CAAU,IAAI,CAAC,IAAA,KAAS,IAAA,CAAK,GAAG,CAAC,CAAA;AACtE,EAAA,MAAM,YAAY,IAAI,GAAA;AAAA,IACpB,UAAA,CAAW,iBAAA,CAAkB,GAAA,CAAI,CAAC,QAAA,KAAa,CAAA,EAAG,QAAA,CAAS,GAAG,CAAA,CAAA,EAAI,QAAA,CAAS,aAAa,CAAA,CAAE;AAAA,GAC5F;AACA,EAAA,MAAM,oBAAoB,IAAI,GAAA;AAAA,IAC5B,UAAA,CAAW,iBAAA,CAAkB,GAAA,CAAI,CAAC,QAAA,KAAa;AAAA,MAC7C,CAAA,EAAG,QAAA,CAAS,GAAG,CAAA,CAAA,EAAI,SAAS,aAAa,CAAA,CAAA;AAAA,MACzC;AAAA,KACD;AAAA,GACH;AACA,EAAA,MAAM,QAAA,GAAW,IAAI,GAAA,CAAI,UAAA,CAAW,QAAA,CAAS,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU,KAAA,CAAM,GAAG,CAAC,CAAA;AAC7E,EAAA,MAAM,QAAA,GAAW,IAAI,GAAA,CAAI,UAAA,CAAW,QAAA,CAAS,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,GAAG,CAAC,CAAA;AAC1E,EAAA,MAAM,cAAc,IAAI,GAAA;AAAA,IACtB,WAAW,UAAA,CAAW,WAAA,CAAY,IAAI,CAAC,UAAA,KAAe,WAAW,GAAG;AAAA,GACtE;AACA,EAAA,MAAM,qBAAA,uBAA4B,GAAA,CAAI;AAAA,IACpC,GAAG,WAAW,OAAA,CAAQ,aAAA;AAAA,IACtB,GAAG,WAAW,OAAA,CAAQ;AAAA,GACvB,CAAA;AAED,EAAA,cAAA;AAAA,IACE,MAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAW,YAAA,CAAa,GAAA,CAAI,CAAC,IAAA,KAAS,KAAK,GAAG;AAAA,GAChD;AACA,EAAA,cAAA;AAAA,IACE,MAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAW,OAAA,CAAQ,GAAA,CAAI,CAAC,IAAA,KAAS,KAAK,GAAG;AAAA,GAC3C;AACA,EAAA,cAAA;AAAA,IACE,MAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAW,OAAA,CAAQ,GAAA,CAAI,CAAC,IAAA,KAAS,KAAK,GAAG;AAAA,GAC3C;AACA,EAAA,cAAA;AAAA,IACE,MAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAW,QAAA,CAAS,GAAA,CAAI,CAAC,IAAA,KAAS,KAAK,GAAG;AAAA,GAC5C;AACA,EAAA,cAAA;AAAA,IACE,MAAA;AAAA,IACA,mBAAA;AAAA,IACA,UAAA,CAAW,iBAAA,CAAkB,GAAA,CAAI,CAAC,IAAA,KAAS,CAAA,EAAG,IAAA,CAAK,GAAG,CAAA,CAAA,EAAI,IAAA,CAAK,aAAa,CAAA,CAAE;AAAA,GAChF;AACA,EAAA,cAAA;AAAA,IACE,MAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAW,SAAA,CAAU,GAAA,CAAI,CAAC,IAAA,KAAS,KAAK,GAAG;AAAA,GAC7C;AACA,EAAA,cAAA;AAAA,IACE,MAAA;AAAA,IACA,iBAAA;AAAA,IACA,WAAW,QAAA,CAAS,MAAA,CAAO,IAAI,CAAC,IAAA,KAAS,KAAK,GAAG;AAAA,GACnD;AACA,EAAA,cAAA;AAAA,IACE,MAAA;AAAA,IACA,gBAAA;AAAA,IACA,WAAW,QAAA,CAAS,KAAA,CAAM,IAAI,CAAC,IAAA,KAAS,KAAK,GAAG;AAAA,GAClD;AACA,EAAA,cAAA;AAAA,IACE,MAAA;AAAA,IACA,wBAAA;AAAA,IACA,WAAW,UAAA,CAAW,WAAA,CAAY,IAAI,CAAC,IAAA,KAAS,KAAK,GAAG;AAAA,GAC1D;AAEA,EAAA,sBAAA,CAAuB,YAAY,MAAM,CAAA;AACzC,EAAA,kBAAA,CAAmB,UAAA,EAAY,aAAa,MAAM,CAAA;AAElD,EAAA,UAAA,CAAW,iBAAA,CAAkB,OAAA,CAAQ,CAAC,QAAA,EAAU,KAAA,KAAU;AACxD,IAAA,IAAI,CAAC,QAAA,CAAS,SAAA,CAAU,QAAA,CAAA,eAAA,qBAA0C,EAAG;AACnE,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,2BAAA;AAAA,QACN,IAAA,EAAM,qBAAqB,KAAK,CAAA,UAAA,CAAA;AAAA,QAChC,SAAS,CAAA,mBAAA,EAAsB,QAAA,CAAS,GAAG,CAAA,CAAA,EAAI,SAAS,aAAa,CAAA,yCAAA;AAAA,OACtE,CAAA;AAAA,IACH;AAEA,IAAA,IAAI,IAAI,IAAI,QAAA,CAAS,SAAS,EAAE,IAAA,KAAS,QAAA,CAAS,UAAU,MAAA,EAAQ;AAClE,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,2BAAA;AAAA,QACN,IAAA,EAAM,qBAAqB,KAAK,CAAA,UAAA,CAAA;AAAA,QAChC,SAAS,CAAA,mBAAA,EAAsB,QAAA,CAAS,GAAG,CAAA,CAAA,EAAI,SAAS,aAAa,CAAA,qBAAA;AAAA,OACtE,CAAA;AAAA,IACH;AAEA,IAAA,IACE,SAAS,gBAAA,KAAqB,MAAA,IAC9B,QAAA,CAAS,SAAA,CAAU,6CAA0C,EAC7D;AACA,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,2BAAA;AAAA,QACN,IAAA,EAAM,qBAAqB,KAAK,CAAA,UAAA,CAAA;AAAA,QAChC,SAAS,CAAA,2BAAA,EAA8B,QAAA,CAAS,GAAG,CAAA,CAAA,EAAI,SAAS,aAAa,CAAA,qCAAA;AAAA,OAC9E,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,YAAA,CAAa,OAAA,CAAQ,CAAC,UAAA,EAAY,KAAA,KAAU;AACrD,IAAA,UAAA,CAAW,UAAA,CAAW,OAAA,CAAQ,CAAC,SAAA,KAAc;AAC3C,MAAA,iBAAA,CAAkB,QAAQ,OAAA,EAAS,CAAA,aAAA,EAAgB,KAAK,CAAA,WAAA,CAAA,EAAe,WAAW,QAAQ,CAAA;AAAA,IAC5F,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,EAAQ,KAAA,KAAU;AAC5C,IAAA,MAAA,CAAO,OAAA,CAAQ,cAAA,CAAe,OAAA,CAAQ,CAAC,KAAA,KAAU;AAC/C,MAAA,IAAI,CAAC,qBAAA,CAAsB,GAAA,CAAI,KAAK,CAAA,EAAG;AACrC,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,mBAAA;AAAA,UACN,IAAA,EAAM,WAAW,KAAK,CAAA,uBAAA,CAAA;AAAA,UACtB,OAAA,EAAS,CAAA,QAAA,EAAW,MAAA,CAAO,GAAG,4CAA4C,KAAK,CAAA,CAAA;AAAA,SAChF,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAA,iBAAA;AAAA,MACE,MAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAW,KAAK,CAAA,cAAA,CAAA;AAAA,MAChB,MAAA,CAAO,aAAA;AAAA,MACP;AAAA,KACF;AAEA,IAAA,MAAA,CAAO,WAAA,CAAY,OAAA,CAAQ,CAAC,UAAA,KAAe;AACzC,MAAA,iBAAA,CAAkB,QAAQ,QAAA,EAAU,CAAA,QAAA,EAAW,KAAK,CAAA,YAAA,CAAA,EAAgB,YAAY,SAAS,CAAA;AAAA,IAC3F,CAAC,CAAA;AAED,IAAA,MAAA,CAAO,cAAA,CAAe,OAAA,CAAQ,CAAC,QAAA,KAAa;AAC1C,MAAA,iBAAA;AAAA,QACE,MAAA;AAAA,QACA,SAAA;AAAA,QACA,WAAW,KAAK,CAAA,eAAA,CAAA;AAAA,QAChB,CAAA,EAAG,QAAA,CAAS,WAAW,CAAA,CAAA,EAAI,SAAS,aAAa,CAAA,CAAA;AAAA,QACjD;AAAA,OACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAA,CAAO,eAAA,CAAgB,OAAA,CAAQ,CAAC,QAAA,KAAa;AAC3C,MAAA,iBAAA;AAAA,QACE,MAAA;AAAA,QACA,SAAA;AAAA,QACA,WAAW,KAAK,CAAA,gBAAA,CAAA;AAAA,QAChB,CAAA,EAAG,QAAA,CAAS,WAAW,CAAA,CAAA,EAAI,SAAS,aAAa,CAAA,CAAA;AAAA,QACjD;AAAA,OACF;AAEA,MAAA,MAAM,QAAA,GAAW,kBAAkB,GAAA,CAAI,CAAA,EAAG,SAAS,WAAW,CAAA,CAAA,EAAI,QAAA,CAAS,aAAa,CAAA,CAAE,CAAA;AAE1F,MAAA,IAAI,UAAU,SAAA,CAAU,QAAA,CAAA,eAAA,qBAA0C,IAAK,CAAC,OAAO,UAAA,EAAY;AACzF,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,2BAAA;AAAA,UACN,IAAA,EAAM,WAAW,KAAK,CAAA,gBAAA,CAAA;AAAA,UACtB,OAAA,EAAS,CAAA,QAAA,EAAW,MAAA,CAAO,GAAG,CAAA,oDAAA;AAAA,SAC/B,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAA,CAAO,OAAA,CAAQ,gBAAA,CAAiB,OAAA,CAAQ,CAAC,UAAA,KAAe;AACtD,MAAA,iBAAA;AAAA,QACE,MAAA;AAAA,QACA,QAAA;AAAA,QACA,WAAW,KAAK,CAAA,yBAAA,CAAA;AAAA,QAChB,UAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAA,CAAO,OAAA,CAAQ,gBAAA,CAAiB,OAAA,CAAQ,CAAC,SAAA,KAAc;AACrD,MAAA,iBAAA;AAAA,QACE,MAAA;AAAA,QACA,QAAA;AAAA,QACA,WAAW,KAAK,CAAA,yBAAA,CAAA;AAAA,QAChB,SAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,cAAA;AAAA,MACE,MAAA;AAAA,MACA,WAAW,KAAK,CAAA,yBAAA,CAAA;AAAA,MAChB,OAAO,OAAA,CAAQ;AAAA,KACjB;AAEA,IAAA,IACE,OAAO,QAAA,KAAA,QAAA,iBACP,MAAA,CAAO,OAAA,CAAQ,gBAAA,CAAiB,WAAW,CAAA,EAC3C;AACA,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,mBAAA;AAAA,QACN,IAAA,EAAM,WAAW,KAAK,CAAA,yBAAA,CAAA;AAAA,QACtB,OAAA,EAAS,CAAA,QAAA,EAAW,MAAA,CAAO,GAAG,CAAA,6CAAA;AAAA,OAC/B,CAAA;AAAA,IACH;AAEA,IAAA,KAAA,MAAW,iBAAiB,8BAAA,EAAgC;AAC1D,MAAA,IAAI,CAAC,MAAA,CAAO,OAAA,CAAQ,cAAA,CAAe,QAAA,CAAS,aAAa,CAAA,EAAG;AAC1D,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,mBAAA;AAAA,UACN,IAAA,EAAM,WAAW,KAAK,CAAA,uBAAA,CAAA;AAAA,UACtB,OAAA,EAAS,CAAA,QAAA,EAAW,MAAA,CAAO,GAAG,2BAA2B,aAAa,CAAA,MAAA;AAAA,SACvE,CAAA;AAAA,MACH;AAAA,IACF;AAEA,IAAA,IAAI,MAAA,CAAO,OAAA,CAAQ,gBAAA,CAAiB,MAAA,GAAS,CAAA,EAAG;AAC9C,MAAA,IAAI,CAAC,MAAA,CAAO,OAAA,CAAQ,cAAA,CAAe,QAAA,CAAS,2BAA2B,CAAA,EAAG;AACxE,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,mBAAA;AAAA,UACN,IAAA,EAAM,WAAW,KAAK,CAAA,uBAAA,CAAA;AAAA,UACtB,OAAA,EAAS,CAAA,QAAA,EAAW,MAAA,CAAO,GAAG,CAAA,mDAAA;AAAA,SAC/B,CAAA;AAAA,MACH;AAAA,IACF;AAEA,IAAA,IACE,OAAO,UAAA,KAAA,WAAA,oBACP,MAAA,CAAO,sDACP,CAAC,MAAA,CAAO,YAAY,QAAA,EACpB;AACA,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,sBAAA;AAAA,QACN,IAAA,EAAM,WAAW,KAAK,CAAA,qBAAA,CAAA;AAAA,QACtB,OAAA,EAAS,CAAA,QAAA,EAAW,MAAA,CAAO,GAAG,CAAA,qDAAA;AAAA,OAC/B,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,EAAQ,KAAA,KAAU;AAC5C,IAAA,MAAA,CAAO,cAAA,CAAe,OAAA,CAAQ,CAAC,aAAA,KAAkB;AAC/C,MAAA,iBAAA;AAAA,QACE,MAAA;AAAA,QACA,YAAA;AAAA,QACA,WAAW,KAAK,CAAA,eAAA,CAAA;AAAA,QAChB,aAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAA,CAAO,UAAA,CAAW,OAAA,CAAQ,CAAC,SAAA,KAAc;AACvC,MAAA,iBAAA,CAAkB,QAAQ,OAAA,EAAS,CAAA,QAAA,EAAW,KAAK,CAAA,WAAA,CAAA,EAAe,WAAW,QAAQ,CAAA;AAAA,IACvF,CAAC,CAAA;AAED,IAAA,MAAA,CAAO,aAAA,CAAc,OAAA,CAAQ,CAAC,YAAA,KAAiB;AAC7C,MAAA,iBAAA;AAAA,QACE,MAAA;AAAA,QACA,SAAA;AAAA,QACA,WAAW,KAAK,CAAA,cAAA,CAAA;AAAA,QAChB,YAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,IAAI,MAAA,CAAO,IAAA,KAAA,QAAA,iBAAiC,MAAA,CAAO,aAAA,CAAc,WAAW,CAAA,EAAG;AAC7E,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,mBAAA;AAAA,QACN,IAAA,EAAM,WAAW,KAAK,CAAA,cAAA,CAAA;AAAA,QACtB,OAAA,EAAS,CAAA,eAAA,EAAkB,MAAA,CAAO,GAAG,CAAA,mDAAA;AAAA,OACtC,CAAA;AAAA,IACH;AAEA,IAAA,IAAI,OAAO,IAAA,KAAA,QAAA,eAA+B;AACxC,MAAA,MAAA,CAAO,UAAA,CAAW,OAAA,CAAQ,CAAC,SAAA,KAAc;AACvC,QAAA,MAAM,MAAA,GAAS,WAAW,OAAA,CAAQ,IAAA,CAAK,CAAC,SAAA,KAAc,SAAA,CAAU,QAAQ,SAAS,CAAA;AAEjF,QAAA,IAAI,MAAA,IAAU,OAAO,UAAA,KAAA,WAAA,kBAA4C;AAC/D,UAAA,MAAA,CAAO,IAAA,CAAK;AAAA,YACV,IAAA,EAAM,mBAAA;AAAA,YACN,IAAA,EAAM,WAAW,KAAK,CAAA,WAAA,CAAA;AAAA,YACtB,OAAA,EAAS,CAAA,eAAA,EAAkB,MAAA,CAAO,GAAG,CAAA,sCAAA;AAAA,WACtC,CAAA;AAAA,QACH;AAAA,MACF,CAAC,CAAA;AAAA,IACH;AAEA,IAAA,MAAM,eAAA,GAAkB,oBAAA,CAAqB,MAAA,CAAO,WAAW,CAAA;AAC/D,IAAA,MAAM,oBAAA,GAAuB,wBAAA,CAAyB,MAAA,CAAO,WAAW,CAAA;AACxE,IAAA,MAAM,iBAAiB,CAAC,GAAG,OAAO,cAAA,EAAgB,GAAG,OAAO,cAAc,CAAA;AAC1E,IAAA,MAAM,gBAAA,GAAmB,IAAI,GAAA,CAAI,cAAc,CAAA;AAE/C,IAAA,cAAA,CAAe,MAAA,EAAQ,CAAA,QAAA,EAAW,KAAK,CAAA,eAAA,CAAA,EAAmB,OAAO,cAAc,CAAA;AAC/E,IAAA,cAAA,CAAe,MAAA,EAAQ,CAAA,QAAA,EAAW,KAAK,CAAA,eAAA,CAAA,EAAmB,OAAO,cAAc,CAAA;AAE/E,IAAA,cAAA,CAAe,OAAA,CAAQ,CAAC,KAAA,KAAU;AAChC,MAAA,IAAI,CAAC,eAAA,CAAgB,GAAA,CAAI,KAAK,CAAA,EAAG;AAC/B,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,qBAAA;AAAA,UACN,IAAA,EAAM,WAAW,KAAK,CAAA,uBAAA,CAAA;AAAA,UACtB,OAAA,EAAS,UAAU,KAAK,CAAA,4CAAA;AAAA,SACzB,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAA,eAAA,CAAgB,OAAA,CAAQ,CAAC,KAAA,KAAU;AACjC,MAAA,IAAI,CAAC,gBAAA,CAAiB,GAAA,CAAI,KAAK,CAAA,EAAG;AAChC,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,qBAAA;AAAA,UACN,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,wBAAA,EAA2B,KAAK,CAAA,CAAA;AAAA,UACtD,OAAA,EAAS,gBAAgB,KAAK,CAAA,4CAAA;AAAA,SAC/B,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAA,CAAO,cAAA,CAAe,OAAA,CAAQ,CAAC,KAAA,KAAU;AACvC,MAAA,IAAI,MAAA,CAAO,cAAA,CAAe,QAAA,CAAS,KAAK,CAAA,EAAG;AACzC,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,qBAAA;AAAA,UACN,IAAA,EAAM,WAAW,KAAK,CAAA,eAAA,CAAA;AAAA,UACtB,OAAA,EAAS,UAAU,KAAK,CAAA,sCAAA;AAAA,SACzB,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAA,CAAO,cAAA,CAAe,OAAA,CAAQ,CAAC,KAAA,KAAU;AACvC,MAAA,IAAI,CAAC,oBAAA,CAAqB,GAAA,CAAI,KAAK,CAAA,EAAG;AACpC,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,qBAAA;AAAA,UACN,IAAA,EAAM,WAAW,KAAK,CAAA,qBAAA,CAAA;AAAA,UACtB,OAAA,EAAS,mBAAmB,KAAK,CAAA,6CAAA;AAAA,SAClC,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAA,oBAAA,CAAqB,OAAA,CAAQ,CAAC,KAAA,KAAU;AACtC,MAAA,IAAI,CAAC,MAAA,CAAO,cAAA,CAAe,QAAA,CAAS,KAAK,CAAA,EAAG;AAC1C,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,qBAAA;AAAA,UACN,IAAA,EAAM,WAAW,KAAK,CAAA,eAAA,CAAA;AAAA,UACtB,OAAA,EAAS,0BAA0B,KAAK,CAAA,8BAAA;AAAA,SACzC,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAA,CAAO,KAAK,MAAA,CAAO,WAAW,CAAA,CAAE,OAAA,CAAQ,CAAC,KAAA,KAAU;AACjD,MAAA,IAAI,CAAC,eAAA,CAAgB,GAAA,CAAI,KAAK,CAAA,EAAG;AAC/B,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,qBAAA;AAAA,UACN,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAA;AAAA,UAC3C,OAAA,EAAS,gBAAgB,KAAK,CAAA,0CAAA;AAAA,SAC/B,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAA,CAAO,KAAK,MAAA,CAAO,cAAc,CAAA,CAAE,OAAA,CAAQ,CAAC,KAAA,KAAU;AACpD,MAAA,IAAI,CAAC,eAAA,CAAgB,GAAA,CAAI,KAAK,CAAA,EAAG;AAC/B,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,qBAAA;AAAA,UACN,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAA;AAAA,UAC9C,OAAA,EAAS,2BAA2B,KAAK,CAAA,0CAAA;AAAA,SAC1C,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAED,IAAA,IAAI,OAAO,iBAAA,KAAA,oBAAA,2BAA+D;AACxE,MAAA,MAAA,CAAO,cAAA,CAAe,OAAA,CAAQ,CAAC,KAAA,KAAU;AACvC,QAAA,IAAI,CAAC,MAAA,CAAO,cAAA,CAAe,KAAK,CAAA,EAAG;AACjC,UAAA,MAAA,CAAO,IAAA,CAAK;AAAA,YACV,IAAA,EAAM,qBAAA;AAAA,YACN,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAA;AAAA,YAC9C,OAAA,EAAS,mBAAmB,KAAK,CAAA,0CAAA;AAAA,WAClC,CAAA;AAAA,QACH;AAAA,MACF,CAAC,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,SAAA,CAAU,OAAA,CAAQ,CAAC,IAAA,EAAM,KAAA,KAAU;AAC5C,IAAA,IAAI,IAAA,CAAK,OAAO,IAAA,KAAA,SAAA,gBAAyC;AACvD,MAAA,iBAAA;AAAA,QACE,MAAA;AAAA,QACA,QAAA;AAAA,QACA,aAAa,KAAK,CAAA,kBAAA,CAAA;AAAA,QAClB,KAAK,MAAA,CAAO,UAAA;AAAA,QACZ;AAAA,OACF;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,uBAAA,CAAwB,UAAA,CAAW,QAAA,CAAS,MAAA,EAAQ,iBAAA,EAAmB,SAAS,MAAM,CAAA;AAEtF,EAAA,UAAA,CAAW,QAAA,CAAS,KAAA,CAAM,OAAA,CAAQ,CAAC,MAAM,KAAA,KAAU;AACjD,IAAA,IAAI,CAAC,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,CAAC,aAAa,QAAA,CAAS,KAAA,KAAU,IAAA,CAAK,eAAe,CAAA,EAAG;AAC/E,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,mBAAA;AAAA,QACN,IAAA,EAAM,kBAAkB,KAAK,CAAA,gBAAA,CAAA;AAAA,QAC7B,OAAA,EAAS,CAAA,yBAAA,EAA4B,IAAA,CAAK,eAAe,CAAA,CAAA;AAAA,OAC1D,CAAA;AAAA,IACH;AAEA,IAAA,cAAA;AAAA,MACE,MAAA;AAAA,MACA,kBAAkB,KAAK,CAAA,UAAA,CAAA;AAAA,MACvB,KAAK,SAAA,CAAU,GAAA,CAAI,CAAC,QAAA,KAAa,SAAS,KAAK;AAAA,KACjD;AACA,IAAA,uBAAA;AAAA,MACE,IAAA,CAAK,eAAA;AAAA,MACL,kBAAkB,KAAK,CAAA,gBAAA,CAAA;AAAA,MACvB,OAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,QAAA,CAAS,OAAA,CAAQ,CAAC,OAAA,EAAS,KAAA,KAAU;AAC9C,IAAA,iBAAA,CAAkB,QAAQ,OAAA,EAAS,CAAA,SAAA,EAAY,KAAK,CAAA,UAAA,CAAA,EAAc,OAAA,CAAQ,WAAW,QAAQ,CAAA;AAE7F,IAAA,MAAM,MAAA,GAAS,WAAW,OAAA,CAAQ,IAAA,CAAK,CAAC,SAAA,KAAc,SAAA,CAAU,GAAA,KAAQ,OAAA,CAAQ,SAAS,CAAA;AAEzF,IAAA,OAAA,CAAQ,WAAA,CAAY,OAAA,CAAQ,CAAC,UAAA,EAAY,eAAA,KAAoB;AAC3D,MAAA,IAAI,CAAC,WAAW,WAAA,EAAa;AAC3B,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,gBAAA,GACJ,QAAQ,eAAA,CAAgB,MAAA;AAAA,QACtB,CAAC,QAAA,KAAa,QAAA,CAAS,WAAA,KAAgB,UAAA,CAAW;AAAA,WAC/C,EAAC;AAER,MAAA,IAAI,gBAAA,CAAiB,WAAW,CAAA,EAAG;AACjC,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,mBAAA;AAAA,UACN,IAAA,EAAM,CAAA,SAAA,EAAY,KAAK,CAAA,aAAA,EAAgB,eAAe,CAAA,YAAA,CAAA;AAAA,UACtD,OAAA,EAAS,gBAAgB,UAAA,CAAW,GAAG,0BAA0B,UAAA,CAAW,WAAW,CAAA,eAAA,EAAkB,OAAA,CAAQ,SAAS,CAAA,kBAAA;AAAA,SAC3H,CAAA;AACD,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,qBAAA,GAAwB,WAAW,OAAA,CAAQ,IAAA;AAAA,QAC/C,CAAC,MAAA,KACC,MAAA,CAAO,UAAA,CAAW,QAAA,CAAS,OAAA,CAAQ,SAAS,CAAA,IAC5C,MAAA,CAAO,UAAA,CAAW,IAAA,CAAK,CAAC,SAAA,KAAc;AACpC,UAAA,MAAM,QAAA,GAAW,WAAW,OAAA,CAAQ,IAAA,CAAK,CAAC,SAAA,KAAc,SAAA,CAAU,QAAQ,SAAS,CAAA;AAEnF,UAAA,OAAO,gBAAA,CAAiB,IAAA;AAAA,YAAK,CAAC,eAAA,KAC5B,QAAA,EAAU,cAAA,CAAe,IAAA;AAAA,cACvB,CAAC,mBACC,cAAA,CAAe,WAAA,KAAgB,gBAAgB,WAAA,IAC/C,cAAA,CAAe,kBAAkB,eAAA,CAAgB;AAAA;AACrD,WACF;AAAA,QACF,CAAC;AAAA,OACL;AAEA,MAAA,IAAI,CAAC,qBAAA,EAAuB;AAC1B,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,2BAAA;AAAA,UACN,IAAA,EAAM,CAAA,SAAA,EAAY,KAAK,CAAA,aAAA,EAAgB,eAAe,CAAA,YAAA,CAAA;AAAA,UACtD,SAAS,CAAA,aAAA,EAAgB,UAAA,CAAW,GAAG,CAAA,uBAAA,EAA0B,WAAW,WAAW,CAAA,4CAAA;AAAA,SACxF,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,aAAA,CAAc,OAAA,CAAQ,CAAC,YAAA,EAAc,KAAA,KAAU;AACxD,IAAA,iBAAA;AAAA,MACE,MAAA;AAAA,MACA,OAAA;AAAA,MACA,iBAAiB,KAAK,CAAA,UAAA,CAAA;AAAA,MACtB,YAAA,CAAa,SAAA;AAAA,MACb;AAAA,KACF;AACA,IAAA,YAAA,CAAa,cAAA,CAAe,OAAA,CAAQ,CAAC,aAAA,KAAkB;AACrD,MAAA,iBAAA;AAAA,QACE,MAAA;AAAA,QACA,YAAA;AAAA,QACA,iBAAiB,KAAK,CAAA,eAAA,CAAA;AAAA,QACtB,aAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,QAAA,CAAS,OAAA,CAAQ,CAAC,OAAA,EAAS,KAAA,KAAU;AAC9C,IAAA,iBAAA;AAAA,MACE,MAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAY,KAAK,CAAA,cAAA,CAAA;AAAA,MACjB,OAAA,CAAQ,aAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,YAAA,CAAa,OAAA,CAAQ,CAAC,UAAA,EAAY,eAAA,KAAoB;AAC/D,IAAA,UAAA,CAAW,UAAA,CAAW,OAAA,CAAQ,CAAC,SAAA,KAAc;AAC3C,MAAA,MAAM,MAAA,GAAS,WAAW,OAAA,CAAQ,IAAA,CAAK,CAAC,SAAA,KAAc,SAAA,CAAU,QAAQ,SAAS,CAAA;AAEjF,MAAA,IAAI,MAAA,IAAU,MAAA,CAAO,aAAA,KAAkB,UAAA,CAAW,GAAA,EAAK;AACrD,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,mBAAA;AAAA,UACN,IAAA,EAAM,gBAAgB,eAAe,CAAA,WAAA,CAAA;AAAA,UACrC,OAAA,EAAS,CAAA,QAAA,EAAW,SAAS,CAAA,yBAAA,EAA4B,OAAO,aAAa,CAAA,CAAA;AAAA,SAC9E,CAAA;AAAA,MACH;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,IAAI,UAAA,CAAW,QAAQ,IAAA,KAAA,aAAA,oBAAqC;AAC1D,IAAA,4BAAA,CAA6B,UAAA,EAAY,OAAA,EAAS,SAAA,EAAW,QAAA,EAAU,MAAM,CAAA;AAAA,EAC/E;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,kBAAA,CACP,UAAA,EACA,WAAA,EACA,MAAA,EACM;AACN,EAAA,IACE,UAAA,CAAW,UAAA,CAAW,IAAA,KAAA,MAAA,gBACrB,UAAA,CAAW,UAAA,CAAW,YAAY,UAAA,CAAW,UAAA,CAAW,WAAA,CAAY,MAAA,GAAS,CAAA,CAAA,EAC9E;AACA,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,IAAA,EAAM,oBAAA;AAAA,MACN,IAAA,EAAM,YAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAEA,EAAA,IACE,UAAA,CAAW,QAAQ,IAAA,KAAA,aAAA,sBACnB,UAAA,CAAW,WAAW,IAAA,KAAA,MAAA,eACtB,CAAC,UAAA,CAAW,UAAA,CAAW,QAAA,EACvB;AACA,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,IAAA,EAAM,oBAAA;AAAA,MACN,IAAA,EAAM,qBAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,UAAA,CAAW,QAAQ,IAAA,KAAA,QAAA,eAAgC;AACrD,IAAA,IAAI,UAAA,CAAW,OAAA,CAAQ,kBAAA,KAAuB,UAAA,CAAW,WAAW,QAAA,EAAU;AAC5E,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,oBAAA;AAAA,QACN,IAAA,EAAM,4BAAA;AAAA,QACN,OAAA,EAAS;AAAA,OACV,CAAA;AAAA,IACH;AAEA,IAAA;AAAA,EACF;AAEA,EAAA,IAAI,WAAW,OAAA,CAAQ,UAAA,CAAW,IAAA,KAAS,UAAA,CAAW,WAAW,IAAA,EAAM;AACrE,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,IAAA,EAAM,oBAAA;AAAA,MACN,IAAA,EAAM,yBAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,UAAA,CAAW,OAAA,CAAQ,UAAA,CAAW,IAAA,KAAA,SAAA,gBAAoC;AACpE,IAAA,cAAA;AAAA,MACE,MAAA;AAAA,MACA,+BAAA;AAAA,MACA,UAAA,CAAW,QAAQ,UAAA,CAAW,MAAA,CAAO,IAAI,CAAC,KAAA,KAAU,MAAM,GAAG;AAAA,KAC/D;AACA,IAAA,cAAA;AAAA,MACE,MAAA;AAAA,MACA,qCAAA;AAAA,MACA,UAAA,CAAW,QAAQ,UAAA,CAAW,MAAA,CAAO,IAAI,CAAC,KAAA,KAAU,MAAM,SAAS;AAAA,KACrE;AACA,IAAA,cAAA;AAAA,MACE,MAAA;AAAA,MACA,sCAAA;AAAA,MACA,UAAA,CAAW,OAAA,CAAQ,UAAA,CAAW,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU,KAAA,CAAM,UAAA,CAAW,WAAA,EAAa;AAAA,KACpF;AACA,IAAA,UAAA,CAAW,QAAQ,UAAA,CAAW,MAAA,CAAO,OAAA,CAAQ,CAAC,OAAO,KAAA,KAAU;AAC7D,MAAA,cAAA;AAAA,QACE,MAAA;AAAA,QACA,6BAA6B,KAAK,CAAA,eAAA,CAAA;AAAA,QAClC,KAAA,CAAM,eAAe,GAAA,CAAI,CAAC,WAAW,IAAI,GAAA,CAAI,MAAM,CAAA,CAAE,MAAM;AAAA,OAC7D;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,UAAA,CAAW,OAAA,CAAQ,UAAA,CAAW,IAAA,KAAA,QAAA,eAAmC;AACnE,IAAA,cAAA;AAAA,MACE,MAAA;AAAA,MACA,oCAAA;AAAA,MACA,UAAA,CAAW,OAAA,CAAQ,UAAA,CAAW,eAAA,CAAgB,GAAA,CAAI,CAAC,MAAA,KAAW,IAAI,GAAA,CAAI,MAAM,CAAA,CAAE,MAAM;AAAA,KACtF;AACA,IAAA,UAAA,CAAW,QAAQ,UAAA,CAAW,MAAA,CAAO,OAAA,CAAQ,CAAC,OAAO,KAAA,KAAU;AAC7D,MAAA,iBAAA;AAAA,QACE,MAAA;AAAA,QACA,WAAA;AAAA,QACA,6BAA6B,KAAK,CAAA,cAAA,CAAA;AAAA,QAClC,KAAA,CAAM,aAAA;AAAA,QACN;AAAA,OACF;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF;AAEA,SAAS,4BAAA,CACP,UAAA,EACA,OAAA,EACA,SAAA,EACA,UACA,MAAA,EACM;AACN,EAAA,IAAI,UAAA,CAAW,QAAQ,IAAA,KAAA,aAAA,oBAAqC;AAC1D,IAAA;AAAA,EACF;AAEA,EAAA,cAAA;AAAA,IACE,MAAA;AAAA,IACA,mBAAA;AAAA,IACA,WAAW,OAAA,CAAQ,SAAA,CAAU,IAAI,CAAC,QAAA,KAAa,SAAS,SAAS;AAAA,GACnE;AAEA,EAAA,MAAM,oBAAoB,IAAI,GAAA;AAAA,IAC5B,WAAW,OAAA,CAAQ,SAAA,CAAU,IAAI,CAAC,QAAA,KAAa,SAAS,SAAS;AAAA,GACnE;AAEA,EAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,SAAA,KAAc;AAC7B,IAAA,IAAI,CAAC,iBAAA,CAAkB,GAAA,CAAI,SAAS,CAAA,EAAG;AACrC,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,kBAAA;AAAA,QACN,IAAA,EAAM,mBAAA;AAAA,QACN,OAAA,EAAS,uBAAuB,SAAS,CAAA,iBAAA;AAAA,OAC1C,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,OAAA,CAAQ,SAAA,CAAU,OAAA,CAAQ,CAAC,UAAU,aAAA,KAAkB;AAChE,IAAA,iBAAA;AAAA,MACE,MAAA;AAAA,MACA,OAAA;AAAA,MACA,qBAAqB,aAAa,CAAA,UAAA,CAAA;AAAA,MAClC,QAAA,CAAS,SAAA;AAAA,MACT;AAAA,KACF;AACA,IAAA,gBAAA,CAAiB,QAAA,EAAU,aAAA,EAAe,SAAA,EAAW,QAAA,EAAU,YAAY,MAAM,CAAA;AAAA,EACnF,CAAC,CAAA;AACH;AAEA,SAAS,iBACP,QAAA,EACA,aAAA,EACA,SAAA,EACA,QAAA,EACA,YACA,MAAA,EACM;AACN,EAAA,MAAM,QAAA,GAAW,qBAAqB,aAAa,CAAA,CAAA;AACnD,EAAA,MAAM,QAAA,GAAW,IAAI,GAAA,CAAI,QAAA,CAAS,KAAA,CAAM,IAAI,CAAC,IAAA,KAAS,IAAA,CAAK,GAAG,CAAC,CAAA;AAC/D,EAAA,MAAM,UAAA,GAAa,sBAAsB,UAAU,CAAA;AACnD,EAAA,MAAM,aAAA,GAAgB,yBAAyB,UAAU,CAAA;AACzD,EAAA,MAAM,aAAA,GAAgB,yBAAyB,UAAU,CAAA;AACzD,EAAA,MAAM,KAAA,GAAQ,IAAI,GAAA,CAAI,QAAA,CAAS,MAAM,GAAA,CAAI,CAAC,IAAA,KAAS,CAAC,KAAK,GAAA,kBAAK,IAAI,GAAA,EAAa,CAAC,CAAC,CAAA;AACjF,EAAA,MAAM,gBAAA,uBAAuB,GAAA,EAAoB;AACjD,EAAA,MAAM,iBAA2B,EAAC;AAClC,EAAA,MAAM,uBAID,EAAC;AAEN,EAAA,cAAA;AAAA,IACE,MAAA;AAAA,IACA,GAAG,QAAQ,CAAA,MAAA,CAAA;AAAA,IACX,SAAS,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS,KAAK,GAAG;AAAA,GACvC;AAEA,EAAA,QAAA,CAAS,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,EAAM,SAAA,KAAc;AAC1C,IAAA,MAAM,QAAA,GAAW,CAAA,EAAG,QAAQ,CAAA,OAAA,EAAU,SAAS,CAAA,CAAA;AAE/C,IAAA,IAAI,KAAK,IAAA,KAAA,cAAA,qBAA2C;AAClD,MAAA,IAAI,IAAA,CAAK,MAAA,KAAA,KAAA,cAAgC,IAAA,CAAK,IAAA,EAAM;AAClD,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,kBAAA;AAAA,UACN,IAAA,EAAM,GAAG,QAAQ,CAAA,KAAA,CAAA;AAAA,UACjB,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,IAAI,KAAK,MAAA,KAAA,KAAA,YAA8B;AACrC,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,kBAAA;AAAA,UACN,IAAA,EAAM,GAAG,QAAQ,CAAA,OAAA,CAAA;AAAA,UACjB,OAAA,EACE;AAAA,SACH,CAAA;AAAA,MACH;AAEA,MAAA,IACE,UAAA,CAAW,OAAA,CAAQ,IAAA,KAAA,aAAA,sBACnB,UAAA,CAAW,OAAA,CAAQ,UAAA,CAAW,IAAA,KAAA,SAAA,kBAC9B,CAAC,MAAA,CAAO,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,IAAA;AAAA,QAC3B,CAAC,eAAe,UAAA,CAAW,MAAA,KAAA,QAAA;AAAA,OAC7B,EACA;AACA,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,kBAAA;AAAA,UACN,IAAA,EAAM,GAAG,QAAQ,CAAA,QAAA,CAAA;AAAA,UACjB,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,IACE,UAAA,CAAW,OAAA,CAAQ,IAAA,KAAA,aAAA,sBACnB,UAAA,CAAW,OAAA,CAAQ,UAAA,CAAW,IAAA,KAAA,QAAA,iBAC9B,CAAC,UAAA,CAAW,OAAA,CAAQ,UAAA,CAAW,eAAA,CAC5B,GAAA,CAAI,CAAC,MAAA,KAAW,IAAI,GAAA,CAAI,MAAM,CAAA,CAAE,MAAM,CAAA,CACtC,QAAA,CAAS,IAAI,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA,CAAE,MAAM,CAAA,EACpC;AACA,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,kBAAA;AAAA,UACN,IAAA,EAAM,GAAG,QAAQ,CAAA,IAAA,CAAA;AAAA,UACjB,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,CAAC,UAAA,KAAe;AACrC,MAAA,iBAAA,CAAkB,QAAQ,QAAA,EAAU,CAAA,EAAG,QAAQ,CAAA,UAAA,CAAA,EAAc,YAAY,eAAe,CAAA;AACxF,MAAA,YAAA,CAAa,KAAA,EAAO,UAAA,EAAY,IAAA,CAAK,GAAG,CAAA;AAAA,IAC1C,CAAC,CAAA;AAED,IAAA,IAAI,KAAK,IAAA,KAAA,WAAA,kBAAwC;AAC/C,MAAA,iBAAA,CAAkB,QAAQ,QAAA,EAAU,CAAA,EAAG,QAAQ,CAAA,SAAA,CAAA,EAAa,IAAA,CAAK,UAAU,eAAe,CAAA;AAC1F,MAAA,YAAA,CAAa,KAAA,EAAO,IAAA,CAAK,GAAA,EAAK,IAAA,CAAK,QAAQ,CAAA;AAC3C,MAAA,uBAAA;AAAA,QACE,gBAAA;AAAA,QACA,IAAA,CAAK,QAAA;AAAA,QACL,IAAA,CAAK,GAAA;AAAA,QACL,GAAG,QAAQ,CAAA,SAAA,CAAA;AAAA,QACX;AAAA,OACF;AAEA,MAAA,IAAI,KAAK,SAAA,EAAW;AAClB,QAAA,iBAAA;AAAA,UACE,MAAA;AAAA,UACA,QAAA;AAAA,UACA,GAAG,QAAQ,CAAA,UAAA,CAAA;AAAA,UACX,IAAA,CAAK,SAAA;AAAA,UACL;AAAA,SACF;AACA,QAAA,YAAA,CAAa,KAAA,EAAO,IAAA,CAAK,GAAA,EAAK,IAAA,CAAK,SAAS,CAAA;AAC5C,QAAA,uBAAA;AAAA,UACE,gBAAA;AAAA,UACA,IAAA,CAAK,SAAA;AAAA,UACL,IAAA,CAAK,GAAA;AAAA,UACL,GAAG,QAAQ,CAAA,UAAA,CAAA;AAAA,UACX;AAAA,SACF;AAAA,MACF;AAAA,IACF;AAEA,IAAA,IAAI,KAAK,IAAA,KAAA,eAAA,sBAA4C;AACnD,MAAA,iBAAA;AAAA,QACE,MAAA;AAAA,QACA,SAAA;AAAA,QACA,GAAG,QAAQ,CAAA,YAAA,CAAA;AAAA,QACX,CAAA,EAAG,IAAA,CAAK,WAAW,CAAA,CAAA,EAAI,KAAK,aAAa,CAAA,CAAA;AAAA,QACzC;AAAA,OACF;AAAA,IACF;AAEA,IAAA,IAAI,KAAK,IAAA,KAAA,aAAA,oBAA0C;AACjD,MAAA,cAAA,CAAe,IAAA,CAAK,KAAK,GAAG,CAAA;AAC5B,MAAA,MAAM,OAAA,GAAU,WAAW,QAAA,CAAS,IAAA,CAAK,CAAC,SAAA,KAAc,SAAA,CAAU,GAAA,KAAQ,IAAA,CAAK,UAAU,CAAA;AAEzF,MAAA,IAAI,CAAC,OAAA,IAAW,OAAA,CAAQ,SAAA,KAAc,SAAS,SAAA,EAAW;AACxD,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,kBAAA;AAAA,UACN,IAAA,EAAM,GAAG,QAAQ,CAAA,WAAA,CAAA;AAAA,UACjB,SAAS,CAAA,SAAA,EAAY,IAAA,CAAK,UAAU,CAAA,6BAAA,EAAgC,SAAS,SAAS,CAAA,CAAA;AAAA,SACvF,CAAA;AAAA,MACH;AAAA,IACF;AAEA,IAAA,yBAAA,CAA0B,IAAI,CAAA,CAAE,OAAA;AAAA,MAC9B,CAAC,EAAE,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,kBAAiB,KAAM;AACzD,QAAA,IAAI,WAAW,MAAA,KAAA,aAAA,oBAAuC;AACpD,UAAA,iBAAA;AAAA,YACE,MAAA;AAAA,YACA,QAAA;AAAA,YACA,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,QAAA,CAAA;AAAA,YACnB,UAAA,CAAW,OAAA;AAAA,YACX;AAAA,WACF;AACA,UAAA,oBAAA,CAAqB,IAAA,CAAK;AAAA,YACxB,iBAAiB,IAAA,CAAK,GAAA;AAAA,YACtB,IAAA,EAAM,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,QAAA,CAAA;AAAA,YACzB,iBAAiB,UAAA,CAAW;AAAA,WAC7B,CAAA;AAAA,QACH;AAEA,QAAA,IAAI,WAAW,MAAA,KAAA,SAAA,gBAAmC;AAChD,UAAA,iBAAA,CAAkB,MAAA,EAAQ,UAAU,CAAA,EAAG,QAAQ,IAAI,IAAI,CAAA,IAAA,CAAA,EAAQ,UAAA,CAAW,GAAA,EAAK,SAAS,CAAA;AAAA,QAC1F;AAEA,QAAA,IAAI,WAAW,MAAA,KAAA,QAAA,eAAkC;AAC/C,UAAA,iBAAA;AAAA,YACE,MAAA;AAAA,YACA,UAAA;AAAA,YACA,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,IAAA,CAAA;AAAA,YACnB,UAAA,CAAW,GAAA;AAAA,YACX;AAAA,WACF;AAEA,UAAA,IAAI,CAAC,aAAA,EAAe;AAClB,YAAA,MAAA,CAAO,IAAA,CAAK;AAAA,cACV,IAAA,EAAM,kBAAA;AAAA,cACN,IAAA,EAAM,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,cACzB,OAAA,EAAS;AAAA,aACV,CAAA;AAAA,UACH,CAAA,MAAA,IACE,CAAC,gBAAA,IACD,aAAA,CAAc,GAAA,CAAI,WAAW,GAAG,CAAA,KAAM,gBAAA,CAAiB,WAAA,EAAY,EACnE;AACA,YAAA,MAAA,CAAO,IAAA,CAAK;AAAA,cACV,IAAA,EAAM,kBAAA;AAAA,cACN,IAAA,EAAM,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,cACzB,SAAS,CAAA,kBAAA,EAAqB,UAAA,CAAW,GAAG,CAAA,gCAAA,EAAmC,oBAAoB,SAAS,CAAA,CAAA;AAAA,aAC7G,CAAA;AAAA,UACH,WACE,IAAA,CAAK,IAAA,KAAA,cAAA,uBACL,CAAC,aAAA,CAAc,IAAI,UAAA,CAAW,GAAG,CAAA,EAAG,GAAA,CAAI,IAAI,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA,CAAE,MAAM,CAAA,EAChE;AACA,YAAA,MAAA,CAAO,IAAA,CAAK;AAAA,cACV,IAAA,EAAM,kBAAA;AAAA,cACN,IAAA,EAAM,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,cACzB,OAAA,EAAS,CAAA,kBAAA,EAAqB,UAAA,CAAW,GAAG,CAAA,4CAAA;AAAA,aAC7C,CAAA;AAAA,UACH;AAAA,QACF;AAAA,MACF;AAAA,KACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,IAAI,cAAA,CAAe,WAAW,CAAA,EAAG;AAC/B,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,IAAA,EAAM,kBAAA;AAAA,MACN,IAAA,EAAM,GAAG,QAAQ,CAAA,MAAA,CAAA;AAAA,MACjB,OAAA,EAAS,CAAA,qBAAA,EAAwB,QAAA,CAAS,SAAS,CAAA,oBAAA;AAAA,KACpD,CAAA;AAAA,EACH;AAEA,EAAA,oBAAA,CAAqB,QAAQ,CAAC,EAAE,eAAA,EAAiB,IAAA,EAAM,iBAAgB,KAAM;AAC3E,IAAA,IAAI,QAAA,CAAS,IAAI,eAAe,CAAA,IAAK,CAAC,YAAA,CAAa,KAAA,EAAO,eAAA,EAAiB,eAAe,CAAA,EAAG;AAC3F,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,kBAAA;AAAA,QACN,IAAA;AAAA,QACA,OAAA,EAAS,SAAS,eAAe,CAAA,mDAAA;AAAA,OAClC,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AAED,EAAA,cAAA,CAAe,OAAA,CAAQ,CAAC,OAAA,KAAY;AAClC,IAAA,IAAA,CAAK,MAAM,GAAA,CAAI,OAAO,CAAA,EAAG,IAAA,IAAQ,KAAK,CAAA,EAAG;AACvC,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,kBAAA;AAAA,QACN,IAAA,EAAM,GAAG,QAAQ,CAAA,MAAA,CAAA;AAAA,QACjB,OAAA,EAAS,gBAAgB,OAAO,CAAA,kBAAA;AAAA,OACjC,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AAED,EAAA,IAAI,QAAA,CAAS,KAAK,CAAA,EAAG;AACnB,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,IAAA,EAAM,gBAAA;AAAA,MACN,IAAA,EAAM,GAAG,QAAQ,CAAA,MAAA,CAAA;AAAA,MACjB,OAAA,EAAS,CAAA,qBAAA,EAAwB,QAAA,CAAS,SAAS,CAAA,kBAAA;AAAA,KACpD,CAAA;AAAA,EACH;AACF;AAEA,SAAS,uBAAA,CACP,OAAA,EACA,aAAA,EACA,gBAAA,EACA,MACA,MAAA,EACM;AACN,EAAA,MAAM,iBAAA,GAAoB,OAAA,CAAQ,GAAA,CAAI,aAAa,CAAA;AAEnD,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,IAAA,EAAM,kBAAA;AAAA,MACN,IAAA;AAAA,MACA,OAAA,EAAS,CAAA,MAAA,EAAS,aAAa,CAAA,sCAAA,EAAyC,iBAAiB,CAAA,CAAA;AAAA,KAC1F,CAAA;AACD,IAAA;AAAA,EACF;AAEA,EAAA,OAAA,CAAQ,GAAA,CAAI,eAAe,gBAAgB,CAAA;AAC7C;AAEA,SAAS,YAAA,CAAa,KAAA,EAAiC,IAAA,EAAc,EAAA,EAAkB;AACrF,EAAA,KAAA,CAAM,GAAA,CAAI,IAAI,CAAA,EAAG,GAAA,CAAI,EAAE,CAAA;AACzB;AASA,SAAS,0BACP,IAAA,EACuB;AACvB,EAAA,QAAQ,KAAK,IAAA;AAAM,IACjB,KAAA,cAAA;AACE,MAAA,OAAO;AAAA,QACL,GAAG,MAAA,CAAO,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,UAAU,CAAA,MAAO;AAAA,UAC1D,UAAA;AAAA,UACA,IAAA,EAAM,WAAW,GAAG,CAAA,CAAA;AAAA,UACpB,aAAA,EAAe,IAAA;AAAA,UACf,gBAAA,EAAkB;AAAA,SACpB,CAAE,CAAA;AAAA,QACF,GAAG,MAAA,CAAO,OAAA,CAAQ,IAAA,CAAK,KAAK,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,UAAU,CAAA,MAAO;AAAA,UACxD,UAAA;AAAA,UACA,IAAA,EAAM,SAAS,GAAG,CAAA,CAAA;AAAA,UAClB,aAAA,EAAe;AAAA,SACjB,CAAE,CAAA;AAAA,QACF,GAAI,IAAA,CAAK,IAAA,GAAO,CAAC,EAAE,UAAA,EAAY,IAAA,CAAK,IAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,aAAA,EAAe,KAAA,EAAO,IAAI;AAAC,OACrF;AAAA,IACF,KAAA,WAAA;AACE,MAAA,OAAO,MAAA,CAAO,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA,CAAE,IAAI,CAAC,CAAC,GAAA,EAAK,UAAU,CAAA,MAAO;AAAA,QAC9D,UAAA;AAAA,QACA,IAAA,EAAM,WAAW,GAAG,CAAA,CAAA;AAAA,QACpB,aAAA,EAAe;AAAA,OACjB,CAAE,CAAA;AAAA,IACJ,KAAA,WAAA;AACE,MAAA,OAAO,CAAC,EAAE,UAAA,EAAY,IAAA,CAAK,WAAW,IAAA,EAAM,WAAA,EAAa,aAAA,EAAe,KAAA,EAAO,CAAA;AAAA,IACjF,KAAA,UAAA;AACE,MAAA,OAAO,MAAA,CAAO,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAA,CAAE,IAAI,CAAC,CAAC,GAAA,EAAK,UAAU,CAAA,MAAO;AAAA,QAChE,UAAA;AAAA,QACA,IAAA,EAAM,aAAa,GAAG,CAAA,CAAA;AAAA,QACtB,aAAA,EAAe;AAAA,OACjB,CAAE,CAAA;AAAA,IACJ,KAAA,eAAA;AACE,MAAA,OAAO,CAAC,EAAE,UAAA,EAAY,IAAA,CAAK,OAAO,IAAA,EAAM,OAAA,EAAS,aAAA,EAAe,KAAA,EAAO,CAAA;AAAA,IACzE,KAAA,aAAA;AACE,MAAA,OAAO,CAAC,EAAE,UAAA,EAAY,IAAA,CAAK,YAAY,IAAA,EAAM,YAAA,EAAc,aAAA,EAAe,KAAA,EAAO,CAAA;AAAA,IACnF,KAAA,aAAA;AACE,MAAA,OAAO,CAAC,EAAE,UAAA,EAAY,IAAA,CAAK,QAAQ,IAAA,EAAM,QAAA,EAAU,aAAA,EAAe,KAAA,EAAO,CAAA;AAAA;AAE/E;AAEA,SAAS,sBAAsB,UAAA,EAAwC;AACrE,EAAA,IAAI,UAAA,CAAW,QAAQ,IAAA,KAAA,aAAA,oBAAqC;AAC1D,IAAA,2BAAW,GAAA,EAAI;AAAA,EACjB;AAEA,EAAA,IAAI,UAAA,CAAW,OAAA,CAAQ,UAAA,CAAW,IAAA,KAAA,SAAA,gBAAoC;AACpE,IAAA,OAAO,IAAI,GAAA,CAAI,UAAA,CAAW,OAAA,CAAQ,UAAA,CAAW,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU,KAAA,CAAM,SAAS,CAAC,CAAA;AAAA,EACrF;AAEA,EAAA,IAAI,UAAA,CAAW,OAAA,CAAQ,UAAA,CAAW,IAAA,KAAA,QAAA,eAAmC;AACnE,IAAA,2BAAW,GAAA,EAAI;AAAA,EACjB;AAEA,EAAA,2BAAW,GAAA,EAAI;AACjB;AAEA,SAAS,yBAAyB,UAAA,EAAgD;AAChF,EAAA,IACE,WAAW,OAAA,CAAQ,IAAA,KAAA,aAAA,sBACnB,UAAA,CAAW,OAAA,CAAQ,WAAW,IAAA,KAAA,SAAA,gBAC9B;AACA,IAAA,2BAAW,GAAA,EAAI;AAAA,EACjB;AAEA,EAAA,OAAO,IAAI,GAAA;AAAA,IACT,WAAW,OAAA,CAAQ,UAAA,CAAW,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU;AAAA,MAClD,KAAA,CAAM,SAAA;AAAA,MACN,KAAA,CAAM,WAAW,WAAA;AAAY,KAC9B;AAAA,GACH;AACF;AAEA,SAAS,yBAAyB,UAAA,EAA6D;AAC7F,EAAA,IACE,WAAW,OAAA,CAAQ,IAAA,KAAA,aAAA,sBACnB,UAAA,CAAW,OAAA,CAAQ,WAAW,IAAA,KAAA,SAAA,gBAC9B;AACA,IAAA,2BAAW,GAAA,EAAI;AAAA,EACjB;AAEA,EAAA,OAAO,IAAI,GAAA;AAAA,IACT,WAAW,OAAA,CAAQ,UAAA,CAAW,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU;AAAA,MAClD,KAAA,CAAM,SAAA;AAAA,MACN,IAAI,GAAA,CAAI,KAAA,CAAM,cAAA,CAAe,GAAA,CAAI,CAAC,MAAA,KAAW,IAAI,GAAA,CAAI,MAAM,CAAA,CAAE,MAAM,CAAC;AAAA,KACrE;AAAA,GACH;AACF;AAEA,SAAS,YAAA,CAAa,KAAA,EAAiC,IAAA,EAAc,EAAA,EAAqB;AACxF,EAAA,MAAM,KAAA,GAAQ,CAAC,IAAI,CAAA;AACnB,EAAA,MAAM,OAAA,uBAAc,GAAA,EAAY;AAEhC,EAAA,OAAO,KAAA,CAAM,SAAS,CAAA,EAAG;AACvB,IAAA,MAAM,OAAA,GAAU,MAAM,KAAA,EAAM;AAE5B,IAAA,IAAI,CAAC,OAAA,IAAW,OAAA,CAAQ,GAAA,CAAI,OAAO,CAAA,EAAG;AACpC,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,CAAQ,IAAI,OAAO,CAAA;AAEnB,IAAA,KAAA,MAAW,QAAQ,KAAA,CAAM,GAAA,CAAI,OAAO,CAAA,IAAK,EAAC,EAAG;AAC3C,MAAA,IAAI,SAAS,EAAA,EAAI;AACf,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,IACjB;AAAA,EACF;AAEA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,SAAS,KAAA,EAA0C;AAC1D,EAAA,MAAM,QAAA,uBAAe,GAAA,EAAY;AACjC,EAAA,MAAM,OAAA,uBAAc,GAAA,EAAY;AAEhC,EAAA,MAAM,KAAA,GAAQ,CAAC,IAAA,KAA0B;AACvC,IAAA,IAAI,QAAA,CAAS,GAAA,CAAI,IAAI,CAAA,EAAG;AACtB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,IAAI,CAAA,EAAG;AACrB,MAAA,OAAO,KAAA;AAAA,IACT;AAEA,IAAA,QAAA,CAAS,IAAI,IAAI,CAAA;AAEjB,IAAA,KAAA,MAAW,QAAQ,KAAA,CAAM,GAAA,CAAI,IAAI,CAAA,IAAK,EAAC,EAAG;AACxC,MAAA,IAAI,MAAM,GAAA,CAAI,IAAI,CAAA,IAAK,KAAA,CAAM,IAAI,CAAA,EAAG;AAClC,QAAA,OAAO,IAAA;AAAA,MACT;AAAA,IACF;AAEA,IAAA,QAAA,CAAS,OAAO,IAAI,CAAA;AACpB,IAAA,OAAA,CAAQ,IAAI,IAAI,CAAA;AAChB,IAAA,OAAO,KAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO,CAAC,GAAG,KAAA,CAAM,MAAM,CAAA,CAAE,KAAK,KAAK,CAAA;AACrC;AAEA,SAAS,sBAAA,CAAuB,YAA2B,MAAA,EAAkC;AAC3F,EAAA,MAAM,MAAA,GAAS,uBAAuB,UAAU,CAAA;AAEhD,EAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,EAAE,IAAA,EAAM,OAAM,KAAM;AAClC,IAAA,IAAI,CAAC,KAAA,CAAM,UAAA,CAAW,aAAa,CAAA,EAAG;AACpC,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,wBAAA;AAAA,QACN,IAAA;AAAA,QACA,OAAA,EAAS,CAAA,sCAAA,EAAyC,UAAA,CAAW,aAAa,CAAA,CAAA;AAAA,OAC3E,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,kBAAA,GAA+E;AAAA,IACnF,GAAG,UAAA,CAAW,OAAA,CAAQ,OAAA,CAAQ,CAAC,QAAQ,KAAA,KAAU;AAAA,MAC/C,EAAE,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,SAAA,CAAA,EAAa,KAAA,EAAO,OAAO,QAAA,EAAS;AAAA,MAC5D,EAAE,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,iBAAA,CAAA,EAAqB,KAAA,EAAO,OAAO,gBAAA;AAAiB,KAC7E,CAAA;AAAA,IACD,EAAE,IAAA,EAAM,sBAAA,EAAwB,KAAA,EAAO,UAAA,CAAW,YAAY,QAAA,EAAS;AAAA,IACvE,EAAE,IAAA,EAAM,iCAAA,EAAmC,KAAA,EAAO,UAAA,CAAW,YAAY,mBAAA;AAAoB,GAC/F;AAEA,EAAA,kBAAA,CAAmB,OAAA,CAAQ,CAAC,EAAE,IAAA,EAAM,OAAM,KAAM;AAC9C,IAAA,IAAI,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,MAAA,GAAS,KAAK,CAAC,KAAA,CAAM,UAAA,CAAW,aAAa,CAAA,EAAG;AACrE,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,wBAAA;AAAA,QACN,IAAA;AAAA,QACA,OAAA,EAAS,CAAA,0CAAA,EAA6C,UAAA,CAAW,aAAa,CAAA,CAAA;AAAA,OAC/E,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AACH;AAEA,SAAS,uBACP,UAAA,EAC+C;AAC/C,EAAA,MAAM,MAAA,GAAwD;AAAA,IAC5D,EAAE,IAAA,EAAM,UAAA,EAAY,KAAA,EAAO,UAAA,CAAW,IAAI,IAAA,EAAK;AAAA,IAC/C,EAAE,IAAA,EAAM,sBAAA,EAAwB,KAAA,EAAO,UAAA,CAAW,IAAI,gBAAA,EAAiB;AAAA,IACvE,EAAE,IAAA,EAAM,qBAAA,EAAuB,KAAA,EAAO,UAAA,CAAW,IAAI,eAAA,EAAgB;AAAA,IACrE,EAAE,IAAA,EAAM,kBAAA,EAAoB,KAAA,EAAO,UAAA,CAAW,WAAW,KAAA,EAAM;AAAA,IAC/D,EAAE,IAAA,EAAM,wBAAA,EAA0B,KAAA,EAAO,UAAA,CAAW,WAAW,WAAA;AAAY,GAC7E;AAEA,EAAA,UAAA,CAAW,UAAA,CAAW,WAAA,CAAY,OAAA,CAAQ,CAAC,YAAY,KAAA,KAAU;AAC/D,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,EAAE,IAAA,EAAM,CAAA,uBAAA,EAA0B,KAAK,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,WAAW,KAAA,EAAM;AAAA,MACzE,EAAE,IAAA,EAAM,CAAA,uBAAA,EAA0B,KAAK,CAAA,YAAA,CAAA,EAAgB,KAAA,EAAO,WAAW,WAAA;AAAY,KACvF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,YAAA,CAAa,OAAA,CAAQ,CAAC,UAAA,EAAY,KAAA,KAAU;AACrD,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,EAAE,IAAA,EAAM,CAAA,aAAA,EAAgB,KAAK,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,WAAW,KAAA,EAAM;AAAA,MAC/D,EAAE,IAAA,EAAM,CAAA,aAAA,EAAgB,KAAK,CAAA,YAAA,CAAA,EAAgB,KAAA,EAAO,WAAW,WAAA;AAAY,KAC7E;AAAA,EACF,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,EAAQ,KAAA,KAAU;AAC5C,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,EAAE,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,OAAO,KAAA,EAAM;AAAA,MACtD,EAAE,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,YAAA,CAAA,EAAgB,KAAA,EAAO,OAAO,WAAA;AAAY,KACpE;AAAA,EACF,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,EAAQ,KAAA,KAAU;AAC5C,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,EAAE,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,OAAO,KAAA,EAAM;AAAA,MACtD,EAAE,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,YAAA,CAAA,EAAgB,KAAA,EAAO,OAAO,WAAA,EAAY;AAAA,MAClE,EAAE,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,qBAAA,CAAA,EAAyB,KAAA,EAAO,OAAO,oBAAA,EAAqB;AAAA,MACpF,EAAE,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,sBAAA,CAAA,EAA0B,KAAA,EAAO,OAAO,qBAAA;AAAsB,KACxF;AAEA,IAAA,MAAA,CAAO,OAAA,CAAQ,OAAO,cAAc,CAAA,CAAE,QAAQ,CAAC,CAAC,KAAA,EAAO,KAAK,CAAA,KAAM;AAChE,MAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,CAAA,QAAA,EAAW,KAAK,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAA,EAAI,KAAA,EAAO,CAAA;AAAA,IACzE,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,SAAA,CAAU,OAAA,CAAQ,CAAC,IAAA,EAAM,KAAA,KAAU;AAC5C,IAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,CAAA,UAAA,EAAa,KAAK,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,IAAA,CAAK,KAAA,EAAO,CAAA;AAEnE,IAAA,IAAI,KAAK,WAAA,EAAa;AACpB,MAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,CAAA,UAAA,EAAa,KAAK,CAAA,YAAA,CAAA,EAAgB,KAAA,EAAO,IAAA,CAAK,WAAA,EAAa,CAAA;AAAA,IACjF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,QAAA,CAAS,OAAA,CAAQ,CAAC,OAAA,EAAS,KAAA,KAAU;AAC9C,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,EAAE,IAAA,EAAM,CAAA,SAAA,EAAY,KAAK,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,QAAQ,KAAA,EAAM;AAAA,MACxD,EAAE,IAAA,EAAM,CAAA,SAAA,EAAY,KAAK,CAAA,YAAA,CAAA,EAAgB,KAAA,EAAO,QAAQ,WAAA;AAAY,KACtE;AAEA,IAAA,OAAA,CAAQ,WAAA,CAAY,OAAA,CAAQ,CAAC,MAAA,EAAQ,WAAA,KAAgB;AACnD,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,CAAA,SAAA,EAAY,KAAK,CAAA,aAAA,EAAgB,WAAW,CAAA,MAAA,CAAA;AAAA,QAClD,OAAO,MAAA,CAAO;AAAA,OACf,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,iBAAA,CAAkB,OAAA,CAAQ,CAAC,QAAA,EAAU,KAAA,KAAU;AACxD,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,IAAA,EAAM,qBAAqB,KAAK,CAAA,YAAA,CAAA;AAAA,MAChC,OAAO,QAAA,CAAS;AAAA,KACjB,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,aAAA,CAAc,OAAA,CAAQ,CAAC,MAAA,EAAQ,KAAA,KAAU;AAClD,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,EAAE,IAAA,EAAM,CAAA,cAAA,EAAiB,KAAK,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,OAAO,KAAA,EAAM;AAAA,MAC5D,EAAE,IAAA,EAAM,CAAA,cAAA,EAAiB,KAAK,CAAA,YAAA,CAAA,EAAgB,KAAA,EAAO,OAAO,WAAA;AAAY,KAC1E;AAAA,EACF,CAAC,CAAA;AAED,EAAA,gBAAA,CAAiB,UAAA,CAAW,QAAA,CAAS,MAAA,EAAQ,iBAAA,EAAmB,MAAM,CAAA;AAEtE,EAAA,UAAA,CAAW,QAAA,CAAS,KAAA,CAAM,OAAA,CAAQ,CAAC,MAAM,KAAA,KAAU;AACjD,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,EAAE,IAAA,EAAM,CAAA,eAAA,EAAkB,KAAK,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,KAAK,KAAA,EAAM;AAAA,MAC3D,EAAE,IAAA,EAAM,CAAA,eAAA,EAAkB,KAAK,CAAA,YAAA,CAAA,EAAgB,KAAA,EAAO,KAAK,WAAA;AAAY,KACzE;AACA,IAAA,gBAAA,CAAiB,IAAA,CAAK,eAAA,EAAiB,CAAA,eAAA,EAAkB,KAAK,oBAAoB,MAAM,CAAA;AACxF,IAAA,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,CAAC,QAAA,EAAU,aAAA,KAAkB;AAClD,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,CAAA,eAAA,EAAkB,KAAK,CAAA,WAAA,EAAc,aAAa,CAAA,MAAA,CAAA;AAAA,QACxD,OAAO,QAAA,CAAS;AAAA,OACjB,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAA,UAAA,CAAW,QAAQ,IAAA,CAAK,QAAA,CAAS,OAAA,CAAQ,CAAC,MAAM,KAAA,KAAU;AACxD,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,EAAE,IAAA,EAAM,CAAA,sBAAA,EAAyB,KAAK,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,KAAK,KAAA,EAAM;AAAA,MAClE,EAAE,IAAA,EAAM,CAAA,sBAAA,EAAyB,KAAK,CAAA,YAAA,CAAA,EAAgB,KAAA,EAAO,KAAK,WAAA;AAAY,KAChF;AAAA,EACF,CAAC,CAAA;AACD,EAAA,UAAA,CAAW,QAAQ,IAAA,CAAK,cAAA,CAAe,OAAA,CAAQ,CAAC,MAAM,KAAA,KAAU;AAC9D,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,EAAE,IAAA,EAAM,CAAA,4BAAA,EAA+B,KAAK,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,KAAK,KAAA,EAAM;AAAA,MACxE;AAAA,QACE,IAAA,EAAM,+BAA+B,KAAK,CAAA,YAAA,CAAA;AAAA,QAC1C,OAAO,IAAA,CAAK;AAAA;AACd,KACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,IACE,WAAW,OAAA,CAAQ,IAAA,KAAA,aAAA,sBACnB,UAAA,CAAW,OAAA,CAAQ,WAAW,IAAA,KAAA,SAAA,gBAC9B;AACA,IAAA,UAAA,CAAW,QAAQ,UAAA,CAAW,MAAA,CAAO,OAAA,CAAQ,CAAC,OAAO,KAAA,KAAU;AAC7D,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,EAAE,IAAA,EAAM,CAAA,0BAAA,EAA6B,KAAK,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,MAAM,KAAA,EAAM;AAAA,QACvE,EAAE,IAAA,EAAM,CAAA,0BAAA,EAA6B,KAAK,CAAA,YAAA,CAAA,EAAgB,KAAA,EAAO,MAAM,WAAA;AAAY,OACrF;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,gBAAA,CACP,MAAA,EACA,IAAA,EACA,MAAA,EACM;AACN,EAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,KAAA,EAAO,KAAA,KAAU;AAC/B,IAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,KAAA,CAAM,KAAA,EAAO,CAAA;AAElE,IAAA,IAAI,MAAM,WAAA,EAAa;AACrB,MAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,YAAA,CAAA,EAAgB,KAAA,EAAO,KAAA,CAAM,WAAA,EAAa,CAAA;AAAA,IAChF;AAEA,IAAA,IAAI,MAAM,IAAA,EAAM;AACd,MAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,KAAA,CAAA,EAAS,KAAA,EAAO,KAAA,CAAM,IAAA,EAAM,CAAA;AAAA,IAClE;AAEA,IAAA,KAAA,CAAM,OAAA,EAAS,OAAA,CAAQ,CAAC,MAAA,EAAQ,WAAA,KAAgB;AAC9C,MAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,SAAA,EAAY,WAAW,CAAA,MAAA,CAAA,EAAU,KAAA,EAAO,MAAA,CAAO,OAAO,CAAA;AAAA,IAC5F,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AACH;AAoUA,SAAS,cAAA,CAAe,MAAA,EAA4B,IAAA,EAAc,MAAA,EAAwB;AACxF,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAE7B,EAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,KAAA,EAAO,KAAA,KAAU;AAC/B,IAAA,IAAI,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,EAAG;AACnB,MAAA,MAAA,CAAO,IAAA,CAAK;AAAA,QACV,IAAA,EAAM,cAAA;AAAA,QACN,IAAA,EAAM,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAAA,QACtB,OAAA,EAAS,yBAAyB,KAAK,CAAA,CAAA;AAAA,OACxC,CAAA;AAAA,IACH;AAEA,IAAA,IAAA,CAAK,IAAI,KAAK,CAAA;AAAA,EAChB,CAAC,CAAA;AACH;AAEA,SAAS,iBAAA,CACP,MAAA,EACA,SAAA,EACA,IAAA,EACA,OACA,IAAA,EACM;AACN,EAAA,IAAI,CAAC,SAAA,CAAU,GAAA,CAAI,KAAK,CAAA,EAAG;AACzB,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,IAAA,EAAM,mBAAA;AAAA,MACN,IAAA;AAAA,MACA,OAAA,EAAS,CAAA,QAAA,EAAW,IAAI,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA;AAAA,KACnC,CAAA;AAAA,EACH;AACF;AAEA,SAAS,uBAAA,CACP,MAAA,EACA,IAAA,EACA,OAAA,EACA,MAAA,EACM;AACN,EAAA,cAAA;AAAA,IACE,MAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU,MAAM,GAAG;AAAA,GACjC;AAEA,EAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,KAAA,EAAO,KAAA,KAAU;AAC/B,IAAA,IAAI,MAAM,aAAA,EAAe;AACvB,MAAA,iBAAA;AAAA,QACE,MAAA;AAAA,QACA,OAAA;AAAA,QACA,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,wBAAA,CAAA;AAAA,QAChB,MAAM,aAAA,CAAc,SAAA;AAAA,QACpB;AAAA,OACF;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACH;AAEA,SAAS,qBAAqB,MAAA,EAA8C;AAC1E,EAAA,MAAM,aAAa,MAAA,CAAO,UAAA;AAE1B,EAAA,IAAI,CAAC,cAAc,OAAO,UAAA,KAAe,YAAY,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA,EAAG;AAC9E,IAAA,2BAAW,GAAA,EAAI;AAAA,EACjB;AAEA,EAAA,OAAO,IAAI,GAAA,CAAI,MAAA,CAAO,IAAA,CAAK,UAAU,CAAC,CAAA;AACxC;AAEA,SAAS,yBAAyB,MAAA,EAA8C;AAC9E,EAAA,OAAO,IAAI,GAAA;AAAA,IACT,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,QAAQ,IACzB,MAAA,CAAO,QAAA,CAAS,MAAA,CAAO,CAAC,KAAA,KAA2B,OAAO,KAAA,KAAU,QAAQ,IAC5E;AAAC,GACP;AACF;AAEA,SAAS,WAAW,IAAA,EAA6B;AAC/C,EAAA,OAAO,IAAA,CAAK,SAAS,CAAA,GAAI,IAAA,CAAK,IAAI,MAAM,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,GAAI,GAAA;AACxD;;;AClsDO,SAAS,kBACd,KAAA,EACA,EAAE,gBAAgB,KAAA,EAAM,GAAiC,EAAC,EACpC;AACtB,EAAA,MAAM,UAAA,GAAa,sBAAsB,KAAK,CAAA;AAE9C,EAAA,IAAI,CAAC,WAAW,EAAA,EAAI;AAClB,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ;AAAA,QACN,OAAO,YAAA,kBAAgC;AAAA,QACvC,QAAQ,gBAAA,sBAAoC;AAAA,QAC5C,QAAQ,gBAAA;AAAoC,OAC9C;AAAA,MACA,QAAQ,UAAA,CAAW,MAAA;AAAA,MACnB,EAAA,EAAI;AAAA,KACN;AAAA,EACF;AAEA,EAAA,MAAM,UAAA,GAAa,mBAAA,CAAoB,KAAA,CAAM,KAAK,CAAA;AAClD,EAAA,MAAM,SAAgC,EAAC;AACvC,EAAA,MAAM,mBAAA,GAAsB,uBAAuB,UAAU,CAAA;AAC7D,EAAA,MAAM,kBAAA,GAAqB,sBAAA,CAAuB,IAAA,CAAK,KAAA,CAAM,mBAAmB,CAAC,CAAA;AAEjF,EAAA,IAAI,wBAAwB,kBAAA,EAAoB;AAC9C,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,IAAA,EAAM,yBAAA;AAAA,MACN,OAAA,EAAS,gDAAA;AAAA,MACT,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,aAAA,IAAiB,UAAA,CAAW,OAAA,CAAQ,IAAA,KAAA,QAAA,eAAgC;AACtE,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,IAAA,EAAM,yBAAA;AAAA,MACN,OAAA,EAAS,6CAAA;AAAA,MACT,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAEA,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ;AAAA,MACN,OAAO,YAAA,kBAAgC;AAAA,MACvC,MAAA,CAAO,IAAA,CAAK,CAAC,KAAA,KAAU,KAAA,CAAM,IAAA,KAAS,yBAAyB,CAAA,GAC3D,MAAA,CAAO,gBAAA,sBAAoC,GAC3C,MAAA,CAAO,gBAAA,sBAAoC;AAAA,MAC/C,gBACI,MAAA,CAAO,IAAA,CAAK,CAAC,KAAA,KAAU,MAAM,IAAA,KAAS,yBAAyB,CAAA,GAC7D,MAAA,CAAO,sCAAoC,GAC3C,MAAA,CAAO,gBAAA,sBAAoC,GAC7C,QAAQ,gBAAA;AAAoC,KAClD;AAAA,IACA,MAAA;AAAA,IACA,EAAA,EAAI,OAAO,MAAA,KAAW;AAAA,GACxB;AACF;AAEO,SAAS,kBAAkB,KAAA,EAAmC;AACnE,EAAA,MAAM,UAAA,GAAa,sBAAsB,KAAK,CAAA;AAE9C,EAAA,IAAI,CAAC,WAAW,EAAA,EAAI;AAClB,IAAA,MAAM,IAAI,mBAAA,CAAoB,UAAA,CAAW,MAAM,CAAA;AAAA,EACjD;AAEA,EAAA,MAAM,UAAA,GAAa,mBAAA,CAAoB,KAAA,CAAM,KAAK,CAAA;AAClD,EAAA,OAAO;AAAA,IACL,UAAA;AAAA,IACA,cAAA,EAAgB,CAAA,EAAG,sBAAA,CAAuB,UAAU,CAAC;AAAA,CAAA;AAAA,IACrD,kBAAkB,6BAAA;AAA8B,GAClD;AACF;AAEA,SAAS,OAAO,EAAA,EAAgD;AAC9D,EAAA,OAAO,EAAE,EAAA,EAAI,MAAA,EAAQ,QAAA,eAAiC;AACxD;AAEA,SAAS,OAAO,EAAA,EAAgD;AAC9D,EAAA,OAAO,EAAE,EAAA,EAAI,MAAA,EAAQ,QAAA,eAAiC;AACxD;AAEA,SAAS,QAAQ,EAAA,EAAgD;AAC/D,EAAA,OAAO,EAAE,EAAA,EAAI,MAAA,EAAQ,SAAA,gBAAkC;AACzD;ACtEO,SAAS,8BAAA,CAA+B;AAAA,EAC7C,MAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAIsC;AACpC,EAAA,IAAI,CAAC,KAAA,IAAS,CAAC,mBAAA,EAAqB;AAClC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAAC,KAAA,IAAS,CAAC,mBAAA,EAAqB;AAClC,IAAA,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAAA,EAChE;AAEA,EAAA,IAAI,KAAA;AAEJ,EAAA,IAAI;AACF,IAAA,KAAA,GAAQ,IAAA,CAAK,MAAM,MAAA,CAAO,IAAA,CAAK,qBAAqB,WAAW,CAAA,CAAE,QAAA,CAAS,MAAM,CAAC,CAAA;AAAA,EACnF,CAAA,CAAA,MAAQ;AACN,IAAA,MAAM,IAAI,MAAM,yCAAyC,CAAA;AAAA,EAC3D;AAEA,EAAA,IAAI,CAAC,mBAAA,CAAoB,KAAK,CAAA,IAAK,KAAA,CAAM,QAAQ,KAAA,EAAO;AACtD,IAAA,MAAM,IAAI,MAAM,yCAAyC,CAAA;AAAA,EAC3D;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA,EAAe;AAAA,GACjB;AACF;AAEO,SAAS,0BACd,QAAA,EACqB;AACrB,EAAA,OAAO,0BAA0B,KAAA,CAAM;AAAA,IACrC,GAAA,EAAA,OAAA;AAAA,IACA,GAAA,EAAK,SAAA;AAAA,IACL,KAAK,QAAA,CAAS,KAAA;AAAA,IACd,GAAA,EAAK,KAAA;AAAA,IACL,GAAA,EAAK,KAAA;AAAA,IACL,CAAA,EAAG,SAAS,aAAA,CAAc;AAAA,GAC3B,CAAA;AACH;AAoLA,SAAS,oBAAoB,KAAA,EAA+C;AAC1E,EAAA,IAAI,CAAC,SAAS,OAAO,KAAA,KAAU,YAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AAC/D,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAM,GAAA,GAAM,KAAA;AAEZ,EAAA,OACE,GAAA,CAAI,GAAA,KAAA,OAAA,kBACJ,GAAA,CAAI,GAAA,KAAQ,aACZ,OAAO,GAAA,CAAI,CAAA,KAAM,QAAA,IACjB,GAAA,CAAI,CAAA,CAAE,MAAA,IAAU,EAAA,IAChB,OAAO,GAAA,CAAI,GAAA,KAAQ,QAAA,IACnB,GAAA,CAAI,GAAA,CAAI,MAAA,GAAS,CAAA,IACjB,GAAA,CAAI,QAAQ,KAAA,IACZ,GAAA,CAAI,GAAA,KAAQ,KAAA,IACZ,OAAO,GAAA,CAAI,CAAA,KAAM,QAAA,IACjB,GAAA,CAAI,EAAE,MAAA,IAAU,EAAA;AAEpB;;;ACvGA,SAAS,uBAAA,GAAqC;AAC5C,EAAA,MAAM,MAAA,GAAS,IAAI,SAAA,EAAU;AAE7B,EAAA,KAAA,MAAW,CAAC,OAAA,EAAS,MAAM,CAAA,IAAK;AAAA,IAC9B,CAAC,WAAW,CAAC,CAAA;AAAA,IACb,CAAC,YAAY,CAAC,CAAA;AAAA,IACd,CAAC,cAAc,EAAE,CAAA;AAAA,IACjB,CAAC,aAAa,CAAC,CAAA;AAAA,IACf,CAAC,eAAe,EAAE,CAAA;AAAA,IAClB,CAAC,cAAc,EAAE,CAAA;AAAA,IACjB,CAAC,aAAa,EAAE,CAAA;AAAA,IAChB,CAAC,aAAa,EAAE,CAAA;AAAA,IAChB,CAAC,eAAe,EAAE,CAAA;AAAA,IAClB,CAAC,eAAe,EAAE,CAAA;AAAA,IAClB,CAAC,cAAc,EAAE,CAAA;AAAA,IACjB,CAAC,gBAAgB,EAAE,CAAA;AAAA,IACnB,CAAC,eAAe,EAAE,CAAA;AAAA,IAClB,CAAC,aAAa,CAAC,CAAA;AAAA,IACf,CAAC,aAAa,CAAC;AAAA,GACjB,EAAY;AACV,IAAA,MAAA,CAAO,SAAA,CAAU,OAAA,EAAS,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC1C;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,uBAAA,GAAqC;AAC5C,EAAA,MAAM,MAAA,GAAS,IAAI,SAAA,EAAU;AAE7B,EAAA,KAAA,MAAW,CAAC,OAAA,EAAS,MAAM,CAAA,IAAK;AAAA,IAC9B,CAAC,MAAM,EAAE,CAAA;AAAA,IACT,CAAC,cAAc,EAAE,CAAA;AAAA,IACjB,CAAC,aAAa,EAAE,CAAA;AAAA,IAChB,CAAC,eAAe,EAAE,CAAA;AAAA,IAClB,CAAC,SAAS,EAAE,CAAA;AAAA,IACZ,CAAC,UAAU,EAAE,CAAA;AAAA,IACb,CAAC,YAAY,EAAE,CAAA;AAAA,IACf,CAAC,aAAa,EAAE,CAAA;AAAA,IAChB,CAAC,aAAa,EAAE,CAAA;AAAA,IAChB,CAAC,cAAc,EAAE,CAAA;AAAA,IACjB,CAAC,UAAU,EAAE,CAAA;AAAA,IACb,CAAC,UAAU,EAAE,CAAA;AAAA,IACb,CAAC,UAAU,EAAE,CAAA;AAAA,IACb,CAAC,UAAU,CAAC,CAAA;AAAA,IACZ,CAAC,UAAU,EAAE,CAAA;AAAA,IACb,CAAC,UAAU,EAAE,CAAA;AAAA,IACb,CAAC,UAAU,CAAC;AAAA,GACd,EAAY;AACV,IAAA,MAAA,CAAO,SAAA,CAAU,OAAA,EAAS,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC1C;AAEA,EAAA,OAAO,MAAA;AACT;AAE0B,uBAAA;AACA,uBAAA;;;ACzOnB,SAAS,6BAAA,CAA8B;AAAA,EAC5C,QAAA,EAAU,aAAA;AAAA,EACV,QAAQ,WAAA;AACV,CAAA,EAG0B;AACxB,EAAA,MAAM,QAAA,GAAW,iBAAA,CAAkB,KAAA,CAAM,aAAa,CAAA;AACtD,EAAA,OAAO,mBAAA,CAAoB,QAAA,CAAS,GAAA,CAAI,EAAA,EAAI,KAAK,CAAA;AACnD;AAmBA,SAAS,mBAAA,CAAoB,QAAgB,KAAA,EAAsC;AACjF,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,mBAAA,CAAoB,SAAS,CAAA;AACpD,EAAA,MAAM,UAAA,GAAa;AAAA,IACjB,GAAG,UAAA,CAAW,MAAA,CAAO,EAAE,MAAA,EAAQ,OAAO,CAAA;AAAA,IACtC,GAAA,EAAA,OAAA;AAAA,IACA,GAAA,EAAK,SAAA;AAAA,IACL,GAAA,EAAK,KAAA;AAAA,IACL,GAAA,EAAK,KAAA;AAAA,IACL,GAAA,EAAK;AAAA,GACP;AACA,EAAA,MAAM,mBAAA,GAAsB,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,UAAU,CAAA,EAAG,MAAM,CAAA,CAAE,QAAA,CAAS,WAAW,CAAA;AAChG,EAAA,MAAM,kBAAkB,8BAAA,CAA+B;AAAA,IACrD,MAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,IAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAAA,EAClE;AAEA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,aAAA,CAAc,KAAA,CAAM,EAAE,IAAA,EAAM,CAAC,yBAAA,CAA0B,eAAe,CAAC,CAAA,EAAG,CAAA;AAAA,IAChF,KAAA;AAAA,IACA,mBAAA;AAAA,IACA;AAAA,GACF;AACF;AAEA,SAAS,WAAA,GAAsB;AAC7B,EAAA,MAAM,IAAA,GAAA,qBAAW,IAAA,EAAK,EAAE,aAAY,CAAE,KAAA,CAAM,GAAG,EAAE,CAAA;AACjD,EAAA,OAAO,CAAA,QAAA,EAAW,IAAI,CAAA,CAAA,EAAI,WAAA,CAAY,CAAC,CAAA,CAAE,QAAA,CAAS,KAAK,CAAC,CAAA,CAAA;AAC1D;;;AC1DA,IAAM,CAAC,UAAU,MAAA,EAAQ,GAAG,YAAY,CAAA,GAAI,OAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA;AAEhE,eAAe,IAAA,GAAsB;AACnC,EAAA,IAAI;AACF,IAAA,MAAM,UAAA,CAAW,OAAA,EAAS,cAAA,CAAe,YAAY,CAAC,CAAA;AAAA,EACxD,SAAS,KAAA,EAAO;AACd,IAAA,UAAA,CAAW,KAAK,CAAA;AAChB,IAAA,OAAA,CAAQ,QAAA,GAAW,CAAA;AAAA,EACrB;AACF;AAEA,KAAK,IAAA,EAAK;AAEV,eAAe,UAAA,CAAW,aAAqB,IAAA,EAAsC;AACnF,EAAA,QAAQ,WAAA;AAAa,IACnB,KAAK,MAAA;AACH,MAAA,MAAM,cAAc,IAAI,CAAA;AACxB,MAAA;AAAA,IACF,KAAK,UAAA;AACH,MAAA,MAAM,WAAA,CAAY,MAAM,KAAK,CAAA;AAC7B,MAAA;AAAA,IACF,KAAK,aAAA;AACH,MAAA,MAAM,WAAA,CAAY,MAAM,IAAI,CAAA;AAC5B,MAAA;AAAA,IACF,KAAK,OAAA;AACH,MAAA,MAAM,SAAS,IAAI,CAAA;AACnB,MAAA;AAAA,IACF,KAAK,SAAA;AACH,MAAA,MAAM,WAAW,IAAI,CAAA;AACrB,MAAA;AAAA,IACF,KAAK,QAAA;AACH,MAAA,MAAM,YAAY,IAAI,CAAA;AACtB,MAAA;AAAA,IACF,KAAK,MAAA;AACH,MAAA,MAAM,WAAW,IAAI,CAAA;AACrB,MAAA;AAAA,IACF,KAAK,MAAA;AAAA,IACL,KAAK,QAAA;AAAA,IACL,KAAK,IAAA;AACH,MAAA,SAAA,EAAU;AACV,MAAA;AAAA,IACF;AACE,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,iBAAA,EAAoB,WAAW,CAAA,sBAAA,CAAwB,CAAA;AAAA;AAE7E;AAEA,eAAe,cAAc,IAAA,EAAsC;AACjE,EAAA,MAAM,iBAAA,GAAoB,iBAAA,CAAkB,IAAA,EAAM,CAAA,EAAG,mCAAmC,CAAA;AACxF,EAAA,MAAM,SAAA,GAAY,QAAQ,iBAAiB,CAAA;AAC3C,EAAA,MAAM,WAAW,MAAM,OAAA,CAAQ,SAAS,CAAA,CAAE,KAAA,CAAM,CAAC,KAAA,KAAmB;AAClE,IAAA,IAAI,WAAA,CAAY,KAAA,EAAO,QAAQ,CAAA,EAAG,OAAO,IAAA;AACzC,IAAA,MAAM,KAAA;AAAA,EACR,CAAC,CAAA;AAED,EAAA,IAAI,QAAA,IAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACnC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,wBAAA,EAA2B,SAAS,CAAA,CAAE,CAAA;AAAA,EACxD;AAEA,EAAA,MAAM,WAAA,GAAc,iBAAA,CAAkB,QAAA,CAAS,SAAS,CAAC,CAAA;AACzD,EAAA,MAAM,OAAO,gBAAA,CAAiB,IAAA,EAAM,MAAM,CAAA,IAAK,cAAc,WAAW,CAAA;AACxE,EAAA,MAAM,UAAA,GAAa,eAAA;AAAA,IACjB,gBAAA,CAAiB,IAAA,EAAM,aAAa,CAAA,IAAK;AAAA,GAC3C;AACA,EAAA,MAAM,KAAA,CAAM,SAAA,EAAW,EAAE,SAAA,EAAW,MAAM,CAAA;AAC1C,EAAA,MAAM,QAAQ,GAAA,CAAI;AAAA,IAChB,SAAA;AAAA,MACE,OAAA,CAAQ,WAAW,cAAc,CAAA;AAAA,MACjC,CAAA,EAAG,KAAK,SAAA,CAAU,oBAAA,CAAqB,WAAW,CAAA,EAAG,IAAA,EAAM,CAAC,CAAC;AAAA,CAAA;AAAA,MAC7D;AAAA,KACF;AAAA,IACA,SAAA;AAAA,MACE,OAAA,CAAQ,WAAW,eAAe,CAAA;AAAA,MAClC,6BAAA,CAA8B;AAAA,QAC5B,IAAA;AAAA,QACA;AAAA,OACD,CAAA;AAAA,MACD;AAAA,KACF;AAAA,IACA,SAAA,CAAU,QAAQ,SAAA,EAAW,aAAa,GAAG,0BAAA,CAA2B,WAAW,GAAG,MAAM,CAAA;AAAA,IAC5F,SAAA,CAAU,QAAQ,SAAA,EAAW,cAAc,GAAG,wBAAA,CAAyB,UAAU,GAAG,MAAM,CAAA;AAAA,IAC1F,UAAU,OAAA,CAAQ,SAAA,EAAW,YAAY,CAAA,EAAG,8BAA8B,MAAM;AAAA,GACjF,CAAA;AAED,EAAA,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,CAAA,QAAA,EAAW,IAAI,OAAO,SAAS;AAAA,CAAI,CAAA;AACxD,EAAA,OAAA,CAAQ,MAAA,CAAO,KAAA;AAAA,IACb;AAAA,GACF;AACF;AAEA,eAAe,WAAA,CAAY,MAAuB,WAAA,EAAqC;AACrF,EAAA,MAAM,SAAA,GAAY,iBAAA,CAAkB,IAAA,EAAM,CAAA,EAAG,8CAA8C,CAAA;AAC3F,EAAA,MAAM,UAAA,GAAa,MAAM,cAAA,CAAe,SAAS,CAAA;AACjD,EAAA,MAAM,MAAA,GAAS,kBAAkB,UAAA,EAAY;AAAA,IAC3C,aAAA,EAAe,WAAA,IAAe,IAAA,CAAK,OAAA,CAAQ,IAAI,QAAQ;AAAA,GACxD,CAAA;AAED,EAAA,sBAAA,CAAuB,MAAM,CAAA;AAC7B,EAAA,IAAI,CAAC,MAAA,CAAO,EAAA,EAAI,OAAA,CAAQ,QAAA,GAAW,CAAA;AACrC;AAEA,eAAe,SAAS,IAAA,EAAsC;AAC5D,EAAA,MAAM,SAAA,GAAY,iBAAA,CAAkB,IAAA,EAAM,CAAA,EAAG,8CAA8C,CAAA;AAC3F,EAAA,MAAM,kBAAkB,OAAA,CAAQ,gBAAA,CAAiB,IAAA,EAAM,KAAK,KAAK,MAAM,CAAA;AACvE,EAAA,MAAM,UAAA,GAAa,MAAM,cAAA,CAAe,SAAS,CAAA;AACjD,EAAA,MAAM,SAAA,GAAY,kBAAkB,UAAU,CAAA;AAE9C,EAAA,MAAM,KAAA,CAAM,eAAA,EAAiB,EAAE,SAAA,EAAW,MAAM,CAAA;AAChD,EAAA,MAAM,QAAQ,GAAA,CAAI;AAAA,IAChB,UAAU,OAAA,CAAQ,eAAA,EAAiB,iBAAiB,CAAA,EAAG,SAAA,CAAU,gBAAgB,MAAM,CAAA;AAAA,IACvF,SAAA;AAAA,MACE,OAAA,CAAQ,iBAAiB,4BAA4B,CAAA;AAAA,MACrD,GAAG,IAAA,CAAK,SAAA,CAAU,UAAU,gBAAA,EAAkB,IAAA,EAAM,CAAC,CAAC;AAAA,CAAA;AAAA,MACtD;AAAA;AACF,GACD,CAAA;AAED,EAAA,OAAA,CAAQ,MAAA,CAAO,KAAA;AAAA,IACb,CAAA,yBAAA,EAA4B,iBAAA;AAAA,MAC1B,SAAA,CAAU,WAAW,GAAA,CAAI,IAAA;AAAA,MACzB,UAAU,UAAA,CAAW;AAAA,KACtB;AAAA;AAAA,GACH;AACA,EAAA,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,eAAe;AAAA,CAAI,CAAA;AAC7C;AAEA,eAAe,WAAW,IAAA,EAAsC;AAC9D,EAAA,MAAM,SAAA,GAAY,iBAAA,CAAkB,IAAA,EAAM,CAAA,EAAG,8CAA8C,CAAA;AAC3F,EAAA,MAAM,SAAA,GAAY,iBAAA,CAAkB,MAAM,cAAA,CAAe,SAAS,CAAC,CAAA;AACnE,EAAA,MAAM,aAAa,SAAA,CAAU,UAAA;AAC7B,EAAA,MAAM,UAAU,UAAA,CAAW,OAAA;AAE3B,EAAA,OAAA,CAAQ,MAAA,CAAO,KAAA;AAAA,IACb,GAAG,IAAA,CAAK,SAAA;AAAA,MACN;AAAA,QACE,cAAc,UAAA,CAAW,YAAA,CAAa,IAAI,CAAC,UAAA,KAAe,WAAW,GAAG,CAAA;AAAA,QACxE,UAAA,EAAY,WAAW,GAAA,CAAI,UAAA;AAAA,QAC3B,UAAA,EAAY,WAAW,UAAA,CAAW,IAAA;AAAA,QAClC,eAAe,UAAA,CAAW,aAAA;AAAA,QAC1B,MAAM,iBAAA,CAAkB,UAAA,CAAW,GAAA,CAAI,IAAA,EAAM,WAAW,aAAa,CAAA;AAAA,QACrE,aAAa,UAAA,CAAW,WAAA;AAAA,QACxB,SACE,OAAA,CAAQ,IAAA,KAAS,WACb,EAAE,OAAA,EAAS,QAAQ,OAAA,EAAS,IAAA,EAAM,OAAA,CAAQ,IAAA,EAAM,SAAS,OAAA,CAAQ,OAAA,KACjE,EAAE,IAAA,EAAM,QAAQ,IAAA;AAAK,OAC7B;AAAA,MACA,IAAA;AAAA,MACA;AAAA,KACD;AAAA;AAAA,GACH;AACF;AAEA,eAAe,YAAY,IAAA,EAAsC;AAC/D,EAAA,MAAM,MAAA,GAAS,GAAG,IAAA,CAAK,SAAA,CAAU,+BAA8B,EAAG,IAAA,EAAM,CAAC,CAAC;AAAA,CAAA;AAC1E,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,WAAA,CAAY,CAAC,CAAA;AAErC,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,OAAA,CAAQ,MAAA,CAAO,MAAM,MAAM,CAAA;AAC3B,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,QAAA,GAAW,QAAQ,UAAU,CAAA;AACnC,EAAA,MAAM,KAAA,CAAM,QAAQ,QAAA,EAAU,IAAI,GAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AACxD,EAAA,MAAM,SAAA,CAAU,QAAA,EAAU,MAAA,EAAQ,MAAM,CAAA;AACxC,EAAA,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,QAAQ;AAAA,CAAI,CAAA;AACtC;AAEA,eAAe,WAAW,IAAA,EAAsC;AAC9D,EAAA,MAAM,eAAe,OAAA,CAAQ,IAAA,CAAK,WAAA,CAAY,CAAC,KAAK,qBAAqB,CAAA;AACzE,EAAA,MAAM,QAAA,GAAW,iBAAA,CAAkB,KAAA,CAAM,IAAA,CAAK,KAAA,CAAM,MAAM,QAAA,CAAS,YAAA,EAAc,MAAM,CAAC,CAAC,CAAA;AAEzF,EAAA,MAAM,WAAW,6BAAA,CAA8B;AAAA,IAC7C,QAAA;AAAA,IACA,GAAI,gBAAA,CAAiB,IAAA,EAAM,QAAQ,CAAA,GAAI,EAAE,KAAA,EAAO,gBAAA,CAAiB,IAAA,EAAM,QAAQ,CAAA,EAAG,GAAI;AAAC,GACxF,CAAA;AAED,EAAA,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,CAAA,yBAAA,EAA4B,QAAA,CAAS,KAAK;AAAA,CAAI,CAAA;AACnE,EAAA,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,CAAA,wCAAA,EAA2C,QAAA,CAAS,mBAAmB;AAAA,CAAI,CAAA;AAChG,EAAA,OAAA,CAAQ,OAAO,KAAA,CAAM,CAAA,aAAA,EAAgB,sBAAA,CAAuB,QAAA,CAAS,IAAI,CAAC;AAAA,CAAI,CAAA;AAChF;AAEA,eAAe,eAAe,IAAA,EAAgC;AAC5D,EAAA,MAAM,QAAA,GAAW,QAAQ,IAAI,CAAA;AAE7B,EAAA,IAAI,OAAA,CAAQ,QAAQ,CAAA,CAAE,WAAA,OAAkB,OAAA,EAAS;AAC/C,IAAA,OAAO,KAAK,KAAA,CAAM,MAAM,QAAA,CAAS,QAAA,EAAU,MAAM,CAAC,CAAA;AAAA,EACpD;AAEA,EAAA,MAAM,MAAA,GAAU,MAAM,OAAO,CAAA,EAAG,aAAA,CAAc,QAAQ,CAAA,CAAE,IAAI,CAAA,GAAA,EAAM,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA,CAAA;AAI5E,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,OAAA,IAAW,MAAA,CAAO,UAAA;AAE5C,EAAA,IAAI,eAAe,MAAA,EAAW;AAC5B,IAAA,MAAM,IAAI,MAAM,oEAAoE,CAAA;AAAA,EACtF;AAEA,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,uBAAuB,MAAA,EAAoD;AAClF,EAAA,KAAA,MAAW,KAAA,IAAS,OAAO,MAAA,EAAQ;AACjC,IAAA,MAAM,SACJ,KAAA,CAAM,MAAA,KAAA,QAAA,gBACF,MAAA,GACA,KAAA,CAAM,mCACJ,MAAA,GACA,MAAA;AACR,IAAA,OAAA,CAAQ,OAAO,KAAA,CAAM,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,EAAE;AAAA,CAAI,CAAA;AAAA,EAChD;AAEA,EAAA,KAAA,MAAW,KAAA,IAAS,OAAO,MAAA,EAAQ;AACjC,IAAA,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,KAAA,CAAM,IAAI,IAAI,KAAA,CAAM,IAAI,CAAA,EAAA,EAAK,KAAA,CAAM,OAAO;AAAA,CAAI,CAAA;AAAA,EACxE;AACF;AAEA,SAAS,eAAe,MAAA,EAAmC;AACzD,EAAA,MAAM,OAAA,uBAAc,GAAA,EAA2B;AAC/C,EAAA,MAAM,cAAwB,EAAC;AAE/B,EAAA,KAAA,IAAS,QAAQ,CAAA,EAAG,KAAA,GAAQ,MAAA,CAAO,MAAA,EAAQ,SAAS,CAAA,EAAG;AACrD,IAAA,MAAM,KAAA,GAAQ,OAAO,KAAK,CAAA;AAE1B,IAAA,IAAI,CAAC,KAAA,CAAM,UAAA,CAAW,IAAI,CAAA,EAAG;AAC3B,MAAA,WAAA,CAAY,KAAK,KAAK,CAAA;AACtB,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,GAAA,GAAM,KAAA,CAAM,KAAA,CAAM,CAAC,CAAA;AACzB,IAAA,MAAM,IAAA,GAAO,MAAA,CAAO,KAAA,GAAQ,CAAC,CAAA;AAE7B,IAAA,IAAI,CAAC,IAAA,IAAQ,IAAA,CAAK,UAAA,CAAW,IAAI,CAAA,EAAG;AAClC,MAAA,OAAA,CAAQ,GAAA,CAAI,KAAK,IAAI,CAAA;AACrB,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,CAAQ,GAAA,CAAI,KAAK,IAAI,CAAA;AACrB,IAAA,KAAA,IAAS,CAAA;AAAA,EACX;AAEA,EAAA,OAAO,EAAE,SAAS,WAAA,EAAY;AAChC;AAEA,SAAS,gBAAA,CAAiB,MAAuB,GAAA,EAA4B;AAC3E,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,GAAG,CAAA;AAClC,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,IAAA;AAC7C;AAEA,SAAS,iBAAA,CAAkB,IAAA,EAAuB,KAAA,EAAe,OAAA,EAAyB;AACxF,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,WAAA,CAAY,KAAK,CAAA;AACpC,EAAA,IAAI,CAAC,KAAA,EAAO,MAAM,IAAI,MAAM,OAAO,CAAA;AACnC,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,QAAQ,KAAA,EAAuB;AACtC,EAAA,OAAO,KAAA,CACJ,UAAU,MAAM,CAAA,CAChB,QAAQ,kBAAA,EAAoB,EAAE,EAC9B,WAAA,EAAY,CACZ,QAAQ,aAAA,EAAe,GAAG,EAC1B,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAA,CACtB,KAAA,CAAM,GAAG,EAAE,CAAA;AAChB;AAEA,SAAS,kBAAkB,KAAA,EAAuB;AAChD,EAAA,MAAM,IAAA,GAAO,QAAQ,KAAK,CAAA;AAC1B,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,MAAM,IAAI,MAAM,wEAAwE,CAAA;AAAA,EAC1F;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,gBAAgB,KAAA,EAAuB;AAC9C,EAAA,MAAM,MAAA,GAAS,yBAAA,CAA0B,SAAA,CAAU,KAAK,CAAA;AACxD,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,MAAM,IAAI,MAAM,qEAAqE,CAAA;AAAA,EACvF;AACA,EAAA,OAAO,MAAA,CAAO,IAAA;AAChB;AAEA,SAAS,cAAc,KAAA,EAAuB;AAC5C,EAAA,OAAO,KAAA,CACJ,KAAA,CAAM,GAAG,CAAA,CACT,MAAA,CAAO,OAAO,CAAA,CACd,GAAA,CAAI,CAAC,IAAA,KAAS,CAAA,EAAG,IAAA,CAAK,CAAC,CAAA,EAAG,WAAA,EAAY,IAAK,EAAE,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA,CAAE,CAAA,CAC/D,IAAA,CAAK,GAAG,CAAA;AACb;AAEA,SAAS,iBAAA,CAAkB,OAA+B,MAAA,EAAwB;AAChF,EAAA,OAAO,KAAA,CAAM,MAAM,CAAA,IAAK,KAAA,CAAM,EAAA,IAAM,OAAO,MAAA,CAAO,KAAK,CAAA,CAAE,CAAC,CAAA,IAAK,EAAA;AACjE;AAEA,SAAS,qBAAqB,WAAA,EAA8C;AAC1E,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,SAAS,WAAW,CAAA,CAAA;AAAA,IAC1B,OAAA,EAAS,OAAA;AAAA,IACT,OAAA,EAAS,IAAA;AAAA,IACT,IAAA,EAAM,QAAA;AAAA,IACN,OAAA,EAAS;AAAA,MACP,KAAA,EAAO,8CAAA;AAAA,MACP,WAAA,EAAa,uCAAA;AAAA,MACb,GAAA,EAAK,kCAAA;AAAA,MACL,IAAA,EAAM,sCAAA;AAAA,MACN,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,gBAAA,EAAkB;AAAA;AACpB,GACF;AACF;AAEA,SAAS,8BAA8B,KAAA,EAAqD;AAC1F,EAAA,MAAM,UAAU,IAAI,GAAA,CAAI,0BAA0B,KAAA,CAAM,UAAU,EAAE,QAAA,EAAS;AAC7E,EAAA,OAAO,CAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,QAAA,EAMC,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,IAAI,CAAC,CAAA;AAAA;AAAA,aAAA,EAErB,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,UAAU,CAAC,CAAA;AAAA,aAAA,EAChC,IAAA,CAAK,SAAA,CAAU,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,CAAA;AAKtC;AAEA,SAAS,2BAA2B,WAAA,EAA6B;AAC/D,EAAA,OAAO,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAA,EA0FgB,IAAA,CAAK,SAAA,CAAU,CAAA,EAAG,WAAW,CAAA;AAAA,CAAyB,CAAC,CAAA;AAAA;AAAA,CAAA;AAGhF;AAEA,SAAS,yBAAyB,UAAA,EAA4B;AAC5D,EAAA,OAAO,CAAA;AAAA,KAAA,EACF,IAAI,GAAA,CAAI,UAAU,CAAA,CAAE,QAAQ,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAMzC;AAEA,SAAS,SAAA,GAAkB;AACzB,EAAA,OAAA,CAAQ,OAAO,KAAA,CAAM,CAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAUtB,CAAA;AACD;AAEA,SAAS,WAAW,KAAA,EAAsB;AACxC,EAAA,IAAI,iBAAiB,mBAAA,EAAqB;AACxC,IAAA,KAAA,MAAW,KAAA,IAAS,MAAM,MAAA,EAAQ;AAChC,MAAA,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,KAAA,CAAM,IAAI,IAAI,KAAA,CAAM,IAAI,CAAA,EAAA,EAAK,KAAA,CAAM,OAAO;AAAA,CAAI,CAAA;AAAA,IACxE;AACA,IAAA;AAAA,EACF;AAEA,EAAA,OAAA,CAAQ,MAAA,CAAO,MAAM,CAAA,EAAG,KAAA,YAAiB,QAAQ,KAAA,CAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC;AAAA,CAAI,CAAA;AACpF;AAEA,SAAS,WAAA,CAAY,OAAgB,IAAA,EAAuB;AAC1D,EAAA,OAAO,KAAA,KAAU,QAAQ,OAAO,KAAA,KAAU,YAAY,MAAA,IAAU,KAAA,IAAS,MAAM,IAAA,KAAS,IAAA;AAC1F","file":"cli.js","sourcesContent":["import { z } from \"zod\";\n\nexport const appProtocolVersion = \"2026-07-19\" as const;\nexport const appDefinitionVersion = \"2026-07\" as const;\nexport const appManifestVersion = \"2026-07\" as const;\nexport const appSettingsSchemaVersion = 1 as const;\nexport const appPoliciesSchemaVersion = 1 as const;\n\nexport enum AppRuntimeHost {\n DECLARATIVE = \"DECLARATIVE\",\n REMOTE = \"REMOTE\"\n}\n\nexport enum AppConnectionType {\n NONE = \"NONE\",\n API_KEY = \"API_KEY\",\n OAUTH2 = \"OAUTH2\"\n}\n\nexport enum AppCategoryId {\n COMMUNICATION = \"communication\",\n PRODUCTIVITY = \"productivity\",\n CUSTOMER_RELATIONSHIPS = \"customer-relationships\",\n PEOPLE_AND_TEAMS = \"people-and-teams\",\n MARKETING_AND_CONTENT = \"marketing-and-content\",\n COMMERCE_AND_PAYMENTS = \"commerce-and-payments\",\n FINANCE = \"finance\",\n LEGAL_AND_COMPLIANCE = \"legal-and-compliance\",\n OPERATIONS_AND_LOGISTICS = \"operations-and-logistics\",\n DATA_AND_KNOWLEDGE = \"data-and-knowledge\",\n DEVELOPER_AND_IT = \"developer-and-it\",\n SERVICES_AND_BOOKINGS = \"services-and-bookings\",\n PERSONAL_AND_LIFESTYLE = \"personal-and-lifestyle\",\n OTHER = \"other\"\n}\n\nexport enum AppPermissionSensitivity {\n STANDARD = \"STANDARD\",\n SENSITIVE = \"SENSITIVE\"\n}\n\nexport enum AppRiskLevel {\n LOW = \"LOW\",\n MEDIUM = \"MEDIUM\",\n HIGH = \"HIGH\",\n CRITICAL = \"CRITICAL\"\n}\n\nexport enum AppSideEffectType {\n READ_ONLY = \"READ_ONLY\",\n PROPOSAL_ONLY = \"PROPOSAL_ONLY\",\n WRITE_EXTERNAL_STATE = \"WRITE_EXTERNAL_STATE\",\n SEND_MESSAGE = \"SEND_MESSAGE\",\n SHARE_DATA = \"SHARE_DATA\",\n FINANCIAL_ACTION = \"FINANCIAL_ACTION\",\n DESTRUCTIVE_ACTION = \"DESTRUCTIVE_ACTION\"\n}\n\nexport enum AppApprovalMode {\n NOT_REQUIRED = \"NOT_REQUIRED\",\n POLICY = \"POLICY\",\n ALWAYS = \"ALWAYS\"\n}\n\nexport enum AppPolicyEffect {\n ALLOW = \"ALLOW\",\n REQUIRE_APPROVAL = \"REQUIRE_APPROVAL\",\n DENY = \"DENY\"\n}\n\nexport enum AppOrigin {\n PUBLIC_GUEST = \"PUBLIC_GUEST\",\n PUBLIC_VERIFIED_EXTERNAL = \"PUBLIC_VERIFIED_EXTERNAL\",\n PUBLIC_AUTHENTICATED = \"PUBLIC_AUTHENTICATED\",\n AGENT_TO_AGENT = \"AGENT_TO_AGENT\",\n SYSTEM_GENERATED = \"SYSTEM_GENERATED\"\n}\n\nexport enum AppIntentMode {\n ANSWER = \"ANSWER\",\n COLLECT = \"COLLECT\",\n EXECUTE = \"EXECUTE\"\n}\n\nexport enum AppKnowledgeAudience {\n PUBLIC = \"PUBLIC\",\n VERIFIED_REQUESTER = \"VERIFIED_REQUESTER\",\n OWNER = \"OWNER\"\n}\n\nexport enum AppKnowledgeSourceType {\n RUNTIME = \"RUNTIME\",\n SETTING = \"SETTING\"\n}\n\nexport enum AppContactIdentityAttribute {\n DISPLAY_NAME = \"DISPLAY_NAME\",\n EMAIL = \"EMAIL\"\n}\n\nexport const appContactIdentityAttributeJsonSchemaKey =\n \"x-vekil-contact-identity-attribute\" as const;\n\nexport enum AppFieldType {\n PERSON_NAME = \"PERSON_NAME\",\n TEXT = \"TEXT\",\n TEXTAREA = \"TEXTAREA\",\n BOOLEAN = \"BOOLEAN\",\n NUMBER = \"NUMBER\",\n INTEGER = \"INTEGER\",\n SELECT = \"SELECT\",\n MULTI_SELECT = \"MULTI_SELECT\",\n DATE = \"DATE\",\n DATETIME = \"DATETIME\",\n TIME = \"TIME\",\n DURATION = \"DURATION\",\n TIMEZONE = \"TIMEZONE\",\n WEEKLY_SCHEDULE = \"WEEKLY_SCHEDULE\",\n EMAIL = \"EMAIL\",\n PHONE = \"PHONE\",\n URL = \"URL\",\n TEXT_LIST = \"TEXT_LIST\",\n OBJECT_LIST = \"OBJECT_LIST\",\n NATURAL_LANGUAGE_RULES = \"NATURAL_LANGUAGE_RULES\"\n}\n\nexport enum AppOutcomeStatus {\n SUCCESS = \"SUCCESS\",\n ERROR = \"ERROR\"\n}\n\nexport enum AppHttpMethod {\n GET = \"GET\",\n POST = \"POST\",\n PUT = \"PUT\",\n PATCH = \"PATCH\",\n DELETE = \"DELETE\"\n}\n\nexport enum AppValueSource {\n LITERAL = \"LITERAL\",\n INPUT = \"INPUT\",\n CONTEXT = \"CONTEXT\",\n SETTING = \"SETTING\",\n SECRET = \"SECRET\",\n STEP_OUTPUT = \"STEP_OUTPUT\"\n}\n\nexport enum AppWorkflowStepType {\n HTTP_REQUEST = \"HTTP_REQUEST\",\n TRANSFORM = \"TRANSFORM\",\n CONDITION = \"CONDITION\",\n TEMPLATE = \"TEMPLATE\",\n EMIT_ARTIFACT = \"EMIT_ARTIFACT\",\n EMIT_BUBBLE = \"EMIT_BUBBLE\",\n EMIT_RESULT = \"EMIT_RESULT\"\n}\n\nexport enum AppPlanStatus {\n READY = \"READY\",\n NEEDS_CLARIFICATION = \"NEEDS_CLARIFICATION\",\n REJECTED = \"REJECTED\"\n}\n\nexport enum AppExecutionStatus {\n SUCCEEDED = \"SUCCEEDED\",\n FAILED = \"FAILED\"\n}\n\nexport enum AppRuntimeHealthStatus {\n HEALTHY = \"HEALTHY\",\n DEGRADED = \"DEGRADED\",\n UNHEALTHY = \"UNHEALTHY\"\n}\n\nexport const appRuntimeHostSchema = z.enum([AppRuntimeHost.DECLARATIVE, AppRuntimeHost.REMOTE]);\n\nexport const appConnectionTypeSchema = z.enum([\n AppConnectionType.NONE,\n AppConnectionType.API_KEY,\n AppConnectionType.OAUTH2\n]);\n\nexport const appCategoryIdSchema = z.enum(AppCategoryId);\n\nexport const appPermissionSensitivitySchema = z.enum([\n AppPermissionSensitivity.STANDARD,\n AppPermissionSensitivity.SENSITIVE\n]);\n\nexport const appRiskLevelSchema = z.enum([\n AppRiskLevel.LOW,\n AppRiskLevel.MEDIUM,\n AppRiskLevel.HIGH,\n AppRiskLevel.CRITICAL\n]);\n\nexport const appSideEffectTypeSchema = z.enum([\n AppSideEffectType.READ_ONLY,\n AppSideEffectType.PROPOSAL_ONLY,\n AppSideEffectType.WRITE_EXTERNAL_STATE,\n AppSideEffectType.SEND_MESSAGE,\n AppSideEffectType.SHARE_DATA,\n AppSideEffectType.FINANCIAL_ACTION,\n AppSideEffectType.DESTRUCTIVE_ACTION\n]);\n\nexport const appApprovalModeSchema = z.enum([\n AppApprovalMode.NOT_REQUIRED,\n AppApprovalMode.POLICY,\n AppApprovalMode.ALWAYS\n]);\n\nexport const appPolicyEffectSchema = z.enum([\n AppPolicyEffect.ALLOW,\n AppPolicyEffect.REQUIRE_APPROVAL,\n AppPolicyEffect.DENY\n]);\n\nexport const appOriginSchema = z.enum([\n AppOrigin.PUBLIC_GUEST,\n AppOrigin.PUBLIC_VERIFIED_EXTERNAL,\n AppOrigin.PUBLIC_AUTHENTICATED,\n AppOrigin.AGENT_TO_AGENT,\n AppOrigin.SYSTEM_GENERATED\n]);\n\nexport const appIntentModeSchema = z.enum([\n AppIntentMode.ANSWER,\n AppIntentMode.COLLECT,\n AppIntentMode.EXECUTE\n]);\n\nexport const appKnowledgeAudienceSchema = z.enum([\n AppKnowledgeAudience.PUBLIC,\n AppKnowledgeAudience.VERIFIED_REQUESTER,\n AppKnowledgeAudience.OWNER\n]);\n\nexport const appKnowledgeSourceTypeSchema = z.enum([\n AppKnowledgeSourceType.RUNTIME,\n AppKnowledgeSourceType.SETTING\n]);\n\nexport const appContactIdentityAttributeSchema = z.enum([\n AppContactIdentityAttribute.DISPLAY_NAME,\n AppContactIdentityAttribute.EMAIL\n]);\n\nexport const appFieldTypeSchema = z.enum([\n AppFieldType.PERSON_NAME,\n AppFieldType.TEXT,\n AppFieldType.TEXTAREA,\n AppFieldType.BOOLEAN,\n AppFieldType.NUMBER,\n AppFieldType.INTEGER,\n AppFieldType.SELECT,\n AppFieldType.MULTI_SELECT,\n AppFieldType.DATE,\n AppFieldType.DATETIME,\n AppFieldType.TIME,\n AppFieldType.DURATION,\n AppFieldType.TIMEZONE,\n AppFieldType.WEEKLY_SCHEDULE,\n AppFieldType.EMAIL,\n AppFieldType.PHONE,\n AppFieldType.URL,\n AppFieldType.TEXT_LIST,\n AppFieldType.OBJECT_LIST,\n AppFieldType.NATURAL_LANGUAGE_RULES\n]);\n\nexport const appOutcomeStatusSchema = z.enum([AppOutcomeStatus.SUCCESS, AppOutcomeStatus.ERROR]);\n\nexport const appHttpMethodSchema = z.enum([\n AppHttpMethod.GET,\n AppHttpMethod.POST,\n AppHttpMethod.PUT,\n AppHttpMethod.PATCH,\n AppHttpMethod.DELETE\n]);\n\nexport const appPlanStatusSchema = z.enum([\n AppPlanStatus.READY,\n AppPlanStatus.NEEDS_CLARIFICATION,\n AppPlanStatus.REJECTED\n]);\n\nexport const appExecutionStatusSchema = z.enum([\n AppExecutionStatus.SUCCEEDED,\n AppExecutionStatus.FAILED\n]);\n\nexport const appRuntimeHealthStatusSchema = z.enum([\n AppRuntimeHealthStatus.HEALTHY,\n AppRuntimeHealthStatus.DEGRADED,\n AppRuntimeHealthStatus.UNHEALTHY\n]);\n\nexport const appIdSchema = z\n .string()\n .min(2)\n .max(64)\n .regex(/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/);\n\nexport const appSlugMaxLength = 64;\nexport const reservedAppSlugs = [\"build\", \"installed\"] as const;\n\nexport const appSlugSchema = z\n .string()\n .min(2)\n .max(appSlugMaxLength)\n .regex(/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/)\n .refine((value) => !(reservedAppSlugs as readonly string[]).includes(value), {\n message: \"This App slug is reserved by Vekil.\"\n });\n\nexport const appLocalKeySchema = z\n .string()\n .min(1)\n .max(80)\n .regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/);\n\nexport const appNamespacedIdSchema = z\n .string()\n .min(3)\n .max(160)\n .regex(/^[a-z][a-z0-9-]*\\.[a-z0-9][a-z0-9._-]*$/);\n\nexport const localeCodeSchema = z\n .string()\n .min(2)\n .max(35)\n .regex(/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$/);\n\nexport const semanticVersionSchema = z\n .string()\n .regex(/^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-[0-9A-Za-z.-]+)?$/);\n\nexport const isoDateTimeSchema = z.string().datetime({ offset: true });\n\nexport const localizedTextSchema = z.record(localeCodeSchema, z.string().min(1).max(4_000));\n\nexport const localizedExamplesSchema = z.record(\n localeCodeSchema,\n z.array(z.string().min(1).max(600)).max(32)\n);\n\nexport const localeKeySchema = z\n .string()\n .min(3)\n .max(220)\n .regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)+$/);\n\nexport const jsonObjectSchema = z.record(z.string(), z.json());\nexport const jsonSchemaSchema = z.record(z.string(), z.json());\n\nexport const jsonPathSchema = z\n .string()\n .min(1)\n .max(240)\n .regex(/^[A-Za-z0-9_-]+(?:\\.[A-Za-z0-9_-]+)*$/);\n\nexport const httpsOrLocalhostUrlSchema = z\n .string()\n .url()\n .refine((value) => {\n const url = new URL(value);\n const isLocalhost = url.hostname === \"localhost\" || url.hostname === \"127.0.0.1\";\n\n return url.protocol === \"https:\" || (isLocalhost && url.protocol === \"http:\");\n }, \"URL must use HTTPS outside localhost\");\n\nexport const httpsUrlSchema = z\n .string()\n .url()\n .refine((value) => value.startsWith(\"https://\"), \"URL must use HTTPS\");\n\nexport const runtimeSecretReferenceSchema = z\n .string()\n .min(3)\n .max(120)\n .regex(/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)+$/);\n\nexport type LocalizedText = z.infer<typeof localizedTextSchema>;\nexport type LocalizedExamples = z.infer<typeof localizedExamplesSchema>;\nexport type JsonObject = z.infer<typeof jsonObjectSchema>;\n","import { z } from \"zod\";\nimport {\n appIdSchema,\n appLocalKeySchema,\n appSlugSchema,\n httpsUrlSchema,\n semanticVersionSchema\n} from \"./common\";\n\nexport const appCompilationDeveloperSchema = z.strictObject({\n id: appLocalKeySchema,\n handle: z\n .string()\n .min(2)\n .max(64)\n .regex(/^@[A-Za-z0-9_]+$/),\n name: z.string().min(1).max(100),\n websiteUrl: httpsUrlSchema.optional(),\n xProfileUrl: httpsUrlSchema.optional(),\n supportEmail: z.string().email().optional(),\n verified: z.boolean(),\n officialTeamMember: z.boolean()\n});\n\nexport const appCompilationBindingSchema = z.strictObject({\n appId: appIdSchema,\n slug: appSlugSchema,\n releaseVersion: semanticVersionSchema,\n appOfficial: z.boolean(),\n developer: appCompilationDeveloperSchema\n});\n\nexport type AppCompilationBinding = z.infer<typeof appCompilationBindingSchema>;\nexport type AppCompilationDeveloper = z.infer<typeof appCompilationDeveloperSchema>;\n","import { AppCategoryId } from \"./common\";\n\nexport interface AppCategoryDefinition {\n descriptionI18nKey: `app-categories-${AppCategoryId}-description`;\n id: AppCategoryId;\n labelI18nKey: `app-categories-${AppCategoryId}-label`;\n sortOrder: number;\n}\n\nconst APP_CATEGORY_METADATA = Object.freeze({\n [AppCategoryId.COMMUNICATION]: {\n descriptionI18nKey: \"app-categories-communication-description\",\n id: AppCategoryId.COMMUNICATION,\n labelI18nKey: \"app-categories-communication-label\",\n sortOrder: 10\n },\n [AppCategoryId.PRODUCTIVITY]: {\n descriptionI18nKey: \"app-categories-productivity-description\",\n id: AppCategoryId.PRODUCTIVITY,\n labelI18nKey: \"app-categories-productivity-label\",\n sortOrder: 20\n },\n [AppCategoryId.CUSTOMER_RELATIONSHIPS]: {\n descriptionI18nKey: \"app-categories-customer-relationships-description\",\n id: AppCategoryId.CUSTOMER_RELATIONSHIPS,\n labelI18nKey: \"app-categories-customer-relationships-label\",\n sortOrder: 30\n },\n [AppCategoryId.PEOPLE_AND_TEAMS]: {\n descriptionI18nKey: \"app-categories-people-and-teams-description\",\n id: AppCategoryId.PEOPLE_AND_TEAMS,\n labelI18nKey: \"app-categories-people-and-teams-label\",\n sortOrder: 40\n },\n [AppCategoryId.MARKETING_AND_CONTENT]: {\n descriptionI18nKey: \"app-categories-marketing-and-content-description\",\n id: AppCategoryId.MARKETING_AND_CONTENT,\n labelI18nKey: \"app-categories-marketing-and-content-label\",\n sortOrder: 50\n },\n [AppCategoryId.COMMERCE_AND_PAYMENTS]: {\n descriptionI18nKey: \"app-categories-commerce-and-payments-description\",\n id: AppCategoryId.COMMERCE_AND_PAYMENTS,\n labelI18nKey: \"app-categories-commerce-and-payments-label\",\n sortOrder: 60\n },\n [AppCategoryId.FINANCE]: {\n descriptionI18nKey: \"app-categories-finance-description\",\n id: AppCategoryId.FINANCE,\n labelI18nKey: \"app-categories-finance-label\",\n sortOrder: 70\n },\n [AppCategoryId.LEGAL_AND_COMPLIANCE]: {\n descriptionI18nKey: \"app-categories-legal-and-compliance-description\",\n id: AppCategoryId.LEGAL_AND_COMPLIANCE,\n labelI18nKey: \"app-categories-legal-and-compliance-label\",\n sortOrder: 80\n },\n [AppCategoryId.OPERATIONS_AND_LOGISTICS]: {\n descriptionI18nKey: \"app-categories-operations-and-logistics-description\",\n id: AppCategoryId.OPERATIONS_AND_LOGISTICS,\n labelI18nKey: \"app-categories-operations-and-logistics-label\",\n sortOrder: 90\n },\n [AppCategoryId.DATA_AND_KNOWLEDGE]: {\n descriptionI18nKey: \"app-categories-data-and-knowledge-description\",\n id: AppCategoryId.DATA_AND_KNOWLEDGE,\n labelI18nKey: \"app-categories-data-and-knowledge-label\",\n sortOrder: 100\n },\n [AppCategoryId.DEVELOPER_AND_IT]: {\n descriptionI18nKey: \"app-categories-developer-and-it-description\",\n id: AppCategoryId.DEVELOPER_AND_IT,\n labelI18nKey: \"app-categories-developer-and-it-label\",\n sortOrder: 110\n },\n [AppCategoryId.SERVICES_AND_BOOKINGS]: {\n descriptionI18nKey: \"app-categories-services-and-bookings-description\",\n id: AppCategoryId.SERVICES_AND_BOOKINGS,\n labelI18nKey: \"app-categories-services-and-bookings-label\",\n sortOrder: 120\n },\n [AppCategoryId.PERSONAL_AND_LIFESTYLE]: {\n descriptionI18nKey: \"app-categories-personal-and-lifestyle-description\",\n id: AppCategoryId.PERSONAL_AND_LIFESTYLE,\n labelI18nKey: \"app-categories-personal-and-lifestyle-label\",\n sortOrder: 130\n },\n [AppCategoryId.OTHER]: {\n descriptionI18nKey: \"app-categories-other-description\",\n id: AppCategoryId.OTHER,\n labelI18nKey: \"app-categories-other-label\",\n sortOrder: 999\n }\n} satisfies Record<AppCategoryId, AppCategoryDefinition>);\n\nexport const APP_CATEGORY_DEFINITIONS: readonly AppCategoryDefinition[] = Object.freeze(\n Object.values(APP_CATEGORY_METADATA).sort((left, right) => left.sortOrder - right.sortOrder)\n);\n\nexport function getAppCategoryDefinition(categoryId: AppCategoryId): AppCategoryDefinition {\n return APP_CATEGORY_METADATA[categoryId];\n}\n\nexport function isAppCategoryId(value: string): value is AppCategoryId {\n return Object.hasOwn(APP_CATEGORY_METADATA, value);\n}\n","import { z } from \"zod\";\n\nexport const appContextProtocolVersion = \"2026-01\";\n\nexport const appContextTypes = [\n \"intent-resolution\",\n \"public-capability-render\",\n \"settings-render\",\n \"action-execution\",\n \"app-review-test\",\n \"async-callback-future\",\n \"widget-render-future\"\n] as const;\n\nexport type AppContextType = (typeof appContextTypes)[number];\n\nexport const appContextOriginTypes = [\n \"public-guest\",\n \"public-verified-external\",\n \"public-authenticated\",\n \"agent-to-agent\",\n \"owner-configuring-app\",\n \"app-review-test\",\n \"system-retry\"\n] as const;\n\nexport type AppContextOriginType = (typeof appContextOriginTypes)[number];\n\nexport const appContextViewerTypes = [\n \"guest\",\n \"verified-external\",\n \"vekil-user\",\n \"source-vekil\",\n \"system\"\n] as const;\n\nexport type AppContextViewerType = (typeof appContextViewerTypes)[number];\n\nexport const appContextSensitivityLevels = [\"LOW\", \"MEDIUM\", \"HIGH\"] as const;\n\nexport type AppContextSensitivityLevel = (typeof appContextSensitivityLevels)[number];\n\nexport const appContextArtifactInputKey = \"$artifacts\";\n\nexport const appContextArtifactCardinalities = [\"ONE\", \"MANY\", \"ONE_OR_MANY\"] as const;\n\nexport type AppContextArtifactCardinality = (typeof appContextArtifactCardinalities)[number];\n\nexport const appContextArtifactVisibilityLevels = [\n \"PUBLIC_REQUESTER\",\n \"REQUESTER_PRIVATE\",\n \"OWNER_PRIVATE\",\n \"AGENT_INTERNAL\",\n \"SYSTEM_ONLY\"\n] as const;\n\nexport type AppContextArtifactVisibilityLevel = (typeof appContextArtifactVisibilityLevels)[number];\n\nexport interface AppContextArtifactProvenance {\n requestArtifactId: string;\n sensitivityLevel: AppContextSensitivityLevel;\n shareableWithApps: boolean;\n sourceActionId: string | null;\n sourceAppExecutionAttemptId: string | null;\n sourceAppExecutionId: string | null;\n sourceStepId: string;\n sourceStepKey: string;\n visibilityLevel: AppContextArtifactVisibilityLevel;\n}\n\nexport interface AppContextArtifactInput {\n artifactId: string;\n cardinality: AppContextArtifactCardinality;\n provenance: AppContextArtifactProvenance[];\n schemaVersion: number;\n value: unknown;\n}\n\nexport interface AppContextViewerContact {\n email?: string | null;\n \"email-verified\"?: boolean;\n phone?: string | null;\n \"phone-verified\"?: boolean;\n}\n\nexport interface AppContextViewer {\n type: AppContextViewerType;\n handle?: string | null;\n \"display-name\"?: string | null;\n \"profile-url\"?: string | null;\n \"verification-status\"?: string | null;\n contact?: AppContextViewerContact;\n}\n\nexport interface AppContextEnvelope {\n \"protocol-version\": typeof appContextProtocolVersion;\n \"context-id\": string;\n \"context-type\": AppContextType;\n \"issued-at\": string;\n \"expires-at\": string;\n platform: {\n name: \"vekil\";\n environment: string;\n \"protocol-version\": typeof appContextProtocolVersion;\n };\n app: {\n \"app-id\": string;\n \"app-version-id\": string;\n \"app-version\": string;\n \"developer-id\": string;\n \"runtime-type\": string;\n };\n installation: {\n \"app-installation-id\": string;\n \"target-agent-id\": string;\n status: string;\n \"runtime-status\": string;\n };\n execution: {\n \"execution-id\": string;\n \"request-id\": string;\n \"action-plan-id\": string | null;\n \"action-step-id\": string | null;\n \"idempotency-key\": string;\n attempt: number;\n };\n origin: {\n type: AppContextOriginType;\n entrypoint: string;\n \"source-url\"?: string | null;\n };\n viewer: AppContextViewer;\n \"target-vekil\": {\n handle: string | null;\n \"display-name\": string;\n \"profile-url\": string | null;\n type: string;\n timezone: string;\n };\n request: {\n id: string;\n \"intent-id\": string | null;\n status: string;\n \"natural-language-summary\": string | null;\n entities: Record<string, unknown>;\n \"missing-fields\": string[];\n locale: string;\n };\n action: {\n \"action-id\": string;\n \"capability-id\": string;\n \"risk-level\": string;\n \"side-effect\": boolean;\n };\n input: Record<string, unknown>;\n settings: Record<string, unknown>;\n \"policy-result\": {\n allowed: boolean;\n \"requires-approval\": boolean;\n \"risk-level\": string;\n constraints: Record<string, unknown>;\n redactions: string[];\n };\n \"approval-result\": {\n status: \"approved\" | \"not-required\" | \"pending\";\n \"approval-id\"?: string | null;\n \"approved-at\"?: string | null;\n \"approval-scope\"?: string;\n \"approved-action-id\"?: string;\n reason?: string;\n };\n locale: {\n \"requester-locale\": string;\n \"owner-locale\": string;\n \"app-locale\": string;\n \"response-locale\": string;\n timezone: string;\n };\n security: {\n \"signature-algorithm\": \"none\" | \"ed25519-jws-v1\";\n \"signed-fields\": string[];\n \"body-hash\"?: string | null;\n };\n}\n\nconst recordSchema = z.record(z.string(), z.unknown());\n\nexport const appContextArtifactProvenanceSchema = z.strictObject({\n requestArtifactId: z.string().min(1).max(240),\n sensitivityLevel: z.enum(appContextSensitivityLevels),\n shareableWithApps: z.boolean(),\n sourceActionId: z.string().min(1).max(240).nullable(),\n sourceAppExecutionAttemptId: z.string().min(1).max(240).nullable(),\n sourceAppExecutionId: z.string().min(1).max(240).nullable(),\n sourceStepId: z.string().min(1).max(240),\n sourceStepKey: z.string().min(1).max(240),\n visibilityLevel: z.enum(appContextArtifactVisibilityLevels)\n}) satisfies z.ZodType<AppContextArtifactProvenance>;\n\nexport const appContextArtifactInputSchema = z.strictObject({\n artifactId: z.string().min(1).max(240),\n cardinality: z.enum(appContextArtifactCardinalities),\n provenance: z.array(appContextArtifactProvenanceSchema).min(1).max(64),\n schemaVersion: z.number().int().min(1).max(1_000),\n value: z.json()\n}) satisfies z.ZodType<AppContextArtifactInput>;\n\nexport const appContextArtifactInputsSchema = z.array(appContextArtifactInputSchema).max(32);\n\nconst actionInputSchema = recordSchema.superRefine((value, context) => {\n const artifactInputs = value[appContextArtifactInputKey];\n\n if (artifactInputs === undefined) {\n return;\n }\n\n const parsed = appContextArtifactInputsSchema.safeParse(artifactInputs);\n\n if (!parsed.success) {\n context.addIssue({\n code: \"custom\",\n message: \"The App artifact input envelope is invalid.\",\n path: [appContextArtifactInputKey]\n });\n }\n});\n\nexport const appContextEnvelopeSchema = z.strictObject({\n \"protocol-version\": z.literal(appContextProtocolVersion),\n \"context-id\": z.string().min(1),\n \"context-type\": z.enum(appContextTypes),\n \"issued-at\": z.string().min(1),\n \"expires-at\": z.string().min(1),\n platform: z.strictObject({\n name: z.literal(\"vekil\"),\n environment: z.string().min(1),\n \"protocol-version\": z.literal(appContextProtocolVersion)\n }),\n app: z.strictObject({\n \"app-id\": z.string().min(1),\n \"app-version-id\": z.string().min(1),\n \"app-version\": z.string().min(1),\n \"developer-id\": z.string().min(1),\n \"runtime-type\": z.string().min(1)\n }),\n installation: z.strictObject({\n \"app-installation-id\": z.string().min(1),\n \"target-agent-id\": z.string().min(1),\n status: z.string().min(1),\n \"runtime-status\": z.string().min(1)\n }),\n execution: z.strictObject({\n \"execution-id\": z.string().min(1),\n \"request-id\": z.string().min(1),\n \"action-plan-id\": z.string().nullable(),\n \"action-step-id\": z.string().nullable(),\n \"idempotency-key\": z.string().min(1),\n attempt: z.number().int().positive()\n }),\n origin: z.strictObject({\n type: z.enum(appContextOriginTypes),\n entrypoint: z.string().min(1),\n \"source-url\": z.string().nullable().optional()\n }),\n viewer: z.strictObject({\n type: z.enum(appContextViewerTypes),\n handle: z.string().nullable().optional(),\n \"display-name\": z.string().nullable().optional(),\n \"profile-url\": z.string().nullable().optional(),\n \"verification-status\": z.string().nullable().optional(),\n contact: z\n .strictObject({\n email: z.string().nullable().optional(),\n \"email-verified\": z.boolean().optional(),\n phone: z.string().nullable().optional(),\n \"phone-verified\": z.boolean().optional()\n })\n .optional()\n }),\n \"target-vekil\": z.strictObject({\n handle: z.string().nullable(),\n \"display-name\": z.string().min(1),\n \"profile-url\": z.string().nullable(),\n type: z.string().min(1),\n timezone: z.string().min(1)\n }),\n request: z.strictObject({\n id: z.string().min(1),\n \"intent-id\": z.string().nullable(),\n status: z.string().min(1),\n \"natural-language-summary\": z.string().nullable(),\n entities: recordSchema,\n \"missing-fields\": z.array(z.string()),\n locale: z.string().min(1)\n }),\n action: z.strictObject({\n \"action-id\": z.string().min(1),\n \"capability-id\": z.string().min(1),\n \"risk-level\": z.string().min(1),\n \"side-effect\": z.boolean()\n }),\n input: actionInputSchema,\n settings: recordSchema,\n \"policy-result\": z.strictObject({\n allowed: z.boolean(),\n \"requires-approval\": z.boolean(),\n \"risk-level\": z.string().min(1),\n constraints: recordSchema,\n redactions: z.array(z.string())\n }),\n \"approval-result\": z.strictObject({\n status: z.enum([\"approved\", \"not-required\", \"pending\"]),\n \"approval-id\": z.string().nullable().optional(),\n \"approved-at\": z.string().nullable().optional(),\n \"approval-scope\": z.string().optional(),\n \"approved-action-id\": z.string().optional(),\n reason: z.string().optional()\n }),\n locale: z.strictObject({\n \"requester-locale\": z.string().min(1),\n \"owner-locale\": z.string().min(1),\n \"app-locale\": z.string().min(1),\n \"response-locale\": z.string().min(1),\n timezone: z.string().min(1)\n }),\n security: z.strictObject({\n \"signature-algorithm\": z.enum([\"none\", \"ed25519-jws-v1\"]),\n \"signed-fields\": z.array(z.string()),\n \"body-hash\": z.string().nullable().optional()\n })\n}) satisfies z.ZodType<AppContextEnvelope>;\n\nexport function validateAppContextEnvelope(envelope: AppContextEnvelope): AppContextEnvelope {\n return appContextEnvelopeSchema.parse(envelope);\n}\n\nexport function readAppContextArtifactInputs(\n input: Record<string, unknown>\n): AppContextArtifactInput[] {\n const value = input[appContextArtifactInputKey];\n\n return value === undefined ? [] : appContextArtifactInputsSchema.parse(value);\n}\n\nexport function readAppActionInput(input: Record<string, unknown>): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(input).filter(([key]) => key !== appContextArtifactInputKey)\n );\n}\n","export const appContextScopes = [\n \"viewer.identity.basic\",\n \"viewer.identity.contact\",\n \"viewer.identity.verified-status\",\n \"viewer.profile.public\",\n \"target-vekil.profile.public\",\n \"target-vekil.handle\",\n \"target-vekil.organization-public\",\n \"request.current\",\n \"request.entities\",\n \"request.intent\",\n \"request.locale\",\n \"request.sanitized-thread\",\n \"request.attachments.metadata\",\n \"request.attachments.content\",\n \"app-installation.settings\",\n \"app-installation.policies\",\n \"app-installation.health\",\n \"policy.result\",\n \"approval.result\",\n \"execution.metadata\",\n \"locale.current\",\n \"timezone.current\"\n] as const;\n\nexport type AppContextScope = (typeof appContextScopes)[number];\n\nexport const highRiskAppContextScopes = [\n \"request.sanitized-thread\",\n \"request.attachments.content\",\n \"viewer.identity.contact\"\n] satisfies AppContextScope[];\n\nexport const forbiddenAppContextScopes = [\n \"conversation.full-thread\",\n \"owner.private-profile\",\n \"other-app.settings\",\n \"other-app.credentials\"\n] as const;\n\nexport type ForbiddenAppContextScope = (typeof forbiddenAppContextScopes)[number];\n\nexport type AppContextScopeName = AppContextScope | ForbiddenAppContextScope;\n\nexport function isAppContextScope(value: string): value is AppContextScope {\n return (appContextScopes as readonly string[]).includes(value);\n}\n\nexport function isForbiddenAppContextScope(value: string): value is ForbiddenAppContextScope {\n return (forbiddenAppContextScopes as readonly string[]).includes(value);\n}\n","import type { AppContextEnvelope, AppContextOriginType } from \"./context-envelope\";\nimport { highRiskAppContextScopes, type AppContextScope } from \"./context-scopes\";\n\nexport interface AppContextScopeDecision {\n deniedScopes: AppContextScope[];\n grantedScopes: AppContextScope[];\n requestedScopes: AppContextScope[];\n}\n\nconst highRiskScopes = new Set<AppContextScope>(highRiskAppContextScopes);\nconst originsAllowedHighRiskContext = new Set<AppContextOriginType>([\n \"public-verified-external\",\n \"public-authenticated\",\n \"agent-to-agent\",\n \"owner-configuring-app\",\n \"app-review-test\",\n \"system-retry\"\n]);\n\nexport function isAppContextScopeAllowedForOrigin(\n scope: AppContextScope,\n originType: AppContextOriginType\n): boolean {\n return !highRiskScopes.has(scope) || originsAllowedHighRiskContext.has(originType);\n}\n\nexport function resolveAppContextScopeDecision({\n activeGrantScopes,\n defaultScopes,\n optionalScopes,\n originType,\n requestedScopes\n}: {\n activeGrantScopes: readonly string[];\n defaultScopes: readonly AppContextScope[];\n optionalScopes: readonly AppContextScope[];\n originType: AppContextOriginType;\n requestedScopes: readonly AppContextScope[];\n}): AppContextScopeDecision {\n const declaredScopes = new Set<AppContextScope>([...defaultScopes, ...optionalScopes]);\n const persistedGrants = new Set(activeGrantScopes);\n const requested = [...new Set(requestedScopes)];\n const grantedScopes = requested.filter((scope) => {\n if (!declaredScopes.has(scope)) return false;\n if (!persistedGrants.has(scope)) return false;\n\n return isAppContextScopeAllowedForOrigin(scope, originType);\n });\n const granted = new Set(grantedScopes);\n\n return {\n deniedScopes: requested.filter((scope) => !granted.has(scope)),\n grantedScopes,\n requestedScopes: requested\n };\n}\n\nexport function projectAppContextEnvelope(\n envelope: AppContextEnvelope,\n grantedScopes: readonly AppContextScope[]\n): AppContextEnvelope {\n const projected = structuredClone(envelope);\n const granted = new Set(grantedScopes);\n\n if (!granted.has(\"viewer.identity.basic\")) {\n delete projected.viewer.handle;\n delete projected.viewer[\"display-name\"];\n }\n\n if (!granted.has(\"viewer.identity.contact\")) {\n delete projected.viewer.contact;\n }\n\n if (!granted.has(\"viewer.identity.verified-status\")) {\n delete projected.viewer[\"verification-status\"];\n\n if (projected.viewer.contact) {\n delete projected.viewer.contact[\"email-verified\"];\n delete projected.viewer.contact[\"phone-verified\"];\n }\n }\n\n if (!granted.has(\"viewer.profile.public\")) {\n delete projected.viewer[\"profile-url\"];\n }\n\n if (!granted.has(\"target-vekil.handle\")) {\n projected[\"target-vekil\"].handle = null;\n projected[\"target-vekil\"][\"profile-url\"] = null;\n }\n\n if (!granted.has(\"target-vekil.profile.public\")) {\n projected[\"target-vekil\"][\"display-name\"] = \"[not-granted]\";\n projected[\"target-vekil\"][\"profile-url\"] = null;\n projected[\"target-vekil\"].type = \"unknown\";\n }\n\n if (!granted.has(\"request.current\")) {\n projected.request[\"natural-language-summary\"] = null;\n projected.request[\"missing-fields\"] = [];\n }\n\n if (!granted.has(\"request.entities\")) {\n projected.request.entities = {};\n }\n\n if (!granted.has(\"request.intent\")) {\n projected.request[\"intent-id\"] = null;\n }\n\n if (!granted.has(\"request.locale\")) {\n projected.request.locale = \"und\";\n }\n\n if (!granted.has(\"app-installation.settings\")) {\n projected.settings = {};\n }\n\n if (!granted.has(\"app-installation.policies\")) {\n projected[\"policy-result\"].constraints = {};\n }\n\n if (!granted.has(\"policy.result\")) {\n projected[\"policy-result\"] = {\n allowed: false,\n \"requires-approval\": true,\n \"risk-level\": \"UNDISCLOSED\",\n constraints: {},\n redactions: [\"policy-result-not-granted\"]\n };\n }\n\n if (!granted.has(\"approval.result\")) {\n projected[\"approval-result\"] = {\n reason: \"approval-result-not-granted\",\n status: \"pending\"\n };\n }\n\n if (!granted.has(\"locale.current\")) {\n projected.locale[\"requester-locale\"] = \"und\";\n projected.locale[\"owner-locale\"] = \"und\";\n projected.locale[\"app-locale\"] = \"und\";\n projected.locale[\"response-locale\"] = \"und\";\n }\n\n if (!granted.has(\"timezone.current\")) {\n projected.locale.timezone = \"UTC\";\n projected[\"target-vekil\"].timezone = \"UTC\";\n }\n\n return projected;\n}\n","import {\n appContextScopes,\n appContextSensitivityLevels,\n forbiddenAppContextScopes\n} from \"@vekil/app-context\";\nimport { z } from \"zod\";\nimport {\n AppApprovalMode,\n AppConnectionType,\n AppHttpMethod,\n AppKnowledgeSourceType,\n AppRuntimeHost,\n AppSideEffectType,\n AppValueSource,\n AppWorkflowStepType,\n appApprovalModeSchema,\n appCategoryIdSchema,\n appConnectionTypeSchema,\n appDefinitionVersion,\n appFieldTypeSchema,\n appHttpMethodSchema,\n appIntentModeSchema,\n appKnowledgeAudienceSchema,\n appLocalKeySchema,\n appOriginSchema,\n appOutcomeStatusSchema,\n appPermissionSensitivitySchema,\n appPolicyEffectSchema,\n appRiskLevelSchema,\n appSideEffectTypeSchema,\n httpsOrLocalhostUrlSchema,\n httpsUrlSchema,\n jsonObjectSchema,\n jsonPathSchema,\n jsonSchemaSchema,\n localeCodeSchema,\n localizedExamplesSchema,\n localizedTextSchema,\n runtimeSecretReferenceSchema\n} from \"./common\";\n\nexport enum AppIconType {\n ASSET = \"ASSET\",\n URL = \"URL\"\n}\n\nexport enum AppClarificationMode {\n ASK_MISSING_FIELDS = \"ASK_MISSING_FIELDS\",\n FAIL_FAST = \"FAIL_FAST\"\n}\n\nexport enum AppRequesterReviewMode {\n NOT_REQUIRED = \"NOT_REQUIRED\",\n REQUIRED = \"REQUIRED\"\n}\n\nexport enum AppSettingsOptionsSourceType {\n APP_ACTION = \"APP_ACTION\"\n}\n\nexport enum AppArtifactCardinality {\n ONE = \"ONE\",\n MANY = \"MANY\",\n ONE_OR_MANY = \"ONE_OR_MANY\"\n}\n\nexport enum AppArtifactAudience {\n PRODUCING_APP = \"PRODUCING_APP\",\n COMPOSED_APPS = \"COMPOSED_APPS\"\n}\n\nexport const appIconDefinitionSchema = z.discriminatedUnion(\"type\", [\n z.strictObject({\n type: z.literal(AppIconType.ASSET),\n value: z.string().min(1).max(240)\n }),\n z.strictObject({\n type: z.literal(AppIconType.URL),\n value: httpsUrlSchema\n })\n]);\n\nexport const appPublicationDefinitionSchema = z.strictObject({\n websiteUrl: httpsUrlSchema.optional(),\n supportEmail: z.string().email().optional(),\n privacyPolicyUrl: httpsUrlSchema.optional(),\n termsUrl: httpsUrlSchema.optional()\n});\n\nexport const appPermissionDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n label: localizedTextSchema,\n description: localizedTextSchema,\n sensitivity: appPermissionSensitivitySchema\n});\n\nexport const appConnectionDefinitionSchema = z.strictObject({\n type: appConnectionTypeSchema,\n required: z.boolean(),\n title: localizedTextSchema,\n description: localizedTextSchema,\n permissions: z.array(appPermissionDefinitionSchema).max(64).default([])\n});\n\nconst appFieldOptionDefinitionSchema = z.strictObject({\n value: z.union([z.string(), z.number(), z.boolean()]),\n label: localizedTextSchema\n});\n\nconst appFieldOptionsSourceDefinitionSchema = z.strictObject({\n type: z.literal(AppSettingsOptionsSourceType.APP_ACTION),\n actionKey: appLocalKeySchema,\n cacheTtlSeconds: z.number().int().min(1).max(86_400),\n outputPath: z.array(appLocalKeySchema).max(16).default([]),\n valueField: appLocalKeySchema.optional(),\n labelField: appLocalKeySchema.optional()\n});\n\nexport const appFieldDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n type: appFieldTypeSchema,\n label: localizedTextSchema,\n description: localizedTextSchema.optional(),\n help: localizedTextSchema.optional(),\n required: z.boolean().default(false),\n default: z.json().optional(),\n validation: jsonObjectSchema.optional(),\n options: z.array(appFieldOptionDefinitionSchema).max(100).optional(),\n optionsSource: appFieldOptionsSourceDefinitionSchema.optional()\n});\n\nexport const appSettingsDefinitionSchema = z.strictObject({\n fields: z.array(appFieldDefinitionSchema).max(100).default([])\n});\n\nexport const appPolicyBehaviorDefinitionSchema = z.strictObject({\n effect: appPolicyEffectSchema,\n value: appLocalKeySchema,\n label: localizedTextSchema\n});\n\nexport const appPolicyRuleDefinitionSchema = z\n .strictObject({\n key: appLocalKeySchema,\n label: localizedTextSchema,\n description: localizedTextSchema,\n conditionFields: z\n .array(appFieldDefinitionSchema)\n .max(0, \"Conditional policy fields require a deterministic evaluator in a future protocol.\")\n .default([]),\n behaviors: z.array(appPolicyBehaviorDefinitionSchema).min(1).max(16),\n defaultBehavior: appLocalKeySchema\n })\n .superRefine((rule, context) => {\n const behaviorValues = rule.behaviors.map((behavior) => behavior.value);\n\n if (new Set(behaviorValues).size !== behaviorValues.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Policy behavior values must be unique.\",\n path: [\"behaviors\"]\n });\n }\n\n if (!behaviorValues.includes(rule.defaultBehavior)) {\n context.addIssue({\n code: \"custom\",\n message: \"The default policy behavior must reference a declared behavior.\",\n path: [\"defaultBehavior\"]\n });\n }\n });\n\nexport const appPolicyDefinitionSchema = z.strictObject({\n rules: z.array(appPolicyRuleDefinitionSchema).max(100).default([])\n});\n\nexport const appArtifactContractDefinitionSchema = z.strictObject({\n audiences: z\n .array(z.enum([AppArtifactAudience.PRODUCING_APP, AppArtifactAudience.COMPOSED_APPS]))\n .min(1)\n .max(2)\n .default([AppArtifactAudience.PRODUCING_APP]),\n key: appLocalKeySchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n schema: jsonSchemaSchema,\n description: localizedTextSchema,\n sensitivityLevel: z.enum(appContextSensitivityLevels).default(\"HIGH\")\n});\n\nexport const appArtifactReferenceDefinitionSchema = z.strictObject({\n artifactKey: appLocalKeySchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n required: z.boolean().default(true),\n cardinality: z\n .enum([\n AppArtifactCardinality.ONE,\n AppArtifactCardinality.MANY,\n AppArtifactCardinality.ONE_OR_MANY\n ])\n .default(AppArtifactCardinality.ONE)\n});\n\nexport const appCapabilityDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n label: localizedTextSchema,\n description: localizedTextSchema,\n inputSchema: jsonSchemaSchema,\n outputSchema: jsonSchemaSchema,\n riskLevel: appRiskLevelSchema,\n approval: appApprovalModeSchema,\n actionKeys: z.array(appLocalKeySchema).min(1).max(32)\n});\n\nexport const appActionContextDefinitionSchema = z.strictObject({\n requiredScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length).default([]),\n requiresSettings: z.array(appLocalKeySchema).max(64).default([]),\n requiresPolicies: z.array(appLocalKeySchema).max(64).default([])\n});\n\nexport const requiredAppActionContextScopes = [\n \"request.current\",\n \"request.entities\",\n \"request.intent\",\n \"policy.result\"\n] as const;\n\nfunction validatePolicyContextScopes(\n actionContext: z.infer<typeof appActionContextDefinitionSchema>,\n context: z.RefinementCtx\n): void {\n if (new Set(actionContext.requiresPolicies).size !== actionContext.requiresPolicies.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Required policy keys must be unique.\",\n path: [\"context\", \"requiresPolicies\"]\n });\n }\n\n for (const requiredScope of requiredAppActionContextScopes) {\n if (!actionContext.requiredScopes.includes(requiredScope)) {\n context.addIssue({\n code: \"custom\",\n message: `Every App action must request the ${requiredScope} scope.`,\n path: [\"context\", \"requiredScopes\"]\n });\n }\n }\n\n if (actionContext.requiresPolicies.length === 0) return;\n\n if (!actionContext.requiredScopes.includes(\"app-installation.policies\")) {\n context.addIssue({\n code: \"custom\",\n message: \"Actions that require policies must request the app-installation.policies scope.\",\n path: [\"context\", \"requiredScopes\"]\n });\n }\n}\n\nexport const appIdempotencyDefinitionSchema = z.strictObject({\n required: z.boolean(),\n keyFields: z.array(jsonPathSchema).max(32).default([])\n});\n\nexport const appRetryPolicyDefinitionSchema = z.strictObject({\n maxAttempts: z.number().int().min(1).max(8),\n retryableStatusCodes: z.array(z.number().int().min(100).max(599)).max(32).default([])\n});\n\nexport const appActionDefinitionSchema = z\n .strictObject({\n key: appLocalKeySchema,\n capabilityKey: appLocalKeySchema,\n label: localizedTextSchema,\n description: localizedTextSchema,\n composable: z.boolean().default(false),\n context: appActionContextDefinitionSchema,\n dataAccessLevel: appLocalKeySchema,\n inputSchema: jsonSchemaSchema,\n outputSchema: jsonSchemaSchema,\n inputArtifacts: z.array(appArtifactReferenceDefinitionSchema).max(32).default([]),\n outputArtifacts: z.array(appArtifactReferenceDefinitionSchema).max(32).default([]),\n riskLevel: appRiskLevelSchema,\n sideEffect: appSideEffectTypeSchema,\n approval: appApprovalModeSchema,\n timeoutMs: z.number().int().min(100).max(120_000),\n idempotency: appIdempotencyDefinitionSchema,\n retry: appRetryPolicyDefinitionSchema,\n outcomeKeys: z.array(appLocalKeySchema).min(1).max(32)\n })\n .superRefine((action, context) => {\n validatePolicyContextScopes(action.context, context);\n\n if (\n action.approval === AppApprovalMode.POLICY &&\n action.context.requiresPolicies.length === 0\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Policy approval requires at least one declared policy.\",\n path: [\"context\", \"requiresPolicies\"]\n });\n }\n });\n\nexport const appIntentDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n mode: appIntentModeSchema,\n title: localizedTextSchema,\n description: localizedTextSchema,\n responseInstructions: localizedTextSchema,\n examples: localizedExamplesSchema,\n negativeExamples: localizedExamplesSchema.default({}),\n entityHints: jsonObjectSchema.default({}),\n inputSchema: jsonSchemaSchema,\n requiredFields: z.array(appLocalKeySchema).max(64).default([]),\n optionalFields: z.array(appLocalKeySchema).max(64).default([]),\n knowledgeKeys: z.array(appLocalKeySchema).max(64).default([]),\n capabilityKeys: z.array(appLocalKeySchema).min(1).max(32),\n actionKeys: z.array(appLocalKeySchema).min(1).max(32),\n riskLevel: appRiskLevelSchema,\n allowedOrigins: z.array(appOriginSchema).min(1).max(8),\n clarificationMode: z.enum([\n AppClarificationMode.ASK_MISSING_FIELDS,\n AppClarificationMode.FAIL_FAST\n ]),\n missingFieldsQuestion: localizedTextSchema,\n fieldQuestions: z.record(appLocalKeySchema, localizedTextSchema),\n requesterReview: z.enum([AppRequesterReviewMode.NOT_REQUIRED, AppRequesterReviewMode.REQUIRED])\n});\n\nexport const appKnowledgeDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n label: localizedTextSchema,\n description: localizedTextSchema.optional(),\n audience: appKnowledgeAudienceSchema,\n source: z.discriminatedUnion(\"type\", [\n z.strictObject({\n type: z.literal(AppKnowledgeSourceType.SETTING),\n settingKey: appLocalKeySchema\n }),\n z.strictObject({\n type: z.literal(AppKnowledgeSourceType.RUNTIME)\n })\n ])\n});\n\nexport const appOutcomeDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n actionKey: appLocalKeySchema,\n status: appOutcomeStatusSchema,\n title: localizedTextSchema,\n description: localizedTextSchema,\n schema: jsonSchemaSchema,\n nextActions: z\n .array(\n z.strictObject({\n artifactKey: appLocalKeySchema.optional(),\n key: appLocalKeySchema,\n label: localizedTextSchema\n })\n )\n .max(16)\n .default([])\n});\n\nexport const appPublicActionDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n intentKey: appLocalKeySchema,\n label: localizedTextSchema,\n description: localizedTextSchema,\n capabilityKeys: z.array(appLocalKeySchema).min(1).max(16),\n allowedOrigins: z.array(appOriginSchema).min(1).max(8),\n riskLevel: appRiskLevelSchema\n});\n\nexport const appTriggerDefinitionSchema = z.strictObject({\n key: appLocalKeySchema,\n eventKey: appLocalKeySchema,\n capabilityKey: appLocalKeySchema,\n riskLevel: appRiskLevelSchema,\n inputSchema: jsonSchemaSchema\n});\n\nexport const appManifestContextDefinitionSchema = z.strictObject({\n defaultScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length).default([]),\n optionalScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length).default([]),\n prohibitedScopes: z\n .array(z.enum(forbiddenAppContextScopes))\n .max(forbiddenAppContextScopes.length)\n .default([]),\n copy: z.strictObject({\n receives: z\n .array(\n z.strictObject({\n scope: z.enum(appContextScopes),\n label: localizedTextSchema,\n description: localizedTextSchema\n })\n )\n .max(appContextScopes.length)\n .default([]),\n doesNotReceive: z\n .array(\n z.strictObject({\n scope: z.enum(forbiddenAppContextScopes),\n label: localizedTextSchema,\n description: localizedTextSchema\n })\n )\n .max(forbiddenAppContextScopes.length)\n .default([])\n })\n});\n\nexport const appCustomRulesDefinitionSchema = z.strictObject({\n families: z.array(appLocalKeySchema).max(32).default([]),\n examples: localizedExamplesSchema.default({}),\n unsupportedExamples: localizedExamplesSchema.default({})\n});\n\nexport const appValueExpressionSchema = z.discriminatedUnion(\"source\", [\n z.strictObject({\n source: z.literal(AppValueSource.LITERAL),\n value: z.json()\n }),\n z.strictObject({\n source: z.literal(AppValueSource.INPUT),\n path: jsonPathSchema,\n optional: z.boolean().optional()\n }),\n z.strictObject({\n source: z.literal(AppValueSource.CONTEXT),\n path: jsonPathSchema\n }),\n z.strictObject({\n source: z.literal(AppValueSource.SETTING),\n key: appLocalKeySchema\n }),\n z.strictObject({\n source: z.literal(AppValueSource.SECRET),\n key: runtimeSecretReferenceSchema\n }),\n z.strictObject({\n source: z.literal(AppValueSource.STEP_OUTPUT),\n stepKey: appLocalKeySchema,\n path: jsonPathSchema.optional()\n })\n]);\n\nconst appWorkflowStepBase = {\n key: appLocalKeySchema,\n dependsOn: z.array(appLocalKeySchema).max(32).default([])\n};\n\nconst httpHeaderNameSchema = z\n .string()\n .min(1)\n .max(120)\n .regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/);\n\nconst runtimeOriginSchema = httpsOrLocalhostUrlSchema.refine(isOriginUrl, {\n message: \"Runtime credential origins must not include credentials, paths, queries, or fragments\"\n});\n\nexport const appHttpRequestStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.HTTP_REQUEST),\n method: appHttpMethodSchema,\n url: httpsOrLocalhostUrlSchema,\n headers: z\n .record(httpHeaderNameSchema, appValueExpressionSchema)\n .refine(\n (headers) => Object.keys(headers).length <= 64,\n \"At most 64 request headers are allowed\"\n )\n .default({}),\n query: z\n .record(z.string().min(1).max(120), appValueExpressionSchema)\n .refine(\n (parameters) => Object.keys(parameters).length <= 64,\n \"At most 64 query parameters are allowed\"\n )\n .default({}),\n body: appValueExpressionSchema.optional(),\n timeoutMs: z.number().int().min(100).max(30_000)\n});\n\nexport const appTransformStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.TRANSFORM),\n mapping: z.record(z.string().min(1).max(120), appValueExpressionSchema)\n});\n\nexport const appConditionStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.CONDITION),\n condition: appValueExpressionSchema,\n whenTrue: appLocalKeySchema,\n whenFalse: appLocalKeySchema.optional()\n});\n\nexport const appTemplateStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.TEMPLATE),\n template: z.string().min(1).max(8_000),\n variables: z.record(z.string().min(1).max(80), appValueExpressionSchema).default({})\n});\n\nexport const appEmitArtifactStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.EMIT_ARTIFACT),\n artifactKey: appLocalKeySchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n value: appValueExpressionSchema\n});\n\nexport const appEmitBubbleStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.EMIT_BUBBLE),\n descriptor: appValueExpressionSchema\n});\n\nexport const appEmitResultStepSchema = z.strictObject({\n ...appWorkflowStepBase,\n type: z.literal(AppWorkflowStepType.EMIT_RESULT),\n outcomeKey: appLocalKeySchema,\n output: appValueExpressionSchema\n});\n\nexport const appWorkflowStepSchema = z.discriminatedUnion(\"type\", [\n appHttpRequestStepSchema,\n appTransformStepSchema,\n appConditionStepSchema,\n appTemplateStepSchema,\n appEmitArtifactStepSchema,\n appEmitBubbleStepSchema,\n appEmitResultStepSchema\n]);\n\nexport const appWorkflowDefinitionSchema = z.strictObject({\n actionKey: appLocalKeySchema,\n steps: z.array(appWorkflowStepSchema).min(1).max(32)\n});\n\nconst declarativeNoConnectionSchema = z.strictObject({\n type: z.literal(AppConnectionType.NONE)\n});\n\nconst declarativeApiKeyConnectionSchema = z.strictObject({\n type: z.literal(AppConnectionType.API_KEY),\n fields: z\n .array(\n z.strictObject({\n key: appLocalKeySchema,\n allowedOrigins: z.array(runtimeOriginSchema).min(1).max(16),\n headerName: httpHeaderNameSchema,\n label: localizedTextSchema,\n description: localizedTextSchema,\n secretRef: runtimeSecretReferenceSchema\n })\n )\n .min(1)\n .max(16)\n});\n\nconst declarativeOauthConnectionSchema = z.strictObject({\n type: z.literal(AppConnectionType.OAUTH2),\n authorizationUrl: httpsUrlSchema,\n tokenUrl: httpsUrlSchema,\n refreshUrl: httpsUrlSchema.optional(),\n resourceOrigins: z.array(runtimeOriginSchema).min(1).max(16),\n clientIdSecretRef: runtimeSecretReferenceSchema,\n clientSecretSecretRef: runtimeSecretReferenceSchema.optional(),\n pkceRequired: z.boolean().default(true),\n scopes: z\n .array(\n z.strictObject({\n permissionKey: appLocalKeySchema,\n providerScope: z.string().min(1).max(300)\n })\n )\n .min(1)\n .max(64)\n});\n\nexport const declarativeRuntimeDefinitionSchema = z.strictObject({\n host: z.literal(AppRuntimeHost.DECLARATIVE),\n connection: z.discriminatedUnion(\"type\", [\n declarativeNoConnectionSchema,\n declarativeApiKeyConnectionSchema,\n declarativeOauthConnectionSchema\n ]),\n workflows: z.array(appWorkflowDefinitionSchema).min(1).max(64)\n});\n\nfunction isOriginUrl(value: string): boolean {\n const url = new URL(value);\n return !url.username && !url.password && !url.search && !url.hash && url.pathname === \"/\";\n}\n\nexport const remoteRuntimeDefinitionSchema = z.strictObject({\n host: z.literal(AppRuntimeHost.REMOTE),\n baseUrl: httpsOrLocalhostUrlSchema,\n jwksUrl: httpsOrLocalhostUrlSchema,\n connectionRequired: z.boolean()\n});\n\nexport const appDefinitionSchema = z.strictObject({\n definitionVersion: z.literal(appDefinitionVersion),\n defaultLocale: localeCodeSchema,\n app: z.strictObject({\n name: localizedTextSchema,\n shortDescription: localizedTextSchema,\n longDescription: localizedTextSchema,\n categoryId: appCategoryIdSchema,\n icon: appIconDefinitionSchema.optional(),\n providerName: z.string().min(1).max(120).optional()\n }),\n publication: appPublicationDefinitionSchema.default({}),\n connection: appConnectionDefinitionSchema,\n intents: z.array(appIntentDefinitionSchema).min(1).max(128),\n capabilities: z.array(appCapabilityDefinitionSchema).min(1).max(128),\n actions: z.array(appActionDefinitionSchema).min(1).max(128),\n triggers: z.array(appTriggerDefinitionSchema).max(64).default([]),\n resources: z.array(appLocalKeySchema).max(128).default([]),\n knowledge: z.array(appKnowledgeDefinitionSchema).max(128).default([]),\n artifactContracts: z.array(appArtifactContractDefinitionSchema).max(128).default([]),\n context: appManifestContextDefinitionSchema,\n settings: appSettingsDefinitionSchema,\n policies: appPolicyDefinitionSchema,\n customRules: appCustomRulesDefinitionSchema,\n publicActions: z.array(appPublicActionDefinitionSchema).max(32).default([]),\n outcomes: z.array(appOutcomeDefinitionSchema).min(1).max(128),\n runtime: z.discriminatedUnion(\"host\", [\n declarativeRuntimeDefinitionSchema,\n remoteRuntimeDefinitionSchema\n ])\n});\n\nexport type AppDefinition = z.infer<typeof appDefinitionSchema>;\nexport type AppDefinitionInput = z.input<typeof appDefinitionSchema>;\nexport type AppWorkflowDefinition = z.infer<typeof appWorkflowDefinitionSchema>;\nexport type AppWorkflowStep = z.infer<typeof appWorkflowStepSchema>;\nexport type AppValueExpression = z.infer<typeof appValueExpressionSchema>;\n\nexport function createAppDefinitionJsonSchema(): Record<string, unknown> {\n return z.toJSONSchema(appDefinitionSchema) as Record<string, unknown>;\n}\n\nexport function defineApp(input: AppDefinitionInput): AppDefinition {\n return appDefinitionSchema.parse(input);\n}\n\nexport function defineDeclarativeApp(input: AppDefinitionInput): AppDefinition {\n const definition = defineApp(input);\n\n if (definition.runtime.host !== AppRuntimeHost.DECLARATIVE) {\n throw new Error(\"defineDeclarativeApp requires a DECLARATIVE runtime\");\n }\n\n return definition;\n}\n\nexport function defineRemoteApp(input: AppDefinitionInput): AppDefinition {\n const definition = defineApp(input);\n\n if (definition.runtime.host !== AppRuntimeHost.REMOTE) {\n throw new Error(\"defineRemoteApp requires a REMOTE runtime\");\n }\n\n return definition;\n}\n\nexport function isWriteSideEffect(sideEffect: z.infer<typeof appSideEffectTypeSchema>): boolean {\n return (\n sideEffect !== AppSideEffectType.READ_ONLY && sideEffect !== AppSideEffectType.PROPOSAL_ONLY\n );\n}\n\nexport function isHttpMethodWithBody(method: AppHttpMethod): boolean {\n return method !== AppHttpMethod.GET;\n}\n","import {\n appContextScopes,\n appContextSensitivityLevels,\n forbiddenAppContextScopes\n} from \"@vekil/app-context\";\nimport { z } from \"zod\";\nimport {\n AppApprovalMode,\n AppConnectionType,\n AppKnowledgeSourceType,\n AppRuntimeHost,\n AppWorkflowStepType,\n appApprovalModeSchema,\n appCategoryIdSchema,\n appConnectionTypeSchema,\n appFieldTypeSchema,\n appIdSchema,\n appSlugSchema,\n appIntentModeSchema,\n appKnowledgeAudienceSchema,\n appLocalKeySchema,\n appManifestVersion,\n appPoliciesSchemaVersion,\n appSettingsSchemaVersion,\n appNamespacedIdSchema,\n appOriginSchema,\n appOutcomeStatusSchema,\n appPermissionSensitivitySchema,\n appPolicyEffectSchema,\n appRiskLevelSchema,\n appSideEffectTypeSchema,\n httpsOrLocalhostUrlSchema,\n httpsUrlSchema,\n jsonObjectSchema,\n jsonPathSchema,\n jsonSchemaSchema,\n localeCodeSchema,\n localeKeySchema,\n runtimeSecretReferenceSchema,\n semanticVersionSchema\n} from \"./common\";\nimport {\n AppArtifactCardinality,\n AppArtifactAudience,\n AppClarificationMode,\n AppRequesterReviewMode,\n AppSettingsOptionsSourceType,\n appConditionStepSchema,\n appEmitBubbleStepSchema,\n appHttpRequestStepSchema,\n appIconDefinitionSchema,\n appPublicationDefinitionSchema,\n appTemplateStepSchema,\n appTransformStepSchema,\n appValueExpressionSchema,\n requiredAppActionContextScopes\n} from \"./app-definition\";\nimport { appCompilationDeveloperSchema } from \"./app-compilation-binding\";\n\nconst keyedCopySchema = z.strictObject({\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema\n});\n\nconst manifestFieldOptionSchema = z.strictObject({\n value: z.union([z.string(), z.number(), z.boolean()]),\n labelKey: localeKeySchema\n});\n\nconst manifestFieldOptionsSourceSchema = z.strictObject({\n type: z.literal(AppSettingsOptionsSourceType.APP_ACTION),\n actionId: appNamespacedIdSchema,\n cacheTtlSeconds: z.number().int().min(1).max(86_400),\n outputPath: z.array(appLocalKeySchema).max(16),\n valueField: appLocalKeySchema.optional(),\n labelField: appLocalKeySchema.optional()\n});\n\nexport const appManifestFieldSchema = z.strictObject({\n key: appLocalKeySchema,\n type: appFieldTypeSchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema.optional(),\n helpKey: localeKeySchema.optional(),\n required: z.boolean(),\n default: z.json().optional(),\n validation: jsonObjectSchema.optional(),\n options: z.array(manifestFieldOptionSchema).max(100).optional(),\n optionsSource: manifestFieldOptionsSourceSchema.optional()\n});\n\nexport const appManifestCapabilitySchema = z.strictObject({\n id: appNamespacedIdSchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n inputSchema: jsonSchemaSchema,\n outputSchema: jsonSchemaSchema,\n riskLevel: appRiskLevelSchema,\n approval: appApprovalModeSchema,\n actionIds: z.array(appNamespacedIdSchema).min(1).max(32)\n});\n\nconst appManifestArtifactReferenceSchema = z.strictObject({\n artifactId: appNamespacedIdSchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n required: z.boolean(),\n cardinality: z.enum([\n AppArtifactCardinality.ONE,\n AppArtifactCardinality.MANY,\n AppArtifactCardinality.ONE_OR_MANY\n ])\n});\n\nexport const appManifestActionSchema = z\n .strictObject({\n id: appNamespacedIdSchema,\n capabilityId: appNamespacedIdSchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n composable: z.boolean(),\n context: z.strictObject({\n requiredScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length),\n requiresSettings: z.array(appLocalKeySchema).max(64),\n requiresPolicies: z.array(appLocalKeySchema).max(64)\n }),\n dataAccessLevel: appLocalKeySchema,\n inputSchema: jsonSchemaSchema,\n outputSchema: jsonSchemaSchema,\n inputArtifacts: z.array(appManifestArtifactReferenceSchema).max(32),\n outputArtifacts: z.array(appManifestArtifactReferenceSchema).max(32),\n riskLevel: appRiskLevelSchema,\n sideEffect: appSideEffectTypeSchema,\n approval: appApprovalModeSchema,\n timeoutMs: z.number().int().min(100).max(120_000),\n idempotency: z.strictObject({\n required: z.boolean(),\n keyFields: z.array(jsonPathSchema).max(32)\n }),\n retry: z.strictObject({\n maxAttempts: z.number().int().min(1).max(8),\n retryableStatusCodes: z.array(z.number().int().min(100).max(599)).max(32)\n }),\n outcomeIds: z.array(appNamespacedIdSchema).min(1).max(32)\n })\n .superRefine((action, context) => {\n if (new Set(action.context.requiresPolicies).size !== action.context.requiresPolicies.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Required policy keys must be unique.\",\n path: [\"context\", \"requiresPolicies\"]\n });\n }\n\n if (\n action.approval === AppApprovalMode.POLICY &&\n action.context.requiresPolicies.length === 0\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"Policy approval requires at least one declared policy.\",\n path: [\"context\", \"requiresPolicies\"]\n });\n }\n\n for (const requiredScope of requiredAppActionContextScopes) {\n if (!action.context.requiredScopes.includes(requiredScope)) {\n context.addIssue({\n code: \"custom\",\n message: `Every App action must request the ${requiredScope} scope.`,\n path: [\"context\", \"requiredScopes\"]\n });\n }\n }\n\n if (action.context.requiresPolicies.length === 0) return;\n\n if (!action.context.requiredScopes.includes(\"app-installation.policies\")) {\n context.addIssue({\n code: \"custom\",\n message: \"Actions that require policies must request the app-installation.policies scope.\",\n path: [\"context\", \"requiredScopes\"]\n });\n }\n });\n\nexport const appManifestIntentSchema = z.strictObject({\n id: appNamespacedIdSchema,\n mode: appIntentModeSchema,\n titleKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n responseInstructionsKey: localeKeySchema,\n examples: z.record(localeCodeSchema, z.array(z.string().min(1).max(600)).max(32)),\n negativeExamples: z.record(localeCodeSchema, z.array(z.string().min(1).max(600)).max(32)),\n entityHints: jsonObjectSchema,\n inputSchema: jsonSchemaSchema,\n requiredFields: z.array(appLocalKeySchema).max(64),\n optionalFields: z.array(appLocalKeySchema).max(64),\n knowledgeIds: z.array(appNamespacedIdSchema).max(64),\n capabilityIds: z.array(appNamespacedIdSchema).min(1).max(32),\n actionIds: z.array(appNamespacedIdSchema).min(1).max(32),\n riskLevel: appRiskLevelSchema,\n allowedOrigins: z.array(appOriginSchema).min(1).max(8),\n clarificationMode: z.enum([\n AppClarificationMode.ASK_MISSING_FIELDS,\n AppClarificationMode.FAIL_FAST\n ]),\n missingFieldsQuestionKey: localeKeySchema,\n fieldQuestionKeys: z.record(appLocalKeySchema, localeKeySchema),\n requesterReview: z.enum([AppRequesterReviewMode.NOT_REQUIRED, AppRequesterReviewMode.REQUIRED])\n});\n\nexport const appManifestKnowledgeSchema = z.strictObject({\n id: appNamespacedIdSchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema.optional(),\n audience: appKnowledgeAudienceSchema,\n source: z.discriminatedUnion(\"type\", [\n z.strictObject({\n type: z.literal(AppKnowledgeSourceType.SETTING),\n settingKey: appLocalKeySchema\n }),\n z.strictObject({\n type: z.literal(AppKnowledgeSourceType.RUNTIME)\n })\n ])\n});\n\nexport const appManifestOutcomeSchema = z.strictObject({\n id: appNamespacedIdSchema,\n actionId: appNamespacedIdSchema,\n status: appOutcomeStatusSchema,\n titleKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n schema: jsonSchemaSchema,\n nextActions: z\n .array(\n z.strictObject({\n artifactId: appNamespacedIdSchema.optional(),\n id: appNamespacedIdSchema,\n labelKey: localeKeySchema\n })\n )\n .max(16)\n});\n\nconst appManifestPublicActionSchema = z.strictObject({\n id: appNamespacedIdSchema,\n intentId: appNamespacedIdSchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n capabilityIds: z.array(appNamespacedIdSchema).min(1).max(16),\n allowedOrigins: z.array(appOriginSchema).min(1).max(8),\n riskLevel: appRiskLevelSchema\n});\n\nconst appManifestTriggerSchema = z.strictObject({\n id: appNamespacedIdSchema,\n event: appNamespacedIdSchema,\n capabilityId: appNamespacedIdSchema,\n riskLevel: appRiskLevelSchema,\n inputSchema: jsonSchemaSchema\n});\n\nconst appManifestArtifactContractSchema = z\n .strictObject({\n audiences: z\n .array(z.enum([AppArtifactAudience.PRODUCING_APP, AppArtifactAudience.COMPOSED_APPS]))\n .min(1)\n .max(2),\n id: appNamespacedIdSchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n schema: jsonSchemaSchema,\n descriptionKey: localeKeySchema,\n sensitivityLevel: z.enum(appContextSensitivityLevels)\n })\n .superRefine((value, context) => {\n if (!value.audiences.includes(AppArtifactAudience.PRODUCING_APP)) {\n context.addIssue({\n code: \"custom\",\n message: \"Artifact contracts must include the producing App audience.\",\n path: [\"audiences\"]\n });\n }\n\n if (\n value.sensitivityLevel === \"HIGH\" &&\n value.audiences.includes(AppArtifactAudience.COMPOSED_APPS)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"HIGH-sensitivity artifacts cannot be shared with composed Apps.\",\n path: [\"audiences\"]\n });\n }\n });\n\nconst appManifestPolicyBehaviorSchema = z.strictObject({\n effect: appPolicyEffectSchema,\n value: appLocalKeySchema,\n labelKey: localeKeySchema\n});\n\nconst appManifestPolicyRuleSchema = z\n .strictObject({\n key: appLocalKeySchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n conditionFields: z\n .array(appManifestFieldSchema)\n .max(0, \"Conditional policy fields require a deterministic evaluator in a future protocol.\"),\n behaviors: z.array(appManifestPolicyBehaviorSchema).min(1).max(16),\n defaultBehavior: appLocalKeySchema\n })\n .superRefine((rule, context) => {\n const behaviorValues = rule.behaviors.map((behavior) => behavior.value);\n\n if (new Set(behaviorValues).size !== behaviorValues.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Policy behavior values must be unique.\",\n path: [\"behaviors\"]\n });\n }\n\n if (!behaviorValues.includes(rule.defaultBehavior)) {\n context.addIssue({\n code: \"custom\",\n message: \"The default policy behavior must reference a declared behavior.\",\n path: [\"defaultBehavior\"]\n });\n }\n });\n\nconst manifestNoConnectionSchema = z.strictObject({\n type: z.literal(AppConnectionType.NONE)\n});\n\nconst manifestApiKeyConnectionSchema = z.strictObject({\n type: z.literal(AppConnectionType.API_KEY),\n fields: z\n .array(\n z.strictObject({\n key: appLocalKeySchema,\n allowedOrigins: z\n .array(\n httpsOrLocalhostUrlSchema.refine(isOriginUrl, {\n message:\n \"Runtime credential origins must not include credentials, paths, queries, or fragments\"\n })\n )\n .min(1)\n .max(16),\n headerName: z\n .string()\n .min(1)\n .max(120)\n .regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/),\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n secretRef: runtimeSecretReferenceSchema\n })\n )\n .min(1)\n .max(16)\n});\n\nconst manifestOauthConnectionSchema = z.strictObject({\n type: z.literal(AppConnectionType.OAUTH2),\n authorizationUrl: httpsUrlSchema,\n tokenUrl: httpsUrlSchema,\n refreshUrl: httpsUrlSchema.optional(),\n resourceOrigins: z\n .array(\n httpsOrLocalhostUrlSchema.refine(isOriginUrl, {\n message:\n \"Runtime credential origins must not include credentials, paths, queries, or fragments\"\n })\n )\n .min(1)\n .max(16),\n clientIdSecretRef: runtimeSecretReferenceSchema,\n clientSecretSecretRef: runtimeSecretReferenceSchema.optional(),\n pkceRequired: z.boolean(),\n scopes: z\n .array(\n z.strictObject({\n permissionKey: appLocalKeySchema,\n providerScope: z.string().min(1).max(300)\n })\n )\n .min(1)\n .max(64)\n});\n\nconst manifestEmitResultStepSchema = z.strictObject({\n key: appLocalKeySchema,\n dependsOn: z.array(appLocalKeySchema).max(32).default([]),\n type: z.literal(AppWorkflowStepType.EMIT_RESULT),\n outcomeId: appNamespacedIdSchema,\n output: appValueExpressionSchema\n});\n\nconst manifestEmitArtifactStepSchema = z.strictObject({\n key: appLocalKeySchema,\n dependsOn: z.array(appLocalKeySchema).max(32).default([]),\n type: z.literal(AppWorkflowStepType.EMIT_ARTIFACT),\n artifactId: appNamespacedIdSchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n value: appValueExpressionSchema\n});\n\nfunction isOriginUrl(value: string): boolean {\n const url = new URL(value);\n return !url.username && !url.password && !url.search && !url.hash && url.pathname === \"/\";\n}\n\nexport const appManifestWorkflowStepSchema = z.discriminatedUnion(\"type\", [\n appHttpRequestStepSchema,\n appTransformStepSchema,\n appConditionStepSchema,\n appTemplateStepSchema,\n manifestEmitArtifactStepSchema,\n appEmitBubbleStepSchema,\n manifestEmitResultStepSchema\n]);\n\nconst manifestDeclarativeRuntimeSchema = z.strictObject({\n host: z.literal(AppRuntimeHost.DECLARATIVE),\n connection: z.discriminatedUnion(\"type\", [\n manifestNoConnectionSchema,\n manifestApiKeyConnectionSchema,\n manifestOauthConnectionSchema\n ]),\n workflows: z\n .array(\n z.strictObject({\n actionId: appNamespacedIdSchema,\n steps: z.array(appManifestWorkflowStepSchema).min(1).max(32)\n })\n )\n .min(1)\n .max(64)\n});\n\nconst manifestRemoteRuntimeSchema = z.strictObject({\n host: z.literal(AppRuntimeHost.REMOTE),\n baseUrl: httpsOrLocalhostUrlSchema,\n jwksUrl: httpsOrLocalhostUrlSchema,\n connectionRequired: z.boolean()\n});\n\nexport const appManifestSchema = z\n .strictObject({\n manifestVersion: z.literal(appManifestVersion),\n app: z.strictObject({\n id: appIdSchema,\n slug: appSlugSchema,\n version: semanticVersionSchema,\n nameKey: localeKeySchema,\n shortDescriptionKey: localeKeySchema,\n longDescriptionKey: localeKeySchema,\n categoryId: appCategoryIdSchema,\n icon: appIconDefinitionSchema.optional(),\n providerName: z.string().min(1).max(120).optional(),\n official: z.boolean(),\n developer: appCompilationDeveloperSchema,\n publication: appPublicationDefinitionSchema\n }),\n connection: z.strictObject({\n type: appConnectionTypeSchema,\n required: z.boolean(),\n titleKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n permissions: z\n .array(\n z.strictObject({\n key: appLocalKeySchema,\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema,\n sensitivity: appPermissionSensitivitySchema\n })\n )\n .max(64)\n }),\n intents: z.array(appManifestIntentSchema).min(1).max(128),\n capabilities: z.array(appManifestCapabilitySchema).min(1).max(128),\n actions: z.array(appManifestActionSchema).min(1).max(128),\n triggers: z.array(appManifestTriggerSchema).max(64),\n resources: z.array(appNamespacedIdSchema).max(128),\n knowledge: z.array(appManifestKnowledgeSchema).max(128),\n artifactContracts: z.array(appManifestArtifactContractSchema).max(128),\n context: z.strictObject({\n defaultScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length),\n optionalScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length),\n prohibitedScopes: z\n .array(z.enum(forbiddenAppContextScopes))\n .max(forbiddenAppContextScopes.length),\n copy: z.strictObject({\n receives: z\n .array(\n z.strictObject({\n scope: z.enum(appContextScopes),\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema\n })\n )\n .max(appContextScopes.length),\n doesNotReceive: z\n .array(\n z.strictObject({\n scope: z.enum(forbiddenAppContextScopes),\n labelKey: localeKeySchema,\n descriptionKey: localeKeySchema\n })\n )\n .max(forbiddenAppContextScopes.length)\n })\n }),\n settings: z.strictObject({\n schemaVersion: z.literal(appSettingsSchemaVersion),\n fields: z.array(appManifestFieldSchema).max(100)\n }),\n policies: z.strictObject({\n schemaVersion: z.literal(appPoliciesSchemaVersion),\n rules: z.array(appManifestPolicyRuleSchema).max(100)\n }),\n customRules: z.strictObject({\n families: z.array(appLocalKeySchema).max(32),\n examples: z.record(localeCodeSchema, z.array(z.string().min(1).max(600)).max(32)),\n unsupportedExamples: z.record(localeCodeSchema, z.array(z.string().min(1).max(600)).max(32))\n }),\n publicActions: z.array(appManifestPublicActionSchema).max(32),\n outcomes: z.array(appManifestOutcomeSchema).min(1).max(128),\n runtime: z.discriminatedUnion(\"host\", [\n manifestDeclarativeRuntimeSchema,\n manifestRemoteRuntimeSchema\n ]),\n locales: z.strictObject({\n defaultLocale: localeCodeSchema,\n messages: z.record(localeCodeSchema, z.record(localeKeySchema, z.string()))\n })\n })\n .superRefine((manifest, context) => {\n const policyKeys = manifest.policies.rules.map((rule) => rule.key);\n const declaredPolicies = new Set(policyKeys);\n const declaredScopes = new Set([\n ...manifest.context.defaultScopes,\n ...manifest.context.optionalScopes\n ]);\n\n if (declaredPolicies.size !== policyKeys.length) {\n context.addIssue({\n code: \"custom\",\n message: \"Policy rule keys must be unique.\",\n path: [\"policies\", \"rules\"]\n });\n }\n\n manifest.actions.forEach((action, actionIndex) => {\n action.context.requiresPolicies.forEach((policyKey) => {\n if (!declaredPolicies.has(policyKey)) {\n context.addIssue({\n code: \"custom\",\n message: `Action references unknown policy ${policyKey}.`,\n path: [\"actions\", actionIndex, \"context\", \"requiresPolicies\"]\n });\n }\n });\n\n action.context.requiredScopes.forEach((scope) => {\n if (!declaredScopes.has(scope)) {\n context.addIssue({\n code: \"custom\",\n message: `Action references undeclared App Context scope ${scope}.`,\n path: [\"actions\", actionIndex, \"context\", \"requiredScopes\"]\n });\n }\n });\n });\n });\n\nexport type AppManifest = z.infer<typeof appManifestSchema>;\n\nexport function createAppManifestJsonSchema(): Record<string, unknown> {\n return z.toJSONSchema(appManifestSchema) as Record<string, unknown>;\n}\n\nexport function getAppManifestLocaleCodes(manifest: AppManifest): string[] {\n return Object.keys(manifest.locales.messages).sort();\n}\n\nexport function readAppManifestText({\n key,\n locale,\n manifest\n}: {\n key: string;\n locale?: string;\n manifest: AppManifest;\n}): string {\n const requestedLocale = locale ?? manifest.locales.defaultLocale;\n const baseLocale = requestedLocale.split(\"-\")[0];\n const candidateLocales = [\n requestedLocale,\n ...(baseLocale && baseLocale !== requestedLocale ? [baseLocale] : []),\n manifest.locales.defaultLocale\n ];\n\n for (const candidateLocale of new Set(candidateLocales)) {\n const value = manifest.locales.messages[candidateLocale]?.[key];\n\n if (value !== undefined) {\n return value;\n }\n }\n\n throw new Error(`Missing App manifest copy for key \"${key}\".`);\n}\n\nexport function readAppManifestLocalizedList({\n locale,\n manifest,\n values\n}: {\n locale: string;\n manifest: AppManifest;\n values: Record<string, string[]>;\n}): string[] {\n const baseLocale = locale.split(\"-\")[0];\n const candidateLocales = [\n locale,\n ...(baseLocale && baseLocale !== locale ? [baseLocale] : []),\n manifest.locales.defaultLocale\n ];\n\n for (const candidateLocale of new Set(candidateLocales)) {\n const localizedValues = values[candidateLocale];\n\n if (localizedValues !== undefined) {\n return [...localizedValues];\n }\n }\n\n return [];\n}\n\nexport const appManifestCopyShape = keyedCopySchema;\n","import { z } from \"zod\";\n\nexport const publicHandleMinLength = 3;\nexport const publicHandleMaxLength = 30;\n\nexport const reservedPublicHandles = [\n \"account\",\n \"admin\",\n \"api\",\n \"apps\",\n \"auth\",\n \"developers\",\n \"docs\",\n \"inbox\",\n \"privacy\",\n \"r\",\n \"requests\",\n \"terms\"\n] as const;\n\nconst reservedPublicHandleSet = new Set<string>(reservedPublicHandles);\n\nexport function isReservedPublicHandle(value: string): boolean {\n return reservedPublicHandleSet.has(normalizePublicHandle(value));\n}\n\nexport function normalizePublicHandle(value: string): string {\n return value.trim().toLowerCase();\n}\n\nexport function formatPublicHandleInput(value: string): string {\n return normalizePublicHandle(value)\n .replace(/[^a-z0-9_]/g, \"\")\n .replace(/^[^a-z0-9]+/, \"\")\n .slice(0, publicHandleMaxLength);\n}\n\nexport const publicHandleSchema = z\n .string()\n .transform(normalizePublicHandle)\n .pipe(\n z\n .string()\n .min(publicHandleMinLength)\n .max(publicHandleMaxLength)\n .regex(/^[a-z0-9][a-z0-9_]*$/)\n )\n .refine((handle) => !isReservedPublicHandle(handle));\n\nexport enum PublicHandleClaimStatus {\n AVAILABLE = \"AVAILABLE\",\n CURRENT = \"CURRENT\",\n INVALID = \"INVALID\",\n UNAVAILABLE = \"UNAVAILABLE\"\n}\n\nexport const publicHandleCheckQuerySchema = z.object({\n handle: z.string().max(80)\n});\n\nexport type PublicHandleCheckQuery = z.infer<typeof publicHandleCheckQuerySchema>;\n\nexport const publicHandleCheckViewSchema = z.object({\n handle: z.string(),\n status: z.enum(PublicHandleClaimStatus)\n});\n\nexport type PublicHandleCheckView = z.infer<typeof publicHandleCheckViewSchema>;\n","import { z } from \"zod\";\nimport { publicHandleSchema } from \"./identity\";\n\nexport enum AuthFlowStatus {\n CODE_SENT = \"CODE_SENT\",\n AUTHENTICATED = \"AUTHENTICATED\"\n}\n\nexport enum AuthSessionClientType {\n WEB = \"WEB\",\n DESKTOP = \"DESKTOP\"\n}\n\nexport enum PreferredColorScheme {\n LIGHT = \"LIGHT\",\n DARK = \"DARK\"\n}\n\nexport enum AuthAdminRole {\n REVIEWER = \"REVIEWER\",\n MODERATOR = \"MODERATOR\",\n SUPERADMIN = \"SUPERADMIN\"\n}\n\nexport enum AuthStepUpStatus {\n CODE_SENT = \"CODE_SENT\",\n VERIFIED = \"VERIFIED\"\n}\n\nexport enum AuthStepUpReason {\n ACCOUNT_SECURITY = \"ACCOUNT_SECURITY\",\n APP_CONNECTION = \"APP_CONNECTION\",\n APP_CONTEXT_PERMISSION = \"APP_CONTEXT_PERMISSION\",\n APP_MODERATION = \"APP_MODERATION\",\n APP_POLICY_CHANGE = \"APP_POLICY_CHANGE\",\n APP_PUBLICATION = \"APP_PUBLICATION\",\n APP_VERSION_CHANGE = \"APP_VERSION_CHANGE\"\n}\n\nexport enum UserOnboardingStatus {\n PENDING = \"PENDING\",\n COMPLETED = \"COMPLETED\"\n}\n\nexport enum UserOnboardingStep {\n PROFILE = \"PROFILE\",\n PUBLIC_PAGE = \"PUBLIC_PAGE\",\n READY = \"READY\"\n}\n\nconst browserEnvironmentSchema = z.object({\n browserLocale: z.string().trim().max(80).nullable().optional(),\n browserTimezone: z.string().trim().max(120).nullable().optional(),\n preferredColorScheme: z.enum(PreferredColorScheme).optional()\n});\n\nexport const startEmailAuthSchema = z.object({\n email: z.string().trim().email().max(254)\n});\n\nexport type StartEmailAuthInput = z.infer<typeof startEmailAuthSchema>;\n\nconst verifyAuthCodeSchema = z.object({\n challengeId: z.string().min(1).max(120),\n code: z.string().regex(/^\\d{6}$/)\n});\n\nexport const verifyEmailAuthSchema = verifyAuthCodeSchema.extend(browserEnvironmentSchema.shape);\n\nexport type VerifyEmailAuthInput = z.infer<typeof verifyEmailAuthSchema>;\n\nexport const verifyStepUpAuthSchema = verifyAuthCodeSchema;\n\nexport type VerifyStepUpAuthInput = z.infer<typeof verifyStepUpAuthSchema>;\n\nexport const authStepUpStartResponseSchema = z.discriminatedUnion(\"status\", [\n z.object({\n challengeId: z.string(),\n codeExpiresAt: z.string().datetime({ offset: true }),\n status: z.literal(AuthStepUpStatus.CODE_SENT)\n }),\n z.object({\n status: z.literal(AuthStepUpStatus.VERIFIED),\n verifiedUntil: z.string().datetime({ offset: true })\n })\n]);\n\nexport type AuthStepUpStartResponse = z.infer<typeof authStepUpStartResponseSchema>;\n\nexport const authStepUpVerifyResponseSchema = z.object({\n status: z.literal(AuthStepUpStatus.VERIFIED),\n verifiedUntil: z.string().datetime({ offset: true })\n});\n\nexport type AuthStepUpVerifyResponse = z.infer<typeof authStepUpVerifyResponseSchema>;\n\nexport const startGoogleAuthSchema = z\n .object({\n returnTo: z\n .string()\n .trim()\n .max(500)\n .refine((value) => value.startsWith(\"/\") && !value.startsWith(\"//\"))\n .optional()\n })\n .extend(browserEnvironmentSchema.shape);\n\nexport type StartGoogleAuthInput = z.infer<typeof startGoogleAuthSchema>;\n\nexport const saveOnboardingStepSchema = z.discriminatedUnion(\"step\", [\n z.object({\n displayName: z.string().trim().min(1).max(80),\n handle: publicHandleSchema,\n step: z.literal(UserOnboardingStep.PROFILE)\n }),\n z.object({\n bio: z.string().trim().max(240).nullable(),\n step: z.literal(UserOnboardingStep.PUBLIC_PAGE)\n })\n]);\n\nexport type SaveOnboardingStepInput = z.infer<typeof saveOnboardingStepSchema>;\n\nexport const onboardingViewSchema = z.object({\n completedAt: z.string().datetime({ offset: true }).nullable(),\n currentStep: z.enum(UserOnboardingStep),\n status: z.enum(UserOnboardingStatus),\n vekil: z.object({\n avatarSeed: z.string(),\n avatarUrl: z.string().url().nullable(),\n displayName: z.string(),\n handle: z.string()\n })\n});\n\nexport type OnboardingView = z.infer<typeof onboardingViewSchema>;\n\nexport const authSessionViewSchema = z.object({\n access: z.object({\n adminRoles: z.array(z.enum(AuthAdminRole)),\n builder: z.boolean()\n }),\n session: z.object({\n absoluteExpiresAt: z.string().datetime({ offset: true }),\n clientType: z.enum([AuthSessionClientType.WEB, AuthSessionClientType.DESKTOP]),\n id: z.string(),\n stepUpVerifiedUntil: z.string().datetime({ offset: true }).nullable()\n }),\n user: z.object({\n email: z.string().email(),\n id: z.string()\n }),\n onboarding: z.object({\n completedAt: z.string().datetime({ offset: true }).nullable(),\n currentStep: z.enum(UserOnboardingStep),\n status: z.enum(UserOnboardingStatus)\n }),\n vekil: z.object({\n avatarSeed: z.string(),\n avatarUrl: z.string().url().nullable(),\n displayName: z.string(),\n handle: z.string(),\n id: z.string()\n })\n});\n\nexport type AuthSessionView = z.infer<typeof authSessionViewSchema>;\n\nexport const userSessionListItemSchema = z.object({\n absoluteExpiresAt: z.string().datetime({ offset: true }),\n clientType: z.enum([AuthSessionClientType.WEB, AuthSessionClientType.DESKTOP]),\n createdAt: z.string().datetime({ offset: true }),\n current: z.boolean(),\n deviceLabel: z.string(),\n id: z.string(),\n lastSeenAt: z.string().datetime({ offset: true })\n});\n\nexport type UserSessionListItem = z.infer<typeof userSessionListItemSchema>;\n","import { z } from \"zod\";\nimport { PreferredColorScheme } from \"./auth\";\n\nexport const vekilPublicPageStyleIds = [\n \"paper\",\n \"midnight\",\n \"sky\",\n \"rose\",\n \"violet\",\n \"forest\"\n] as const;\n\nexport const vekilPublicPagePatternIds = [\n \"none\",\n \"cartoon-space\",\n \"cats\",\n \"characters\",\n \"christmas\",\n \"food\",\n \"free-time\",\n \"fun-space\",\n \"games\",\n \"halloween\",\n \"love\",\n \"magic\",\n \"renovation\",\n \"richness\",\n \"sea-world\",\n \"sightseeing\",\n \"snowflakes\",\n \"space\",\n \"space-cat\",\n \"sport\",\n \"star-wars\",\n \"sweet-love\",\n \"sweets\",\n \"unicorn\",\n \"witch\",\n \"wizard-world\",\n \"woodland\",\n \"zoo\"\n] as const;\n\nconst hexColorSchema = z.string().regex(/^#[0-9a-f]{6}$/i);\n\nexport const vekilPublicPageSettingsSchema = z.object({\n accent_color: hexColorSchema,\n background_color: hexColorSchema,\n message_color: hexColorSchema,\n pattern_id: z.enum(vekilPublicPagePatternIds),\n pattern_intensity: z.number().int().min(0).max(30),\n style_id: z.enum(vekilPublicPageStyleIds)\n});\n\nexport type VekilPublicPageSettings = z.infer<typeof vekilPublicPageSettingsSchema>;\nexport type VekilPublicPageStyleId = (typeof vekilPublicPageStyleIds)[number];\nexport type VekilPublicPagePatternId = (typeof vekilPublicPagePatternIds)[number];\n\nexport const vekilPublicPageStylePresets = {\n paper: {\n accent_color: \"#111111\",\n background_color: \"#ffffff\",\n message_color: \"#f2f2f2\",\n pattern_id: \"none\",\n pattern_intensity: 0,\n style_id: \"paper\"\n },\n midnight: {\n accent_color: \"#ffffff\",\n background_color: \"#0b0b0c\",\n message_color: \"#1c1c1f\",\n pattern_id: \"none\",\n pattern_intensity: 0,\n style_id: \"midnight\"\n },\n sky: {\n accent_color: \"#007aff\",\n background_color: \"#f4f9ff\",\n message_color: \"#e6f1ff\",\n pattern_id: \"none\",\n pattern_intensity: 0,\n style_id: \"sky\"\n },\n rose: {\n accent_color: \"#e54868\",\n background_color: \"#fff7f8\",\n message_color: \"#ffe8ed\",\n pattern_id: \"none\",\n pattern_intensity: 0,\n style_id: \"rose\"\n },\n violet: {\n accent_color: \"#bf5af2\",\n background_color: \"#16131d\",\n message_color: \"#25202f\",\n pattern_id: \"none\",\n pattern_intensity: 0,\n style_id: \"violet\"\n },\n forest: {\n accent_color: \"#238b45\",\n background_color: \"#f4faf6\",\n message_color: \"#e4f2e8\",\n pattern_id: \"none\",\n pattern_intensity: 0,\n style_id: \"forest\"\n }\n} as const satisfies Record<VekilPublicPageStyleId, VekilPublicPageSettings>;\n\nexport function createInitialVekilPublicPageSettings(\n preferredColorScheme: PreferredColorScheme = PreferredColorScheme.LIGHT\n): VekilPublicPageSettings {\n const preset =\n preferredColorScheme === PreferredColorScheme.DARK\n ? vekilPublicPageStylePresets.midnight\n : vekilPublicPageStylePresets.paper;\n\n return {\n ...preset,\n pattern_id: \"cats\",\n pattern_intensity: 5\n };\n}\n\nexport const defaultVekilPublicPageSettings = createInitialVekilPublicPageSettings();\n","import { z } from \"zod\";\n\nexport enum ManagedAiServiceStatus {\n READY = \"READY\",\n LIMIT_REACHED = \"LIMIT_REACHED\",\n UNAVAILABLE = \"UNAVAILABLE\"\n}\n\nexport enum ProductPlanKey {\n FREE = \"FREE\",\n PRO = \"PRO\"\n}\n\nexport const currentProductUsageViewSchema = z.object({\n managedAiStatus: z.enum(ManagedAiServiceStatus),\n period: z.object({\n endsAt: z.string().datetime({ offset: true }),\n startsAt: z.string().datetime({ offset: true })\n }),\n planKey: z.enum(ProductPlanKey),\n usage: z.object({\n appActions: z.number().int().nonnegative(),\n handledConversations: z.number().int().nonnegative()\n })\n});\n\nexport type CurrentProductUsageView = z.infer<typeof currentProductUsageViewSchema>;\n","import { z } from \"zod\";\nimport { publicHandleSchema } from \"./identity\";\nimport { vekilPublicPageSettingsSchema } from \"./public-page\";\nimport { ManagedAiServiceStatus } from \"./usage\";\n\nexport const publicVekilCapabilitySchema = z.object({\n description: z.string(),\n id: z.string(),\n prompt: z.string(),\n title: z.string()\n});\n\nexport enum PublicVekilRequestAvailability {\n AVAILABLE = \"AVAILABLE\",\n LIMIT_REACHED = \"LIMIT_REACHED\",\n SERVICE_UNAVAILABLE = \"SERVICE_UNAVAILABLE\"\n}\n\nexport const publicVekilSchema = z.object({\n avatar_url: z.string().url().nullable(),\n bio: z.string().nullable(),\n display_name: z.string(),\n handle: z.string(),\n request_availability: z.enum(PublicVekilRequestAvailability),\n public_page: vekilPublicPageSettingsSchema,\n public_actions: z.array(publicVekilCapabilitySchema)\n});\n\nexport type PublicVekil = z.infer<typeof publicVekilSchema>;\n\nexport const currentVekilReadinessSchema = z.object({\n managedAiStatus: z.enum(ManagedAiServiceStatus),\n publicPageVisible: z.boolean(),\n readyAppCount: z.number().int().nonnegative(),\n requestAvailability: z.enum(PublicVekilRequestAvailability)\n});\n\nexport type CurrentVekilReadiness = z.infer<typeof currentVekilReadinessSchema>;\n\nexport const updateVekilProfileSchema = z.object({\n displayName: z.string().min(1).max(80).optional(),\n bio: z.string().max(240).nullable().optional(),\n avatarAssetId: z.string().min(1).nullable().optional(),\n handle: publicHandleSchema.optional()\n});\n\nexport type UpdateVekilProfileInput = z.infer<typeof updateVekilProfileSchema>;\n","const systemReservedHandles = [\n \"inbox\",\n \"requests\",\n \"account\",\n \"apps\",\n \"policies\",\n \"settings\",\n \"activity\",\n \"notifications\",\n \"api\",\n \"auth\",\n \"oauth\",\n \"webhooks\",\n \"admin\",\n \"privacy\",\n \"terms\",\n \"support\",\n \"help\",\n \"new\",\n \"status\",\n \"r\",\n \"u\",\n \"app\",\n \"me\",\n \"onboarding\",\n \"billing\"\n] as const;\n\nexport const reservedHandles = new Set<string>(systemReservedHandles);\n\nexport type HandleValidationResult =\n | { valid: true; normalizedHandle: string }\n | { valid: false; reason: \"too-short\" | \"too-long\" | \"invalid-format\" | \"reserved\" };\n\nexport enum AgentStatus {\n DRAFT = \"DRAFT\",\n ACTIVE = \"ACTIVE\",\n PAUSED = \"PAUSED\"\n}\n\nexport function validateHandle(input: string): HandleValidationResult {\n const normalizedHandle = input.trim().toLowerCase();\n\n if (normalizedHandle.length < 3) {\n return { valid: false, reason: \"too-short\" };\n }\n\n if (normalizedHandle.length > 32) {\n return { valid: false, reason: \"too-long\" };\n }\n\n if (!/^[a-z0-9][a-z0-9_-]*[a-z0-9]$/.test(normalizedHandle)) {\n return { valid: false, reason: \"invalid-format\" };\n }\n\n if (reservedHandles.has(normalizedHandle)) {\n return { valid: false, reason: \"reserved\" };\n }\n\n return { valid: true, normalizedHandle };\n}\n\nexport interface AgentProfile {\n id: string;\n ownerUserId: string;\n handle: string;\n displayName: string;\n bio: string | null;\n avatarUrl: string | null;\n timezone: string;\n status: AgentStatus;\n}\n","export enum ConversationResponseMode {\n ACKNOWLEDGEMENT = \"ACKNOWLEDGEMENT\",\n CANCELLATION = \"CANCELLATION\",\n CAPABILITY_UNAVAILABLE = \"CAPABILITY_UNAVAILABLE\",\n CLARIFICATION = \"CLARIFICATION\",\n CONTEXT_SWITCH = \"CONTEXT_SWITCH\",\n HANDOFF = \"HANDOFF\",\n OUTCOME = \"OUTCOME\",\n REVIEW = \"REVIEW\",\n SOCIAL = \"SOCIAL\"\n}\n\nexport enum VekilClarificationStyle {\n GROUP_RELATED = \"GROUP_RELATED\",\n ONE_AT_A_TIME = \"ONE_AT_A_TIME\"\n}\n\nexport enum VekilCommunicationTone {\n DIRECT = \"DIRECT\",\n NATURAL = \"NATURAL\",\n PROFESSIONAL = \"PROFESSIONAL\",\n WARM = \"WARM\"\n}\n\nexport enum VekilReplyLength {\n BALANCED = \"BALANCED\",\n CONCISE = \"CONCISE\"\n}\n\nexport enum VekilUnavailableActionBehavior {\n COLLECT_AND_HAND_OFF = \"COLLECT_AND_HAND_OFF\",\n EXPLAIN_ONLY = \"EXPLAIN_ONLY\"\n}\n\nexport interface VekilCommunicationSettings {\n clarification_style: VekilClarificationStyle;\n reply_length: VekilReplyLength;\n tone: VekilCommunicationTone;\n unavailable_action_behavior: VekilUnavailableActionBehavior;\n writing_preferences: string | null;\n}\n\nexport const defaultVekilCommunicationSettings = {\n clarification_style: VekilClarificationStyle.ONE_AT_A_TIME,\n reply_length: VekilReplyLength.CONCISE,\n tone: VekilCommunicationTone.NATURAL,\n unavailable_action_behavior: VekilUnavailableActionBehavior.COLLECT_AND_HAND_OFF,\n writing_preferences: null\n} satisfies VekilCommunicationSettings;\n","export enum ActorType {\n ANONYMOUS_VISITOR = \"ANONYMOUS_VISITOR\",\n GUEST_REQUESTER = \"GUEST_REQUESTER\",\n VERIFIED_EXTERNAL = \"VERIFIED_EXTERNAL\",\n AUTHENTICATED_USER = \"AUTHENTICATED_USER\",\n AGENT_PROFILE = \"AGENT_PROFILE\",\n SYSTEM = \"SYSTEM\",\n APP = \"APP\"\n}\n\nexport enum VerificationStatus {\n UNVERIFIED = \"UNVERIFIED\",\n EMAIL_VERIFIED = \"EMAIL_VERIFIED\",\n PHONE_VERIFIED = \"PHONE_VERIFIED\",\n DOMAIN_VERIFIED = \"DOMAIN_VERIFIED\",\n PLATFORM_VERIFIED = \"PLATFORM_VERIFIED\"\n}\n\nexport enum RequestOriginType {\n PUBLIC_GUEST = \"PUBLIC_GUEST\",\n PUBLIC_VERIFIED_EXTERNAL = \"PUBLIC_VERIFIED_EXTERNAL\",\n PUBLIC_AUTHENTICATED = \"PUBLIC_AUTHENTICATED\",\n AGENT_TO_AGENT = \"AGENT_TO_AGENT\",\n AGENT_TO_EXTERNAL_FALLBACK = \"AGENT_TO_EXTERNAL_FALLBACK\",\n SYSTEM_GENERATED = \"SYSTEM_GENERATED\"\n}\n\nexport enum PublicRequestSessionStatus {\n ACTIVE = \"ACTIVE\",\n IDENTITY_REQUIRED = \"IDENTITY_REQUIRED\",\n VERIFICATION_REQUIRED = \"VERIFICATION_REQUIRED\",\n REQUEST_CREATED = \"REQUEST_CREATED\",\n WAITING_OWNER = \"WAITING_OWNER\",\n WAITING_REQUESTER = \"WAITING_REQUESTER\",\n COMPLETED = \"COMPLETED\",\n EXPIRED = \"EXPIRED\",\n BLOCKED = \"BLOCKED\"\n}\n\nexport enum AgentEnvelopeType {\n REQUEST = \"REQUEST\",\n PROPOSAL = \"PROPOSAL\",\n RESPONSE = \"RESPONSE\",\n STATUS_UPDATE = \"STATUS_UPDATE\",\n CANCELLATION = \"CANCELLATION\"\n}\n\nexport enum AgentEnvelopeStatus {\n CREATED = \"CREATED\",\n SENT = \"SENT\",\n DELIVERED = \"DELIVERED\",\n ACCEPTED = \"ACCEPTED\",\n REJECTED = \"REJECTED\",\n NEGOTIATING = \"NEGOTIATING\",\n COMPLETED = \"COMPLETED\",\n FAILED = \"FAILED\",\n EXPIRED = \"EXPIRED\"\n}\n\nexport enum RequestParticipantRole {\n OWNER = \"OWNER\",\n REQUESTER = \"REQUESTER\",\n TARGET_AGENT = \"TARGET_AGENT\",\n SOURCE_AGENT = \"SOURCE_AGENT\",\n EXTERNAL_GUEST = \"EXTERNAL_GUEST\",\n APPROVER = \"APPROVER\",\n OBSERVER = \"OBSERVER\",\n SYSTEM = \"SYSTEM\"\n}\n\nexport enum RequestVisibilityLevel {\n PUBLIC_REQUESTER = \"PUBLIC_REQUESTER\",\n REQUESTER_PRIVATE = \"REQUESTER_PRIVATE\",\n OWNER_PRIVATE = \"OWNER_PRIVATE\",\n AGENT_INTERNAL = \"AGENT_INTERNAL\",\n SYSTEM_ONLY = \"SYSTEM_ONLY\"\n}\n\nexport interface Actor {\n id: string;\n actorType: ActorType;\n linkedUserId: string | null;\n linkedAgentId: string | null;\n linkedContactIdentityId: string | null;\n linkedAppInstallationId: string | null;\n displayName: string;\n verificationStatus: VerificationStatus;\n createdAt: Date;\n}\n\nconst publicRequestSessionTransitions: Record<\n PublicRequestSessionStatus,\n PublicRequestSessionStatus[]\n> = {\n [PublicRequestSessionStatus.ACTIVE]: [\n PublicRequestSessionStatus.ACTIVE,\n PublicRequestSessionStatus.IDENTITY_REQUIRED,\n PublicRequestSessionStatus.REQUEST_CREATED,\n PublicRequestSessionStatus.EXPIRED,\n PublicRequestSessionStatus.BLOCKED\n ],\n [PublicRequestSessionStatus.IDENTITY_REQUIRED]: [\n PublicRequestSessionStatus.ACTIVE,\n PublicRequestSessionStatus.VERIFICATION_REQUIRED,\n PublicRequestSessionStatus.REQUEST_CREATED,\n PublicRequestSessionStatus.EXPIRED,\n PublicRequestSessionStatus.BLOCKED\n ],\n [PublicRequestSessionStatus.VERIFICATION_REQUIRED]: [\n PublicRequestSessionStatus.ACTIVE,\n PublicRequestSessionStatus.REQUEST_CREATED,\n PublicRequestSessionStatus.EXPIRED,\n PublicRequestSessionStatus.BLOCKED\n ],\n [PublicRequestSessionStatus.REQUEST_CREATED]: [\n PublicRequestSessionStatus.ACTIVE,\n PublicRequestSessionStatus.WAITING_OWNER,\n PublicRequestSessionStatus.WAITING_REQUESTER,\n PublicRequestSessionStatus.COMPLETED,\n PublicRequestSessionStatus.EXPIRED,\n PublicRequestSessionStatus.BLOCKED\n ],\n [PublicRequestSessionStatus.WAITING_OWNER]: [\n PublicRequestSessionStatus.ACTIVE,\n PublicRequestSessionStatus.WAITING_REQUESTER,\n PublicRequestSessionStatus.COMPLETED,\n PublicRequestSessionStatus.EXPIRED,\n PublicRequestSessionStatus.BLOCKED\n ],\n [PublicRequestSessionStatus.WAITING_REQUESTER]: [\n PublicRequestSessionStatus.ACTIVE,\n PublicRequestSessionStatus.WAITING_OWNER,\n PublicRequestSessionStatus.COMPLETED,\n PublicRequestSessionStatus.EXPIRED,\n PublicRequestSessionStatus.BLOCKED\n ],\n [PublicRequestSessionStatus.COMPLETED]: [PublicRequestSessionStatus.ACTIVE],\n [PublicRequestSessionStatus.EXPIRED]: [],\n [PublicRequestSessionStatus.BLOCKED]: []\n};\n\nconst agentEnvelopeTransitions: Record<AgentEnvelopeStatus, AgentEnvelopeStatus[]> = {\n [AgentEnvelopeStatus.CREATED]: [AgentEnvelopeStatus.SENT, AgentEnvelopeStatus.FAILED],\n [AgentEnvelopeStatus.SENT]: [\n AgentEnvelopeStatus.DELIVERED,\n AgentEnvelopeStatus.FAILED,\n AgentEnvelopeStatus.EXPIRED\n ],\n [AgentEnvelopeStatus.DELIVERED]: [\n AgentEnvelopeStatus.ACCEPTED,\n AgentEnvelopeStatus.REJECTED,\n AgentEnvelopeStatus.NEGOTIATING,\n AgentEnvelopeStatus.EXPIRED\n ],\n [AgentEnvelopeStatus.ACCEPTED]: [\n AgentEnvelopeStatus.NEGOTIATING,\n AgentEnvelopeStatus.COMPLETED,\n AgentEnvelopeStatus.FAILED\n ],\n [AgentEnvelopeStatus.REJECTED]: [],\n [AgentEnvelopeStatus.NEGOTIATING]: [\n AgentEnvelopeStatus.ACCEPTED,\n AgentEnvelopeStatus.REJECTED,\n AgentEnvelopeStatus.COMPLETED,\n AgentEnvelopeStatus.FAILED,\n AgentEnvelopeStatus.EXPIRED\n ],\n [AgentEnvelopeStatus.COMPLETED]: [],\n [AgentEnvelopeStatus.FAILED]: [],\n [AgentEnvelopeStatus.EXPIRED]: []\n};\n\nexport function canTransitionPublicRequestSession(\n from: PublicRequestSessionStatus,\n to: PublicRequestSessionStatus\n): boolean {\n return publicRequestSessionTransitions[from].includes(to);\n}\n\nexport function assertPublicRequestSessionTransition(\n from: PublicRequestSessionStatus,\n to: PublicRequestSessionStatus\n): void {\n if (!canTransitionPublicRequestSession(from, to)) {\n throw new Error(`Invalid public request session transition: ${from} -> ${to}`);\n }\n}\n\nexport function canTransitionAgentEnvelope(\n from: AgentEnvelopeStatus,\n to: AgentEnvelopeStatus\n): boolean {\n return agentEnvelopeTransitions[from].includes(to);\n}\n\nexport function assertAgentEnvelopeTransition(\n from: AgentEnvelopeStatus,\n to: AgentEnvelopeStatus\n): void {\n if (!canTransitionAgentEnvelope(from, to)) {\n throw new Error(`Invalid agent envelope transition: ${from} -> ${to}`);\n }\n}\n","import type { RequestVisibilityLevel } from \"./identity\";\n\nexport enum RequestStatus {\n RECEIVED = \"RECEIVED\",\n CLASSIFIED = \"CLASSIFIED\",\n NEEDS_CLARIFICATION = \"NEEDS_CLARIFICATION\",\n POLICY_CHECKED = \"POLICY_CHECKED\",\n PROPOSAL_READY = \"PROPOSAL_READY\",\n WAITING_FOR_REQUESTER = \"WAITING_FOR_REQUESTER\",\n WAITING_FOR_OWNER = \"WAITING_FOR_OWNER\",\n WAITING_FOR_APPROVAL = \"WAITING_FOR_APPROVAL\",\n APPROVED = \"APPROVED\",\n EXECUTING = \"EXECUTING\",\n COMPLETED = \"COMPLETED\",\n UNFULFILLED = \"UNFULFILLED\",\n DECLINED = \"DECLINED\",\n FAILED = \"FAILED\",\n EXPIRED = \"EXPIRED\",\n CANCELLED = \"CANCELLED\"\n}\n\nexport enum RequestType {\n GENERAL_REQUEST = \"GENERAL_REQUEST\",\n APP_INTENT = \"APP_INTENT\",\n UNSUPPORTED = \"UNSUPPORTED\",\n AMBIGUOUS = \"AMBIGUOUS\"\n}\n\nexport enum RequestNextAction {\n WAIT = \"WAIT\",\n CLARIFY = \"CLARIFY\",\n SELECT_OPTION = \"SELECT_OPTION\",\n APPROVAL = \"APPROVAL\",\n COMPLETED = \"COMPLETED\"\n}\n\nexport enum InboxBucket {\n ATTENTION = \"ATTENTION\",\n ACTIVE = \"ACTIVE\",\n DONE = \"DONE\",\n ALL = \"ALL\"\n}\n\nexport enum InboxOwnerAction {\n RESPOND = \"RESPOND\",\n REVIEW_PROPOSAL = \"REVIEW_PROPOSAL\",\n REVIEW_APPROVAL = \"REVIEW_APPROVAL\",\n REVIEW_FAILURE = \"REVIEW_FAILURE\"\n}\n\nexport enum MessageRelationType {\n CONTINUATION = \"CONTINUATION\",\n CLARIFICATION_ANSWER = \"CLARIFICATION_ANSWER\",\n CORRECTION = \"CORRECTION\",\n CANCELLATION = \"CANCELLATION\",\n NEW_REQUEST = \"NEW_REQUEST\",\n SMALL_TALK = \"SMALL_TALK\",\n INFORMATIONAL = \"INFORMATIONAL\",\n UNSUPPORTED = \"UNSUPPORTED\",\n AMBIGUOUS = \"AMBIGUOUS\",\n MULTI_REQUEST = \"MULTI_REQUEST\"\n}\n\nexport enum RequesterReviewDecision {\n NONE = \"NONE\",\n CONFIRM = \"CONFIRM\",\n REVISE = \"REVISE\"\n}\n\nexport enum RequestContextDecisionType {\n CONTINUED_REQUEST = \"CONTINUED_REQUEST\",\n CREATED_NEW_REQUEST = \"CREATED_NEW_REQUEST\",\n RESPONDED_IN_CONVERSATION = \"RESPONDED_IN_CONVERSATION\",\n CORRECTED_REQUEST = \"CORRECTED_REQUEST\",\n CANCELLED_REQUEST = \"CANCELLED_REQUEST\",\n ASKED_CLARIFICATION = \"ASKED_CLARIFICATION\",\n UNSUPPORTED = \"UNSUPPORTED\",\n SMALL_TALK = \"SMALL_TALK\",\n SPLIT_MULTI_REQUEST = \"SPLIT_MULTI_REQUEST\"\n}\n\nexport enum RequestContextResolutionAction {\n ACCEPT = \"ACCEPT\",\n REJECT = \"REJECT\"\n}\n\nexport enum RequestContextResolutionStatus {\n NOT_REQUIRED = \"NOT_REQUIRED\",\n PENDING = \"PENDING\",\n PROCESSING = \"PROCESSING\",\n ACCEPTED = \"ACCEPTED\",\n REJECTED = \"REJECTED\",\n EXPIRED = \"EXPIRED\"\n}\n\nexport enum ApprovalAction {\n APPROVE = \"APPROVE\",\n DECLINE = \"DECLINE\",\n REQUEST_CHANGES = \"REQUEST_CHANGES\"\n}\n\nexport enum ApprovalStatus {\n PENDING = \"PENDING\",\n APPROVED = \"APPROVED\",\n DECLINED = \"DECLINED\",\n CHANGES_REQUESTED = \"CHANGES_REQUESTED\",\n EXPIRED = \"EXPIRED\",\n CANCELLED = \"CANCELLED\"\n}\n\nexport interface VekilRequest {\n id: string;\n type: RequestType;\n status: RequestStatus;\n targetAgentId: string;\n requesterIdentityId: string;\n naturalLanguageInput: string;\n appIntentId: string | null;\n appActionId: string | null;\n appCapability: string | null;\n appDefinitionId: string | null;\n isComposite: boolean;\n confidence: number | null;\n requiresApproval: boolean;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport interface RequestArtifact {\n id: string;\n requestId: string;\n actionPlanId: string | null;\n actionStepId: string | null;\n artifactType: string;\n schemaVersion: number;\n artifact: Record<string, unknown>;\n sourceAppInstallationId: string | null;\n sourceActionId: string | null;\n visibilityLevel: RequestVisibilityLevel;\n createdAt: Date;\n}\n\nconst allowedTransitions: Record<RequestStatus, RequestStatus[]> = {\n [RequestStatus.RECEIVED]: [\n RequestStatus.CLASSIFIED,\n RequestStatus.UNFULFILLED,\n RequestStatus.FAILED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.CLASSIFIED]: [\n RequestStatus.NEEDS_CLARIFICATION,\n RequestStatus.POLICY_CHECKED,\n RequestStatus.UNFULFILLED,\n RequestStatus.FAILED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.NEEDS_CLARIFICATION]: [\n RequestStatus.CLASSIFIED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.POLICY_CHECKED]: [\n RequestStatus.PROPOSAL_READY,\n RequestStatus.UNFULFILLED,\n RequestStatus.DECLINED,\n RequestStatus.FAILED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.PROPOSAL_READY]: [\n RequestStatus.CLASSIFIED,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.WAITING_FOR_APPROVAL,\n RequestStatus.COMPLETED,\n RequestStatus.FAILED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.WAITING_FOR_REQUESTER]: [\n RequestStatus.CLASSIFIED,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.WAITING_FOR_APPROVAL,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.WAITING_FOR_OWNER]: [\n RequestStatus.CLASSIFIED,\n RequestStatus.COMPLETED,\n RequestStatus.DECLINED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.WAITING_FOR_APPROVAL]: [\n RequestStatus.APPROVED,\n RequestStatus.DECLINED,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.FAILED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.APPROVED]: [\n RequestStatus.EXECUTING,\n RequestStatus.COMPLETED,\n RequestStatus.CANCELLED\n ],\n [RequestStatus.EXECUTING]: [\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.COMPLETED,\n RequestStatus.FAILED\n ],\n [RequestStatus.COMPLETED]: [],\n [RequestStatus.UNFULFILLED]: [],\n [RequestStatus.DECLINED]: [],\n [RequestStatus.FAILED]: [RequestStatus.CANCELLED],\n [RequestStatus.EXPIRED]: [],\n [RequestStatus.CANCELLED]: []\n};\n\nexport function canTransitionRequest(from: RequestStatus, to: RequestStatus): boolean {\n return allowedTransitions[from].includes(to);\n}\n\nexport function assertRequestTransition(from: RequestStatus, to: RequestStatus): void {\n if (!canTransitionRequest(from, to)) {\n throw new Error(`Invalid request transition: ${from} -> ${to}`);\n }\n}\n\nconst replannableRequestStatuses = new Set<RequestStatus>([\n RequestStatus.RECEIVED,\n RequestStatus.CLASSIFIED,\n RequestStatus.NEEDS_CLARIFICATION,\n RequestStatus.PROPOSAL_READY,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.WAITING_FOR_APPROVAL\n]);\n\n/**\n * A requester correction may replace an uncommitted plan only while the\n * Request is still mutable. WAITING_FOR_APPROVAL is intentionally included,\n * but persistence must cancel the pending approval before reclassification.\n */\nexport function canReplanRequestStatus(status: RequestStatus): boolean {\n return replannableRequestStatuses.has(status);\n}\n\nexport interface RequestContextReplanTarget {\n conversation_id: string;\n owner_actor_id: string | null;\n owner_user_id: string;\n requester_actor_id: string | null;\n requester_identity_id: string;\n status: RequestStatus;\n target_agent_actor_id: string | null;\n target_agent_id: string;\n}\n\nexport type RequestContextReplanEligibility =\n | { allowed: true }\n | {\n allowed: false;\n reason:\n | \"TARGET_PARTICIPANT_SCOPE_MISMATCH\"\n | \"TARGET_REQUEST_SCOPE_MISMATCH\"\n | \"TARGET_STATUS_IMMUTABLE\";\n };\n\nexport function evaluateRequestContextReplanTarget({\n current,\n selected\n}: {\n current: Omit<RequestContextReplanTarget, \"status\">;\n selected: RequestContextReplanTarget;\n}): RequestContextReplanEligibility {\n if (\n selected.conversation_id !== current.conversation_id ||\n selected.owner_user_id !== current.owner_user_id ||\n selected.requester_identity_id !== current.requester_identity_id ||\n selected.target_agent_id !== current.target_agent_id\n ) {\n return { allowed: false, reason: \"TARGET_REQUEST_SCOPE_MISMATCH\" };\n }\n\n if (\n selected.owner_actor_id !== current.owner_actor_id ||\n selected.requester_actor_id !== current.requester_actor_id ||\n selected.target_agent_actor_id !== current.target_agent_actor_id\n ) {\n return { allowed: false, reason: \"TARGET_PARTICIPANT_SCOPE_MISMATCH\" };\n }\n\n if (!canReplanRequestStatus(selected.status)) {\n return { allowed: false, reason: \"TARGET_STATUS_IMMUTABLE\" };\n }\n\n return { allowed: true };\n}\n\nexport interface PublicRequestRoutingSnapshot {\n active_request_id: string | null;\n contact_identity_id: string | null;\n conversation_id: string;\n request_id: string;\n session_id: string;\n target_agent_id: string;\n}\n\nexport function matchesPublicRequestRoutingSnapshot(\n expected: PublicRequestRoutingSnapshot,\n current: PublicRequestRoutingSnapshot\n): boolean {\n return (\n current.active_request_id === expected.active_request_id &&\n current.contact_identity_id === expected.contact_identity_id &&\n current.conversation_id === expected.conversation_id &&\n current.request_id === expected.request_id &&\n current.session_id === expected.session_id &&\n current.target_agent_id === expected.target_agent_id\n );\n}\n\nconst terminalRequestStatuses = new Set<RequestStatus>([\n RequestStatus.COMPLETED,\n RequestStatus.UNFULFILLED,\n RequestStatus.DECLINED,\n RequestStatus.FAILED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n]);\n\nexport function isTerminalRequestStatus(status: RequestStatus): boolean {\n return terminalRequestStatuses.has(status);\n}\n\nexport function isOpenRequestStatus(status: RequestStatus): boolean {\n return !isTerminalRequestStatus(status);\n}\n\nconst inboxBucketByRequestStatus = {\n [RequestStatus.RECEIVED]: InboxBucket.ACTIVE,\n [RequestStatus.CLASSIFIED]: InboxBucket.ACTIVE,\n [RequestStatus.NEEDS_CLARIFICATION]: InboxBucket.ACTIVE,\n [RequestStatus.POLICY_CHECKED]: InboxBucket.ACTIVE,\n [RequestStatus.PROPOSAL_READY]: InboxBucket.ATTENTION,\n [RequestStatus.WAITING_FOR_REQUESTER]: InboxBucket.ACTIVE,\n [RequestStatus.WAITING_FOR_OWNER]: InboxBucket.ATTENTION,\n [RequestStatus.WAITING_FOR_APPROVAL]: InboxBucket.ATTENTION,\n [RequestStatus.APPROVED]: InboxBucket.ACTIVE,\n [RequestStatus.EXECUTING]: InboxBucket.ACTIVE,\n [RequestStatus.COMPLETED]: InboxBucket.DONE,\n [RequestStatus.UNFULFILLED]: InboxBucket.DONE,\n [RequestStatus.DECLINED]: InboxBucket.DONE,\n [RequestStatus.FAILED]: InboxBucket.ATTENTION,\n [RequestStatus.EXPIRED]: InboxBucket.DONE,\n [RequestStatus.CANCELLED]: InboxBucket.DONE\n} satisfies Record<RequestStatus, Exclude<InboxBucket, InboxBucket.ALL>>;\n\nconst inboxOwnerActionByRequestStatus: Partial<Record<RequestStatus, InboxOwnerAction>> = {\n [RequestStatus.WAITING_FOR_OWNER]: InboxOwnerAction.RESPOND,\n [RequestStatus.PROPOSAL_READY]: InboxOwnerAction.REVIEW_PROPOSAL,\n [RequestStatus.WAITING_FOR_APPROVAL]: InboxOwnerAction.REVIEW_APPROVAL,\n [RequestStatus.FAILED]: InboxOwnerAction.REVIEW_FAILURE\n};\n\nexport function inboxBucketForRequestStatus(\n status: RequestStatus\n): Exclude<InboxBucket, InboxBucket.ALL> {\n return inboxBucketByRequestStatus[status];\n}\n\nexport function inboxOwnerActionForRequestStatus(status: RequestStatus): InboxOwnerAction | null {\n return inboxOwnerActionByRequestStatus[status] ?? null;\n}\n\nexport function requestStatusesForInboxBucket(bucket: InboxBucket): RequestStatus[] {\n if (bucket === InboxBucket.ALL) {\n return Object.values(RequestStatus);\n }\n\n return Object.values(RequestStatus).filter(\n (status) => inboxBucketByRequestStatus[status] === bucket\n );\n}\n","import { z } from \"zod\";\n\nexport const maxAppDefinitionFileBytes = 2 * 1024 * 1024;\nexport const maxAppDefinitionRequestBytes = maxAppDefinitionFileBytes + 64 * 1024;\n\nexport enum AppSubmissionViewStatus {\n DRAFT = \"DRAFT\",\n SUBMITTED = \"SUBMITTED\",\n IN_REVIEW = \"IN_REVIEW\",\n CHANGES_REQUESTED = \"CHANGES_REQUESTED\",\n APPROVED = \"APPROVED\",\n REJECTED = \"REJECTED\",\n PUBLISHED = \"PUBLISHED\",\n WITHDRAWN = \"WITHDRAWN\",\n SUSPENDED = \"SUSPENDED\"\n}\n\nexport enum AppBuilderProjectViewStatus {\n ACTIVE = \"ACTIVE\",\n ARCHIVED = \"ARCHIVED\"\n}\n\nexport enum AppBuilderProjectSourceType {\n GUIDED = \"GUIDED\",\n IMPORTED_DEFINITION = \"IMPORTED_DEFINITION\"\n}\n\nexport enum BuilderProfileViewStatus {\n ACTIVE = \"ACTIVE\",\n SUSPENDED = \"SUSPENDED\"\n}\n\nexport enum AppTestRunViewStatus {\n QUEUED = \"QUEUED\",\n RUNNING = \"RUNNING\",\n SUCCEEDED = \"SUCCEEDED\",\n FAILED = \"FAILED\",\n CANCELLED = \"CANCELLED\"\n}\n\nexport enum AppBuilderAudience {\n ONLY_ME = \"ONLY_ME\",\n SPECIFIC_PEOPLE = \"SPECIFIC_PEOPLE\",\n PUBLIC = \"PUBLIC\"\n}\n\nexport enum AppBuilderLifecycleState {\n DRAFT = \"DRAFT\",\n NEEDS_TEST = \"NEEDS_TEST\",\n READY_TO_RELEASE = \"READY_TO_RELEASE\",\n RELEASED = \"RELEASED\",\n IN_REVIEW = \"IN_REVIEW\",\n CHANGES_REQUESTED = \"CHANGES_REQUESTED\",\n LIVE = \"LIVE\",\n SUSPENDED = \"SUSPENDED\",\n RETIRED = \"RETIRED\"\n}\n\nexport enum AppBuilderCandidateTestStatus {\n NOT_RUN = \"NOT_RUN\",\n PASSED = \"PASSED\",\n FAILED = \"FAILED\"\n}\n\nconst appSubmissionStatusSchema = z.enum(AppSubmissionViewStatus);\nconst appDefinitionSnapshotSchema = z.record(z.string(), z.unknown());\nconst appManifestSnapshotSchema = z.record(z.string(), z.unknown());\nconst appBuilderProjectSourceSchema = z.record(z.string(), z.unknown());\n\nexport const appDevelopmentCompilationIssueViewSchema = z.object({\n code: z.string(),\n message: z.string(),\n path: z.string(),\n section: z.string().nullable()\n});\n\nexport type AppDevelopmentCompilationIssueView = z.infer<\n typeof appDevelopmentCompilationIssueViewSchema\n>;\n\nconst appBuilderCandidateViewSchema = z.object({\n id: z.string(),\n testStatus: z.enum(AppBuilderCandidateTestStatus),\n testedAt: z.string().datetime({ offset: true }).nullable(),\n version: z.string()\n});\n\nconst appBuilderReleaseViewSchema = z.object({\n id: z.string(),\n publishedAt: z.string().datetime({ offset: true }),\n version: z.string()\n});\n\nconst appBuilderReleaseHistoryViewSchema = appBuilderReleaseViewSchema.extend({\n isCurrent: z.boolean()\n});\n\nconst appBuilderSubmissionSummaryViewSchema = z.object({\n id: z.string(),\n reviewNotes: z.string().nullable(),\n status: appSubmissionStatusSchema,\n updatedAt: z.string().datetime({ offset: true }),\n version: z.string(),\n versionId: z.string()\n});\n\nexport const appBuilderLifecycleViewSchema = z.object({\n actions: z.object({\n canDeleteDraft: z.boolean(),\n canGrantAccess: z.boolean(),\n canManageAccess: z.boolean(),\n canReleasePrivate: z.boolean(),\n canRetire: z.boolean(),\n canSubmitForReview: z.boolean()\n }),\n activeGrantCount: z.number().int().nonnegative(),\n appSlug: z.string().nullable(),\n audience: z.enum(AppBuilderAudience),\n candidate: appBuilderCandidateViewSchema.nullable(),\n hasUnreleasedChanges: z.boolean(),\n latestRelease: appBuilderReleaseViewSchema.nullable(),\n productionInstallCount: z.number().int().nonnegative(),\n releaseHistory: z.array(appBuilderReleaseHistoryViewSchema),\n state: z.enum(AppBuilderLifecycleState),\n submission: appBuilderSubmissionSummaryViewSchema.nullable(),\n submissionHistory: z.array(appBuilderSubmissionSummaryViewSchema)\n});\n\nexport type AppBuilderLifecycleView = z.infer<typeof appBuilderLifecycleViewSchema>;\n\nconst appBuilderProjectViewBase = {\n appId: z.string(),\n compiledDefinitionHash: z.string().nullable(),\n createdAt: z.string().datetime({ offset: true }),\n id: z.string(),\n iconUrl: z.string().url().nullable(),\n lifecycle: appBuilderLifecycleViewSchema,\n status: z.enum(AppBuilderProjectViewStatus),\n updatedAt: z.string().datetime({ offset: true })\n} as const;\n\nexport const appBuilderProjectViewSchema = z.discriminatedUnion(\"sourceType\", [\n z.object({\n ...appBuilderProjectViewBase,\n activeSection: z.string(),\n source: appBuilderProjectSourceSchema,\n sourceType: z.literal(AppBuilderProjectSourceType.GUIDED),\n sourceVersion: z.string(),\n templateId: z.string()\n }),\n z.object({\n ...appBuilderProjectViewBase,\n activeSection: z.null(),\n source: appBuilderProjectSourceSchema,\n sourceType: z.literal(AppBuilderProjectSourceType.IMPORTED_DEFINITION),\n sourceVersion: z.string(),\n templateId: z.null()\n })\n]);\n\nexport type AppBuilderProjectView = z.infer<typeof appBuilderProjectViewSchema>;\n\nexport const appDevelopmentCompilationViewSchema = z.discriminatedUnion(\"ok\", [\n z.object({\n definition: appDefinitionSnapshotSchema,\n issues: z.tuple([]),\n ok: z.literal(true)\n }),\n z.object({\n issues: z.array(appDevelopmentCompilationIssueViewSchema),\n ok: z.literal(false)\n })\n]);\n\nexport type AppDevelopmentCompilationView = z.infer<typeof appDevelopmentCompilationViewSchema>;\n\nexport const appDevelopmentCandidateViewSchema = z.object({\n appId: z.string(),\n appVersion: z.string(),\n appVersionId: z.string(),\n manifest: appManifestSnapshotSchema\n});\n\nexport type AppDevelopmentCandidateView = z.infer<typeof appDevelopmentCandidateViewSchema>;\n\nexport const testAppDevelopmentCandidateInputSchema = z.strictObject({\n appVersionId: z.string().trim().min(1)\n});\n\nexport type TestAppDevelopmentCandidateInput = z.infer<\n typeof testAppDevelopmentCandidateInputSchema\n>;\n\nexport const appDevelopmentTestRunViewSchema = z.object({\n appId: z.string(),\n appVersion: z.string(),\n appVersionId: z.string(),\n checkedAt: z.string().datetime({ offset: true }).nullable(),\n errorCode: z.string().nullable(),\n id: z.string(),\n installationId: z.string(),\n manifest: appManifestSnapshotSchema,\n ok: z.boolean(),\n runtimeStatus: z.enum([\"HEALTHY\", \"DEGRADED\", \"UNHEALTHY\"]).nullable(),\n status: z.enum(AppTestRunViewStatus),\n traceId: z.string()\n});\n\nexport type AppDevelopmentTestRunView = z.infer<typeof appDevelopmentTestRunViewSchema>;\n\nexport const appDevelopmentPreviewInstallationViewSchema = z.object({\n appId: z.string(),\n appVersion: z.string(),\n appVersionId: z.string(),\n installationId: z.string()\n});\n\nexport type AppDevelopmentPreviewInstallationView = z.infer<\n typeof appDevelopmentPreviewInstallationViewSchema\n>;\n\nexport const releaseAppBuilderProjectInputSchema = z.strictObject({\n appVersionId: z.string().trim().min(1)\n});\n\nexport type ReleaseAppBuilderProjectInput = z.infer<typeof releaseAppBuilderProjectInputSchema>;\n\nexport const grantAppBuilderAccessInputSchema = z.strictObject({\n handle: z.string().trim().min(1).max(64)\n});\n\nexport type GrantAppBuilderAccessInput = z.infer<typeof grantAppBuilderAccessInputSchema>;\n\nexport const appBuilderAccessGrantViewSchema = z.object({\n avatarUrl: z.string().url().nullable(),\n createdAt: z.string().datetime({ offset: true }),\n handle: z.string(),\n id: z.string(),\n name: z.string(),\n revokedAt: z.string().datetime({ offset: true }).nullable(),\n status: z.enum([\"ACTIVE\", \"REVOKED\"])\n});\n\nexport type AppBuilderAccessGrantView = z.infer<typeof appBuilderAccessGrantViewSchema>;\n\nexport const builderProfileViewSchema = z.object({\n githubUrl: z.string().url().nullable(),\n handle: z.string(),\n id: z.string(),\n isOfficialTeamMember: z.boolean(),\n isVerified: z.boolean(),\n linkedinUrl: z.string().url().nullable(),\n name: z.string(),\n status: z.enum(BuilderProfileViewStatus),\n supportEmail: z.string().email().nullable(),\n websiteUrl: z.string().url().nullable(),\n xProfileUrl: z.string().url().nullable()\n});\n\nexport type BuilderProfileView = z.infer<typeof builderProfileViewSchema>;\n\nconst optionalProfileUrlSchema = z.string().trim().url().nullable().optional();\n\nexport const updateBuilderProfileSchema = z.strictObject({\n githubUrl: optionalProfileUrlSchema,\n linkedinUrl: optionalProfileUrlSchema,\n supportEmail: z.string().trim().email().nullable().optional(),\n websiteUrl: optionalProfileUrlSchema,\n xProfileUrl: optionalProfileUrlSchema\n});\n\nexport type UpdateBuilderProfileInput = z.infer<typeof updateBuilderProfileSchema>;\n\nexport const updateAppBuilderProjectIconSchema = z.strictObject({\n assetId: z.string().min(1).nullable()\n});\n","import { z } from \"zod\";\nimport { AgentStatus, RequestStatus } from \"@vekil/domain\";\nimport { AppSubmissionViewStatus } from \"./app-development\";\nimport { AuthAdminRole } from \"./auth\";\n\nconst countSchema = z.number().int().nonnegative();\nconst nullableUrlSchema = z.string().url().nullable();\n\nfunction optionalTrimmedString(maxLength: number) {\n return z.preprocess(\n (value) => (typeof value === \"string\" && value.trim() === \"\" ? undefined : value),\n z.string().trim().max(maxLength).optional()\n );\n}\n\nexport enum AdminAppDefinitionStatus {\n DRAFT = \"DRAFT\",\n ACTIVE = \"ACTIVE\",\n SUSPENDED = \"SUSPENDED\",\n ARCHIVED = \"ARCHIVED\"\n}\n\nexport enum AdminAppRuntimeType {\n DECLARATIVE = \"DECLARATIVE\",\n REMOTE = \"REMOTE\"\n}\n\nexport enum AdminAppTrustLevel {\n UNVERIFIED = \"UNVERIFIED\",\n VERIFIED = \"VERIFIED\"\n}\n\nexport enum AdminAppVersionStatus {\n INTERNAL = \"INTERNAL\",\n PUBLISHED = \"PUBLISHED\",\n DEPRECATED = \"DEPRECATED\",\n SUSPENDED = \"SUSPENDED\"\n}\n\nexport enum AdminAppVisibility {\n PRIVATE = \"PRIVATE\",\n PUBLIC = \"PUBLIC\"\n}\n\nexport enum AdminBuilderProfileStatus {\n ACTIVE = \"ACTIVE\",\n SUSPENDED = \"SUSPENDED\"\n}\n\nexport enum AppReviewAction {\n START_REVIEW = \"START_REVIEW\",\n REQUEST_CHANGES = \"REQUEST_CHANGES\",\n APPROVE = \"APPROVE\",\n REJECT = \"REJECT\",\n PUBLISH = \"PUBLISH\"\n}\n\nexport enum AppReviewEventType {\n SUBMITTED = \"SUBMITTED\",\n STATUS_CHANGED = \"STATUS_CHANGED\",\n COMMENTED = \"COMMENTED\",\n CHANGES_REQUESTED = \"CHANGES_REQUESTED\",\n APPROVED = \"APPROVED\",\n REJECTED = \"REJECTED\",\n PUBLISHED = \"PUBLISHED\",\n WITHDRAWN = \"WITHDRAWN\"\n}\n\nexport enum AdminAppModerationAction {\n SUSPEND = \"SUSPEND\",\n RESTORE = \"RESTORE\"\n}\n\nexport enum AdminAppModerationEventType {\n SUSPENDED = \"SUSPENDED\",\n RESTORED = \"RESTORED\"\n}\n\nexport enum AdminAppActivitySource {\n REVIEW = \"REVIEW\",\n MODERATION = \"MODERATION\"\n}\n\nexport const adminDirectoryQuerySchema = z.object({\n cursor: optionalTrimmedString(160),\n limit: z.coerce.number().int().min(1).max(50).default(30),\n query: optionalTrimmedString(80)\n});\n\nexport type AdminDirectoryQuery = z.infer<typeof adminDirectoryQuerySchema>;\n\nexport const adminAppDirectoryQuerySchema = adminDirectoryQuerySchema.extend({\n categoryId: optionalTrimmedString(80)\n});\n\nexport type AdminAppDirectoryQuery = z.infer<typeof adminAppDirectoryQuerySchema>;\n\nexport const adminOverviewViewSchema = z.object({\n apps: z.object({\n installationsLast7Days: countSchema,\n installationsReportingIssues: countSchema,\n productionInstallations: countSchema,\n published: countSchema\n }),\n generatedAt: z.string().datetime({ offset: true }),\n requests: z.object({\n active: countSchema,\n createdLast7Days: countSchema,\n failedLast7Days: countSchema,\n total: countSchema\n }),\n reviews: z.object({\n pending: countSchema\n }),\n users: z.object({\n activeVekils: countSchema,\n joinedLast7Days: countSchema,\n total: countSchema\n })\n});\n\nexport type AdminOverviewView = z.infer<typeof adminOverviewViewSchema>;\n\nconst adminVekilSummarySchema = z.object({\n avatarUrl: nullableUrlSchema,\n displayName: z.string(),\n handle: z.string().nullable(),\n id: z.string(),\n publicVisibility: z.boolean(),\n status: z.enum(AgentStatus)\n});\n\nconst adminBuilderSummarySchema = z.object({\n apps: countSchema,\n status: z.enum(AdminBuilderProfileStatus),\n verified: z.boolean()\n});\n\nconst adminUserCountsSchema = z.object({\n activeSessions: countSchema,\n installedApps: countSchema,\n openRequests: countSchema,\n totalRequests: countSchema\n});\n\nexport const adminUserListItemSchema = z.object({\n adminRoles: z.array(z.enum(AuthAdminRole)),\n builder: adminBuilderSummarySchema.nullable(),\n counts: adminUserCountsSchema,\n createdAt: z.string().datetime({ offset: true }),\n email: z.string().email(),\n id: z.string(),\n updatedAt: z.string().datetime({ offset: true }),\n vekil: adminVekilSummarySchema.nullable()\n});\n\nexport type AdminUserListItem = z.infer<typeof adminUserListItemSchema>;\n\nexport const adminUserListViewSchema = z.object({\n items: z.array(adminUserListItemSchema),\n nextCursor: z.string().nullable()\n});\n\nexport type AdminUserListView = z.infer<typeof adminUserListViewSchema>;\n\nexport const adminUserDetailViewSchema = adminUserListItemSchema.extend({\n adminGrants: z.array(\n z.object({\n grantedAt: z.string().datetime({ offset: true }),\n role: z.enum(AuthAdminRole)\n })\n ),\n builder: adminBuilderSummarySchema\n .extend({\n createdAt: z.string().datetime({ offset: true }),\n projects: countSchema,\n submissions: countSchema\n })\n .nullable(),\n requestStatusCounts: z.partialRecord(z.enum(RequestStatus), countSchema),\n signupContext: z\n .object({\n countryCode: z.string().nullable(),\n locale: z.string().nullable(),\n timezone: z.string()\n })\n .nullable(),\n vekil: adminVekilSummarySchema\n .extend({\n bio: z.string().nullable(),\n timezone: z.string(),\n updatedAt: z.string().datetime({ offset: true })\n })\n .nullable()\n});\n\nexport type AdminUserDetailView = z.infer<typeof adminUserDetailViewSchema>;\n\nconst adminAppDeveloperSchema = z.object({\n displayName: z.string(),\n handle: z.string().nullable(),\n userId: z.string(),\n verified: z.boolean()\n});\n\nconst adminAppVersionSummarySchema = z.object({\n createdAt: z.string().datetime({ offset: true }),\n id: z.string(),\n publishedAt: z.string().datetime({ offset: true }).nullable(),\n runtimeType: z.enum(AdminAppRuntimeType),\n status: z.enum(AdminAppVersionStatus),\n version: z.string()\n});\n\nconst adminAppCountsSchema = z.object({\n installationsReportingIssues: countSchema,\n productionInstallations: countSchema,\n submissions: countSchema,\n versions: countSchema\n});\n\nexport const adminAppListItemSchema = z.object({\n categoryId: z.string(),\n counts: adminAppCountsSchema,\n createdAt: z.string().datetime({ offset: true }),\n developer: adminAppDeveloperSchema,\n iconType: z.string(),\n iconValue: z.string(),\n id: z.string(),\n latestVersion: adminAppVersionSummarySchema.nullable(),\n name: z.string(),\n officialBadge: z.boolean(),\n shortDescription: z.string(),\n slug: z.string(),\n status: z.enum(AdminAppDefinitionStatus),\n trustLevel: z.enum(AdminAppTrustLevel),\n updatedAt: z.string().datetime({ offset: true }),\n visibility: z.enum(AdminAppVisibility)\n});\n\nexport type AdminAppListItem = z.infer<typeof adminAppListItemSchema>;\n\nexport const adminAppListViewSchema = z.object({\n items: z.array(adminAppListItemSchema),\n nextCursor: z.string().nullable()\n});\n\nexport type AdminAppListView = z.infer<typeof adminAppListViewSchema>;\n\nexport const appReviewSubmissionViewSchema = z.object({\n appId: z.string(),\n builder: z.object({\n displayName: z.string(),\n handle: z.string(),\n id: z.string(),\n verified: z.boolean()\n }),\n createdAt: z.string().datetime({ offset: true }),\n definition: z.record(z.string(), z.unknown()),\n events: z.array(\n z.object({\n createdAt: z.string().datetime({ offset: true }),\n eventType: z.enum(AppReviewEventType),\n fromStatus: z.enum(AppSubmissionViewStatus).nullable(),\n id: z.string(),\n notes: z.string().nullable(),\n role: z.enum(AuthAdminRole).nullable(),\n toStatus: z.enum(AppSubmissionViewStatus).nullable()\n })\n ),\n id: z.string(),\n reviewNotes: z.string().nullable(),\n status: z.enum(AppSubmissionViewStatus),\n submittedAt: z.string().datetime({ offset: true }).nullable(),\n submittedVersionId: z.string().nullable(),\n updatedAt: z.string().datetime({ offset: true })\n});\n\nexport type AppReviewSubmissionView = z.infer<typeof appReviewSubmissionViewSchema>;\n\nexport const appReviewActionInputSchema = z.strictObject({\n action: z.enum(AppReviewAction),\n notes: z.string().trim().max(4_000).optional()\n});\n\nexport type AppReviewActionInput = z.infer<typeof appReviewActionInputSchema>;\n\nexport const adminAppModerationInputSchema = z.discriminatedUnion(\"action\", [\n z.strictObject({\n action: z.literal(AdminAppModerationAction.SUSPEND),\n reason: z.string().trim().min(10).max(1_000)\n }),\n z.strictObject({\n action: z.literal(AdminAppModerationAction.RESTORE),\n reason: z.string().trim().max(1_000).optional()\n })\n]);\n\nexport type AdminAppModerationInput = z.infer<typeof adminAppModerationInputSchema>;\n\nconst adminAppActivityActorSchema = z.object({\n displayName: z.string(),\n role: z.enum(AuthAdminRole)\n});\n\nexport const adminAppActivityItemSchema = z.discriminatedUnion(\"source\", [\n z.object({\n actor: adminAppActivityActorSchema.nullable(),\n createdAt: z.string().datetime({ offset: true }),\n eventType: z.enum(AppReviewEventType),\n fromStatus: z.enum(AppSubmissionViewStatus).nullable(),\n id: z.string(),\n notes: z.string().nullable(),\n source: z.literal(AdminAppActivitySource.REVIEW),\n submissionId: z.string(),\n toStatus: z.enum(AppSubmissionViewStatus).nullable()\n }),\n z.object({\n actor: adminAppActivityActorSchema,\n createdAt: z.string().datetime({ offset: true }),\n eventType: z.enum(AdminAppModerationEventType),\n fromStatus: z.enum(AdminAppDefinitionStatus),\n id: z.string(),\n notes: z.string().nullable(),\n source: z.literal(AdminAppActivitySource.MODERATION),\n submissionId: z.null(),\n toStatus: z.enum(AdminAppDefinitionStatus)\n })\n]);\n\nexport type AdminAppActivityItem = z.infer<typeof adminAppActivityItemSchema>;\n\nexport const adminAppDetailViewSchema = adminAppListItemSchema.extend({\n activity: z.array(adminAppActivityItemSchema),\n longDescription: z.string(),\n privacyPolicyUrl: nullableUrlSchema,\n submissions: z.array(\n z.object({\n id: z.string(),\n status: z.enum(AppSubmissionViewStatus),\n submittedAt: z.string().datetime({ offset: true }).nullable(),\n updatedAt: z.string().datetime({ offset: true })\n })\n ),\n termsUrl: nullableUrlSchema,\n versions: z.array(adminAppVersionSummarySchema),\n websiteUrl: nullableUrlSchema\n});\n\nexport type AdminAppDetailView = z.infer<typeof adminAppDetailViewSchema>;\n","import { z } from \"zod\";\n\nexport enum HealthDependencyStatus {\n AVAILABLE = \"AVAILABLE\",\n UNAVAILABLE = \"UNAVAILABLE\"\n}\n\nexport enum ServiceReadinessStatus {\n NOT_READY = \"NOT_READY\",\n READY = \"READY\"\n}\n\nexport const livenessViewSchema = z.object({\n ok: z.literal(true)\n});\n\nexport type LivenessView = z.infer<typeof livenessViewSchema>;\n\nexport const readinessViewSchema = z.object({\n dependencies: z.object({\n database: z.enum(HealthDependencyStatus),\n managedAi: z.enum(HealthDependencyStatus),\n redis: z.enum(HealthDependencyStatus)\n }),\n status: z.enum(ServiceReadinessStatus)\n});\n\nexport type ReadinessView = z.infer<typeof readinessViewSchema>;\n","import { z } from \"zod\";\n\nexport enum UploadAssetKind {\n VEKIL_AVATAR = \"VEKIL_AVATAR\",\n APP_ICON = \"APP_ICON\"\n}\n\nexport enum UploadAssetViewStatus {\n PENDING = \"PENDING\",\n READY = \"READY\",\n FAILED = \"FAILED\",\n DELETED = \"DELETED\"\n}\n\nexport const createUploadAssetSchema = z.strictObject({\n fileName: z.string().trim().min(1).max(180),\n kind: z.enum(UploadAssetKind),\n mimeType: z.enum([\"image/jpeg\", \"image/png\", \"image/webp\"]),\n sizeBytes: z\n .number()\n .int()\n .min(1)\n .max(5 * 1024 * 1024)\n});\n\nexport type CreateUploadAssetInput = z.infer<typeof createUploadAssetSchema>;\n\nexport const uploadAssetViewSchema = z.object({\n id: z.string(),\n kind: z.enum(UploadAssetKind),\n mimeType: z.string(),\n publicUrl: z.string().url().nullable(),\n sizeBytes: z.number().int(),\n status: z.enum(UploadAssetViewStatus)\n});\n\nexport type UploadAssetView = z.infer<typeof uploadAssetViewSchema>;\n\nexport const preparedUploadAssetSchema = z.object({\n asset: uploadAssetViewSchema,\n upload: z.object({\n expiresAt: z.string().datetime({ offset: true }),\n headers: z.record(z.string(), z.string()),\n method: z.literal(\"PUT\"),\n url: z.string().url()\n })\n});\n\nexport type PreparedUploadAsset = z.infer<typeof preparedUploadAssetSchema>;\n","import { appContextScopes, forbiddenAppContextScopes } from \"@vekil/app-context\";\nimport { AppStatus } from \"@vekil/domain\";\nimport { z } from \"zod\";\n\nconst appStatusValues = [\n AppStatus.AVAILABLE,\n AppStatus.ACTION_REQUIRED,\n AppStatus.NEEDS_CONFIGURATION,\n AppStatus.READY,\n AppStatus.PAUSED,\n AppStatus.DEGRADED,\n AppStatus.UNHEALTHY,\n AppStatus.NEEDS_RECONNECT,\n AppStatus.SUSPENDED,\n AppStatus.DEPRECATED,\n AppStatus.UNINSTALLED\n] as const;\n\nconst appManifestSnapshotSchema = z.unknown();\n\nconst appInstallationLifecycleStatusValues = [\n \"INSTALLED\",\n \"SUSPENDED\",\n \"DEPRECATED\",\n \"UNINSTALLED\"\n] as const;\n\nconst appConnectionStatusValues = [\n \"NOT_REQUIRED\",\n \"ACTION_REQUIRED\",\n \"CONNECTED\",\n \"NEEDS_RECONNECT\",\n \"REVOKED\"\n] as const;\n\nconst appConfigurationStatusValues = [\"NOT_REQUIRED\", \"NEEDS_CONFIGURATION\", \"CONFIGURED\"] as const;\n\nconst appEnabledStatusValues = [\"ENABLED\", \"PAUSED\", \"DISABLED\"] as const;\n\nconst appRuntimeReadinessStatusValues = [\"READY\", \"NOT_READY\", \"DEGRADED\", \"UNHEALTHY\"] as const;\n\nconst appHealthStatusValues = [\n \"UNKNOWN\",\n \"HEALTHY\",\n \"DEGRADED\",\n \"UNHEALTHY\",\n \"NEEDS_RECONNECT\"\n] as const;\n\nexport enum AppAvailabilitySource {\n PUBLIC = \"PUBLIC\",\n SHARED = \"SHARED\",\n DEVELOPER = \"DEVELOPER\",\n INSTALLED_ONLY = \"INSTALLED_ONLY\"\n}\n\nexport const appInstallationStateSchema = z.object({\n connectionStatus: z.enum(appConnectionStatusValues),\n configurationStatus: z.enum(appConfigurationStatusValues),\n enabledStatus: z.enum(appEnabledStatusValues),\n healthStatus: z.enum(appHealthStatusValues),\n lifecycleStatus: z.enum(appInstallationLifecycleStatusValues),\n runtimeReadinessStatus: z.enum(appRuntimeReadinessStatusValues)\n});\n\nexport type AppInstallationState = z.infer<typeof appInstallationStateSchema>;\n\nexport const appVersionUpgradeInputSchema = z.object({\n acknowledgeBreakingChanges: z.boolean().default(false)\n});\n\nexport type AppVersionUpgradeInput = z.infer<typeof appVersionUpgradeInputSchema>;\n\nexport const appVersionUpgradeSchema = z.object({\n canUpgrade: z.boolean(),\n compatible: z.boolean(),\n currentVersion: z.string(),\n currentVersionId: z.string(),\n latestVersion: z.string(),\n latestVersionId: z.string(),\n newContextScopes: z.array(z.enum(appContextScopes)),\n reasons: z.array(z.string()),\n removedContextScopes: z.array(z.enum(appContextScopes)),\n requiresAcknowledgement: z.boolean(),\n updateAvailable: z.boolean()\n});\n\nexport type AppVersionUpgrade = z.infer<typeof appVersionUpgradeSchema>;\n\nexport const appContextPermissionSchema = z.object({\n declaration: z.enum([\"DEFAULT\", \"OPTIONAL\"]),\n granted: z.boolean(),\n publicGuestAllowed: z.boolean(),\n scope: z.enum(appContextScopes),\n sensitivity: z.enum([\"STANDARD\", \"SENSITIVE\"])\n});\n\nexport type AppContextPermission = z.infer<typeof appContextPermissionSchema>;\n\nexport const appContextAccessSchema = z.object({\n policyRevision: z.number().int().positive().nullable(),\n prohibitedScopes: z.array(z.enum(forbiddenAppContextScopes)),\n scopes: z.array(appContextPermissionSchema)\n});\n\nexport type AppContextAccess = z.infer<typeof appContextAccessSchema>;\n\nexport const appContextPermissionMutationSchema = z.object({\n granted: z.boolean()\n});\n\nexport type AppContextPermissionMutation = z.infer<typeof appContextPermissionMutationSchema>;\n\nexport const appInstallationViewSchema = z.object({\n actions: z.array(z.string()),\n availabilitySource: z.enum(AppAvailabilitySource),\n appId: z.string(),\n appSlug: z.string(),\n capabilities: z.array(z.string()),\n contextAccess: appContextAccessSchema,\n currentVersion: z.string().nullable(),\n accountLabel: z.string().nullable(),\n grantedPermissions: z.array(z.string()),\n id: z.string(),\n installation: appInstallationStateSchema.nullable(),\n isRuntimeReady: z.boolean(),\n lastErrorAt: z.string().datetime({ offset: true }).nullable(),\n lastSuccessfulSyncAt: z.string().datetime({ offset: true }).nullable(),\n latestVersion: z.string(),\n manifest: appManifestSnapshotSchema,\n name: z.string(),\n needsAttention: z.boolean(),\n provider: z.string(),\n policies: z.record(z.string(), z.unknown()),\n requiredPermissions: z.array(z.string()),\n settings: z.record(z.string(), z.unknown()),\n status: z.enum(appStatusValues),\n versionUpgrade: appVersionUpgradeSchema.nullable()\n});\n\nexport type AppInstallationView = z.infer<typeof appInstallationViewSchema>;\n\nexport const appInstallationResponseSchema = z.object({\n app: appInstallationViewSchema\n});\n\nexport type AppInstallationResponse = z.infer<typeof appInstallationResponseSchema>;\n\nexport enum AppConnectionStartStatus {\n ACTION_REQUIRED = \"ACTION_REQUIRED\",\n CONNECTED = \"CONNECTED\",\n FAILED = \"FAILED\"\n}\n\nexport const appConnectionStartResponseSchema = z.object({\n redirectUrl: z.string().url(),\n status: z.enum(AppConnectionStartStatus)\n});\n\nexport type AppConnectionStartResponse = z.infer<typeof appConnectionStartResponseSchema>;\n\nexport const appSettingsOptionSchema = z.object({\n label: z.string(),\n value: z.union([z.string(), z.number(), z.boolean()])\n});\n\nexport type AppSettingsOption = z.infer<typeof appSettingsOptionSchema>;\n\nexport const appSettingsOptionsResponseSchema = z.object({\n options: z.array(appSettingsOptionSchema)\n});\n\nexport type AppSettingsOptionsResponse = z.infer<typeof appSettingsOptionsResponseSchema>;\n","import { z } from \"zod\";\n\nexport enum BubbleType {\n APP_MESSAGE = \"APP_MESSAGE\",\n SYSTEM_MESSAGE = \"SYSTEM_MESSAGE\",\n REQUEST_SUMMARY = \"REQUEST_SUMMARY\",\n APPROVAL_PROMPT = \"APPROVAL_PROMPT\",\n ERROR_MESSAGE = \"ERROR_MESSAGE\"\n}\n\nexport enum BubbleVariant {\n DEFAULT = \"DEFAULT\",\n COMPACT = \"COMPACT\",\n SUCCESS = \"SUCCESS\",\n WARNING = \"WARNING\",\n DANGER = \"DANGER\",\n INFO = \"INFO\",\n MUTED = \"MUTED\"\n}\n\nexport enum BubbleMediaType {\n FILE = \"FILE\",\n IMAGE = \"IMAGE\",\n VIDEO = \"VIDEO\"\n}\n\nexport enum BubbleContentVisibility {\n OWNER_ONLY = \"OWNER_ONLY\",\n PUBLIC_REQUESTER = \"PUBLIC_REQUESTER\"\n}\n\nexport enum BubbleSensitivity {\n PUBLIC = \"PUBLIC\",\n INTERNAL = \"INTERNAL\",\n CONFIDENTIAL = \"CONFIDENTIAL\",\n RESTRICTED = \"RESTRICTED\"\n}\n\nexport enum BubbleSourceType {\n CORE = \"CORE\",\n APP = \"APP\"\n}\n\nexport enum BubbleAssetDeliveryAudience {\n OWNER = \"OWNER\",\n PUBLIC_REQUESTER = \"PUBLIC_REQUESTER\"\n}\n\nexport enum BubbleBadgeTone {\n NEUTRAL = \"NEUTRAL\",\n INFO = \"INFO\",\n SUCCESS = \"SUCCESS\",\n WARNING = \"WARNING\",\n DANGER = \"DANGER\"\n}\n\nexport enum BubbleActionType {\n EXTERNAL_URL = \"EXTERNAL_URL\",\n OPEN_VIEW = \"OPEN_VIEW\",\n SELECT_OPTION = \"SELECT_OPTION\",\n APP_ACTION = \"APP_ACTION\",\n APPROVE_REQUEST = \"APPROVE_REQUEST\",\n DECLINE_REQUEST = \"DECLINE_REQUEST\",\n COPY = \"COPY\"\n}\n\nexport enum BubbleActionRiskLevel {\n LOW = \"LOW\",\n MEDIUM = \"MEDIUM\",\n HIGH = \"HIGH\",\n CRITICAL = \"CRITICAL\"\n}\n\nexport enum BubbleActionStatus {\n AVAILABLE = \"AVAILABLE\",\n INVOKED = \"INVOKED\",\n DISABLED = \"DISABLED\",\n EXPIRED = \"EXPIRED\"\n}\n\nexport enum BubbleActionInvocationStatus {\n PENDING = \"PENDING\",\n SUCCEEDED = \"SUCCEEDED\",\n FAILED = \"FAILED\",\n DENIED = \"DENIED\"\n}\n\nexport enum BubbleValidationStatus {\n VALID = \"VALID\",\n INVALID_OUTPUT = \"INVALID_OUTPUT\",\n REJECTED = \"REJECTED\"\n}\n\nexport const bubbleSchemaVersion = 2;\n\nconst actionKeySchema = z\n .string()\n .min(1)\n .max(80)\n .regex(/^[a-z0-9][a-z0-9._:-]*$/);\n\nconst bubbleArtifactResultKeySchema = z\n .string()\n .min(1)\n .max(80)\n .regex(/^[a-z0-9][a-z0-9._:-]*$/);\n\nexport const safeBubbleExternalUrlSchema = z\n .string()\n .min(1)\n .max(2048)\n .refine(isSafeHttpsUrl, \"URL must be an HTTPS URL without embedded credentials\");\n\nexport const safeBubbleInternalHrefSchema = z\n .string()\n .min(1)\n .max(400)\n .refine(isSafeInternalHref, \"href must be a safe absolute internal path\");\n\nexport const safeBubbleAssetDeliveryUrlSchema = safeBubbleInternalHrefSchema.refine(\n (value) => value.startsWith(\"/api/bubble-assets/\"),\n \"asset delivery URL must be issued by the Bubble asset broker\"\n);\n\nfunction isSafeHttpsUrl(value: string): boolean {\n try {\n const url = new URL(value);\n\n return url.protocol === \"https:\" && !url.username && !url.password;\n } catch {\n return false;\n }\n}\n\nfunction isSafeInternalHref(value: string): boolean {\n if (\n !value.startsWith(\"/\") ||\n value.startsWith(\"//\") ||\n value.includes(\"\\\\\") ||\n /\\s/.test(value) ||\n Array.from(value).some((character) => {\n const codePoint = character.codePointAt(0) ?? 0;\n\n return codePoint <= 31 || codePoint === 127;\n })\n ) {\n return false;\n }\n\n try {\n const base = new URL(\"https://vekil.invalid\");\n const url = new URL(value, base);\n\n return url.origin === base.origin && `${url.pathname}${url.search}${url.hash}` === value;\n } catch {\n return false;\n }\n}\n\nconst bubbleAudienceSchema = z.enum([\"OWNER\", \"PUBLIC_REQUESTER\"]);\nconst bubbleOriginSchema = z.enum([\n \"agent-to-agent\",\n \"agent-to-external-fallback\",\n \"public-authenticated\",\n \"public-guest\",\n \"public-verified-external\",\n \"system-generated\"\n]);\n\nconst allowedAudiencesSchema = z\n .array(bubbleAudienceSchema)\n .min(1)\n .max(8)\n .refine((values) => new Set(values).size === values.length, \"audiences must be unique\");\n\nconst allowedOriginsSchema = z\n .array(bubbleOriginSchema)\n .min(1)\n .max(8)\n .refine((values) => new Set(values).size === values.length, \"origins must be unique\");\n\nconst contentAllowedOriginsSchema = z\n .array(bubbleOriginSchema)\n .max(8)\n .refine((values) => new Set(values).size === values.length, \"origins must be unique\")\n .default([]);\n\nexport const bubbleImageAllowedMimeTypes = [\n \"image/gif\",\n \"image/jpeg\",\n \"image/png\",\n \"image/webp\"\n] as const;\nexport const bubbleImageMaxSizeBytes = 10 * 1024 * 1024;\n\nconst bubbleImageMimeTypeSchema = z.enum(bubbleImageAllowedMimeTypes);\n\nconst bubbleMediaCommonShape = {\n alt: z.string().min(1).max(240),\n duration_seconds: z.number().positive().max(86_400).optional(),\n file_name: z.string().min(1).max(180).optional(),\n height: z.number().int().positive().max(4096).optional(),\n mime_type: z.string().min(1).max(120).optional(),\n size_bytes: z.number().int().nonnegative().max(5_368_709_120).optional(),\n title: z.string().min(1).max(180).optional(),\n type: z.enum([BubbleMediaType.FILE, BubbleMediaType.IMAGE, BubbleMediaType.VIDEO]),\n width: z.number().int().positive().max(4096).optional()\n};\n\nconst bubbleAssetReferenceSchema = z\n .string()\n .min(1)\n .max(180)\n .regex(/^[A-Za-z0-9][A-Za-z0-9._:-]*$/);\n\nexport const bubbleMediaSchema = z\n .object({\n ...bubbleMediaCommonShape,\n asset_ref: bubbleAssetReferenceSchema,\n thumbnail_asset_ref: bubbleAssetReferenceSchema.optional(),\n thumbnail_mime_type: z.string().min(1).max(120).optional(),\n thumbnail_size_bytes: z.number().int().positive().max(bubbleImageMaxSizeBytes).optional()\n })\n .strict()\n .superRefine((media, context) => {\n if (media.type === BubbleMediaType.IMAGE) {\n addRequiredImageMetadataIssues(\n context,\n {\n mime_type: media.mime_type,\n size_bytes: media.size_bytes\n },\n \"\"\n );\n }\n\n const hasThumbnailMetadata =\n media.thumbnail_mime_type !== undefined || media.thumbnail_size_bytes !== undefined;\n\n if (media.thumbnail_asset_ref) {\n addRequiredImageMetadataIssues(\n context,\n {\n mime_type: media.thumbnail_mime_type,\n size_bytes: media.thumbnail_size_bytes\n },\n \"thumbnail_\"\n );\n } else if (hasThumbnailMetadata) {\n context.addIssue({\n code: \"custom\",\n message: \"thumbnail_asset_ref is required for thumbnail metadata\",\n path: [\"thumbnail_asset_ref\"]\n });\n }\n });\n\nexport type BubbleMedia = z.infer<typeof bubbleMediaSchema>;\n\nfunction addRequiredImageMetadataIssues(\n context: z.RefinementCtx,\n metadata: {\n mime_type?: string;\n size_bytes?: number;\n },\n fieldPrefix: \"\" | \"thumbnail_\"\n): void {\n if (!metadata.mime_type) {\n context.addIssue({\n code: \"custom\",\n message: \"image MIME type is required\",\n path: [`${fieldPrefix}mime_type`]\n });\n } else if (\n !bubbleImageMimeTypeSchema.safeParse(metadata.mime_type.trim().toLowerCase()).success\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"image MIME type is not allowed\",\n path: [`${fieldPrefix}mime_type`]\n });\n }\n\n if (metadata.size_bytes === undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"image size is required\",\n path: [`${fieldPrefix}size_bytes`]\n });\n } else if (metadata.size_bytes <= 0 || metadata.size_bytes > bubbleImageMaxSizeBytes) {\n context.addIssue({\n code: \"custom\",\n message: \"image size is not allowed\",\n path: [`${fieldPrefix}size_bytes`]\n });\n }\n}\n\nexport const bubbleMediaViewSchema = z\n .object({\n ...bubbleMediaCommonShape,\n asset_id: bubbleAssetReferenceSchema,\n thumbnail_url: safeBubbleAssetDeliveryUrlSchema.optional(),\n url: safeBubbleAssetDeliveryUrlSchema\n })\n .strict()\n .superRefine((media, context) => {\n if (media.type === BubbleMediaType.IMAGE) {\n addRequiredImageMetadataIssues(\n context,\n {\n mime_type: media.mime_type,\n size_bytes: media.size_bytes\n },\n \"\"\n );\n }\n });\n\nexport type BubbleMediaView = z.infer<typeof bubbleMediaViewSchema>;\n\nexport const bubbleAssetDeliveryGrantSchema = z\n .object({\n assetId: bubbleAssetReferenceSchema,\n audience: z.enum([\n BubbleAssetDeliveryAudience.OWNER,\n BubbleAssetDeliveryAudience.PUBLIC_REQUESTER\n ]),\n expiresAt: z.iso.datetime(),\n url: safeBubbleAssetDeliveryUrlSchema\n })\n .strict();\n\nexport type BubbleAssetDeliveryGrant = z.infer<typeof bubbleAssetDeliveryGrantSchema>;\n\nexport const bubbleFactSchema = z.object({\n label: z.string().min(1).max(80),\n value: z.string().min(1).max(240)\n});\n\nexport type BubbleFact = z.infer<typeof bubbleFactSchema>;\n\nexport const bubbleBadgeSchema = z.object({\n label: z.string().min(1).max(60),\n tone: z\n .enum([\n BubbleBadgeTone.NEUTRAL,\n BubbleBadgeTone.INFO,\n BubbleBadgeTone.SUCCESS,\n BubbleBadgeTone.WARNING,\n BubbleBadgeTone.DANGER\n ])\n .default(BubbleBadgeTone.NEUTRAL)\n});\n\nexport type BubbleBadge = z.infer<typeof bubbleBadgeSchema>;\n\nconst bubbleActionCommonShape = {\n action_key: actionKeySchema,\n allowed_audiences: allowedAudiencesSchema,\n allowed_origins: allowedOriginsSchema,\n label: z.string().min(1).max(80),\n max_invocations: z.number().int().min(1).max(100).optional(),\n requires_approval: z.boolean().default(false),\n risk_level: z\n .enum([\n BubbleActionRiskLevel.LOW,\n BubbleActionRiskLevel.MEDIUM,\n BubbleActionRiskLevel.HIGH,\n BubbleActionRiskLevel.CRITICAL\n ])\n .default(BubbleActionRiskLevel.LOW)\n};\n\nconst externalUrlActionSchema = z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.literal(BubbleActionType.EXTERNAL_URL),\n app_action_id: z.never().optional(),\n href: safeBubbleExternalUrlSchema,\n payload: z.never().optional()\n })\n .strict();\n\nconst openViewActionSchema = z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.literal(BubbleActionType.OPEN_VIEW),\n app_action_id: z.never().optional(),\n href: safeBubbleInternalHrefSchema,\n payload: z.never().optional()\n })\n .strict();\n\nconst selectOptionActionSchema = z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.literal(BubbleActionType.SELECT_OPTION),\n artifact_result_key: bubbleArtifactResultKeySchema,\n app_action_id: z.never().optional(),\n href: z.never().optional(),\n max_invocations: z.literal(1).default(1),\n option_group_key: actionKeySchema,\n payload: z.never().optional(),\n requires_approval: z.literal(false).default(false),\n risk_level: z.literal(BubbleActionRiskLevel.LOW).default(BubbleActionRiskLevel.LOW)\n })\n .strict();\n\nconst appActionSchema = z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.literal(BubbleActionType.APP_ACTION),\n app_action_id: z.string().min(1).max(120),\n href: z.never().optional(),\n payload: z.record(z.string(), z.unknown()).optional()\n })\n .strict();\n\nconst approvalActionSchema = (\n actionType: BubbleActionType.APPROVE_REQUEST | BubbleActionType.DECLINE_REQUEST\n) =>\n z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.literal(actionType),\n approval_id: z.string().min(1).max(120),\n approval_scope_hash: z.string().regex(/^[0-9a-f]{64}$/),\n app_action_id: z.never().optional(),\n href: z.never().optional(),\n payload: z.never().optional()\n })\n .strict();\n\nconst copyActionSchema = z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.literal(BubbleActionType.COPY),\n app_action_id: z.never().optional(),\n href: z.never().optional(),\n payload: z\n .object({\n text: z.string().min(1).max(2000)\n })\n .strict()\n })\n .strict();\n\nexport const bubbleActionDescriptorSchema = z.discriminatedUnion(\"action_type\", [\n externalUrlActionSchema,\n openViewActionSchema,\n selectOptionActionSchema,\n appActionSchema,\n approvalActionSchema(BubbleActionType.APPROVE_REQUEST),\n approvalActionSchema(BubbleActionType.DECLINE_REQUEST),\n copyActionSchema\n]);\n\nexport type BubbleActionDescriptor = z.infer<typeof bubbleActionDescriptorSchema>;\n\nexport const bubbleActionViewSchema = z\n .object({\n ...bubbleActionCommonShape,\n action_type: z.enum([\n BubbleActionType.EXTERNAL_URL,\n BubbleActionType.OPEN_VIEW,\n BubbleActionType.SELECT_OPTION,\n BubbleActionType.APP_ACTION,\n BubbleActionType.APPROVE_REQUEST,\n BubbleActionType.DECLINE_REQUEST,\n BubbleActionType.COPY\n ]),\n app_action_id: z.string().min(1).max(120).optional(),\n approval_id: z.string().min(1).max(120).optional(),\n approval_scope_hash: z\n .string()\n .regex(/^[0-9a-f]{64}$/)\n .optional(),\n href: z.string().min(1).max(2048).optional(),\n id: z.string().min(1),\n status: z.enum([\n BubbleActionStatus.AVAILABLE,\n BubbleActionStatus.INVOKED,\n BubbleActionStatus.DISABLED,\n BubbleActionStatus.EXPIRED\n ])\n })\n .strict()\n .superRefine((action, context) => {\n if (action.action_type === BubbleActionType.EXTERNAL_URL) {\n addSchemaIssue(context, safeBubbleExternalUrlSchema, action.href, \"href\");\n } else if (action.action_type === BubbleActionType.OPEN_VIEW) {\n addSchemaIssue(context, safeBubbleInternalHrefSchema, action.href, \"href\");\n } else if (action.href !== undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"href is not supported for this action type\",\n path: [\"href\"]\n });\n }\n\n if (action.action_type === BubbleActionType.APP_ACTION && action.app_action_id === undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"app_action_id is required for APP_ACTION\",\n path: [\"app_action_id\"]\n });\n }\n\n if (action.action_type !== BubbleActionType.APP_ACTION && action.app_action_id !== undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"app_action_id is only supported for APP_ACTION\",\n path: [\"app_action_id\"]\n });\n }\n\n const isApprovalAction =\n action.action_type === BubbleActionType.APPROVE_REQUEST ||\n action.action_type === BubbleActionType.DECLINE_REQUEST;\n\n if (\n isApprovalAction &&\n (action.approval_id === undefined || action.approval_scope_hash === undefined)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"approval_id and approval_scope_hash are required for approval actions\",\n path: [\"approval_id\"]\n });\n }\n\n if (\n !isApprovalAction &&\n (action.approval_id !== undefined || action.approval_scope_hash !== undefined)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"approval binding is only supported for approval actions\",\n path: [\"approval_id\"]\n });\n }\n });\n\nfunction addSchemaIssue(\n context: z.RefinementCtx,\n schema: z.ZodType<string>,\n value: string | undefined,\n path: string\n): void {\n const result = schema.safeParse(value);\n\n if (!result.success) {\n context.addIssue({\n code: \"custom\",\n message: result.error.issues[0]?.message ?? `${path} is invalid`,\n path: [path]\n });\n }\n}\n\nexport type BubbleActionView = z.infer<typeof bubbleActionViewSchema>;\n\nexport const bubbleDescriptorSchema = z.object({\n actions: z.array(bubbleActionDescriptorSchema).max(8).default([]),\n allowed_origins: contentAllowedOriginsSchema,\n badges: z.array(bubbleBadgeSchema).max(4).default([]),\n body: z.string().min(1).max(2000).optional(),\n bubble_type: z.enum([\n BubbleType.APP_MESSAGE,\n BubbleType.SYSTEM_MESSAGE,\n BubbleType.REQUEST_SUMMARY,\n BubbleType.APPROVAL_PROMPT,\n BubbleType.ERROR_MESSAGE\n ]),\n facts: z.array(bubbleFactSchema).max(12).default([]),\n footer: z.string().min(1).max(200).optional(),\n media: z.array(bubbleMediaSchema).max(12).default([]),\n metadata: z.record(z.string(), z.unknown()).optional(),\n schema_version: z.literal(bubbleSchemaVersion),\n sensitivity: z\n .enum([\n BubbleSensitivity.PUBLIC,\n BubbleSensitivity.INTERNAL,\n BubbleSensitivity.CONFIDENTIAL,\n BubbleSensitivity.RESTRICTED\n ])\n .default(BubbleSensitivity.INTERNAL),\n title: z.string().min(1).max(120).optional(),\n variant: z\n .enum([\n BubbleVariant.DEFAULT,\n BubbleVariant.COMPACT,\n BubbleVariant.SUCCESS,\n BubbleVariant.WARNING,\n BubbleVariant.DANGER,\n BubbleVariant.INFO,\n BubbleVariant.MUTED\n ])\n .default(BubbleVariant.DEFAULT),\n visibility: z\n .enum([BubbleContentVisibility.OWNER_ONLY, BubbleContentVisibility.PUBLIC_REQUESTER])\n .default(BubbleContentVisibility.OWNER_ONLY)\n});\n\nexport type BubbleDescriptor = z.infer<typeof bubbleDescriptorSchema>;\n\nexport const bubbleProvenanceSchema = z.discriminatedUnion(\"source_type\", [\n z\n .object({\n source_type: z.literal(BubbleSourceType.CORE)\n })\n .strict(),\n z\n .object({\n app_id: z.string().min(1).max(120).optional(),\n app_installation_id: z.string().min(1).optional(),\n app_name: z.string().min(1).max(100).optional(),\n app_version_id: z.string().min(1).optional(),\n source_type: z.literal(BubbleSourceType.APP)\n })\n .strict()\n]);\n\nexport type BubbleProvenance = z.infer<typeof bubbleProvenanceSchema>;\n\nexport const bubbleViewSchema = bubbleDescriptorSchema\n .omit({\n actions: true,\n media: true,\n metadata: true\n })\n .extend({\n actions: z.array(bubbleActionViewSchema).max(8).default([]),\n id: z.string().min(1),\n media: z.array(bubbleMediaViewSchema).max(12).default([]),\n provenance: bubbleProvenanceSchema,\n redacted: z.boolean().default(false)\n })\n .superRefine((bubble, context) => {\n if (bubble.redacted) {\n const hasContent =\n bubble.actions.length > 0 ||\n bubble.allowed_origins.length > 0 ||\n bubble.badges.length > 0 ||\n bubble.body !== undefined ||\n bubble.facts.length > 0 ||\n bubble.footer !== undefined ||\n bubble.media.length > 0 ||\n bubble.title !== undefined;\n\n if (bubble.provenance.source_type !== BubbleSourceType.APP) {\n context.addIssue({\n code: \"custom\",\n message: \"only an App Bubble can use the redacted shell\",\n path: [\"provenance\", \"source_type\"]\n });\n }\n\n if (hasContent) {\n context.addIssue({\n code: \"custom\",\n message: \"a redacted Bubble cannot contain content, media, origins, or actions\",\n path: [\"redacted\"]\n });\n }\n\n if (bubble.visibility !== BubbleContentVisibility.OWNER_ONLY) {\n context.addIssue({\n code: \"custom\",\n message: \"a redacted Bubble must retain OWNER_ONLY visibility\",\n path: [\"visibility\"]\n });\n }\n\n return;\n }\n\n if (bubble.provenance.source_type !== BubbleSourceType.APP) {\n return;\n }\n\n const requiredFields = [\"app_id\", \"app_installation_id\", \"app_name\", \"app_version_id\"] as const;\n\n for (const field of requiredFields) {\n if (!bubble.provenance[field]) {\n context.addIssue({\n code: \"custom\",\n message: `${field} is required for App provenance`,\n path: [\"provenance\", field]\n });\n }\n }\n });\n\nexport type BubbleView = z.infer<typeof bubbleViewSchema>;\n\nexport const messageBubbleViewSchema = z.object({\n bubbles: z.array(bubbleViewSchema).default([])\n});\n\nexport type MessageBubbleView = z.infer<typeof messageBubbleViewSchema>;\n\nexport const invokeMessageActionSchema = z.object({\n idempotencyKey: z.string().min(12).max(120),\n input: z.record(z.string(), z.unknown()).optional()\n});\n\nexport type InvokeMessageActionInput = z.infer<typeof invokeMessageActionSchema>;\n\nexport const messageActionInvocationResponseSchema = z\n .object({\n actionId: z.string().min(1),\n actionType: z.enum([\n BubbleActionType.EXTERNAL_URL,\n BubbleActionType.OPEN_VIEW,\n BubbleActionType.SELECT_OPTION,\n BubbleActionType.APP_ACTION,\n BubbleActionType.APPROVE_REQUEST,\n BubbleActionType.DECLINE_REQUEST,\n BubbleActionType.COPY\n ]),\n href: z.string().min(1).max(2048).optional(),\n invocationId: z.string().min(1),\n requestId: z.string().min(1).nullable(),\n status: z.enum([\n BubbleActionInvocationStatus.PENDING,\n BubbleActionInvocationStatus.SUCCEEDED,\n BubbleActionInvocationStatus.FAILED,\n BubbleActionInvocationStatus.DENIED\n ]),\n text: z.string().max(2000).optional()\n })\n .strict()\n .superRefine((response, context) => {\n const isSuccessful = response.status === BubbleActionInvocationStatus.SUCCEEDED;\n\n if (\n isSuccessful &&\n (response.actionType === BubbleActionType.EXTERNAL_URL ||\n response.actionType === BubbleActionType.OPEN_VIEW) &&\n response.href === undefined\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"href is required for a successful link action\",\n path: [\"href\"]\n });\n }\n\n if (\n isSuccessful &&\n response.actionType === BubbleActionType.COPY &&\n response.text === undefined\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"text is required for a successful COPY action\",\n path: [\"text\"]\n });\n }\n\n if (response.actionType !== BubbleActionType.COPY && response.text !== undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"text is only supported for COPY actions\",\n path: [\"text\"]\n });\n }\n\n if (response.href === undefined) {\n return;\n } else if (response.actionType === BubbleActionType.EXTERNAL_URL) {\n addSchemaIssue(context, safeBubbleExternalUrlSchema, response.href, \"href\");\n } else if (response.actionType === BubbleActionType.OPEN_VIEW) {\n addSchemaIssue(context, safeBubbleInternalHrefSchema, response.href, \"href\");\n } else {\n context.addIssue({\n code: \"custom\",\n message: \"href is not supported for this action type\",\n path: [\"href\"]\n });\n }\n });\n\nexport type MessageActionInvocationResponse = z.infer<typeof messageActionInvocationResponseSchema>;\n","import {\n VekilClarificationStyle,\n VekilCommunicationTone,\n VekilReplyLength,\n VekilUnavailableActionBehavior,\n defaultVekilCommunicationSettings\n} from \"@vekil/domain\";\nimport { z } from \"zod\";\n\nexport const vekilCommunicationSettingsSchema = z.object({\n clarification_style: z.enum([\n VekilClarificationStyle.ONE_AT_A_TIME,\n VekilClarificationStyle.GROUP_RELATED\n ]),\n reply_length: z.enum([VekilReplyLength.CONCISE, VekilReplyLength.BALANCED]),\n tone: z.enum([\n VekilCommunicationTone.NATURAL,\n VekilCommunicationTone.WARM,\n VekilCommunicationTone.PROFESSIONAL,\n VekilCommunicationTone.DIRECT\n ]),\n unavailable_action_behavior: z.enum([\n VekilUnavailableActionBehavior.COLLECT_AND_HAND_OFF,\n VekilUnavailableActionBehavior.EXPLAIN_ONLY\n ]),\n writing_preferences: z.string().trim().max(500).nullable()\n});\n\nexport const defaultVekilCommunicationSettingsResponse = vekilCommunicationSettingsSchema.parse(\n defaultVekilCommunicationSettings\n);\n\nexport type VekilCommunicationSettingsResponse = z.infer<typeof vekilCommunicationSettingsSchema>;\n","import { z } from \"zod\";\n\nexport const apiErrorSchema = z.object({\n error: z.object({\n code: z.string(),\n messageKey: z.string(),\n traceId: z.string().optional(),\n requestId: z.string().optional()\n })\n});\n\nexport type ApiError = z.infer<typeof apiErrorSchema>;\n","import {\n InboxBucket,\n InboxOwnerAction,\n RequestStatus,\n type InboxBucket as InboxBucketType,\n type InboxOwnerAction as InboxOwnerActionType,\n type RequestStatus as RequestStatusType\n} from \"@vekil/domain\";\nimport { z } from \"zod\";\n\nconst inboxBucketValues = [\n InboxBucket.ATTENTION,\n InboxBucket.ACTIVE,\n InboxBucket.DONE,\n InboxBucket.ALL\n] as const;\n\nconst inboxOwnerActionValues = [\n InboxOwnerAction.RESPOND,\n InboxOwnerAction.REVIEW_PROPOSAL,\n InboxOwnerAction.REVIEW_APPROVAL,\n InboxOwnerAction.REVIEW_FAILURE\n] as const;\n\nconst requestStatusValues = [\n RequestStatus.RECEIVED,\n RequestStatus.CLASSIFIED,\n RequestStatus.NEEDS_CLARIFICATION,\n RequestStatus.POLICY_CHECKED,\n RequestStatus.PROPOSAL_READY,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.WAITING_FOR_APPROVAL,\n RequestStatus.APPROVED,\n RequestStatus.EXECUTING,\n RequestStatus.COMPLETED,\n RequestStatus.UNFULFILLED,\n RequestStatus.DECLINED,\n RequestStatus.FAILED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n] as const;\n\nconst optionalTrimmedString = (maximumLength: number) =>\n z.preprocess(\n (value) => (typeof value === \"string\" && value.trim().length === 0 ? undefined : value),\n z.string().trim().min(1).max(maximumLength).optional()\n );\n\nexport const inboxBucketSchema = z.enum(inboxBucketValues);\n\nexport const inboxQuerySchema = z.object({\n bucket: inboxBucketSchema.optional().default(InboxBucket.ATTENTION),\n category_id: optionalTrimmedString(120),\n cursor: optionalTrimmedString(120),\n limit: z.coerce.number().int().min(1).max(50).optional().default(20),\n query: optionalTrimmedString(120),\n status: z.preprocess(\n (value) => (value === \"\" ? undefined : value),\n z.enum(requestStatusValues).optional()\n )\n});\n\nexport type InboxQuery = z.infer<typeof inboxQuerySchema>;\n\nexport const inboxCountsSchema = z.object({\n active: z.number().int().nonnegative(),\n attention: z.number().int().nonnegative(),\n done: z.number().int().nonnegative(),\n total: z.number().int().nonnegative()\n});\n\nexport type InboxCounts = z.infer<typeof inboxCountsSchema>;\n\nexport const inboxCategorySchema = z.object({\n count: z.number().int().positive(),\n id: z.string().min(1)\n});\n\nexport const inboxItemSchema = z.object({\n bucket: inboxBucketSchema.exclude([InboxBucket.ALL]),\n categoryId: z.string().nullable(),\n createdAt: z.string().datetime({ offset: true }),\n id: z.string().min(1),\n lastActivityAt: z.string().datetime({ offset: true }),\n ownerAction: z.enum(inboxOwnerActionValues).nullable(),\n requesterName: z.string().nullable(),\n status: z.enum(requestStatusValues),\n subject: z.string()\n});\n\nexport type InboxItem = Omit<\n z.infer<typeof inboxItemSchema>,\n \"bucket\" | \"ownerAction\" | \"status\"\n> & {\n bucket: Exclude<InboxBucketType, InboxBucket.ALL>;\n ownerAction: InboxOwnerActionType | null;\n status: RequestStatusType;\n};\n\nexport const inboxResponseSchema = z.object({\n bucket: inboxBucketSchema,\n categories: z.array(inboxCategorySchema),\n counts: inboxCountsSchema,\n items: z.array(inboxItemSchema),\n nextCursor: z.string().nullable()\n});\n\nexport type InboxResponse = Omit<z.infer<typeof inboxResponseSchema>, \"bucket\" | \"items\"> & {\n bucket: InboxBucketType;\n items: InboxItem[];\n};\n","import { z } from \"zod\";\nimport { ApprovalRequirement } from \"@vekil/domain\";\n\nexport const requestPolicySchema = z.object({\n unknownRequesterApproval: z.enum([\n ApprovalRequirement.REQUIRED,\n ApprovalRequirement.NOT_REQUIRED\n ]),\n privacy: z.object({\n defaultRedactions: z.array(z.string().min(1)).default([])\n })\n});\n\nexport type RequestPolicyInput = z.infer<typeof requestPolicySchema>;\n","import { z } from \"zod\";\nimport {\n ApprovalAction,\n ApprovalStatus,\n PublicRequestSessionStatus,\n RequestContextResolutionAction,\n RequestNextAction,\n RequestStatus\n} from \"@vekil/domain\";\nimport { bubbleViewSchema } from \"./bubbles\";\nimport { publicVekilSchema } from \"./vekil\";\n\nexport const requesterSchema = z.object({\n name: z.string().min(1).max(80),\n email: z.string().email()\n});\n\nexport const publicRequestRequesterSchema = z.object({\n name: z.string().min(1).max(80).optional(),\n email: z.string().email().optional()\n});\n\nexport const createPublicRequestSchema = z.object({\n message: z.string().min(2).max(2000),\n requester: publicRequestRequesterSchema.optional(),\n idempotencyKey: z.string().min(12).max(120)\n});\n\nexport type CreatePublicRequestInput = z.infer<typeof createPublicRequestSchema>;\n\nexport const continuePublicRequestSchema = z.object({\n contextDecision: z\n .object({\n id: z.string().min(1).max(120),\n resolution: z.enum([\n RequestContextResolutionAction.ACCEPT,\n RequestContextResolutionAction.REJECT\n ])\n })\n .optional(),\n message: z.string().min(1).max(2000),\n idempotencyKey: z.string().min(12).max(120)\n});\n\nexport type ContinuePublicRequestInput = z.infer<typeof continuePublicRequestSchema>;\n\nexport const requestThreadQuerySchema = z.object({\n before_message_id: z.string().min(1).max(120).optional(),\n limit: z.coerce.number().int().min(1).max(50).optional()\n});\n\nexport type RequestThreadQuery = z.infer<typeof requestThreadQuerySchema>;\n\nexport const requestThreadMessageSchema = z.object({\n body: z.string(),\n bubbles: z.array(bubbleViewSchema),\n created_at: z.string().datetime({ offset: true }),\n id: z.string(),\n role: z.enum([\"owner\", \"requester\", \"vekil\"])\n});\n\nexport type RequestThreadMessage = z.infer<typeof requestThreadMessageSchema>;\n\nexport const requestThreadPageSchema = z.object({\n has_older_messages: z.boolean(),\n messages: z.array(requestThreadMessageSchema),\n oldest_message_id: z.string().nullable()\n});\n\nexport type RequestThreadPage = z.infer<typeof requestThreadPageSchema>;\n\nexport const publicConversationThreadMessageSchema = requestThreadMessageSchema.extend({\n role: z.enum([\"requester\", \"vekil\"])\n});\n\nexport const publicConversationThreadPageSchema = z.object({\n has_older_messages: z.boolean(),\n messages: z.array(publicConversationThreadMessageSchema),\n oldest_message_id: z.string().nullable()\n});\n\nexport type PublicConversationThreadPage = z.infer<typeof publicConversationThreadPageSchema>;\n\nexport const respondToRequestSchema = z.object({\n idempotencyKey: z.string().min(12).max(120),\n message: z.string().trim().min(1).max(2000)\n});\n\nexport type RespondToRequestInput = z.infer<typeof respondToRequestSchema>;\n\nexport const ownerRequestResponseSchema = z.object({\n alreadyProcessed: z.boolean(),\n message: z.object({\n body: z.string().min(1).max(2000),\n createdAt: z.string().datetime({ offset: true }),\n id: z.string().min(1)\n }),\n requestId: z.string().min(1),\n status: z.literal(RequestStatus.COMPLETED)\n});\n\nexport type OwnerRequestResponse = z.infer<typeof ownerRequestResponseSchema>;\n\nexport const requestOptionSchema = z.object({\n id: z.string(),\n label: z.string().min(1).max(160),\n startsAt: z.string().datetime({ offset: true }).nullable().optional(),\n endsAt: z.string().datetime({ offset: true }).nullable().optional(),\n metadata: z.record(z.string(), z.unknown()).optional()\n});\n\nexport const publicRequestResponseSchema = z.object({\n requestId: z.string().nullable(),\n publicRequestToken: z.string(),\n assistantMessage: z.string().nullable(),\n requesterLanguage: z\n .object({\n code: z.string(),\n confidence: z.number().min(0).max(1)\n })\n .nullable(),\n status: z\n .enum([\n RequestStatus.RECEIVED,\n RequestStatus.CLASSIFIED,\n RequestStatus.NEEDS_CLARIFICATION,\n RequestStatus.POLICY_CHECKED,\n RequestStatus.PROPOSAL_READY,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.WAITING_FOR_APPROVAL,\n RequestStatus.APPROVED,\n RequestStatus.EXECUTING,\n RequestStatus.COMPLETED,\n RequestStatus.UNFULFILLED,\n RequestStatus.DECLINED,\n RequestStatus.FAILED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ])\n .nullable(),\n conversationId: z.string().nullable(),\n nextAction: z.enum([\n RequestNextAction.WAIT,\n RequestNextAction.CLARIFY,\n RequestNextAction.SELECT_OPTION,\n RequestNextAction.APPROVAL,\n RequestNextAction.COMPLETED\n ]),\n pendingContextDecision: z\n .object({\n expiresAt: z.string().datetime({ offset: true }),\n id: z.string()\n })\n .nullable()\n .default(null),\n proposal: z\n .object({\n type: z.literal(\"request_options\"),\n options: z.array(requestOptionSchema)\n })\n .nullable()\n});\n\nexport type PublicRequestResponse = z.infer<typeof publicRequestResponseSchema>;\n\nexport const publicRequestStatusSchema = z.object({\n agent_display_name: publicVekilSchema.shape.display_name,\n agent_handle: publicVekilSchema.shape.handle,\n agent_timezone: z.string(),\n avatar_url: publicVekilSchema.shape.avatar_url,\n bio: publicVekilSchema.shape.bio,\n pending_context_decision: z\n .object({\n expires_at: z.string().datetime({ offset: true }),\n id: z.string()\n })\n .nullable(),\n public_page: publicVekilSchema.shape.public_page,\n request_availability: publicVekilSchema.shape.request_availability,\n requester_language: z\n .object({\n code: z.string(),\n confidence: z.number().min(0).max(1)\n })\n .nullable(),\n session_status: z.enum(PublicRequestSessionStatus),\n status: z.enum(RequestStatus).nullable(),\n thread: z.array(publicConversationThreadMessageSchema),\n thread_page: z.object({\n has_older_messages: z.boolean(),\n oldest_message_id: z.string().nullable()\n })\n});\n\nexport type PublicRequestStatus = z.infer<typeof publicRequestStatusSchema>;\n\nexport const publicRequestStatusResponseSchema = z.object({\n request: publicRequestStatusSchema\n});\n\nexport type PublicRequestStatusResponse = z.infer<typeof publicRequestStatusResponseSchema>;\n\nexport const resolveRequestApprovalSchema = z.object({\n approvalId: z.string().min(1).max(120),\n approvalScopeHash: z.string().regex(/^[0-9a-f]{64}$/),\n idempotencyKey: z.string().min(12).max(120),\n selectedOptionId: z.string().min(1).max(120).optional(),\n approvalNote: z.string().max(500).optional()\n});\n\nexport type ResolveRequestApprovalInput = z.infer<typeof resolveRequestApprovalSchema>;\n\nexport const replayRequestExecutionSchema = z.object({\n idempotencyKey: z.string().min(12).max(120)\n});\n\nexport const replayRequestExecutionResponseSchema = z.object({\n replayed: z.boolean(),\n requestId: z.string(),\n status: z.enum([RequestStatus.APPROVED, RequestStatus.EXECUTING, RequestStatus.FAILED])\n});\n\nexport type ReplayRequestExecutionResponse = z.infer<typeof replayRequestExecutionResponseSchema>;\n\nexport const requestApprovalActionResponseSchema = z.object({\n action: z.enum([ApprovalAction.APPROVE, ApprovalAction.DECLINE, ApprovalAction.REQUEST_CHANGES]),\n alreadyResolved: z.boolean(),\n approvalStatus: z.enum([\n ApprovalStatus.PENDING,\n ApprovalStatus.APPROVED,\n ApprovalStatus.DECLINED,\n ApprovalStatus.CHANGES_REQUESTED,\n ApprovalStatus.EXPIRED,\n ApprovalStatus.CANCELLED\n ]),\n nextAction: z.enum([\n RequestNextAction.WAIT,\n RequestNextAction.CLARIFY,\n RequestNextAction.SELECT_OPTION,\n RequestNextAction.APPROVAL,\n RequestNextAction.COMPLETED\n ]),\n requestId: z.string(),\n status: z.enum([\n RequestStatus.RECEIVED,\n RequestStatus.CLASSIFIED,\n RequestStatus.NEEDS_CLARIFICATION,\n RequestStatus.POLICY_CHECKED,\n RequestStatus.PROPOSAL_READY,\n RequestStatus.WAITING_FOR_REQUESTER,\n RequestStatus.WAITING_FOR_OWNER,\n RequestStatus.WAITING_FOR_APPROVAL,\n RequestStatus.APPROVED,\n RequestStatus.EXECUTING,\n RequestStatus.COMPLETED,\n RequestStatus.UNFULFILLED,\n RequestStatus.DECLINED,\n RequestStatus.FAILED,\n RequestStatus.EXPIRED,\n RequestStatus.CANCELLED\n ])\n});\n\nexport type RequestApprovalActionResponse = z.infer<typeof requestApprovalActionResponseSchema>;\n","export function canonicalizeJson(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(canonicalizeJson);\n }\n\n if (value && typeof value === \"object\") {\n return Object.fromEntries(\n Object.entries(value as Record<string, unknown>)\n .filter(([, item]) => item !== undefined)\n .sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0))\n .map(([key, item]) => [key, canonicalizeJson(item)])\n );\n }\n\n return value;\n}\n\nexport function stringifyCanonicalJson(value: unknown): string {\n return JSON.stringify(canonicalizeJson(value));\n}\n","import { BubbleActionType, bubbleDescriptorSchema } from \"@vekil/api-contracts\";\nimport {\n appContextArtifactVisibilityLevels,\n appContextEnvelopeSchema,\n appContextScopes\n} from \"@vekil/app-context\";\nimport { z } from \"zod\";\nimport {\n AppExecutionStatus,\n AppPlanStatus,\n AppRuntimeHealthStatus,\n appExecutionStatusSchema,\n appIdSchema,\n appLocalKeySchema,\n appNamespacedIdSchema,\n appPlanStatusSchema,\n appProtocolVersion,\n appRuntimeHealthStatusSchema,\n httpsOrLocalhostUrlSchema,\n isoDateTimeSchema,\n jsonObjectSchema,\n localeCodeSchema,\n semanticVersionSchema\n} from \"./common\";\n\nexport const appRemoteRuntimePaths = {\n prepareInstallation: \"/v1/installations/prepare\",\n completeInstallation: \"/v1/installations/complete\",\n disconnectInstallation: \"/v1/installations/disconnect\",\n planAction: \"/v1/actions/plan\",\n executeAction: \"/v1/actions/execute\",\n health: \"/v1/health\"\n} as const;\n\nexport enum AppInstallationConnectionStatus {\n NOT_REQUIRED = \"NOT_REQUIRED\",\n ACTION_REQUIRED = \"ACTION_REQUIRED\",\n CONNECTED = \"CONNECTED\",\n FAILED = \"FAILED\"\n}\n\nexport enum AppRuntimeErrorCode {\n INVALID_REQUEST = \"INVALID_REQUEST\",\n INSTALLATION_NOT_FOUND = \"INSTALLATION_NOT_FOUND\",\n CONNECTION_REQUIRED = \"CONNECTION_REQUIRED\",\n ACTION_NOT_SUPPORTED = \"ACTION_NOT_SUPPORTED\",\n POLICY_REJECTED = \"POLICY_REJECTED\",\n RATE_LIMITED = \"RATE_LIMITED\",\n TEMPORARILY_UNAVAILABLE = \"TEMPORARILY_UNAVAILABLE\",\n EXECUTION_FAILED = \"EXECUTION_FAILED\"\n}\n\nconst requestIdSchema = z.string().min(1).max(160);\nconst strictAppContextEnvelopeSchema = appContextEnvelopeSchema.strict();\nexport const appAuthorizationContractHashSchema = z.string().regex(/^[a-f0-9]{64}$/);\n\nexport const appInstallationGrantSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n grantId: z.string().min(1).max(160),\n installationId: z.string().min(1).max(160),\n connectionId: z.string().min(1).max(160),\n connectionRevision: z.number().int().positive(),\n authorizationContractHash: appAuthorizationContractHashSchema,\n appId: appIdSchema,\n appVersionId: z.string().min(1).max(160),\n appVersion: semanticVersionSchema,\n targetVekilId: z.string().min(1).max(160),\n runtimeAudience: appIdSchema,\n capabilityIds: z.array(appNamespacedIdSchema).max(128),\n permissionKeys: z.array(z.string().min(1).max(80)).max(64),\n contextScopes: z.array(z.enum(appContextScopes)).max(appContextScopes.length),\n issuedAt: isoDateTimeSchema,\n expiresAt: isoDateTimeSchema\n});\n\nexport const appRuntimeConnectionAttestationSchema = z.strictObject({\n connectionId: z.string().min(1).max(160),\n connectionRevision: z.number().int().positive(),\n runtimeAccountReference: z.string().min(1).max(240),\n accountLabel: z.string().min(1).max(240),\n grantedPermissionKeys: z.array(z.string().min(1).max(80)).max(64),\n authorizationContractHash: appAuthorizationContractHashSchema\n});\n\nexport const appRuntimeErrorSchema = z.strictObject({\n code: z.enum([\n AppRuntimeErrorCode.INVALID_REQUEST,\n AppRuntimeErrorCode.INSTALLATION_NOT_FOUND,\n AppRuntimeErrorCode.CONNECTION_REQUIRED,\n AppRuntimeErrorCode.ACTION_NOT_SUPPORTED,\n AppRuntimeErrorCode.POLICY_REJECTED,\n AppRuntimeErrorCode.RATE_LIMITED,\n AppRuntimeErrorCode.TEMPORARILY_UNAVAILABLE,\n AppRuntimeErrorCode.EXECUTION_FAILED\n ]),\n message: z.string().min(1).max(600),\n retryable: z.boolean(),\n retryAfterSeconds: z.number().int().min(1).max(86_400).optional(),\n details: jsonObjectSchema.optional()\n});\n\nexport const appPrepareInstallationRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n grant: appInstallationGrantSchema,\n returnUrl: httpsOrLocalhostUrlSchema,\n locale: localeCodeSchema\n});\n\nexport const appPrepareInstallationResponseSchema = z\n .strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n status: z.enum([\n AppInstallationConnectionStatus.NOT_REQUIRED,\n AppInstallationConnectionStatus.ACTION_REQUIRED,\n AppInstallationConnectionStatus.CONNECTED,\n AppInstallationConnectionStatus.FAILED\n ]),\n authorizationUrl: httpsOrLocalhostUrlSchema.optional(),\n authorizationExpiresAt: isoDateTimeSchema.optional(),\n connection: appRuntimeConnectionAttestationSchema.optional(),\n error: appRuntimeErrorSchema.optional()\n })\n .superRefine((value, context) => {\n if (\n value.status === AppInstallationConnectionStatus.ACTION_REQUIRED &&\n (!value.authorizationUrl || !value.authorizationExpiresAt)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"ACTION_REQUIRED requires an authorization URL and expiry\",\n path: [\"status\"]\n });\n }\n\n if (value.status === AppInstallationConnectionStatus.CONNECTED && !value.connection) {\n context.addIssue({\n code: \"custom\",\n message: \"CONNECTED requires a connection attestation\",\n path: [\"status\"]\n });\n }\n\n if (value.status === AppInstallationConnectionStatus.FAILED && !value.error) {\n context.addIssue({\n code: \"custom\",\n message: \"FAILED requires a runtime error\",\n path: [\"status\"]\n });\n }\n\n if (value.status !== AppInstallationConnectionStatus.FAILED && value.error) {\n context.addIssue({\n code: \"custom\",\n message: \"Only FAILED may include a runtime error\",\n path: [\"error\"]\n });\n }\n });\n\nexport const appCompleteInstallationRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n grant: appInstallationGrantSchema,\n completionToken: z.string().min(32).max(512)\n});\n\nexport const appCompleteInstallationResponseSchema = z\n .strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n status: z.enum([\n AppInstallationConnectionStatus.CONNECTED,\n AppInstallationConnectionStatus.FAILED\n ]),\n connection: appRuntimeConnectionAttestationSchema.optional(),\n error: appRuntimeErrorSchema.optional()\n })\n .superRefine((value, context) => {\n if (\n value.status === AppInstallationConnectionStatus.CONNECTED &&\n (!value.connection || value.error)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"CONNECTED requires a connection attestation and cannot include an error\",\n path: [\"status\"]\n });\n }\n\n if (\n value.status === AppInstallationConnectionStatus.FAILED &&\n (!value.error || value.connection)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"FAILED requires an error and cannot include a connection attestation\",\n path: [\"status\"]\n });\n }\n });\n\nexport const appDisconnectInstallationRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n grant: appInstallationGrantSchema,\n reason: z.string().min(1).max(300)\n});\n\nexport const appDisconnectInstallationResponseSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n disconnected: z.boolean(),\n error: appRuntimeErrorSchema.optional()\n});\n\nexport const appPlanActionRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n grant: appInstallationGrantSchema,\n intentId: appNamespacedIdSchema,\n input: jsonObjectSchema,\n context: strictAppContextEnvelopeSchema\n});\n\nconst appPlannedActionSchema = z.strictObject({\n stepKey: z.string().min(1).max(80),\n actionId: appNamespacedIdSchema,\n input: jsonObjectSchema,\n dependsOn: z.array(z.string().min(1).max(80)).max(32)\n});\n\nexport function findAppPlanTopologyIssue(\n actions: ReadonlyArray<{\n dependsOn: readonly string[];\n stepKey: string;\n }>\n): string | null {\n const dependenciesByStep = new Map<string, readonly string[]>();\n\n for (const action of actions) {\n if (dependenciesByStep.has(action.stepKey)) {\n return `Plan step key \"${action.stepKey}\" is duplicated.`;\n }\n\n dependenciesByStep.set(action.stepKey, action.dependsOn);\n }\n\n for (const action of actions) {\n const dependencies = new Set<string>();\n\n for (const dependency of action.dependsOn) {\n if (dependencies.has(dependency)) {\n return `Plan step \"${action.stepKey}\" declares dependency \"${dependency}\" more than once.`;\n }\n\n dependencies.add(dependency);\n\n if (dependency === action.stepKey) {\n return `Plan step \"${action.stepKey}\" cannot depend on itself.`;\n }\n\n if (!dependenciesByStep.has(dependency)) {\n return `Plan step \"${action.stepKey}\" depends on unknown step \"${dependency}\".`;\n }\n }\n }\n\n const visiting = new Set<string>();\n const visited = new Set<string>();\n\n const visit = (stepKey: string): string | null => {\n if (visiting.has(stepKey)) {\n return `Plan contains a dependency cycle involving step \"${stepKey}\".`;\n }\n\n if (visited.has(stepKey)) {\n return null;\n }\n\n visiting.add(stepKey);\n\n for (const dependency of dependenciesByStep.get(stepKey) ?? []) {\n const issue = visit(dependency);\n\n if (issue) {\n return issue;\n }\n }\n\n visiting.delete(stepKey);\n visited.add(stepKey);\n return null;\n };\n\n for (const stepKey of dependenciesByStep.keys()) {\n const issue = visit(stepKey);\n\n if (issue) {\n return issue;\n }\n }\n\n return null;\n}\n\nexport const appGroundingFactSchema = z.strictObject({\n knowledgeId: appNamespacedIdSchema,\n value: z.json()\n});\n\nexport const appPlanActionResponseSchema = z\n .strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n status: appPlanStatusSchema,\n actions: z.array(appPlannedActionSchema).max(64).default([]),\n missingFields: z.array(z.string().min(1).max(80)).max(64).default([]),\n grounding: z.array(appGroundingFactSchema).max(128).default([]),\n userMessage: z.string().min(1).max(2_000).optional(),\n error: appRuntimeErrorSchema.optional()\n })\n .superRefine((value, context) => {\n if (value.status === AppPlanStatus.READY) {\n if (value.actions.length === 0) {\n context.addIssue({\n code: \"custom\",\n message: \"READY requires at least one action\",\n path: [\"actions\"]\n });\n }\n\n if (value.missingFields.length > 0 || value.error) {\n context.addIssue({\n code: \"custom\",\n message: \"READY cannot include missing fields or an error\",\n path: [\"status\"]\n });\n }\n }\n\n if (value.status === AppPlanStatus.NEEDS_CLARIFICATION) {\n if (value.missingFields.length === 0) {\n context.addIssue({\n code: \"custom\",\n message: \"NEEDS_CLARIFICATION requires at least one missing field\",\n path: [\"missingFields\"]\n });\n }\n\n if (value.actions.length > 0 || value.grounding.length > 0 || value.error) {\n context.addIssue({\n code: \"custom\",\n message: \"NEEDS_CLARIFICATION cannot include actions, grounding, or an error\",\n path: [\"status\"]\n });\n }\n }\n\n if (value.status === AppPlanStatus.REJECTED) {\n if (!value.error) {\n context.addIssue({\n code: \"custom\",\n message: \"REJECTED requires an error\",\n path: [\"error\"]\n });\n }\n\n if (\n value.actions.length > 0 ||\n value.missingFields.length > 0 ||\n value.grounding.length > 0\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"REJECTED cannot include actions, missing fields, or grounding\",\n path: [\"status\"]\n });\n }\n }\n\n const topologyIssue = findAppPlanTopologyIssue(value.actions);\n\n if (topologyIssue) {\n context.addIssue({\n code: \"custom\",\n message: topologyIssue,\n path: [\"actions\"]\n });\n }\n });\n\nconst appRuntimeArtifactSchema = z.strictObject({\n artifactId: appNamespacedIdSchema,\n expiresAt: isoDateTimeSchema.optional(),\n resultKey: appLocalKeySchema,\n schemaVersion: z.number().int().min(1).max(1_000),\n value: z.json(),\n visibilityLevel: z.enum(appContextArtifactVisibilityLevels).optional()\n});\n\nexport const appExecuteActionRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n executionId: z.string().min(1).max(160),\n grant: appInstallationGrantSchema,\n actionId: appNamespacedIdSchema,\n input: jsonObjectSchema,\n context: strictAppContextEnvelopeSchema,\n idempotencyKey: z.string().min(16).max(240),\n attempt: z.number().int().min(1).max(8)\n});\n\nexport const appExecuteActionResponseSchema = z\n .strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: requestIdSchema,\n executionId: z.string().min(1).max(160),\n status: appExecutionStatusSchema,\n output: jsonObjectSchema.optional(),\n outcomeId: appNamespacedIdSchema.optional(),\n artifacts: z.array(appRuntimeArtifactSchema).max(64).default([]),\n bubbles: z.array(bubbleDescriptorSchema.strict()).max(16).default([]),\n error: appRuntimeErrorSchema.optional()\n })\n .superRefine((value, context) => {\n const artifactResultKeys = new Set<string>();\n\n value.artifacts.forEach((artifact, artifactIndex) => {\n if (artifactResultKeys.has(artifact.resultKey)) {\n context.addIssue({\n code: \"custom\",\n message: `Artifact result key \"${artifact.resultKey}\" is duplicated`,\n path: [\"artifacts\", artifactIndex, \"resultKey\"]\n });\n }\n\n artifactResultKeys.add(artifact.resultKey);\n });\n\n value.bubbles.forEach((bubble, bubbleIndex) => {\n bubble.actions.forEach((action, actionIndex) => {\n if (\n action.action_type === BubbleActionType.SELECT_OPTION &&\n !artifactResultKeys.has(action.artifact_result_key)\n ) {\n context.addIssue({\n code: \"custom\",\n message: `SELECT_OPTION references unknown artifact result key \"${action.artifact_result_key}\"`,\n path: [\"bubbles\", bubbleIndex, \"actions\", actionIndex, \"artifact_result_key\"]\n });\n }\n });\n });\n\n if (\n value.status === AppExecutionStatus.SUCCEEDED &&\n (!value.output || !value.outcomeId || value.error)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"SUCCEEDED requires output and outcomeId and cannot include an error\",\n path: [\"status\"]\n });\n }\n\n if (\n value.status === AppExecutionStatus.FAILED &&\n (!value.error || value.output || value.outcomeId)\n ) {\n context.addIssue({\n code: \"custom\",\n message: \"FAILED requires an error and cannot include output or outcomeId\",\n path: [\"status\"]\n });\n }\n });\n\nexport const appRuntimeHealthResponseSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n status: appRuntimeHealthStatusSchema,\n appId: appIdSchema,\n appVersion: semanticVersionSchema,\n checkedAt: isoDateTimeSchema,\n message: z.string().min(1).max(500).optional()\n});\n\nexport type AppInstallationGrant = z.infer<typeof appInstallationGrantSchema>;\nexport type AppCompleteInstallationRequest = z.infer<typeof appCompleteInstallationRequestSchema>;\nexport type AppCompleteInstallationResponse = z.infer<typeof appCompleteInstallationResponseSchema>;\nexport type AppPrepareInstallationRequest = z.infer<typeof appPrepareInstallationRequestSchema>;\nexport type AppPrepareInstallationResponse = z.infer<typeof appPrepareInstallationResponseSchema>;\nexport type AppDisconnectInstallationRequest = z.infer<\n typeof appDisconnectInstallationRequestSchema\n>;\nexport type AppDisconnectInstallationResponse = z.infer<\n typeof appDisconnectInstallationResponseSchema\n>;\nexport type AppPlanActionRequest = z.infer<typeof appPlanActionRequestSchema>;\nexport type AppPlanActionResponse = z.infer<typeof appPlanActionResponseSchema>;\nexport type AppExecuteActionRequest = z.infer<typeof appExecuteActionRequestSchema>;\nexport type AppExecuteActionResponse = z.infer<typeof appExecuteActionResponseSchema>;\nexport type AppRuntimeHealthResponse = z.infer<typeof appRuntimeHealthResponseSchema>;\n\nexport function isSuccessfulExecution(\n response: AppExecuteActionResponse\n): response is AppExecuteActionResponse & { status: AppExecutionStatus.SUCCEEDED } {\n return response.status === AppExecutionStatus.SUCCEEDED;\n}\n\nexport function isReadyPlan(\n response: AppPlanActionResponse\n): response is AppPlanActionResponse & { status: AppPlanStatus.READY } {\n return response.status === AppPlanStatus.READY;\n}\n\nexport function isHealthyRuntime(\n status: AppRuntimeHealthStatus\n): status is AppRuntimeHealthStatus.HEALTHY | AppRuntimeHealthStatus.DEGRADED {\n return status === AppRuntimeHealthStatus.HEALTHY || status === AppRuntimeHealthStatus.DEGRADED;\n}\n","import { z } from \"zod\";\nimport { appManifestSchema } from \"./app-manifest\";\nimport { AppRuntimeHost, appProtocolVersion } from \"./common\";\nimport {\n appCompleteInstallationRequestSchema,\n appDisconnectInstallationRequestSchema,\n appExecuteActionRequestSchema,\n appPlanActionRequestSchema,\n appPrepareInstallationRequestSchema\n} from \"./runtime-envelopes\";\n\nexport const hostedDeclarativeRuntimeId = \"vekil-declarative-runtime\";\n\nexport const hostedDeclarativeRuntimePaths = {\n prepareInstallation: \"/v1/declarative/installations/prepare\",\n completeInstallation: \"/v1/declarative/installations/complete\",\n disconnectInstallation: \"/v1/declarative/installations/disconnect\",\n planAction: \"/v1/declarative/actions/plan\",\n executeAction: \"/v1/declarative/actions/execute\",\n health: \"/v1/declarative/health\"\n} as const;\n\nconst declarativeManifestSchema = appManifestSchema.refine(\n (manifest) => manifest.runtime.host === AppRuntimeHost.DECLARATIVE,\n \"Hosted Declarative Runtime accepts only declarative manifests\"\n);\n\nexport const hostedDeclarativePrepareRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n manifest: declarativeManifestSchema,\n request: appPrepareInstallationRequestSchema\n});\n\nexport const hostedDeclarativeCompleteRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n manifest: declarativeManifestSchema,\n request: appCompleteInstallationRequestSchema\n});\n\nexport const hostedDeclarativeDisconnectRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n manifest: declarativeManifestSchema,\n request: appDisconnectInstallationRequestSchema\n});\n\nexport const hostedDeclarativePlanRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n manifest: declarativeManifestSchema,\n request: appPlanActionRequestSchema\n});\n\nexport const hostedDeclarativeExecuteRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n manifest: declarativeManifestSchema,\n request: appExecuteActionRequestSchema\n});\n\nexport const hostedDeclarativeHealthRequestSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n requestId: z.string().min(1).max(160),\n manifest: declarativeManifestSchema\n});\n\nexport type HostedDeclarativePrepareRequest = z.infer<typeof hostedDeclarativePrepareRequestSchema>;\nexport type HostedDeclarativeCompleteRequest = z.infer<\n typeof hostedDeclarativeCompleteRequestSchema\n>;\nexport type HostedDeclarativeDisconnectRequest = z.infer<\n typeof hostedDeclarativeDisconnectRequestSchema\n>;\nexport type HostedDeclarativePlanRequest = z.infer<typeof hostedDeclarativePlanRequestSchema>;\nexport type HostedDeclarativeExecuteRequest = z.infer<typeof hostedDeclarativeExecuteRequestSchema>;\nexport type HostedDeclarativeHealthRequest = z.infer<typeof hostedDeclarativeHealthRequestSchema>;\n","import { z } from \"zod\";\nimport {\n appIdSchema,\n appProtocolVersion,\n httpsOrLocalhostUrlSchema,\n isoDateTimeSchema\n} from \"./common\";\n\nexport enum AppSignatureAlgorithm {\n ED25519 = \"EdDSA\"\n}\n\nexport const appProtocolSignatureHeaders = {\n expiresAt: \"x-vekil-expires-at\",\n keyId: \"x-vekil-key-id\",\n nonce: \"x-vekil-nonce\",\n signature: \"x-vekil-signature\",\n timestamp: \"x-vekil-timestamp\"\n} as const;\n\nexport const appJwsType = \"vekil-app-signature+jws\" as const;\n\nexport const appJwsProtectedHeaderSchema = z.strictObject({\n alg: z.literal(AppSignatureAlgorithm.ED25519),\n b64: z.literal(false),\n crit: z.tuple([z.literal(\"b64\")]),\n kid: z.string().min(1).max(160),\n typ: z.literal(appJwsType)\n});\n\nexport const appSignatureClaimsSchema = z.strictObject({\n protocolVersion: z.literal(appProtocolVersion),\n algorithm: z.literal(AppSignatureAlgorithm.ED25519),\n issuer: z.string().min(1).max(160),\n audience: appIdSchema,\n keyId: z.string().min(1).max(160),\n method: z.enum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"]),\n path: z.string().min(1).max(500).startsWith(\"/\"),\n bodySha256: z.string().regex(/^[a-f0-9]{64}$/),\n issuedAt: isoDateTimeSchema,\n expiresAt: isoDateTimeSchema,\n nonce: z.string().min(16).max(160),\n installationId: z.string().min(1).max(160).optional(),\n executionId: z.string().min(1).max(160).optional()\n});\n\nexport const appDetachedJwsSchema = z\n .string()\n .min(16)\n .max(8_192)\n .regex(/^[A-Za-z0-9_-]+\\.\\.[A-Za-z0-9_-]+$/);\n\nexport const appPublicSigningJwkSchema = z.strictObject({\n kty: z.literal(\"OKP\"),\n crv: z.literal(\"Ed25519\"),\n x: z.string().min(40).max(64),\n use: z.literal(\"sig\"),\n alg: z.literal(AppSignatureAlgorithm.ED25519),\n kid: z.string().min(1).max(160)\n});\n\nexport const appJwksSchema = z.strictObject({\n keys: z.array(appPublicSigningJwkSchema).min(1).max(8)\n});\n\nexport const appRuntimeKeySchema = z.strictObject({\n keyId: z.string().min(1).max(160),\n algorithm: z.literal(AppSignatureAlgorithm.ED25519),\n publicKeyJwk: appPublicSigningJwkSchema\n});\n\nexport const appRuntimeIdentitySchema = z.strictObject({\n appId: appIdSchema,\n baseUrl: httpsOrLocalhostUrlSchema,\n keys: z.array(appRuntimeKeySchema).min(1).max(8)\n});\n\nexport type AppSignatureClaims = z.infer<typeof appSignatureClaimsSchema>;\nexport type AppJwks = z.infer<typeof appJwksSchema>;\nexport type AppJwsProtectedHeader = z.infer<typeof appJwsProtectedHeaderSchema>;\nexport type AppPublicSigningJwk = z.infer<typeof appPublicSigningJwkSchema>;\nexport type AppRuntimeIdentity = z.infer<typeof appRuntimeIdentitySchema>;\n","import {\n AppApprovalMode,\n AppArtifactAudience,\n AppClarificationMode,\n AppConnectionType,\n AppHttpMethod,\n AppIntentMode,\n AppKnowledgeSourceType,\n type AppCompilationBinding,\n type AppDefinition,\n type AppManifest,\n AppRuntimeHost,\n AppSideEffectType,\n AppValueSource,\n AppWorkflowStepType,\n appCompilationBindingSchema,\n appDefinitionSchema,\n appManifestSchema,\n appManifestVersion,\n appPoliciesSchemaVersion,\n appSettingsSchemaVersion,\n requiredAppActionContextScopes,\n type AppValueExpression,\n type AppWorkflowDefinition,\n type LocalizedText\n} from \"@vekil/app-protocol\";\n\nexport enum AppCompilerIssueCode {\n INVALID_BINDING = \"INVALID_BINDING\",\n INVALID_DEFINITION = \"INVALID_DEFINITION\",\n INVALID_MANIFEST = \"INVALID_MANIFEST\",\n DUPLICATE_ID = \"DUPLICATE_ID\",\n UNKNOWN_REFERENCE = \"UNKNOWN_REFERENCE\",\n MISSING_DEFAULT_LOCALE = \"MISSING_DEFAULT_LOCALE\",\n INVALID_CONNECTION = \"INVALID_CONNECTION\",\n INVALID_INPUT_FIELD = \"INVALID_INPUT_FIELD\",\n INVALID_KNOWLEDGE = \"INVALID_KNOWLEDGE\",\n INVALID_ARTIFACT_CONTRACT = \"INVALID_ARTIFACT_CONTRACT\",\n IDEMPOTENCY_REQUIRED = \"IDEMPOTENCY_REQUIRED\",\n INVALID_WORKFLOW = \"INVALID_WORKFLOW\",\n WORKFLOW_CYCLE = \"WORKFLOW_CYCLE\"\n}\n\nexport interface AppCompilerIssue {\n code: AppCompilerIssueCode;\n path: string;\n message: string;\n}\n\nexport type AppCompilerResult =\n | {\n ok: true;\n manifest: AppManifest;\n }\n | {\n ok: false;\n issues: AppCompilerIssue[];\n };\n\nexport class AppCompilationError extends Error {\n readonly issues: AppCompilerIssue[];\n\n constructor(issues: AppCompilerIssue[]) {\n super(`App definition failed compilation with ${issues.length} issue(s)`);\n this.name = \"AppCompilationError\";\n this.issues = issues;\n }\n}\n\nexport function compileAppDefinition(input: unknown, bindingInput: unknown): AppCompilerResult {\n const validation = validateAppDefinition(input);\n if (!validation.ok) return validation;\n\n const parsedBinding = appCompilationBindingSchema.safeParse(bindingInput);\n if (!parsedBinding.success) {\n return {\n ok: false,\n issues: parsedBinding.error.issues.map((issue) => ({\n code: AppCompilerIssueCode.INVALID_BINDING,\n path: `binding.${formatPath(issue.path)}`,\n message: issue.message\n }))\n };\n }\n\n const localeWriter = new LocaleWriter(validation.definition.defaultLocale);\n const candidate = buildManifest(validation.definition, localeWriter, parsedBinding.data);\n const parsedManifest = appManifestSchema.safeParse(candidate);\n\n if (!parsedManifest.success) {\n return {\n ok: false,\n issues: parsedManifest.error.issues.map((issue) => ({\n code: AppCompilerIssueCode.INVALID_MANIFEST,\n path: formatPath(issue.path),\n message: issue.message\n }))\n };\n }\n\n return {\n ok: true,\n manifest: parsedManifest.data\n };\n}\n\nexport function compileAppDefinitionOrThrow(\n input: unknown,\n binding: AppCompilationBinding\n): AppManifest {\n const result = compileAppDefinition(input, binding);\n\n if (!result.ok) {\n throw new AppCompilationError(result.issues);\n }\n\n return result.manifest;\n}\n\nexport type AppDefinitionValidationResult =\n { definition: AppDefinition; issues: []; ok: true } | { issues: AppCompilerIssue[]; ok: false };\n\nexport function validateAppDefinition(input: unknown): AppDefinitionValidationResult {\n const parsedDefinition = appDefinitionSchema.safeParse(input);\n\n if (!parsedDefinition.success) {\n return {\n ok: false,\n issues: parsedDefinition.error.issues.map((issue) => ({\n code: AppCompilerIssueCode.INVALID_DEFINITION,\n path: formatPath(issue.path),\n message: issue.message\n }))\n };\n }\n\n const issues = validateDefinition(parsedDefinition.data);\n return issues.length > 0\n ? { ok: false, issues }\n : { definition: parsedDefinition.data, issues: [], ok: true };\n}\n\nfunction validateDefinition(definition: AppDefinition): AppCompilerIssue[] {\n const issues: AppCompilerIssue[] = [];\n const capabilities = new Set(definition.capabilities.map((capability) => capability.key));\n const actions = new Set(definition.actions.map((action) => action.key));\n const intents = new Set(definition.intents.map((intent) => intent.key));\n const outcomes = new Set(definition.outcomes.map((outcome) => outcome.key));\n const knowledge = new Set(definition.knowledge.map((item) => item.key));\n const artifacts = new Set(\n definition.artifactContracts.map((artifact) => `${artifact.key}@${artifact.schemaVersion}`)\n );\n const artifactContracts = new Map(\n definition.artifactContracts.map((artifact) => [\n `${artifact.key}@${artifact.schemaVersion}`,\n artifact\n ])\n );\n const settings = new Set(definition.settings.fields.map((field) => field.key));\n const policies = new Set(definition.policies.rules.map((rule) => rule.key));\n const permissions = new Set(\n definition.connection.permissions.map((permission) => permission.key)\n );\n const declaredContextScopes = new Set([\n ...definition.context.defaultScopes,\n ...definition.context.optionalScopes\n ]);\n\n validateUnique(\n issues,\n \"capabilities\",\n definition.capabilities.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"actions\",\n definition.actions.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"intents\",\n definition.intents.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"outcomes\",\n definition.outcomes.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"artifactContracts\",\n definition.artifactContracts.map((item) => `${item.key}@${item.schemaVersion}`)\n );\n validateUnique(\n issues,\n \"knowledge\",\n definition.knowledge.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"settings.fields\",\n definition.settings.fields.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"policies.rules\",\n definition.policies.rules.map((item) => item.key)\n );\n validateUnique(\n issues,\n \"connection.permissions\",\n definition.connection.permissions.map((item) => item.key)\n );\n\n validateDefaultLocales(definition, issues);\n validateConnection(definition, permissions, issues);\n\n definition.artifactContracts.forEach((artifact, index) => {\n if (!artifact.audiences.includes(AppArtifactAudience.PRODUCING_APP)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_ARTIFACT_CONTRACT,\n path: `artifactContracts.${index}.audiences`,\n message: `Artifact contract \"${artifact.key}@${artifact.schemaVersion}\" must include its producing App audience`\n });\n }\n\n if (new Set(artifact.audiences).size !== artifact.audiences.length) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_ARTIFACT_CONTRACT,\n path: `artifactContracts.${index}.audiences`,\n message: `Artifact contract \"${artifact.key}@${artifact.schemaVersion}\" repeats an audience`\n });\n }\n\n if (\n artifact.sensitivityLevel === \"HIGH\" &&\n artifact.audiences.includes(AppArtifactAudience.COMPOSED_APPS)\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_ARTIFACT_CONTRACT,\n path: `artifactContracts.${index}.audiences`,\n message: `HIGH-sensitivity artifact \"${artifact.key}@${artifact.schemaVersion}\" cannot be shared with composed Apps`\n });\n }\n });\n\n definition.capabilities.forEach((capability, index) => {\n capability.actionKeys.forEach((actionKey) => {\n validateReference(issues, actions, `capabilities.${index}.actionKeys`, actionKey, \"action\");\n });\n });\n\n definition.actions.forEach((action, index) => {\n action.context.requiredScopes.forEach((scope) => {\n if (!declaredContextScopes.has(scope)) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `actions.${index}.context.requiredScopes`,\n message: `Action \"${action.key}\" requires undeclared App Context scope \"${scope}\"`\n });\n }\n });\n\n validateReference(\n issues,\n capabilities,\n `actions.${index}.capabilityKey`,\n action.capabilityKey,\n \"capability\"\n );\n\n action.outcomeKeys.forEach((outcomeKey) => {\n validateReference(issues, outcomes, `actions.${index}.outcomeKeys`, outcomeKey, \"outcome\");\n });\n\n action.inputArtifacts.forEach((artifact) => {\n validateReference(\n issues,\n artifacts,\n `actions.${index}.inputArtifacts`,\n `${artifact.artifactKey}@${artifact.schemaVersion}`,\n \"artifact contract\"\n );\n });\n\n action.outputArtifacts.forEach((artifact) => {\n validateReference(\n issues,\n artifacts,\n `actions.${index}.outputArtifacts`,\n `${artifact.artifactKey}@${artifact.schemaVersion}`,\n \"artifact contract\"\n );\n\n const contract = artifactContracts.get(`${artifact.artifactKey}@${artifact.schemaVersion}`);\n\n if (contract?.audiences.includes(AppArtifactAudience.COMPOSED_APPS) && !action.composable) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_ARTIFACT_CONTRACT,\n path: `actions.${index}.outputArtifacts`,\n message: `Action \"${action.key}\" must be composable to produce a cross-App artifact`\n });\n }\n });\n\n action.context.requiresSettings.forEach((settingKey) => {\n validateReference(\n issues,\n settings,\n `actions.${index}.context.requiresSettings`,\n settingKey,\n \"setting\"\n );\n });\n\n action.context.requiresPolicies.forEach((policyKey) => {\n validateReference(\n issues,\n policies,\n `actions.${index}.context.requiresPolicies`,\n policyKey,\n \"policy\"\n );\n });\n\n validateUnique(\n issues,\n `actions.${index}.context.requiresPolicies`,\n action.context.requiresPolicies\n );\n\n if (\n action.approval === AppApprovalMode.POLICY &&\n action.context.requiresPolicies.length === 0\n ) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `actions.${index}.context.requiresPolicies`,\n message: `Action \"${action.key}\" uses policy approval but declares no policy`\n });\n }\n\n for (const requiredScope of requiredAppActionContextScopes) {\n if (!action.context.requiredScopes.includes(requiredScope)) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `actions.${index}.context.requiredScopes`,\n message: `Action \"${action.key}\" must request the Core ${requiredScope} scope`\n });\n }\n }\n\n if (action.context.requiresPolicies.length > 0) {\n if (!action.context.requiredScopes.includes(\"app-installation.policies\")) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `actions.${index}.context.requiredScopes`,\n message: `Action \"${action.key}\" requires policy scope \"app-installation.policies\"`\n });\n }\n }\n\n if (\n action.sideEffect !== AppSideEffectType.READ_ONLY &&\n action.sideEffect !== AppSideEffectType.PROPOSAL_ONLY &&\n !action.idempotency.required\n ) {\n issues.push({\n code: AppCompilerIssueCode.IDEMPOTENCY_REQUIRED,\n path: `actions.${index}.idempotency.required`,\n message: `Action \"${action.key}\" changes external state and must require idempotency`\n });\n }\n });\n\n definition.intents.forEach((intent, index) => {\n intent.capabilityKeys.forEach((capabilityKey) => {\n validateReference(\n issues,\n capabilities,\n `intents.${index}.capabilityKeys`,\n capabilityKey,\n \"capability\"\n );\n });\n\n intent.actionKeys.forEach((actionKey) => {\n validateReference(issues, actions, `intents.${index}.actionKeys`, actionKey, \"action\");\n });\n\n intent.knowledgeKeys.forEach((knowledgeKey) => {\n validateReference(\n issues,\n knowledge,\n `intents.${index}.knowledgeKeys`,\n knowledgeKey,\n \"knowledge item\"\n );\n });\n\n if (intent.mode === AppIntentMode.ANSWER && intent.knowledgeKeys.length === 0) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_KNOWLEDGE,\n path: `intents.${index}.knowledgeKeys`,\n message: `Answer intent \"${intent.key}\" must declare at least one approved knowledge item`\n });\n }\n\n if (intent.mode === AppIntentMode.ANSWER) {\n intent.actionKeys.forEach((actionKey) => {\n const action = definition.actions.find((candidate) => candidate.key === actionKey);\n\n if (action && action.sideEffect !== AppSideEffectType.READ_ONLY) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_KNOWLEDGE,\n path: `intents.${index}.actionKeys`,\n message: `Answer intent \"${intent.key}\" may reference only read-only actions`\n });\n }\n });\n }\n\n const inputProperties = readSchemaProperties(intent.inputSchema);\n const schemaRequiredFields = readSchemaRequiredFields(intent.inputSchema);\n const declaredFields = [...intent.requiredFields, ...intent.optionalFields];\n const declaredFieldSet = new Set(declaredFields);\n\n validateUnique(issues, `intents.${index}.requiredFields`, intent.requiredFields);\n validateUnique(issues, `intents.${index}.optionalFields`, intent.optionalFields);\n\n declaredFields.forEach((field) => {\n if (!inputProperties.has(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.inputSchema.properties`,\n message: `Field \"${field}\" is not declared in the intent input schema`\n });\n }\n });\n\n inputProperties.forEach((field) => {\n if (!declaredFieldSet.has(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.inputSchema.properties.${field}`,\n message: `Input field \"${field}\" must be classified as required or optional`\n });\n }\n });\n\n intent.optionalFields.forEach((field) => {\n if (intent.requiredFields.includes(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.optionalFields`,\n message: `Field \"${field}\" cannot be both required and optional`\n });\n }\n });\n\n intent.requiredFields.forEach((field) => {\n if (!schemaRequiredFields.has(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.inputSchema.required`,\n message: `Required field \"${field}\" must be required by the intent input schema`\n });\n }\n });\n\n schemaRequiredFields.forEach((field) => {\n if (!intent.requiredFields.includes(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.requiredFields`,\n message: `Schema-required field \"${field}\" must be declared as required`\n });\n }\n });\n\n Object.keys(intent.entityHints).forEach((field) => {\n if (!inputProperties.has(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.entityHints.${field}`,\n message: `Entity hint \"${field}\" does not reference an intent input field`\n });\n }\n });\n\n Object.keys(intent.fieldQuestions).forEach((field) => {\n if (!inputProperties.has(field)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.fieldQuestions.${field}`,\n message: `Clarification question \"${field}\" does not reference an intent input field`\n });\n }\n });\n\n if (intent.clarificationMode === AppClarificationMode.ASK_MISSING_FIELDS) {\n intent.requiredFields.forEach((field) => {\n if (!intent.fieldQuestions[field]) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_INPUT_FIELD,\n path: `intents.${index}.fieldQuestions.${field}`,\n message: `Required field \"${field}\" needs a localized clarification question`\n });\n }\n });\n }\n });\n\n definition.knowledge.forEach((item, index) => {\n if (item.source.type === AppKnowledgeSourceType.SETTING) {\n validateReference(\n issues,\n settings,\n `knowledge.${index}.source.settingKey`,\n item.source.settingKey,\n \"setting\"\n );\n }\n });\n\n validateFieldReferences(definition.settings.fields, \"settings.fields\", actions, issues);\n\n definition.policies.rules.forEach((rule, index) => {\n if (!rule.behaviors.some((behavior) => behavior.value === rule.defaultBehavior)) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `policies.rules.${index}.defaultBehavior`,\n message: `Unknown policy behavior \"${rule.defaultBehavior}\"`\n });\n }\n\n validateUnique(\n issues,\n `policies.rules.${index}.behaviors`,\n rule.behaviors.map((behavior) => behavior.value)\n );\n validateFieldReferences(\n rule.conditionFields,\n `policies.rules.${index}.conditionFields`,\n actions,\n issues\n );\n });\n\n definition.outcomes.forEach((outcome, index) => {\n validateReference(issues, actions, `outcomes.${index}.actionKey`, outcome.actionKey, \"action\");\n\n const action = definition.actions.find((candidate) => candidate.key === outcome.actionKey);\n\n outcome.nextActions.forEach((nextAction, nextActionIndex) => {\n if (!nextAction.artifactKey) {\n return;\n }\n\n const outputReferences =\n action?.outputArtifacts.filter(\n (artifact) => artifact.artifactKey === nextAction.artifactKey\n ) ?? [];\n\n if (outputReferences.length === 0) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `outcomes.${index}.nextActions.${nextActionIndex}.artifactKey`,\n message: `Next action \"${nextAction.key}\" references artifact \"${nextAction.artifactKey}\" that action \"${outcome.actionKey}\" does not produce`\n });\n return;\n }\n\n const hasSameIntentConsumer = definition.intents.some(\n (intent) =>\n intent.actionKeys.includes(outcome.actionKey) &&\n intent.actionKeys.some((actionKey) => {\n const consumer = definition.actions.find((candidate) => candidate.key === actionKey);\n\n return outputReferences.some((outputReference) =>\n consumer?.inputArtifacts.some(\n (inputReference) =>\n inputReference.artifactKey === outputReference.artifactKey &&\n inputReference.schemaVersion === outputReference.schemaVersion\n )\n );\n })\n );\n\n if (!hasSameIntentConsumer) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_ARTIFACT_CONTRACT,\n path: `outcomes.${index}.nextActions.${nextActionIndex}.artifactKey`,\n message: `Next action \"${nextAction.key}\" references artifact \"${nextAction.artifactKey}\" without a consumer in the producing intent`\n });\n }\n });\n });\n\n definition.publicActions.forEach((publicAction, index) => {\n validateReference(\n issues,\n intents,\n `publicActions.${index}.intentKey`,\n publicAction.intentKey,\n \"intent\"\n );\n publicAction.capabilityKeys.forEach((capabilityKey) => {\n validateReference(\n issues,\n capabilities,\n `publicActions.${index}.capabilityKeys`,\n capabilityKey,\n \"capability\"\n );\n });\n });\n\n definition.triggers.forEach((trigger, index) => {\n validateReference(\n issues,\n capabilities,\n `triggers.${index}.capabilityKey`,\n trigger.capabilityKey,\n \"capability\"\n );\n });\n\n definition.capabilities.forEach((capability, capabilityIndex) => {\n capability.actionKeys.forEach((actionKey) => {\n const action = definition.actions.find((candidate) => candidate.key === actionKey);\n\n if (action && action.capabilityKey !== capability.key) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path: `capabilities.${capabilityIndex}.actionKeys`,\n message: `Action \"${actionKey}\" belongs to capability \"${action.capabilityKey}\"`\n });\n }\n });\n });\n\n if (definition.runtime.host === AppRuntimeHost.DECLARATIVE) {\n validateDeclarativeWorkflows(definition, actions, artifacts, settings, issues);\n }\n\n return issues;\n}\n\nfunction validateConnection(\n definition: AppDefinition,\n permissions: Set<string>,\n issues: AppCompilerIssue[]\n): void {\n if (\n definition.connection.type === AppConnectionType.NONE &&\n (definition.connection.required || definition.connection.permissions.length > 0)\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_CONNECTION,\n path: \"connection\",\n message: \"A NONE connection cannot be required or request permissions\"\n });\n }\n\n if (\n definition.runtime.host === AppRuntimeHost.DECLARATIVE &&\n definition.connection.type !== AppConnectionType.NONE &&\n !definition.connection.required\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_CONNECTION,\n path: \"connection.required\",\n message: \"API-key and OAuth connections must be required for declarative execution\"\n });\n }\n\n if (definition.runtime.host === AppRuntimeHost.REMOTE) {\n if (definition.runtime.connectionRequired !== definition.connection.required) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_CONNECTION,\n path: \"runtime.connectionRequired\",\n message: \"Remote runtime connectionRequired must match the public connection contract\"\n });\n }\n\n return;\n }\n\n if (definition.runtime.connection.type !== definition.connection.type) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_CONNECTION,\n path: \"runtime.connection.type\",\n message: \"Declarative runtime connection type must match the public connection contract\"\n });\n }\n\n if (definition.runtime.connection.type === AppConnectionType.API_KEY) {\n validateUnique(\n issues,\n \"runtime.connection.fields.key\",\n definition.runtime.connection.fields.map((field) => field.key)\n );\n validateUnique(\n issues,\n \"runtime.connection.fields.secretRef\",\n definition.runtime.connection.fields.map((field) => field.secretRef)\n );\n validateUnique(\n issues,\n \"runtime.connection.fields.headerName\",\n definition.runtime.connection.fields.map((field) => field.headerName.toLowerCase())\n );\n definition.runtime.connection.fields.forEach((field, index) => {\n validateUnique(\n issues,\n `runtime.connection.fields.${index}.allowedOrigins`,\n field.allowedOrigins.map((origin) => new URL(origin).origin)\n );\n });\n }\n\n if (definition.runtime.connection.type === AppConnectionType.OAUTH2) {\n validateUnique(\n issues,\n \"runtime.connection.resourceOrigins\",\n definition.runtime.connection.resourceOrigins.map((origin) => new URL(origin).origin)\n );\n definition.runtime.connection.scopes.forEach((scope, index) => {\n validateReference(\n issues,\n permissions,\n `runtime.connection.scopes.${index}.permissionKey`,\n scope.permissionKey,\n \"connection permission\"\n );\n });\n }\n}\n\nfunction validateDeclarativeWorkflows(\n definition: AppDefinition,\n actions: Set<string>,\n artifacts: Set<string>,\n settings: Set<string>,\n issues: AppCompilerIssue[]\n): void {\n if (definition.runtime.host !== AppRuntimeHost.DECLARATIVE) {\n return;\n }\n\n validateUnique(\n issues,\n \"runtime.workflows\",\n definition.runtime.workflows.map((workflow) => workflow.actionKey)\n );\n\n const workflowsByAction = new Set(\n definition.runtime.workflows.map((workflow) => workflow.actionKey)\n );\n\n actions.forEach((actionKey) => {\n if (!workflowsByAction.has(actionKey)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: \"runtime.workflows\",\n message: `Declarative action \"${actionKey}\" has no workflow`\n });\n }\n });\n\n definition.runtime.workflows.forEach((workflow, workflowIndex) => {\n validateReference(\n issues,\n actions,\n `runtime.workflows.${workflowIndex}.actionKey`,\n workflow.actionKey,\n \"action\"\n );\n validateWorkflow(workflow, workflowIndex, artifacts, settings, definition, issues);\n });\n}\n\nfunction validateWorkflow(\n workflow: AppWorkflowDefinition,\n workflowIndex: number,\n artifacts: Set<string>,\n settings: Set<string>,\n definition: AppDefinition,\n issues: AppCompilerIssue[]\n): void {\n const basePath = `runtime.workflows.${workflowIndex}`;\n const stepKeys = new Set(workflow.steps.map((step) => step.key));\n const secretRefs = readRuntimeSecretRefs(definition);\n const secretHeaders = readRuntimeSecretHeaders(definition);\n const secretOrigins = readRuntimeSecretOrigins(definition);\n const graph = new Map(workflow.steps.map((step) => [step.key, new Set<string>()]));\n const conditionTargets = new Map<string, string>();\n const resultStepKeys: string[] = [];\n const stepOutputReferences: Array<{\n consumerStepKey: string;\n path: string;\n producerStepKey: string;\n }> = [];\n\n validateUnique(\n issues,\n `${basePath}.steps`,\n workflow.steps.map((step) => step.key)\n );\n\n workflow.steps.forEach((step, stepIndex) => {\n const stepPath = `${basePath}.steps.${stepIndex}`;\n\n if (step.type === AppWorkflowStepType.HTTP_REQUEST) {\n if (step.method === AppHttpMethod.GET && step.body) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.body`,\n message: \"GET workflow requests cannot contain a body\"\n });\n }\n\n if (step.method !== AppHttpMethod.GET) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.method`,\n message:\n \"Generic declarative HTTP writes require a reviewed provider adapter with durable idempotency\"\n });\n }\n\n if (\n definition.runtime.host === AppRuntimeHost.DECLARATIVE &&\n definition.runtime.connection.type === AppConnectionType.API_KEY &&\n !Object.values(step.headers).some(\n (expression) => expression.source === AppValueSource.SECRET\n )\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.headers`,\n message: \"API-key workflow requests must include an authorized secret header\"\n });\n }\n\n if (\n definition.runtime.host === AppRuntimeHost.DECLARATIVE &&\n definition.runtime.connection.type === AppConnectionType.OAUTH2 &&\n !definition.runtime.connection.resourceOrigins\n .map((origin) => new URL(origin).origin)\n .includes(new URL(step.url).origin)\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.url`,\n message: \"OAuth credentials are not authorized for this workflow origin\"\n });\n }\n }\n\n step.dependsOn.forEach((dependency) => {\n validateReference(issues, stepKeys, `${stepPath}.dependsOn`, dependency, \"workflow step\");\n addGraphEdge(graph, dependency, step.key);\n });\n\n if (step.type === AppWorkflowStepType.CONDITION) {\n validateReference(issues, stepKeys, `${stepPath}.whenTrue`, step.whenTrue, \"workflow step\");\n addGraphEdge(graph, step.key, step.whenTrue);\n registerConditionTarget(\n conditionTargets,\n step.whenTrue,\n step.key,\n `${stepPath}.whenTrue`,\n issues\n );\n\n if (step.whenFalse) {\n validateReference(\n issues,\n stepKeys,\n `${stepPath}.whenFalse`,\n step.whenFalse,\n \"workflow step\"\n );\n addGraphEdge(graph, step.key, step.whenFalse);\n registerConditionTarget(\n conditionTargets,\n step.whenFalse,\n step.key,\n `${stepPath}.whenFalse`,\n issues\n );\n }\n }\n\n if (step.type === AppWorkflowStepType.EMIT_ARTIFACT) {\n validateReference(\n issues,\n artifacts,\n `${stepPath}.artifactKey`,\n `${step.artifactKey}@${step.schemaVersion}`,\n \"artifact contract\"\n );\n }\n\n if (step.type === AppWorkflowStepType.EMIT_RESULT) {\n resultStepKeys.push(step.key);\n const outcome = definition.outcomes.find((candidate) => candidate.key === step.outcomeKey);\n\n if (!outcome || outcome.actionKey !== workflow.actionKey) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.outcomeKey`,\n message: `Outcome \"${step.outcomeKey}\" does not belong to action \"${workflow.actionKey}\"`\n });\n }\n }\n\n readStepExpressionEntries(step).forEach(\n ({ expression, path, secretAllowed, secretHeaderName }) => {\n if (expression.source === AppValueSource.STEP_OUTPUT) {\n validateReference(\n issues,\n stepKeys,\n `${stepPath}.${path}.stepKey`,\n expression.stepKey,\n \"workflow step\"\n );\n stepOutputReferences.push({\n consumerStepKey: step.key,\n path: `${stepPath}.${path}.stepKey`,\n producerStepKey: expression.stepKey\n });\n }\n\n if (expression.source === AppValueSource.SETTING) {\n validateReference(issues, settings, `${stepPath}.${path}.key`, expression.key, \"setting\");\n }\n\n if (expression.source === AppValueSource.SECRET) {\n validateReference(\n issues,\n secretRefs,\n `${stepPath}.${path}.key`,\n expression.key,\n \"runtime secret reference\"\n );\n\n if (!secretAllowed) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.${path}`,\n message: \"Secrets may only be resolved into HTTP request headers\"\n });\n } else if (\n !secretHeaderName ||\n secretHeaders.get(expression.key) !== secretHeaderName.toLowerCase()\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.${path}`,\n message: `Secret reference \"${expression.key}\" is not authorized for header \"${secretHeaderName ?? \"unknown\"}\"`\n });\n } else if (\n step.type !== AppWorkflowStepType.HTTP_REQUEST ||\n !secretOrigins.get(expression.key)?.has(new URL(step.url).origin)\n ) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${stepPath}.${path}`,\n message: `Secret reference \"${expression.key}\" is not authorized for this workflow origin`\n });\n }\n }\n }\n );\n });\n\n if (resultStepKeys.length === 0) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${basePath}.steps`,\n message: `Workflow for action \"${workflow.actionKey}\" must emit a result`\n });\n }\n\n stepOutputReferences.forEach(({ consumerStepKey, path, producerStepKey }) => {\n if (stepKeys.has(producerStepKey) && !hasGraphPath(graph, producerStepKey, consumerStepKey)) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path,\n message: `Step \"${consumerStepKey}\" may only read output from one of its dependencies`\n });\n }\n });\n\n resultStepKeys.forEach((stepKey) => {\n if ((graph.get(stepKey)?.size ?? 0) > 0) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path: `${basePath}.steps`,\n message: `Result step \"${stepKey}\" must be terminal`\n });\n }\n });\n\n if (hasCycle(graph)) {\n issues.push({\n code: AppCompilerIssueCode.WORKFLOW_CYCLE,\n path: `${basePath}.steps`,\n message: `Workflow for action \"${workflow.actionKey}\" contains a cycle`\n });\n }\n}\n\nfunction registerConditionTarget(\n targets: Map<string, string>,\n targetStepKey: string,\n conditionStepKey: string,\n path: string,\n issues: AppCompilerIssue[]\n): void {\n const existingCondition = targets.get(targetStepKey);\n\n if (existingCondition) {\n issues.push({\n code: AppCompilerIssueCode.INVALID_WORKFLOW,\n path,\n message: `Step \"${targetStepKey}\" is already controlled by condition \"${existingCondition}\"`\n });\n return;\n }\n\n targets.set(targetStepKey, conditionStepKey);\n}\n\nfunction addGraphEdge(graph: Map<string, Set<string>>, from: string, to: string): void {\n graph.get(from)?.add(to);\n}\n\ninterface StepExpressionEntry {\n expression: AppValueExpression;\n path: string;\n secretAllowed: boolean;\n secretHeaderName?: string;\n}\n\nfunction readStepExpressionEntries(\n step: AppWorkflowDefinition[\"steps\"][number]\n): StepExpressionEntry[] {\n switch (step.type) {\n case AppWorkflowStepType.HTTP_REQUEST:\n return [\n ...Object.entries(step.headers).map(([key, expression]) => ({\n expression,\n path: `headers.${key}`,\n secretAllowed: true,\n secretHeaderName: key\n })),\n ...Object.entries(step.query).map(([key, expression]) => ({\n expression,\n path: `query.${key}`,\n secretAllowed: false\n })),\n ...(step.body ? [{ expression: step.body, path: \"body\", secretAllowed: false }] : [])\n ];\n case AppWorkflowStepType.TRANSFORM:\n return Object.entries(step.mapping).map(([key, expression]) => ({\n expression,\n path: `mapping.${key}`,\n secretAllowed: false\n }));\n case AppWorkflowStepType.CONDITION:\n return [{ expression: step.condition, path: \"condition\", secretAllowed: false }];\n case AppWorkflowStepType.TEMPLATE:\n return Object.entries(step.variables).map(([key, expression]) => ({\n expression,\n path: `variables.${key}`,\n secretAllowed: false\n }));\n case AppWorkflowStepType.EMIT_ARTIFACT:\n return [{ expression: step.value, path: \"value\", secretAllowed: false }];\n case AppWorkflowStepType.EMIT_BUBBLE:\n return [{ expression: step.descriptor, path: \"descriptor\", secretAllowed: false }];\n case AppWorkflowStepType.EMIT_RESULT:\n return [{ expression: step.output, path: \"output\", secretAllowed: false }];\n }\n}\n\nfunction readRuntimeSecretRefs(definition: AppDefinition): Set<string> {\n if (definition.runtime.host !== AppRuntimeHost.DECLARATIVE) {\n return new Set();\n }\n\n if (definition.runtime.connection.type === AppConnectionType.API_KEY) {\n return new Set(definition.runtime.connection.fields.map((field) => field.secretRef));\n }\n\n if (definition.runtime.connection.type === AppConnectionType.OAUTH2) {\n return new Set();\n }\n\n return new Set();\n}\n\nfunction readRuntimeSecretHeaders(definition: AppDefinition): Map<string, string> {\n if (\n definition.runtime.host !== AppRuntimeHost.DECLARATIVE ||\n definition.runtime.connection.type !== AppConnectionType.API_KEY\n ) {\n return new Map();\n }\n\n return new Map(\n definition.runtime.connection.fields.map((field) => [\n field.secretRef,\n field.headerName.toLowerCase()\n ])\n );\n}\n\nfunction readRuntimeSecretOrigins(definition: AppDefinition): Map<string, ReadonlySet<string>> {\n if (\n definition.runtime.host !== AppRuntimeHost.DECLARATIVE ||\n definition.runtime.connection.type !== AppConnectionType.API_KEY\n ) {\n return new Map();\n }\n\n return new Map(\n definition.runtime.connection.fields.map((field) => [\n field.secretRef,\n new Set(field.allowedOrigins.map((origin) => new URL(origin).origin))\n ])\n );\n}\n\nfunction hasGraphPath(graph: Map<string, Set<string>>, from: string, to: string): boolean {\n const queue = [from];\n const visited = new Set<string>();\n\n while (queue.length > 0) {\n const current = queue.shift();\n\n if (!current || visited.has(current)) {\n continue;\n }\n\n visited.add(current);\n\n for (const next of graph.get(current) ?? []) {\n if (next === to) {\n return true;\n }\n\n queue.push(next);\n }\n }\n\n return false;\n}\n\nfunction hasCycle(graph: Map<string, Set<string>>): boolean {\n const visiting = new Set<string>();\n const visited = new Set<string>();\n\n const visit = (node: string): boolean => {\n if (visiting.has(node)) {\n return true;\n }\n\n if (visited.has(node)) {\n return false;\n }\n\n visiting.add(node);\n\n for (const next of graph.get(node) ?? []) {\n if (graph.has(next) && visit(next)) {\n return true;\n }\n }\n\n visiting.delete(node);\n visited.add(node);\n return false;\n };\n\n return [...graph.keys()].some(visit);\n}\n\nfunction validateDefaultLocales(definition: AppDefinition, issues: AppCompilerIssue[]): void {\n const fields = collectLocalizedFields(definition);\n\n fields.forEach(({ path, value }) => {\n if (!value[definition.defaultLocale]) {\n issues.push({\n code: AppCompilerIssueCode.MISSING_DEFAULT_LOCALE,\n path,\n message: `Copy must include the default locale \"${definition.defaultLocale}\"`\n });\n }\n });\n\n const exampleCollections: Array<{ path: string; value: Record<string, string[]> }> = [\n ...definition.intents.flatMap((intent, index) => [\n { path: `intents.${index}.examples`, value: intent.examples },\n { path: `intents.${index}.negativeExamples`, value: intent.negativeExamples }\n ]),\n { path: \"customRules.examples\", value: definition.customRules.examples },\n { path: \"customRules.unsupportedExamples\", value: definition.customRules.unsupportedExamples }\n ];\n\n exampleCollections.forEach(({ path, value }) => {\n if (Object.keys(value).length > 0 && !value[definition.defaultLocale]) {\n issues.push({\n code: AppCompilerIssueCode.MISSING_DEFAULT_LOCALE,\n path,\n message: `Examples must include the default locale \"${definition.defaultLocale}\"`\n });\n }\n });\n}\n\nfunction collectLocalizedFields(\n definition: AppDefinition\n): Array<{ path: string; value: LocalizedText }> {\n const fields: Array<{ path: string; value: LocalizedText }> = [\n { path: \"app.name\", value: definition.app.name },\n { path: \"app.shortDescription\", value: definition.app.shortDescription },\n { path: \"app.longDescription\", value: definition.app.longDescription },\n { path: \"connection.title\", value: definition.connection.title },\n { path: \"connection.description\", value: definition.connection.description }\n ];\n\n definition.connection.permissions.forEach((permission, index) => {\n fields.push(\n { path: `connection.permissions.${index}.label`, value: permission.label },\n { path: `connection.permissions.${index}.description`, value: permission.description }\n );\n });\n\n definition.capabilities.forEach((capability, index) => {\n fields.push(\n { path: `capabilities.${index}.label`, value: capability.label },\n { path: `capabilities.${index}.description`, value: capability.description }\n );\n });\n\n definition.actions.forEach((action, index) => {\n fields.push(\n { path: `actions.${index}.label`, value: action.label },\n { path: `actions.${index}.description`, value: action.description }\n );\n });\n\n definition.intents.forEach((intent, index) => {\n fields.push(\n { path: `intents.${index}.title`, value: intent.title },\n { path: `intents.${index}.description`, value: intent.description },\n { path: `intents.${index}.responseInstructions`, value: intent.responseInstructions },\n { path: `intents.${index}.missingFieldsQuestion`, value: intent.missingFieldsQuestion }\n );\n\n Object.entries(intent.fieldQuestions).forEach(([field, value]) => {\n fields.push({ path: `intents.${index}.fieldQuestions.${field}`, value });\n });\n });\n\n definition.knowledge.forEach((item, index) => {\n fields.push({ path: `knowledge.${index}.label`, value: item.label });\n\n if (item.description) {\n fields.push({ path: `knowledge.${index}.description`, value: item.description });\n }\n });\n\n definition.outcomes.forEach((outcome, index) => {\n fields.push(\n { path: `outcomes.${index}.title`, value: outcome.title },\n { path: `outcomes.${index}.description`, value: outcome.description }\n );\n\n outcome.nextActions.forEach((action, actionIndex) => {\n fields.push({\n path: `outcomes.${index}.nextActions.${actionIndex}.label`,\n value: action.label\n });\n });\n });\n\n definition.artifactContracts.forEach((artifact, index) => {\n fields.push({\n path: `artifactContracts.${index}.description`,\n value: artifact.description\n });\n });\n\n definition.publicActions.forEach((action, index) => {\n fields.push(\n { path: `publicActions.${index}.label`, value: action.label },\n { path: `publicActions.${index}.description`, value: action.description }\n );\n });\n\n collectFieldCopy(definition.settings.fields, \"settings.fields\", fields);\n\n definition.policies.rules.forEach((rule, index) => {\n fields.push(\n { path: `policies.rules.${index}.label`, value: rule.label },\n { path: `policies.rules.${index}.description`, value: rule.description }\n );\n collectFieldCopy(rule.conditionFields, `policies.rules.${index}.conditionFields`, fields);\n rule.behaviors.forEach((behavior, behaviorIndex) => {\n fields.push({\n path: `policies.rules.${index}.behaviors.${behaviorIndex}.label`,\n value: behavior.label\n });\n });\n });\n\n definition.context.copy.receives.forEach((item, index) => {\n fields.push(\n { path: `context.copy.receives.${index}.label`, value: item.label },\n { path: `context.copy.receives.${index}.description`, value: item.description }\n );\n });\n definition.context.copy.doesNotReceive.forEach((item, index) => {\n fields.push(\n { path: `context.copy.doesNotReceive.${index}.label`, value: item.label },\n {\n path: `context.copy.doesNotReceive.${index}.description`,\n value: item.description\n }\n );\n });\n\n if (\n definition.runtime.host === AppRuntimeHost.DECLARATIVE &&\n definition.runtime.connection.type === AppConnectionType.API_KEY\n ) {\n definition.runtime.connection.fields.forEach((field, index) => {\n fields.push(\n { path: `runtime.connection.fields.${index}.label`, value: field.label },\n { path: `runtime.connection.fields.${index}.description`, value: field.description }\n );\n });\n }\n\n return fields;\n}\n\nfunction collectFieldCopy(\n source: AppDefinition[\"settings\"][\"fields\"],\n path: string,\n target: Array<{ path: string; value: LocalizedText }>\n): void {\n source.forEach((field, index) => {\n target.push({ path: `${path}.${index}.label`, value: field.label });\n\n if (field.description) {\n target.push({ path: `${path}.${index}.description`, value: field.description });\n }\n\n if (field.help) {\n target.push({ path: `${path}.${index}.help`, value: field.help });\n }\n\n field.options?.forEach((option, optionIndex) => {\n target.push({ path: `${path}.${index}.options.${optionIndex}.label`, value: option.label });\n });\n });\n}\n\nfunction buildManifest(\n definition: AppDefinition,\n copy: LocaleWriter,\n binding: AppCompilationBinding\n): unknown {\n const appId = binding.appId;\n const namespaced = (key: string) => `${appId}.${key}`;\n const copyKey = (path: string, value: LocalizedText) => copy.add(`app.${appId}.${path}`, value);\n const compileField = (field: AppDefinition[\"settings\"][\"fields\"][number], path: string) => ({\n key: field.key,\n type: field.type,\n labelKey: copyKey(`${path}.${field.key}.label`, field.label),\n ...(field.description\n ? { descriptionKey: copyKey(`${path}.${field.key}.description`, field.description) }\n : {}),\n ...(field.help ? { helpKey: copyKey(`${path}.${field.key}.help`, field.help) } : {}),\n required: field.required,\n ...(field.default === undefined ? {} : { default: field.default }),\n ...(field.validation ? { validation: field.validation } : {}),\n ...(field.options\n ? {\n options: field.options.map((option, index) => ({\n value: option.value,\n labelKey: copyKey(`${path}.${field.key}.options.${index}`, option.label)\n }))\n }\n : {}),\n ...(field.optionsSource\n ? {\n optionsSource: {\n type: field.optionsSource.type,\n actionId: namespaced(field.optionsSource.actionKey),\n cacheTtlSeconds: field.optionsSource.cacheTtlSeconds,\n outputPath: field.optionsSource.outputPath,\n ...(field.optionsSource.valueField\n ? { valueField: field.optionsSource.valueField }\n : {}),\n ...(field.optionsSource.labelField\n ? { labelField: field.optionsSource.labelField }\n : {})\n }\n }\n : {})\n });\n\n const runtime =\n definition.runtime.host === AppRuntimeHost.REMOTE\n ? definition.runtime\n : {\n host: AppRuntimeHost.DECLARATIVE,\n connection:\n definition.runtime.connection.type === AppConnectionType.API_KEY\n ? {\n type: AppConnectionType.API_KEY,\n fields: definition.runtime.connection.fields.map((field) => ({\n key: field.key,\n allowedOrigins: field.allowedOrigins.map((origin) => new URL(origin).origin),\n headerName: field.headerName.toLowerCase(),\n labelKey: copyKey(`runtime.connection.${field.key}.label`, field.label),\n descriptionKey: copyKey(\n `runtime.connection.${field.key}.description`,\n field.description\n ),\n secretRef: field.secretRef\n }))\n }\n : definition.runtime.connection.type === AppConnectionType.OAUTH2\n ? {\n ...definition.runtime.connection,\n resourceOrigins: definition.runtime.connection.resourceOrigins.map(\n (origin) => new URL(origin).origin\n )\n }\n : definition.runtime.connection,\n workflows: definition.runtime.workflows.map((workflow) => ({\n actionId: namespaced(workflow.actionKey),\n steps: workflow.steps.map((step) => {\n if (step.type === AppWorkflowStepType.EMIT_RESULT) {\n return {\n key: step.key,\n dependsOn: step.dependsOn,\n type: step.type,\n outcomeId: namespaced(step.outcomeKey),\n output: step.output\n };\n }\n\n if (step.type === AppWorkflowStepType.EMIT_ARTIFACT) {\n return {\n key: step.key,\n dependsOn: step.dependsOn,\n type: step.type,\n artifactId: namespaced(step.artifactKey),\n schemaVersion: step.schemaVersion,\n value: step.value\n };\n }\n\n return step;\n })\n }))\n };\n\n return {\n manifestVersion: appManifestVersion,\n app: {\n id: appId,\n slug: binding.slug,\n version: binding.releaseVersion,\n nameKey: copyKey(\"metadata.name\", definition.app.name),\n shortDescriptionKey: copyKey(\"metadata.short-description\", definition.app.shortDescription),\n longDescriptionKey: copyKey(\"metadata.long-description\", definition.app.longDescription),\n categoryId: definition.app.categoryId,\n ...(definition.app.icon ? { icon: definition.app.icon } : {}),\n ...(definition.app.providerName ? { providerName: definition.app.providerName } : {}),\n official: binding.appOfficial,\n developer: binding.developer,\n publication: definition.publication\n },\n connection: {\n type: definition.connection.type,\n required: definition.connection.required,\n titleKey: copyKey(\"connection.title\", definition.connection.title),\n descriptionKey: copyKey(\"connection.description\", definition.connection.description),\n permissions: definition.connection.permissions.map((permission) => ({\n key: permission.key,\n labelKey: copyKey(`connection.permissions.${permission.key}.label`, permission.label),\n descriptionKey: copyKey(\n `connection.permissions.${permission.key}.description`,\n permission.description\n ),\n sensitivity: permission.sensitivity\n }))\n },\n intents: definition.intents.map((intent) => ({\n id: namespaced(intent.key),\n mode: intent.mode,\n titleKey: copyKey(`intents.${intent.key}.title`, intent.title),\n descriptionKey: copyKey(`intents.${intent.key}.description`, intent.description),\n responseInstructionsKey: copyKey(\n `intents.${intent.key}.response-instructions`,\n intent.responseInstructions\n ),\n examples: intent.examples,\n negativeExamples: intent.negativeExamples,\n entityHints: intent.entityHints,\n inputSchema: intent.inputSchema,\n requiredFields: intent.requiredFields,\n optionalFields: intent.optionalFields,\n knowledgeIds: intent.knowledgeKeys.map(namespaced),\n capabilityIds: intent.capabilityKeys.map(namespaced),\n actionIds: intent.actionKeys.map(namespaced),\n riskLevel: intent.riskLevel,\n allowedOrigins: intent.allowedOrigins,\n clarificationMode: intent.clarificationMode,\n missingFieldsQuestionKey: copyKey(\n `intents.${intent.key}.clarification.missing-fields`,\n intent.missingFieldsQuestion\n ),\n fieldQuestionKeys: Object.fromEntries(\n Object.entries(intent.fieldQuestions).map(([field, value]) => [\n field,\n copyKey(`intents.${intent.key}.clarification.${field}`, value)\n ])\n ),\n requesterReview: intent.requesterReview\n })),\n capabilities: definition.capabilities.map((capability) => ({\n id: namespaced(capability.key),\n labelKey: copyKey(`capabilities.${capability.key}.label`, capability.label),\n descriptionKey: copyKey(`capabilities.${capability.key}.description`, capability.description),\n inputSchema: capability.inputSchema,\n outputSchema: capability.outputSchema,\n riskLevel: capability.riskLevel,\n approval: capability.approval,\n actionIds: capability.actionKeys.map(namespaced)\n })),\n actions: definition.actions.map((action) => ({\n id: namespaced(action.key),\n capabilityId: namespaced(action.capabilityKey),\n labelKey: copyKey(`actions.${action.key}.label`, action.label),\n descriptionKey: copyKey(`actions.${action.key}.description`, action.description),\n composable: action.composable,\n context: action.context,\n dataAccessLevel: action.dataAccessLevel,\n inputSchema: action.inputSchema,\n outputSchema: action.outputSchema,\n inputArtifacts: action.inputArtifacts.map((artifact) => ({\n artifactId: namespaced(artifact.artifactKey),\n schemaVersion: artifact.schemaVersion,\n required: artifact.required,\n cardinality: artifact.cardinality\n })),\n outputArtifacts: action.outputArtifacts.map((artifact) => ({\n artifactId: namespaced(artifact.artifactKey),\n schemaVersion: artifact.schemaVersion,\n required: artifact.required,\n cardinality: artifact.cardinality\n })),\n riskLevel: action.riskLevel,\n sideEffect: action.sideEffect,\n approval: action.approval,\n timeoutMs: action.timeoutMs,\n idempotency: action.idempotency,\n retry: action.retry,\n outcomeIds: action.outcomeKeys.map(namespaced)\n })),\n triggers: definition.triggers.map((trigger) => ({\n id: namespaced(trigger.key),\n event: namespaced(trigger.eventKey),\n capabilityId: namespaced(trigger.capabilityKey),\n riskLevel: trigger.riskLevel,\n inputSchema: trigger.inputSchema\n })),\n resources: definition.resources.map(namespaced),\n knowledge: definition.knowledge.map((item) => ({\n id: namespaced(item.key),\n labelKey: copyKey(`knowledge.${item.key}.label`, item.label),\n ...(item.description\n ? { descriptionKey: copyKey(`knowledge.${item.key}.description`, item.description) }\n : {}),\n audience: item.audience,\n source: item.source\n })),\n artifactContracts: definition.artifactContracts.map((artifact) => ({\n audiences: artifact.audiences,\n id: namespaced(artifact.key),\n schemaVersion: artifact.schemaVersion,\n schema: artifact.schema,\n descriptionKey: copyKey(`artifacts.${artifact.key}.description`, artifact.description),\n sensitivityLevel: artifact.sensitivityLevel\n })),\n context: {\n defaultScopes: definition.context.defaultScopes,\n optionalScopes: definition.context.optionalScopes,\n prohibitedScopes: definition.context.prohibitedScopes,\n copy: {\n receives: definition.context.copy.receives.map((item) => ({\n scope: item.scope,\n labelKey: copyKey(`context.receives.${item.scope}.label`, item.label),\n descriptionKey: copyKey(`context.receives.${item.scope}.description`, item.description)\n })),\n doesNotReceive: definition.context.copy.doesNotReceive.map((item) => ({\n scope: item.scope,\n labelKey: copyKey(`context.does-not-receive.${item.scope}.label`, item.label),\n descriptionKey: copyKey(\n `context.does-not-receive.${item.scope}.description`,\n item.description\n )\n }))\n }\n },\n settings: {\n schemaVersion: appSettingsSchemaVersion,\n fields: definition.settings.fields.map((field) => compileField(field, \"settings\"))\n },\n policies: {\n schemaVersion: appPoliciesSchemaVersion,\n rules: definition.policies.rules.map((rule) => ({\n key: rule.key,\n labelKey: copyKey(`policies.${rule.key}.label`, rule.label),\n descriptionKey: copyKey(`policies.${rule.key}.description`, rule.description),\n conditionFields: rule.conditionFields.map((field) =>\n compileField(field, `policies.${rule.key}.conditions`)\n ),\n behaviors: rule.behaviors.map((behavior) => ({\n effect: behavior.effect,\n value: behavior.value,\n labelKey: copyKey(`policies.${rule.key}.behaviors.${behavior.value}`, behavior.label)\n })),\n defaultBehavior: rule.defaultBehavior\n }))\n },\n customRules: definition.customRules,\n publicActions: definition.publicActions.map((action) => ({\n id: namespaced(action.key),\n intentId: namespaced(action.intentKey),\n labelKey: copyKey(`public-actions.${action.key}.label`, action.label),\n descriptionKey: copyKey(`public-actions.${action.key}.description`, action.description),\n capabilityIds: action.capabilityKeys.map(namespaced),\n allowedOrigins: action.allowedOrigins,\n riskLevel: action.riskLevel\n })),\n outcomes: definition.outcomes.map((outcome) => ({\n id: namespaced(outcome.key),\n actionId: namespaced(outcome.actionKey),\n status: outcome.status,\n titleKey: copyKey(`outcomes.${outcome.key}.title`, outcome.title),\n descriptionKey: copyKey(`outcomes.${outcome.key}.description`, outcome.description),\n schema: outcome.schema,\n nextActions: outcome.nextActions.map((action) => ({\n ...(action.artifactKey ? { artifactId: namespaced(action.artifactKey) } : {}),\n id: namespaced(action.key),\n labelKey: copyKey(`outcomes.${outcome.key}.next-actions.${action.key}`, action.label)\n }))\n })),\n runtime,\n locales: {\n defaultLocale: definition.defaultLocale,\n messages: copy.messages\n }\n };\n}\n\nclass LocaleWriter {\n readonly messages: Record<string, Record<string, string>> = {};\n\n constructor(defaultLocale: string) {\n this.messages[defaultLocale] = {};\n }\n\n add(key: string, values: LocalizedText): string {\n Object.entries(values).forEach(([locale, value]) => {\n const messages = this.messages[locale] ?? {};\n messages[key] = value;\n this.messages[locale] = messages;\n });\n\n return key;\n }\n}\n\nfunction validateUnique(issues: AppCompilerIssue[], path: string, values: string[]): void {\n const seen = new Set<string>();\n\n values.forEach((value, index) => {\n if (seen.has(value)) {\n issues.push({\n code: AppCompilerIssueCode.DUPLICATE_ID,\n path: `${path}.${index}`,\n message: `Duplicate identifier \"${value}\"`\n });\n }\n\n seen.add(value);\n });\n}\n\nfunction validateReference(\n issues: AppCompilerIssue[],\n available: Set<string>,\n path: string,\n value: string,\n kind: string\n): void {\n if (!available.has(value)) {\n issues.push({\n code: AppCompilerIssueCode.UNKNOWN_REFERENCE,\n path,\n message: `Unknown ${kind} \"${value}\"`\n });\n }\n}\n\nfunction validateFieldReferences(\n fields: AppDefinition[\"settings\"][\"fields\"],\n path: string,\n actions: Set<string>,\n issues: AppCompilerIssue[]\n): void {\n validateUnique(\n issues,\n path,\n fields.map((field) => field.key)\n );\n\n fields.forEach((field, index) => {\n if (field.optionsSource) {\n validateReference(\n issues,\n actions,\n `${path}.${index}.optionsSource.actionKey`,\n field.optionsSource.actionKey,\n \"action\"\n );\n }\n });\n}\n\nfunction readSchemaProperties(schema: Record<string, unknown>): Set<string> {\n const properties = schema.properties;\n\n if (!properties || typeof properties !== \"object\" || Array.isArray(properties)) {\n return new Set();\n }\n\n return new Set(Object.keys(properties));\n}\n\nfunction readSchemaRequiredFields(schema: Record<string, unknown>): Set<string> {\n return new Set(\n Array.isArray(schema.required)\n ? schema.required.filter((field): field is string => typeof field === \"string\")\n : []\n );\n}\n\nfunction formatPath(path: PropertyKey[]): string {\n return path.length > 0 ? path.map(String).join(\".\") : \"$\";\n}\n\nexport function formatAppCompilerIssues(issues: AppCompilerIssue[]): string {\n return issues.map((issue) => `${issue.path}: ${issue.message}`).join(\"\\n\");\n}\n","import { AppCompilationError, validateAppDefinition } from \"@vekil/app-compiler\";\nimport {\n AppRuntimeHost,\n appDefinitionSchema,\n createAppDefinitionJsonSchema,\n stringifyCanonicalJson,\n type AppDefinition\n} from \"@vekil/app-protocol\";\n\nexport enum AppConformanceCheckId {\n DEFINITION = \"DEFINITION\",\n CANONICAL_JSON = \"CANONICAL_JSON\",\n REMOTE_RUNTIME = \"REMOTE_RUNTIME\"\n}\n\nexport enum AppConformanceCheckStatus {\n FAILED = \"FAILED\",\n PASSED = \"PASSED\",\n SKIPPED = \"SKIPPED\"\n}\n\nexport interface AppConformanceCheck {\n id: AppConformanceCheckId;\n status: AppConformanceCheckStatus;\n}\n\nexport interface AppConformanceIssue {\n code: string;\n message: string;\n path: string;\n}\n\nexport interface AppConformanceReport {\n checks: AppConformanceCheck[];\n issues: AppConformanceIssue[];\n ok: boolean;\n}\n\nexport interface AppBuildArtifacts {\n definition: AppDefinition;\n definitionJson: string;\n definitionSchema: Record<string, unknown>;\n}\n\nexport function runAppConformance(\n input: unknown,\n { requireRemote = false }: { requireRemote?: boolean } = {}\n): AppConformanceReport {\n const validation = validateAppDefinition(input);\n\n if (!validation.ok) {\n return {\n checks: [\n failed(AppConformanceCheckId.DEFINITION),\n skipped(AppConformanceCheckId.CANONICAL_JSON),\n skipped(AppConformanceCheckId.REMOTE_RUNTIME)\n ],\n issues: validation.issues,\n ok: false\n };\n }\n\n const definition = appDefinitionSchema.parse(input);\n const issues: AppConformanceIssue[] = [];\n const canonicalDefinition = stringifyCanonicalJson(definition);\n const canonicalRoundTrip = stringifyCanonicalJson(JSON.parse(canonicalDefinition));\n\n if (canonicalDefinition !== canonicalRoundTrip) {\n issues.push({\n code: \"CANONICAL_JSON_UNSTABLE\",\n message: \"Definition serialization is not deterministic.\",\n path: \"$\"\n });\n }\n\n if (requireRemote && definition.runtime.host !== AppRuntimeHost.REMOTE) {\n issues.push({\n code: \"REMOTE_RUNTIME_REQUIRED\",\n message: \"This command requires a REMOTE App runtime.\",\n path: \"runtime.host\"\n });\n }\n\n return {\n checks: [\n passed(AppConformanceCheckId.DEFINITION),\n issues.some((issue) => issue.code === \"CANONICAL_JSON_UNSTABLE\")\n ? failed(AppConformanceCheckId.CANONICAL_JSON)\n : passed(AppConformanceCheckId.CANONICAL_JSON),\n requireRemote\n ? issues.some((issue) => issue.code === \"REMOTE_RUNTIME_REQUIRED\")\n ? failed(AppConformanceCheckId.REMOTE_RUNTIME)\n : passed(AppConformanceCheckId.REMOTE_RUNTIME)\n : skipped(AppConformanceCheckId.REMOTE_RUNTIME)\n ],\n issues,\n ok: issues.length === 0\n };\n}\n\nexport function buildAppArtifacts(input: unknown): AppBuildArtifacts {\n const validation = validateAppDefinition(input);\n\n if (!validation.ok) {\n throw new AppCompilationError(validation.issues);\n }\n\n const definition = appDefinitionSchema.parse(input);\n return {\n definition,\n definitionJson: `${stringifyCanonicalJson(definition)}\\n`,\n definitionSchema: createAppDefinitionJsonSchema()\n };\n}\n\nfunction passed(id: AppConformanceCheckId): AppConformanceCheck {\n return { id, status: AppConformanceCheckStatus.PASSED };\n}\n\nfunction failed(id: AppConformanceCheckId): AppConformanceCheck {\n return { id, status: AppConformanceCheckStatus.FAILED };\n}\n\nfunction skipped(id: AppConformanceCheckId): AppConformanceCheck {\n return { id, status: AppConformanceCheckStatus.SKIPPED };\n}\n","import {\n createHash,\n createPrivateKey,\n createPublicKey,\n sign as nodeSign,\n verify as nodeVerify,\n type webcrypto\n} from \"node:crypto\";\nimport {\n AppSignatureAlgorithm,\n appDetachedJwsSchema,\n appJwsProtectedHeaderSchema,\n appJwsType,\n appProtocolSignatureHeaders,\n appPublicSigningJwkSchema,\n appSignatureClaimsSchema,\n stringifyCanonicalJson,\n type AppJwsProtectedHeader,\n type AppPublicSigningJwk,\n type AppSignatureClaims\n} from \"@vekil/app-protocol\";\n\nexport interface AppPrivateSigningJwk extends webcrypto.JsonWebKey {\n alg: typeof AppSignatureAlgorithm.ED25519;\n crv: \"Ed25519\";\n d: string;\n kid: string;\n kty: \"OKP\";\n use: \"sig\";\n x: string;\n}\n\nexport interface AppProtocolSigningIdentity {\n issuer: string;\n keyId: string;\n privateKeyJwk: AppPrivateSigningJwk;\n}\n\nexport interface AppSignatureHeaderValues {\n expiresAt: string;\n keyId: string;\n nonce: string;\n signature: string;\n timestamp: string;\n}\n\nexport const defaultAppSignatureClockSkewMs = 5_000;\n\ntype AppSignatureHeaderSource =\n Headers | Record<string, string | string[] | undefined> | { get(name: string): string | null };\n\nexport function hashAppProtocolBody(body: string): string {\n return createHash(\"sha256\").update(body).digest(\"hex\");\n}\n\nexport function readAppProtocolSigningIdentity({\n issuer,\n keyId,\n privateJwkBase64url\n}: {\n issuer: string;\n keyId?: string;\n privateJwkBase64url?: string;\n}): AppProtocolSigningIdentity | null {\n if (!keyId && !privateJwkBase64url) {\n return null;\n }\n\n if (!keyId || !privateJwkBase64url) {\n throw new Error(\"app_runtime_signing_configuration_incomplete\");\n }\n\n let value: unknown;\n\n try {\n value = JSON.parse(Buffer.from(privateJwkBase64url, \"base64url\").toString(\"utf8\"));\n } catch {\n throw new Error(\"app_runtime_signing_private_jwk_invalid\");\n }\n\n if (!isPrivateSigningJwk(value) || value.kid !== keyId) {\n throw new Error(\"app_runtime_signing_private_jwk_invalid\");\n }\n\n return {\n issuer,\n keyId,\n privateKeyJwk: value\n };\n}\n\nexport function deriveAppPublicSigningJwk(\n identity: AppProtocolSigningIdentity\n): AppPublicSigningJwk {\n return appPublicSigningJwkSchema.parse({\n alg: AppSignatureAlgorithm.ED25519,\n crv: \"Ed25519\",\n kid: identity.keyId,\n kty: \"OKP\",\n use: \"sig\",\n x: identity.privateKeyJwk.x\n });\n}\n\nexport function createAppDetachedJws({\n claims: claimsInput,\n privateKeyJwk\n}: {\n claims: AppSignatureClaims;\n privateKeyJwk: AppPrivateSigningJwk;\n}): string {\n const claims = appSignatureClaimsSchema.parse(claimsInput);\n\n if (privateKeyJwk.kid !== claims.keyId) {\n throw new Error(\"app_signature_key_id_mismatch\");\n }\n\n const protectedHeader = appJwsProtectedHeaderSchema.parse({\n alg: AppSignatureAlgorithm.ED25519,\n b64: false,\n crit: [\"b64\"],\n kid: claims.keyId,\n typ: appJwsType\n });\n const encodedHeader = encodeJson(protectedHeader);\n const signingInput = createSigningInput(encodedHeader, claims);\n const key = createPrivateKey({\n format: \"jwk\",\n key: privateKeyJwk\n });\n const signature = nodeSign(null, Buffer.from(signingInput), key).toString(\"base64url\");\n\n return appDetachedJwsSchema.parse(`${encodedHeader}..${signature}`);\n}\n\nexport function verifyAppDetachedJws({\n claims: claimsInput,\n publicKeyJwk: publicKeyInput,\n signature\n}: {\n claims: AppSignatureClaims;\n publicKeyJwk: AppPublicSigningJwk;\n signature: string;\n}): boolean {\n const claims = appSignatureClaimsSchema.parse(claimsInput);\n const publicKeyJwk = appPublicSigningJwkSchema.parse(publicKeyInput);\n const compactJws = appDetachedJwsSchema.parse(signature);\n const [encodedHeader, encodedPayload, encodedSignature] = compactJws.split(\".\");\n\n if (!encodedHeader || encodedPayload !== \"\" || !encodedSignature) {\n return false;\n }\n\n const protectedHeader = readProtectedHeader(encodedHeader);\n\n if (\n !protectedHeader ||\n protectedHeader.kid !== claims.keyId ||\n publicKeyJwk.kid !== claims.keyId\n ) {\n return false;\n }\n\n try {\n const key = createPublicKey({\n format: \"jwk\",\n key: publicKeyJwk\n });\n\n return nodeVerify(\n null,\n Buffer.from(createSigningInput(encodedHeader, claims)),\n key,\n Buffer.from(encodedSignature, \"base64url\")\n );\n } catch {\n return false;\n }\n}\n\nexport function createAppSignatureHeaders({\n claims,\n signature\n}: {\n claims: AppSignatureClaims;\n signature: string;\n}): Record<string, string> {\n return {\n [appProtocolSignatureHeaders.expiresAt]: claims.expiresAt,\n [appProtocolSignatureHeaders.keyId]: claims.keyId,\n [appProtocolSignatureHeaders.nonce]: claims.nonce,\n [appProtocolSignatureHeaders.signature]: signature,\n [appProtocolSignatureHeaders.timestamp]: claims.issuedAt\n };\n}\n\nexport function readAppSignatureHeaders(\n source: AppSignatureHeaderSource\n): AppSignatureHeaderValues | null {\n const expiresAt = readHeader(source, appProtocolSignatureHeaders.expiresAt);\n const keyId = readHeader(source, appProtocolSignatureHeaders.keyId);\n const nonce = readHeader(source, appProtocolSignatureHeaders.nonce);\n const signature = readHeader(source, appProtocolSignatureHeaders.signature);\n const timestamp = readHeader(source, appProtocolSignatureHeaders.timestamp);\n\n if (!expiresAt || !keyId || !nonce || !signature || !timestamp) {\n return null;\n }\n\n return {\n expiresAt,\n keyId,\n nonce,\n signature,\n timestamp\n };\n}\n\nexport function validateAppSignatureWindow({\n claims: claimsInput,\n maxClockSkewMs = defaultAppSignatureClockSkewMs,\n maxLifetimeMs = 60_000,\n now = new Date()\n}: {\n claims: AppSignatureClaims;\n maxClockSkewMs?: number;\n maxLifetimeMs?: number;\n now?: Date;\n}): \"expired\" | \"issued_in_future\" | \"lifetime_exceeded\" | null {\n const claims = appSignatureClaimsSchema.parse(claimsInput);\n const issuedAt = Date.parse(claims.issuedAt);\n const expiresAt = Date.parse(claims.expiresAt);\n const nowMs = now.getTime();\n\n if (issuedAt > nowMs + maxClockSkewMs) {\n return \"issued_in_future\";\n }\n\n if (expiresAt < nowMs - maxClockSkewMs) {\n return \"expired\";\n }\n\n if (expiresAt <= issuedAt || expiresAt - issuedAt > maxLifetimeMs) {\n return \"lifetime_exceeded\";\n }\n\n return null;\n}\n\nfunction createSigningInput(encodedHeader: string, claims: AppSignatureClaims): string {\n return `${encodedHeader}.${stringifyCanonicalJson(claims)}`;\n}\n\nfunction encodeJson(value: unknown): string {\n return Buffer.from(stringifyCanonicalJson(value)).toString(\"base64url\");\n}\n\nfunction readProtectedHeader(encodedHeader: string): AppJwsProtectedHeader | null {\n try {\n return appJwsProtectedHeaderSchema.parse(\n JSON.parse(Buffer.from(encodedHeader, \"base64url\").toString(\"utf8\"))\n );\n } catch {\n return null;\n }\n}\n\nfunction readHeader(source: AppSignatureHeaderSource, name: string): string | null {\n if (\"get\" in source && typeof source.get === \"function\") {\n return source.get(name);\n }\n\n const record = source as Record<string, string | string[] | undefined>;\n const value = record[name] ?? record[name.toLowerCase()];\n\n if (Array.isArray(value)) {\n return value[0] ?? null;\n }\n\n return value ?? null;\n}\n\nfunction isPrivateSigningJwk(value: unknown): value is AppPrivateSigningJwk {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return false;\n }\n\n const key = value as Record<string, unknown>;\n\n return (\n key.alg === AppSignatureAlgorithm.ED25519 &&\n key.crv === \"Ed25519\" &&\n typeof key.d === \"string\" &&\n key.d.length >= 40 &&\n typeof key.kid === \"string\" &&\n key.kid.length > 0 &&\n key.kty === \"OKP\" &&\n key.use === \"sig\" &&\n typeof key.x === \"string\" &&\n key.x.length >= 40\n );\n}\n","import { lookup } from \"node:dns/promises\";\nimport { BlockList, isIP } from \"node:net\";\nimport { AppRuntimeErrorCode } from \"@vekil/app-protocol\";\nimport { DeclarativeRuntimeError } from \"./errors\";\nimport {\n DeclarativeEgressNetworkClass,\n type DeclarativeEgressAddress,\n type DeclarativeEgressAuthorization,\n type DeclarativeRuntimeEgressPolicy\n} from \"./types\";\n\nexport type DeclarativeDnsResolver = (hostname: string) => Promise<readonly string[]>;\n\nexport interface PublicEgressPolicyOptions {\n allowLocalhost?: boolean;\n allowedOrigins: readonly string[];\n resolveDns?: DeclarativeDnsResolver;\n}\n\nconst maximumResolvedAddresses = 32;\n\nexport class PublicDeclarativeEgressPolicy implements DeclarativeRuntimeEgressPolicy {\n private readonly allowLocalhost: boolean;\n private readonly allowedOrigins: ReadonlySet<string>;\n private readonly resolveDns: DeclarativeDnsResolver;\n\n constructor(options: PublicEgressPolicyOptions) {\n this.allowLocalhost = options.allowLocalhost ?? false;\n this.allowedOrigins = new Set(options.allowedOrigins.map(normalizeOrigin));\n this.resolveDns = options.resolveDns ?? resolvePublicDns;\n }\n\n async assertAllowed(url: URL): Promise<DeclarativeEgressAuthorization> {\n if (!this.allowedOrigins.has(url.origin)) {\n throw policyRejected(\"The workflow destination is not approved for this App version.\");\n }\n\n if (url.username || url.password || url.hash) {\n throw policyRejected(\"Workflow destinations cannot contain credentials or fragments.\");\n }\n\n const hostname = normalizeHostname(url.hostname);\n const localhost = isLocalHostname(hostname);\n\n if (url.protocol !== \"https:\" && !(this.allowLocalhost && localhost)) {\n throw policyRejected(\"Workflow requests must use HTTPS.\");\n }\n\n if (localhost) {\n if (!this.allowLocalhost) {\n throw policyRejected(\"Local network destinations are not allowed.\");\n }\n\n return authorization({\n addresses: hostname === \"::1\" ? [\"::1\"] : [\"127.0.0.1\"],\n hostname,\n networkClass: DeclarativeEgressNetworkClass.LOOPBACK_DEVELOPMENT,\n origin: url.origin\n });\n }\n\n if (hasPrivateHostnameSuffix(hostname)) {\n throw policyRejected(\"Private network destinations are not allowed.\");\n }\n\n if (isIP(hostname) > 0) {\n if (!isDeclarativePublicAddress(hostname)) {\n throw policyRejected(\"Private or reserved network addresses are not allowed.\");\n }\n\n return authorization({\n addresses: [hostname],\n hostname,\n networkClass: DeclarativeEgressNetworkClass.PUBLIC,\n origin: url.origin\n });\n }\n\n let addresses: readonly string[];\n\n try {\n addresses = await this.resolveDns(hostname);\n } catch {\n throw providerUnavailable();\n }\n\n const normalizedAddresses = [...new Set(addresses.map(normalizeHostname))];\n\n if (\n normalizedAddresses.length === 0 ||\n normalizedAddresses.length > maximumResolvedAddresses ||\n normalizedAddresses.some((address) => !isDeclarativePublicAddress(address))\n ) {\n throw policyRejected(\"The workflow destination resolved to a private or reserved network.\");\n }\n\n return authorization({\n addresses: normalizedAddresses,\n hostname,\n networkClass: DeclarativeEgressNetworkClass.PUBLIC,\n origin: url.origin\n });\n }\n}\n\nexport function isDeclarativePublicAddress(address: string): boolean {\n const normalized = normalizeHostname(address);\n const family = isIP(normalized);\n\n if (family === 4) {\n return !privateIpv4Ranges.check(normalized, \"ipv4\");\n }\n\n if (family === 6) {\n return !privateIpv6Ranges.check(normalized, \"ipv6\");\n }\n\n return false;\n}\n\nexport function isDeclarativeLoopbackAddress(address: string): boolean {\n const normalized = normalizeHostname(address);\n return normalized === \"127.0.0.1\" || normalized === \"::1\";\n}\n\nfunction normalizeOrigin(value: string): string {\n try {\n const url = new URL(value);\n\n if (url.username || url.password || url.hash) {\n throw new Error(\"origin contains forbidden URL components\");\n }\n\n return url.origin;\n } catch {\n throw new Error(\"Invalid declarative egress origin.\");\n }\n}\n\nfunction normalizeHostname(hostname: string): string {\n return hostname\n .replace(/^\\[|\\]$/g, \"\")\n .replace(/\\.$/, \"\")\n .toLowerCase();\n}\n\nfunction isLocalHostname(hostname: string): boolean {\n return hostname === \"localhost\" || hostname === \"127.0.0.1\" || hostname === \"::1\";\n}\n\nfunction hasPrivateHostnameSuffix(hostname: string): boolean {\n return [\".internal\", \".lan\", \".local\", \".localhost\"].some((suffix) => hostname.endsWith(suffix));\n}\n\nfunction authorization(input: {\n addresses: readonly string[];\n hostname: string;\n networkClass: DeclarativeEgressNetworkClass;\n origin: string;\n}): DeclarativeEgressAuthorization {\n const addresses = input.addresses.map((address): DeclarativeEgressAddress => {\n const family = isIP(address);\n\n if (family !== 4 && family !== 6) {\n throw policyRejected(\"The workflow destination resolved to an invalid network address.\");\n }\n\n return Object.freeze({ address, family });\n });\n\n return Object.freeze({\n addresses: Object.freeze(addresses),\n hostname: input.hostname,\n networkClass: input.networkClass,\n origin: input.origin\n });\n}\n\nasync function resolvePublicDns(hostname: string): Promise<readonly string[]> {\n const addresses = await lookup(hostname, { all: true, verbatim: true });\n return addresses.map((entry) => entry.address);\n}\n\nfunction providerUnavailable(): DeclarativeRuntimeError {\n return new DeclarativeRuntimeError({\n code: AppRuntimeErrorCode.TEMPORARILY_UNAVAILABLE,\n message: \"The App provider could not be reached.\",\n retryable: true\n });\n}\n\nfunction policyRejected(message: string): DeclarativeRuntimeError {\n return new DeclarativeRuntimeError({\n code: AppRuntimeErrorCode.POLICY_REJECTED,\n message\n });\n}\n\nfunction createPrivateIpv4Ranges(): BlockList {\n const ranges = new BlockList();\n\n for (const [address, prefix] of [\n [\"0.0.0.0\", 8],\n [\"10.0.0.0\", 8],\n [\"100.64.0.0\", 10],\n [\"127.0.0.0\", 8],\n [\"169.254.0.0\", 16],\n [\"172.16.0.0\", 12],\n [\"192.0.0.0\", 24],\n [\"192.0.2.0\", 24],\n [\"192.88.99.0\", 24],\n [\"192.168.0.0\", 16],\n [\"198.18.0.0\", 15],\n [\"198.51.100.0\", 24],\n [\"203.0.113.0\", 24],\n [\"224.0.0.0\", 4],\n [\"240.0.0.0\", 4]\n ] as const) {\n ranges.addSubnet(address, prefix, \"ipv4\");\n }\n\n return ranges;\n}\n\nfunction createPrivateIpv6Ranges(): BlockList {\n const ranges = new BlockList();\n\n for (const [address, prefix] of [\n [\"::\", 96],\n [\"::ffff:0:0\", 96],\n [\"64:ff9b::\", 96],\n [\"64:ff9b:1::\", 48],\n [\"100::\", 64],\n [\"2001::\", 32],\n [\"2001:2::\", 48],\n [\"2001:10::\", 28],\n [\"2001:20::\", 28],\n [\"2001:db8::\", 32],\n [\"2002::\", 16],\n [\"3fff::\", 20],\n [\"5f00::\", 16],\n [\"fc00::\", 7],\n [\"fe80::\", 10],\n [\"fec0::\", 10],\n [\"ff00::\", 8]\n ] as const) {\n ranges.addSubnet(address, prefix, \"ipv6\");\n }\n\n return ranges;\n}\n\nconst privateIpv4Ranges = createPrivateIpv4Ranges();\nconst privateIpv6Ranges = createPrivateIpv6Ranges();\n","import { generateKeyPairSync, randomBytes } from \"node:crypto\";\nimport {\n AppSignatureAlgorithm,\n appJwksSchema,\n appManifestSchema,\n type AppJwks\n} from \"@vekil/app-protocol\";\nimport {\n deriveAppPublicSigningJwk,\n readAppProtocolSigningIdentity,\n type AppProtocolSigningIdentity\n} from \"@vekil/app-runtime/server\";\n\nexport interface AppRuntimeKeyMaterial {\n jwks: AppJwks;\n keyId: string;\n privateJwkBase64url: string;\n signingIdentity: AppProtocolSigningIdentity;\n}\n\nexport function generateAppRuntimeKeyMaterial({\n manifest: manifestInput,\n keyId = createKeyId()\n}: {\n manifest: unknown;\n keyId?: string;\n}): AppRuntimeKeyMaterial {\n const manifest = appManifestSchema.parse(manifestInput);\n return generateKeyMaterial(manifest.app.id, keyId);\n}\n\nexport function readAppRuntimeSigningIdentity({\n manifest: manifestInput,\n keyId,\n privateJwkBase64url\n}: {\n manifest: unknown;\n keyId?: string;\n privateJwkBase64url?: string;\n}): AppProtocolSigningIdentity | null {\n const manifest = appManifestSchema.parse(manifestInput);\n return readAppProtocolSigningIdentity({\n issuer: manifest.app.id,\n keyId,\n privateJwkBase64url\n });\n}\n\nfunction generateKeyMaterial(issuer: string, keyId: string): AppRuntimeKeyMaterial {\n const { privateKey } = generateKeyPairSync(\"ed25519\");\n const privateJwk = {\n ...privateKey.export({ format: \"jwk\" }),\n alg: AppSignatureAlgorithm.ED25519,\n crv: \"Ed25519\",\n kid: keyId,\n kty: \"OKP\",\n use: \"sig\"\n };\n const privateJwkBase64url = Buffer.from(JSON.stringify(privateJwk), \"utf8\").toString(\"base64url\");\n const signingIdentity = readAppProtocolSigningIdentity({\n issuer,\n keyId,\n privateJwkBase64url\n });\n\n if (!signingIdentity) {\n throw new Error(\"app_runtime_signing_identity_generation_failed\");\n }\n\n return {\n jwks: appJwksSchema.parse({ keys: [deriveAppPublicSigningJwk(signingIdentity)] }),\n keyId,\n privateJwkBase64url,\n signingIdentity\n };\n}\n\nfunction createKeyId(): string {\n const date = new Date().toISOString().slice(0, 10);\n return `runtime-${date}-${randomBytes(4).toString(\"hex\")}`;\n}\n","#!/usr/bin/env node\n\nimport { basename, extname, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { mkdir, readFile, readdir, writeFile } from \"node:fs/promises\";\nimport { AppCompilationError } from \"@vekil/app-compiler\";\nimport {\n AppConformanceCheckStatus,\n appManifestSchema,\n buildAppArtifacts,\n createAppDefinitionJsonSchema,\n httpsOrLocalhostUrlSchema,\n runAppConformance,\n stringifyCanonicalJson\n} from \"./index\";\nimport { generateAppRuntimeKeyMaterial } from \"./signing\";\n\ninterface ParsedArguments {\n options: Map<string, string | true>;\n positionals: string[];\n}\n\nconst [command = \"help\", ...rawArguments] = process.argv.slice(2);\n\nasync function main(): Promise<void> {\n try {\n await runCommand(command, parseArguments(rawArguments));\n } catch (error) {\n printError(error);\n process.exitCode = 1;\n }\n}\n\nvoid main();\n\nasync function runCommand(commandName: string, args: ParsedArguments): Promise<void> {\n switch (commandName) {\n case \"init\":\n await initializeApp(args);\n return;\n case \"validate\":\n await validateApp(args, false);\n return;\n case \"conformance\":\n await validateApp(args, true);\n return;\n case \"build\":\n await buildApp(args);\n return;\n case \"inspect\":\n await inspectApp(args);\n return;\n case \"schema\":\n await writeSchema(args);\n return;\n case \"keys\":\n await createKeys(args);\n return;\n case \"help\":\n case \"--help\":\n case \"-h\":\n printHelp();\n return;\n default:\n throw new Error(`Unknown command \"${commandName}\". Run vekil-app help.`);\n }\n}\n\nasync function initializeApp(args: ParsedArguments): Promise<void> {\n const directoryArgument = requirePositional(args, 0, \"Pass a directory for the new App.\");\n const directory = resolve(directoryArgument);\n const existing = await readdir(directory).catch((error: unknown) => {\n if (isNodeError(error, \"ENOENT\")) return null;\n throw error;\n });\n\n if (existing && existing.length > 0) {\n throw new Error(`Directory is not empty: ${directory}`);\n }\n\n const projectSlug = createProjectSlug(basename(directory));\n const name = readStringOption(args, \"name\") ?? titleFromSlug(projectSlug);\n const runtimeUrl = parseRuntimeUrl(\n readStringOption(args, \"runtime-url\") ?? \"http://localhost:4100\"\n );\n await mkdir(directory, { recursive: true });\n await Promise.all([\n writeFile(\n resolve(directory, \"package.json\"),\n `${JSON.stringify(createStarterPackage(projectSlug), null, 2)}\\n`,\n \"utf8\"\n ),\n writeFile(\n resolve(directory, \"vekil.app.mjs\"),\n createStarterDefinitionSource({\n name,\n runtimeUrl\n }),\n \"utf8\"\n ),\n writeFile(resolve(directory, \"runtime.mjs\"), createStarterRuntimeSource(projectSlug), \"utf8\"),\n writeFile(resolve(directory, \".env.example\"), createStarterEnvironment(runtimeUrl), \"utf8\"),\n writeFile(resolve(directory, \".gitignore\"), \"dist\\n.env\\nnode_modules\\n\", \"utf8\")\n ]);\n\n process.stdout.write(`Created ${name} in ${directory}\\n`);\n process.stdout.write(\n \"Next: install dependencies, implement the Definition, then run validate and build.\\n\"\n );\n}\n\nasync function validateApp(args: ParsedArguments, conformance: boolean): Promise<void> {\n const inputPath = requirePositional(args, 0, \"Pass a Definition JSON or JavaScript module.\");\n const definition = await loadDefinition(inputPath);\n const report = runAppConformance(definition, {\n requireRemote: conformance || args.options.has(\"remote\")\n });\n\n printConformanceReport(report);\n if (!report.ok) process.exitCode = 1;\n}\n\nasync function buildApp(args: ParsedArguments): Promise<void> {\n const inputPath = requirePositional(args, 0, \"Pass a Definition JSON or JavaScript module.\");\n const outputDirectory = resolve(readStringOption(args, \"out\") ?? \"dist\");\n const definition = await loadDefinition(inputPath);\n const artifacts = buildAppArtifacts(definition);\n\n await mkdir(outputDirectory, { recursive: true });\n await Promise.all([\n writeFile(resolve(outputDirectory, \"definition.json\"), artifacts.definitionJson, \"utf8\"),\n writeFile(\n resolve(outputDirectory, \"app-definition.schema.json\"),\n `${JSON.stringify(artifacts.definitionSchema, null, 2)}\\n`,\n \"utf8\"\n )\n ]);\n\n process.stdout.write(\n `Built App Definition for ${readLocalizedText(\n artifacts.definition.app.name,\n artifacts.definition.defaultLocale\n )}\\n`\n );\n process.stdout.write(`${outputDirectory}\\n`);\n}\n\nasync function inspectApp(args: ParsedArguments): Promise<void> {\n const inputPath = requirePositional(args, 0, \"Pass a Definition JSON or JavaScript module.\");\n const artifacts = buildAppArtifacts(await loadDefinition(inputPath));\n const definition = artifacts.definition;\n const runtime = definition.runtime;\n\n process.stdout.write(\n `${JSON.stringify(\n {\n capabilities: definition.capabilities.map((capability) => capability.key),\n categoryId: definition.app.categoryId,\n connection: definition.connection.type,\n defaultLocale: definition.defaultLocale,\n name: readLocalizedText(definition.app.name, definition.defaultLocale),\n publication: definition.publication,\n runtime:\n runtime.host === \"REMOTE\"\n ? { baseUrl: runtime.baseUrl, host: runtime.host, jwksUrl: runtime.jwksUrl }\n : { host: runtime.host }\n },\n null,\n 2\n )}\\n`\n );\n}\n\nasync function writeSchema(args: ParsedArguments): Promise<void> {\n const schema = `${JSON.stringify(createAppDefinitionJsonSchema(), null, 2)}\\n`;\n const outputPath = args.positionals[0];\n\n if (!outputPath) {\n process.stdout.write(schema);\n return;\n }\n\n const resolved = resolve(outputPath);\n await mkdir(resolve(resolved, \"..\"), { recursive: true });\n await writeFile(resolved, schema, \"utf8\");\n process.stdout.write(`${resolved}\\n`);\n}\n\nasync function createKeys(args: ParsedArguments): Promise<void> {\n const manifestPath = resolve(args.positionals[0] ?? \"vekil.manifest.json\");\n const manifest = appManifestSchema.parse(JSON.parse(await readFile(manifestPath, \"utf8\")));\n\n const material = generateAppRuntimeKeyMaterial({\n manifest,\n ...(readStringOption(args, \"key-id\") ? { keyId: readStringOption(args, \"key-id\")! } : {})\n });\n\n process.stdout.write(`VEKIL_APP_SIGNING_KEY_ID=${material.keyId}\\n`);\n process.stdout.write(`VEKIL_APP_SIGNING_PRIVATE_JWK_BASE64URL=${material.privateJwkBase64url}\\n`);\n process.stdout.write(`Public JWKS: ${stringifyCanonicalJson(material.jwks)}\\n`);\n}\n\nasync function loadDefinition(path: string): Promise<unknown> {\n const resolved = resolve(path);\n\n if (extname(resolved).toLowerCase() === \".json\") {\n return JSON.parse(await readFile(resolved, \"utf8\")) as unknown;\n }\n\n const module = (await import(`${pathToFileURL(resolved).href}?v=${Date.now()}`)) as {\n default?: unknown;\n definition?: unknown;\n };\n const definition = module.default ?? module.definition;\n\n if (definition === undefined) {\n throw new Error(\"Definition module must export default or a named definition value.\");\n }\n\n return definition;\n}\n\nfunction printConformanceReport(report: ReturnType<typeof runAppConformance>): void {\n for (const check of report.checks) {\n const symbol =\n check.status === AppConformanceCheckStatus.PASSED\n ? \"PASS\"\n : check.status === AppConformanceCheckStatus.FAILED\n ? \"FAIL\"\n : \"SKIP\";\n process.stdout.write(`${symbol} ${check.id}\\n`);\n }\n\n for (const issue of report.issues) {\n process.stderr.write(`${issue.code} ${issue.path}: ${issue.message}\\n`);\n }\n}\n\nfunction parseArguments(values: string[]): ParsedArguments {\n const options = new Map<string, string | true>();\n const positionals: string[] = [];\n\n for (let index = 0; index < values.length; index += 1) {\n const value = values[index]!;\n\n if (!value.startsWith(\"--\")) {\n positionals.push(value);\n continue;\n }\n\n const key = value.slice(2);\n const next = values[index + 1];\n\n if (!next || next.startsWith(\"--\")) {\n options.set(key, true);\n continue;\n }\n\n options.set(key, next);\n index += 1;\n }\n\n return { options, positionals };\n}\n\nfunction readStringOption(args: ParsedArguments, key: string): string | null {\n const value = args.options.get(key);\n return typeof value === \"string\" ? value : null;\n}\n\nfunction requirePositional(args: ParsedArguments, index: number, message: string): string {\n const value = args.positionals[index];\n if (!value) throw new Error(message);\n return value;\n}\n\nfunction slugify(value: string): string {\n return value\n .normalize(\"NFKD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\")\n .slice(0, 64);\n}\n\nfunction createProjectSlug(value: string): string {\n const slug = slugify(value);\n if (!slug) {\n throw new Error(\"The project directory name must contain at least one letter or number.\");\n }\n return slug;\n}\n\nfunction parseRuntimeUrl(value: string): string {\n const result = httpsOrLocalhostUrlSchema.safeParse(value);\n if (!result.success) {\n throw new Error(\"--runtime-url must use HTTPS, or HTTP on localhost for development.\");\n }\n return result.data;\n}\n\nfunction titleFromSlug(value: string): string {\n return value\n .split(\"-\")\n .filter(Boolean)\n .map((part) => `${part[0]?.toUpperCase() ?? \"\"}${part.slice(1)}`)\n .join(\" \");\n}\n\nfunction readLocalizedText(value: Record<string, string>, locale: string): string {\n return value[locale] ?? value.en ?? Object.values(value)[0] ?? \"\";\n}\n\nfunction createStarterPackage(projectSlug: string): Record<string, unknown> {\n return {\n name: `@apps/${projectSlug}`,\n version: \"1.0.0\",\n private: true,\n type: \"module\",\n scripts: {\n build: \"vekil-app build ./vekil.app.mjs --out ./dist\",\n conformance: \"vekil-app conformance ./vekil.app.mjs\",\n dev: \"node --env-file=.env runtime.mjs\",\n keys: \"vekil-app keys ./vekil.manifest.json\",\n validate: \"vekil-app validate ./vekil.app.mjs\"\n },\n dependencies: {\n \"@vekil/app-sdk\": \"^0.4.0\"\n }\n };\n}\n\nfunction createStarterDefinitionSource(input: { name: string; runtimeUrl: string }): string {\n const jwksUrl = new URL(\"/.well-known/jwks.json\", input.runtimeUrl).toString();\n return `import { AppCategoryId, createRemoteAppStarterDefinition } from \"@vekil/app-sdk\";\n\nexport default createRemoteAppStarterDefinition({\n categoryId: AppCategoryId.OTHER,\n exampleRequest: \"Can you help me with this?\",\n longDescription: \"Describe when Vekil should use this App and what outcome it provides.\",\n name: ${JSON.stringify(input.name)},\n runtime: {\n baseUrl: ${JSON.stringify(input.runtimeUrl)},\n jwksUrl: ${JSON.stringify(jwksUrl)}\n },\n shortDescription: \"Describe what this App helps with.\"\n});\n`;\n}\n\nfunction createStarterRuntimeSource(projectSlug: string): string {\n return `import { createServer } from \"node:http\";\nimport {\n AppExecutionStatus,\n AppInstallationConnectionStatus,\n AppPlanStatus,\n AppRuntimeErrorCode,\n AppRuntimeHealthStatus,\n appProtocolVersion\n} from \"@vekil/app-sdk\";\nimport {\n createAppRuntimeHealthResponse,\n createDevelopmentReplayStore,\n createRemoteAppRuntime,\n readAppRuntimeSigningIdentity\n} from \"@vekil/app-sdk/runtime\";\nimport manifest from \"./vekil.manifest.json\" with { type: \"json\" };\n\nif (process.env.NODE_ENV === \"production\") {\n throw new Error(\"Replace createDevelopmentReplayStore with a durable atomic replay store.\");\n}\n\nconst signingIdentity = readAppRuntimeSigningIdentity({\n manifest,\n keyId: process.env.VEKIL_APP_SIGNING_KEY_ID,\n privateJwkBase64url: process.env.VEKIL_APP_SIGNING_PRIVATE_JWK_BASE64URL\n});\n\nif (!signingIdentity || !process.env.VEKIL_PLATFORM_JWKS_URL) {\n throw new Error(\"Runtime signing identity and VEKIL_PLATFORM_JWKS_URL are required.\");\n}\n\nconst unsupported = {\n code: AppRuntimeErrorCode.ACTION_NOT_SUPPORTED,\n message: \"Implement this runtime handler before testing the App.\",\n retryable: false\n};\nconst runtime = createRemoteAppRuntime({\n platformJwksUrl: process.env.VEKIL_PLATFORM_JWKS_URL,\n manifest,\n replayStore: createDevelopmentReplayStore(),\n signingIdentity,\n handlers: {\n prepareInstallation: async (request) => ({\n protocolVersion: appProtocolVersion,\n requestId: request.requestId,\n status: AppInstallationConnectionStatus.NOT_REQUIRED\n }),\n completeInstallation: async (request) => ({\n protocolVersion: appProtocolVersion,\n requestId: request.requestId,\n status: AppInstallationConnectionStatus.FAILED,\n error: { ...unsupported, code: AppRuntimeErrorCode.INVALID_REQUEST }\n }),\n disconnectInstallation: async (request) => ({\n protocolVersion: appProtocolVersion,\n requestId: request.requestId,\n disconnected: true\n }),\n planAction: async (request) => ({\n protocolVersion: appProtocolVersion,\n requestId: request.requestId,\n status: AppPlanStatus.REJECTED,\n actions: [],\n missingFields: [],\n error: unsupported\n }),\n executeAction: async (request) => ({\n protocolVersion: appProtocolVersion,\n requestId: request.requestId,\n executionId: request.executionId,\n status: AppExecutionStatus.FAILED,\n artifacts: [],\n bubbles: [],\n error: unsupported\n }),\n health: async () =>\n createAppRuntimeHealthResponse({\n manifest,\n status: AppRuntimeHealthStatus.DEGRADED,\n message: \"Runtime handlers are not implemented yet.\"\n })\n }\n});\n\ncreateServer((request, response) => {\n void runtime.handleNodeRequest(request, response).catch(() => {\n response.statusCode = 500;\n response.end(JSON.stringify({ error: \"APP_RUNTIME_INTERNAL_ERROR\" }));\n });\n}).listen(Number(process.env.PORT ?? 4100), () => {\n process.stdout.write(${JSON.stringify(`${projectSlug} runtime is listening\\n`)});\n});\n`;\n}\n\nfunction createStarterEnvironment(runtimeUrl: string): string {\n return `NODE_ENV=development\nPORT=${new URL(runtimeUrl).port || \"4100\"}\nVEKIL_PLATFORM_JWKS_URL=http://localhost:4000/api/.well-known/app-runtime-jwks.json\nVEKIL_APP_SIGNING_KEY_ID=\nVEKIL_APP_SIGNING_PRIVATE_JWK_BASE64URL=\n# After Vekil prepares the first test version, download vekil.manifest.json and run pnpm keys.\n`;\n}\n\nfunction printHelp(): void {\n process.stdout.write(`Vekil App SDK\n\nCommands:\n vekil-app init <directory> [--name name]\n vekil-app validate <definition.json|module.mjs>\n vekil-app conformance <definition.json|module.mjs>\n vekil-app build <definition.json|module.mjs> [--out dist]\n vekil-app inspect <definition.json|module.mjs>\n vekil-app schema [output.json]\n vekil-app keys [manifest.json] [--key-id id]\n`);\n}\n\nfunction printError(error: unknown): void {\n if (error instanceof AppCompilationError) {\n for (const issue of error.issues) {\n process.stderr.write(`${issue.code} ${issue.path}: ${issue.message}\\n`);\n }\n return;\n }\n\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n}\n\nfunction isNodeError(error: unknown, code: string): boolean {\n return error !== null && typeof error === \"object\" && \"code\" in error && error.code === code;\n}\n"]}