agentrem 1.0.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,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,+DAA+D;AAG/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,cAAc,EAEd,cAAc,EACd,aAAa,GAMd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAyBtD,MAAM,UAAU,OAAO,CAAC,EAAqB,EAAE,IAAgB;IAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;IAEpC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,aAAa,CACrB,0BAA0B,OAAO,sBAAsB,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/F,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa;IACb,IAAI,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,aAAa,CAAC,uCAAuC,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,aAAa,CAAC,+CAA+C,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,OAAO,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,aAAa,CACrB,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACxD,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;SAC3B,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED,cAAc;IACd,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,mBAAmB;IACnB,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,aAAa,CAAC,uBAAuB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,6CAA6C;QAC7C,OAAO;YACL,EAAE,EAAE,SAAS;YACb,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;YAC7B,YAAY,EAAE,OAAmC;YACjD,UAAU,EAAE,SAAS;YACrB,cAAc,EAAE,aAAa;YAC7B,QAAQ;YACR,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;YAC/B,MAAM,EAAE,QAAQ;YAChB,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,OAAO;YACjB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;YAChC,UAAU,EAAE,SAAS;YACrB,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;YAClC,WAAW,EAAE,IAAI;YACjB,MAAM;YACN,KAAK;YACL,UAAU,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;YAC/B,UAAU,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;YAC/B,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,SAAS;IACT,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;;yDAGmD,CACpD;SACA,GAAG,CACF,OAAO,EACP,IAAI,CAAC,OAAO,IAAI,IAAI,EACpB,OAAO,EACP,SAAS,EACT,aAAa,EACb,QAAQ,EACR,IAAI,CAAC,IAAI,IAAI,IAAI,EACjB,IAAI,CAAC,QAAQ,IAAI,IAAI,EACrB,OAAO,EACP,IAAI,CAAC,QAAQ,IAAI,IAAI,EACrB,SAAS,EACT,IAAI,CAAC,SAAS,IAAI,IAAI,EACtB,MAAM,EACN,KAAK,CACN,CAAC;IAEJ,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC,yCAAyC,CAAC;SAClD,GAAG,CAAC,IAAI,CAAC,eAAe,CAAa,CAAC;IACzC,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAyC,EAAE,MAAM,CAAC,CAAC;IAE9F,OAAO,GAAG,CAAC;AACb,CAAC;AAoBD,MAAM,UAAU,SAAS,CAAC,EAAqB,EAAE,IAAkB;IACjE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;IACnC,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAErE,2DAA2D;IAC3D,EAAE,CAAC,OAAO,CACR,yEAAyE;QACvE,2DAA2D,CAC9D,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAE7B,8BAA8B;IAC9B,MAAM,WAAW,GAAG,EAAE;SACnB,OAAO,CACN,8EAA8E,CAC/E;SACA,GAAG,CAAC,MAAM,EAAE,KAAK,CAAqB,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;QACrF,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,CAC9E,MAAM,EACN,GAAG,CAAC,EAAE,CACP,CAAC;QACF,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,GAAyC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClG,CAAC;IAED,gBAAgB;IAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QACtE,EAAE,CAAC,OAAO,CACR,gDAAgD;YAC9C,8FAA8F,CACjG,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAEhC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QACtE,EAAE,CAAC,OAAO,CACR,gDAAgD;YAC9C,8FAA8F,CACjG,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,gCAAgC;IAChC,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC,gDAAgD;IAChD,MAAM,YAAY,GAAG,IAAI,GAAG,CAExB,EAAE;SACC,OAAO,CAAC,mDAAmD,CAAC;SAC5D,GAAG,EACP,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACnB,CAAC;IAEF,SAAS,eAAe,CAAC,GAAa;QACpC,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QACjC,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,EAAE;aACZ,OAAO,CACN,wEAAwE;YACtE,iCAAiC,CACpC;aACA,GAAG,CAAC,MAAM,EAAE,KAAK,CAAe,CAAC;QACpC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,EAAE;aACZ,OAAO,CACN,sFAAsF,CACvF;aACA,GAAG,CAAC,KAAK,CAAe,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;gBAAE,SAAS;YACpC,MAAM,MAAM,GAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;YACxC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBACxB,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;oBAChE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBAC/B,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;oBACjE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;gBACjC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;oBAC1B,IAAI,CAAC;wBACH,IAAI,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BACxC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACpB,MAAM;wBACR,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,sBAAsB;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,EAAE;aACZ,OAAO,CACN,wFAAwF,CACzF;aACA,GAAG,CAAC,KAAK,CAAe,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;gBAAE,SAAS;YACpC,MAAM,MAAM,GAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;YACvE,IAAI,CAAC;gBACH,2EAA2E;gBAC3E,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;oBAC3D,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,MAAM;oBAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAChC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,8BAA8B;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,EAAE;aACZ,OAAO,CACN,sFAAsF,CACvF;aACA,GAAG,CAAC,KAAK,CAAe,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,EAAE;aACZ,OAAO,CACN,wFAAwF,CACzF;aACA,GAAG,CAAC,KAAK,CAAe,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,0CAA0C;IAE1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;IAC/F,CAAC;IAED,mBAAmB;IACnB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAElD,oBAAoB;IACpB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,UAAU,GAA2B,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACjF,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,MAAM,cAAc,GAA2B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAEhF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC;YAAE,SAAS;QACtB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC;QAE1C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,IAAI,SAAS,CAAC;QACpB,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,IAAI,GAAG,SAAS,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;gBACrC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,IAAI,SAAS,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,IAAI,GAAG,SAAS,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;gBACtC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,IAAI,SAAS,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1C,EAAE,CAAC,OAAO,CACR,0EAA0E,CAC3E,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAEvC,IAAI,GAAG,CAAC,SAAS,IAAI,OAAO,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBAC9C,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;gBACvB,EAAE,CAAC,OAAO,CACR,kFAAkF,CACnF,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC9B,MAAM,QAAQ,GAAG,EAAE;qBAChB,OAAO,CAAC,oCAAoC,CAAC;qBAC7C,GAAG,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;gBAC3B,aAAa,CACX,EAAE,EACF,GAAG,CAAC,EAAE,EACN,WAAW,EACX,GAAyC,EACzC,QAA8C,EAC9C,QAAQ,CACT,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACtE,CAAC;AAgBD,MAAM,UAAU,QAAQ,CAAC,EAAqB,EAAE,IAAiB;IAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAE/B,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,mBAAmB;IACrB,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,UAAU,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEnB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1E,UAAU,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7B,UAAU,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/B,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACvE,MAAM,KAAK,GAAG,iCAAiC,KAAK,wCAAwC,CAAC;IAC7F,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEnB,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAe,CAAC;AACxD,CAAC;AAUD,MAAM,UAAU,UAAU,CAAC,EAAqB,EAAE,IAAmB;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAExF,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,OAAO,EAAE;SACN,OAAO,CACN;;sDAEgD,YAAY;6BACrC,CACxB;SACA,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,QAAQ,EAAE,KAAK,CAAe,CAAC;AACvD,CAAC;AASD,MAAM,UAAU,YAAY,CAC1B,EAAqB,EACrB,EAAU,EACV,KAAc;IAEd,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,aAAa,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAoB,IAAI,CAAC;IAEpC,uBAAuB;IACvB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,IAAI,GAAc,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,EAAE;aACZ,OAAO,CACN;;;8DAGsD,CACvD;aACA,GAAG,CACF,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,YAAY,EAChB,OAAO,CAAC,MAAM,CAAC,EACf,GAAG,CAAC,cAAc,EAClB,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,EAAE,EAC7B,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,KAAK,CACV,CAAC;QACJ,OAAO,GAAG,EAAE;aACT,OAAO,CAAC,yCAAyC,CAAC;aAClD,GAAG,CAAC,IAAI,CAAC,eAAe,CAAa,CAAC;QACzC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAA6C,EAAE,QAAQ,CAAC,CAAC;IAC1G,CAAC;IAED,2BAA2B;IAC3B,IAAI,UAAU,GAAG,KAAK,IAAI,IAAI,CAAC;IAC/B,IAAI,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACvB,UAAU,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;IACxC,CAAC;SAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,EAAE,CAAC,OAAO,CACR,2FAA2F,CAC5F,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAE1C,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;IACzF,aAAa,CACX,EAAE,EACF,GAAG,CAAC,EAAE,EACN,WAAW,EACX,OAA6C,EAC7C,OAA6C,EAC7C,OAAO,CACR,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;AACzD,CAAC;AAED,6EAA6E;AAE7E,MAAM,UAAU,UAAU,CACxB,EAAqB,EACrB,EAAU,EACV,KAAc,EACd,WAAoB;IAEpB,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,aAAa,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,IAAI,aAAa,CAAC,kCAAkC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,QAAc,CAAC;IACnB,IAAI,KAAK,EAAE,CAAC;QACV,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,mDAAmD;QACnD,IAAI,CAAC;YACH,QAAQ,GAAG,SAAS,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAY,CAAC,CAAC;YAChD,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,IAAI,aAAa,CAAC,2BAA2B,WAAW,GAAG,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG;gBAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;iBACzD,IAAI,CAAC,KAAK,GAAG;gBAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;iBAC1D,IAAI,CAAC,KAAK,GAAG;gBAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;iBACxD,IAAI,CAAC,KAAK,GAAG;gBAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAE3B,EAAE,CAAC,OAAO,CACR,iFAAiF,CAClF,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;IACzF,aAAa,CACX,EAAE,EACF,GAAG,CAAC,EAAE,EACN,SAAS,EACT,OAA6C,EAC7C,OAA6C,EAC7C,OAAO,CACR,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAmBD,MAAM,UAAU,QAAQ,CACtB,EAAqB,EACrB,EAAU,EACV,IAAiB;IAEjB,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,aAAa,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,OAAO,GAA2C,EAAE,CAAC;IAE3D,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;IAClE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;IAClE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aACb,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;aACzB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aACb,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU;aAC3B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IACrE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IACtE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,MAAM,GAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;QACrE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAE5D,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,aAAa,CACrB,sEAAsE,CACvE,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;IAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;SACpB,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAEnD,EAAE,CAAC,OAAO,CAAC,wBAAwB,SAAS,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAE1E,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;IACzF,aAAa,CACX,EAAE,EACF,GAAG,CAAC,EAAE,EACN,SAAS,EACT,OAA6C,EAC7C,OAA6C,EAC7C,OAAO,CACR,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAgBD,MAAM,UAAU,UAAU,CAAC,EAAqB,EAAE,IAAmB;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAEnC,wBAAwB;IACxB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,CAAC,YAAY,CAAC,CAAC;QAClC,MAAM,MAAM,GAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;YAChE,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,EAAE;aAChB,OAAO,CAAC,6CAA6C,KAAK,EAAE,CAAC;aAC7D,GAAG,CAAC,GAAG,MAAM,CAAkB,CAAC;QACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,EAAE,CAAC,OAAO,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,OAAO,CACR,6DAA6D,KAAK,EAAE,CACrE,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,aAAa,CAAC,wDAAwD,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,aAAa,CAAC,uBAAuB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAE3B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3D,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,OAA6C,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrG,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,OAAO,CACR,gEAAgE,CACjE,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;QACzF,aAAa,CACX,EAAE,EACF,GAAG,CAAC,EAAE,EACN,SAAS,EACT,OAA6C,EAC7C,OAA6C,EAC7C,OAAO,CACR,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACnD,CAAC;AAiBD,MAAM,UAAU,SAAS,CAAC,EAAqB;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAG,EAAE;SACd,OAAO,CACN,2GAA2G,CAC5G;SACA,GAAG,EAAyC,CAAC;IAChD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpC,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAC,GAAG;QACZ,KAAK,EACF,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAA6B,CAC3F,CAAC,CAAC,QAAQ,CACX,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE;KACxB,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAG,EAAE;SAClB,OAAO,CACN,uGAAuG,CACxG;SACA,GAAG,CAAC,MAAM,CAAkB,CAAC;IAEhC,MAAM,UAAU,GAAG,EAAE;SAClB,OAAO,CAAC,4DAA4D,CAAC;SACrE,GAAG,EAAmB,CAAC;IAE1B,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;IAC3B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,gBAAgB,GAAG,EAAE;SACxB,OAAO,CACN,oFAAoF,CACrF;SACA,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAkB,CAAC;IAE1C,MAAM,UAAU,GAAG,EAAE;SAClB,OAAO,CAAC,4DAA4D,CAAC;SACrE,GAAG,EAAmB,CAAC;IAE1B,MAAM,QAAQ,GAAG,EAAE;SAChB,OAAO,CACN,mHAAmH,CACpH;SACA,GAAG,EAA6C,CAAC;IACpD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAEhF,MAAM,UAAU,GAAG,EAAE;SAClB,OAAO,CACN,wIAAwI,CACzI;SACA,GAAG,CAAC,MAAM,CAAwD,CAAC;IAEtE,MAAM,OAAO,GAAG,EAAE;SACf,OAAO,CAAC,mEAAmE,CAAC;SAC5E,GAAG,EAAwC,CAAC;IAE/C,UAAU;IACV,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;YAC1B,IAAI,CAAC,IAAI,CACP,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,EACnE,cAAc,CACf,CAAC;QACJ,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IAED,OAAO;QACL,WAAW;QACX,UAAU;QACV,OAAO,EAAE,UAAU,CAAC,CAAC;QACrB,OAAO,EAAE,UAAU,CAAC,CAAC;QACrB,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACjC,OAAO,EAAE,UAAU,CAAC,CAAC;QACrB,SAAS;QACT,OAAO,EAAE,UAAU;YACjB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE;YACnE,CAAC,CAAC,IAAI;QACR,WAAW,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI;QACxC,WAAW;KACZ,CAAC;AACJ,CAAC;AASD,MAAM,UAAU,MAAM,CACpB,EAAqB,EACrB,YAAoB,EAAE,EACtB,SAAkB,KAAK;IAEvB,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN,mHAAmH,CACpH;SACA,GAAG,CAAC,SAAS,CAAsD,CAAC;IAEvE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QAChC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,EAAE,CAAC,OAAO,CAAC,sCAAsC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9E,EAAE,CAAC,OAAO,CAAC,6CAA6C,YAAY,GAAG,CAAC,CAAC,GAAG,CAC1E,GAAG,GAAG,CACP,CAAC;IACF,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElB,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,6EAA6E;AAE7E,MAAM,UAAU,WAAW,CACzB,EAAqB,EACrB,EAAW,EACX,QAAgB,EAAE;IAElB,IAAI,EAAE,EAAE,CAAC;QACP,uCAAuC;QACvC,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE;aACN,OAAO,CACN,mGAAmG,CACpG;aACA,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,CAAmB,CAAC;IAClD,CAAC;IACD,OAAO,EAAE;SACN,OAAO,CAAC,uDAAuD,CAAC;SAChE,GAAG,CAAC,KAAK,CAAmB,CAAC;AAClC,CAAC;AAED,6EAA6E;AAE7E,MAAM,UAAU,QAAQ,CAAC,EAAqB,EAAE,SAAiB;IAC/D,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC,oCAAoC,CAAC;SAC7C,GAAG,CAAC,SAAS,CAA6B,CAAC;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,aAAa,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,aAAa,CACrB,sDAAsD,CACvD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,IAAI,aAAa,CAAC,wBAAwB,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAA4B,CAAC;IACjE,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAE/C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,0DAA0D;QAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,EAAE,CAAC,OAAO,CAAC,yBAAyB,QAAQ,aAAa,YAAY,GAAG,CAAC,CAAC,GAAG,CAC3E,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAA2B,CAAC,CACrD,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,sBAAsB;QACtB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACnC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;aAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;aACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;aACpB,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;aACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAA2B,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,EAAE,CAAC,OAAO,CAAC,wBAAwB,SAAS,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED,aAAa,CACX,EAAE,EACF,IAAI,CAAC,WAAW,EAChB,UAAU,EACV,GAAgD,EAChD,GAAG,EACH,OAAO,CACR,CAAC;AACJ,CAAC;AAYD,MAAM,UAAU,UAAU,CAAC,EAAqB,EAAE,MAAe;IAC/D,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,UAAU,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,MAAM,SAAS,GAAG,EAAE;SACjB,OAAO,CAAC,2BAA2B,KAAK,EAAE,CAAC;SAC3C,GAAG,CAAC,GAAG,MAAM,CAA8B,CAAC;IAE/C,MAAM,UAAU,GAA8B,EAAE,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,EAAE;aACT,OAAO,CAAC,6CAA6C,CAAC;aACtD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAW,CAA8B,CAAC;QACzD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAChC,cAAc,EAAE,cAAc;QAC9B,cAAc,EAAE,SAAS,CAAC,MAAM;QAChC,SAAS;QACT,OAAO,EAAE,UAAU;KACpB,CAAC;AACJ,CAAC;AAUD,MAAM,UAAU,UAAU,CACxB,EAAqB,EACrB,IAAgB,EAChB,QAAiB,KAAK,EACtB,UAAmB,KAAK,EACxB,SAAkB,KAAK;IAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAEnC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,QAAQ,EAAE,SAAS,CAAC,MAAM;YAC1B,OAAO,EAAE,CAAC;YACV,eAAe,EAAE,OAAO,CAAC,MAAM;SAChC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1C,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1C,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,QAAQ,GAAG,EAAE;iBAChB,OAAO,CAAC,uCAAuC,CAAC;iBAChD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAW,CAAC,CAAC;YAC5B,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC;YACH,EAAE,CAAC,OAAO,CAAC,yBAAyB,QAAQ,aAAa,YAAY,GAAG,CAAC,CAAC,GAAG,CAC3E,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAA2B,CAAC,CACrD,CAAC;YACF,QAAQ,EAAE,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,EAAE,CAAC,OAAO,CACR,2GAA2G,CAC5G,CAAC,GAAG,CACH,CAAC,CAAC,aAAa,CAAW,EAC1B,CAAC,CAAC,QAAQ,CAAW,EACpB,CAAC,CAAC,UAAU,CAAY,IAAI,IAAI,EAChC,CAAC,CAAC,UAAU,CAAY,IAAI,IAAI,EACjC,CAAC,CAAC,WAAW,CAAW,EACvB,CAAC,CAAC,QAAQ,CAAY,IAAI,IAAI,CAChC,CAAC;YACF,eAAe,EAAE,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;AAChD,CAAC;AAED,6EAA6E;AAE7E,MAAM,UAAU,UAAU,CAAC,EAAqB;IAC9C,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN,yEAAyE,CAC1E;SACA,GAAG,EAAuB,CAAC;IAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare function parseDate(s: string): Date;
2
+ export declare function dtToIso(dt: Date): string;
3
+ export declare function fmtDt(s: string | null): string;
4
+ export declare function truncate(s: string | null, maxLen: number): string;
5
+ export declare function parseRecur(ruleStr: string): {
6
+ interval: number;
7
+ unit: string;
8
+ };
9
+ export declare function nextRecurrence(triggerAt: string | null, rule: {
10
+ interval: number;
11
+ unit: string;
12
+ }): Date;
13
+ //# sourceMappingURL=date-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-parser.d.ts","sourceRoot":"","sources":["../src/date-parser.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CA6DzC;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,CAQxC;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CA0B9C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAQ9E;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACvC,IAAI,CAcN"}
@@ -0,0 +1,141 @@
1
+ // ── Date Parsing ──────────────────────────────────────────────────────────
2
+ const RELATIVE_RE = /^\+(\d+)([mhdw])$/i;
3
+ export function parseDate(s) {
4
+ s = s.trim();
5
+ // 1. Relative shortcuts: +Nh, +Nm, +Nd, +Nw
6
+ const m = RELATIVE_RE.exec(s);
7
+ if (m) {
8
+ const n = parseInt(m[1], 10);
9
+ const unit = m[2].toLowerCase();
10
+ const now = new Date();
11
+ if (unit === 'm') {
12
+ now.setMinutes(now.getMinutes() + n);
13
+ }
14
+ else if (unit === 'h') {
15
+ now.setHours(now.getHours() + n);
16
+ }
17
+ else if (unit === 'd') {
18
+ now.setDate(now.getDate() + n);
19
+ }
20
+ else if (unit === 'w') {
21
+ now.setDate(now.getDate() + n * 7);
22
+ }
23
+ return now;
24
+ }
25
+ // 2. Named shortcuts
26
+ const sl = s.toLowerCase();
27
+ if (sl === 'today') {
28
+ const now = new Date();
29
+ now.setHours(23, 59, 0, 0);
30
+ return now;
31
+ }
32
+ if (sl === 'tomorrow') {
33
+ const now = new Date();
34
+ now.setDate(now.getDate() + 1);
35
+ now.setHours(9, 0, 0, 0);
36
+ return now;
37
+ }
38
+ // 3. ISO 8601 formats
39
+ const formats = [
40
+ /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/,
41
+ /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})$/,
42
+ /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/,
43
+ /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2})$/,
44
+ /^(\d{4})-(\d{2})-(\d{2})$/,
45
+ ];
46
+ for (const fmt of formats) {
47
+ const match = fmt.exec(s);
48
+ if (match) {
49
+ const year = parseInt(match[1], 10);
50
+ const month = parseInt(match[2], 10) - 1;
51
+ const day = parseInt(match[3], 10);
52
+ const hour = match[4] ? parseInt(match[4], 10) : 0;
53
+ const minute = match[5] ? parseInt(match[5], 10) : 0;
54
+ const second = match[6] ? parseInt(match[6], 10) : 0;
55
+ const dt = new Date(year, month, day, hour, minute, second);
56
+ if (!isNaN(dt.getTime())) {
57
+ return dt;
58
+ }
59
+ }
60
+ }
61
+ throw new Error(`Cannot parse date: '${s}'`);
62
+ }
63
+ export function dtToIso(dt) {
64
+ const y = dt.getFullYear();
65
+ const mo = String(dt.getMonth() + 1).padStart(2, '0');
66
+ const d = String(dt.getDate()).padStart(2, '0');
67
+ const h = String(dt.getHours()).padStart(2, '0');
68
+ const mi = String(dt.getMinutes()).padStart(2, '0');
69
+ const se = String(dt.getSeconds()).padStart(2, '0');
70
+ return `${y}-${mo}-${d}T${h}:${mi}:${se}`;
71
+ }
72
+ export function fmtDt(s) {
73
+ if (!s)
74
+ return '';
75
+ try {
76
+ const dt = new Date(s);
77
+ if (isNaN(dt.getTime()))
78
+ return s;
79
+ const now = new Date();
80
+ const diffMs = now.getTime() - dt.getTime();
81
+ if (diffMs < 0) {
82
+ // Future
83
+ const absDiff = -diffMs;
84
+ const seconds = absDiff / 1000;
85
+ if (seconds < 60)
86
+ return 'in <1m';
87
+ if (seconds < 3600)
88
+ return `in ${Math.floor(seconds / 60)}m`;
89
+ if (seconds < 86400)
90
+ return `in ${Math.round(seconds / 3600)}h`;
91
+ return `in ${Math.floor(absDiff / (1000 * 86400))}d`;
92
+ }
93
+ else {
94
+ // Past
95
+ const seconds = diffMs / 1000;
96
+ if (seconds < 60)
97
+ return '<1m ago';
98
+ if (seconds < 3600)
99
+ return `${Math.floor(seconds / 60)}m ago`;
100
+ if (seconds < 86400)
101
+ return `${Math.round(seconds / 3600)}h ago`;
102
+ return `${Math.floor(diffMs / (1000 * 86400))}d ago`;
103
+ }
104
+ }
105
+ catch {
106
+ return s;
107
+ }
108
+ }
109
+ export function truncate(s, maxLen) {
110
+ if (!s)
111
+ return '';
112
+ if (s.length <= maxLen)
113
+ return s;
114
+ return s.slice(0, maxLen - 1) + '\u2026';
115
+ }
116
+ export function parseRecur(ruleStr) {
117
+ const m = /^(\d+)([dwm])$/.exec(ruleStr.toLowerCase());
118
+ if (!m) {
119
+ throw new Error(`Invalid recurrence pattern: '${ruleStr}'. Use format like 1d, 2w, 1m`);
120
+ }
121
+ return { interval: parseInt(m[1], 10), unit: m[2] };
122
+ }
123
+ export function nextRecurrence(triggerAt, rule) {
124
+ const base = triggerAt ? new Date(triggerAt) : new Date();
125
+ const interval = rule.interval || 1;
126
+ const unit = rule.unit || 'd';
127
+ if (unit === 'd') {
128
+ base.setDate(base.getDate() + interval);
129
+ }
130
+ else if (unit === 'w') {
131
+ base.setDate(base.getDate() + interval * 7);
132
+ }
133
+ else if (unit === 'm') {
134
+ base.setDate(base.getDate() + interval * 30);
135
+ }
136
+ else {
137
+ base.setDate(base.getDate() + interval);
138
+ }
139
+ return base;
140
+ }
141
+ //# sourceMappingURL=date-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-parser.js","sourceRoot":"","sources":["../src/date-parser.ts"],"names":[],"mappings":"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"}
package/dist/db.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import Database from 'better-sqlite3';
2
+ import { type Reminder, type HistoryEntry } from './types.js';
3
+ export declare function getDb(dbPath?: string): Database.Database;
4
+ export declare function initDb(force?: boolean, dbPath?: string): string;
5
+ export declare function findReminder(db: Database.Database, rid: string): Reminder | null;
6
+ export declare function recordHistory(db: Database.Database, reminderId: string, action: string, oldData?: Record<string, unknown> | null, newData?: Record<string, unknown> | null, source?: string | null): void;
7
+ export declare function getHistoryEntries(db: Database.Database, reminderId?: string, limit?: number): HistoryEntry[];
8
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAkB,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAY9E,wBAAgB,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CASxD;AAED,wBAAgB,MAAM,CAAC,KAAK,GAAE,OAAe,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAqCtE;AAkGD,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,GAAG,EAAE,MAAM,GACV,QAAQ,GAAG,IAAI,CAiBjB;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACxC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,IAAI,CAUN;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,GAAE,MAAW,GACjB,YAAY,EAAE,CAWhB"}
package/dist/db.js ADDED
@@ -0,0 +1,176 @@
1
+ // ── Database Layer ─────────────────────────────────────────────────────────
2
+ import Database from 'better-sqlite3';
3
+ import * as fs from 'node:fs';
4
+ import * as path from 'node:path';
5
+ import * as os from 'node:os';
6
+ import { SCHEMA_VERSION } from './types.js';
7
+ function getDefaultDir() {
8
+ return process.env['AGENTREM_DIR'] || path.join(os.homedir(), '.agentrem');
9
+ }
10
+ function getDefaultDbPath() {
11
+ return (process.env['AGENTREM_DB'] || path.join(getDefaultDir(), 'reminders.db'));
12
+ }
13
+ export function getDb(dbPath) {
14
+ const p = dbPath || getDefaultDbPath();
15
+ if (!fs.existsSync(p)) {
16
+ throw new Error(`Database not found at ${p}. Run \`agentrem init\` first.`);
17
+ }
18
+ const db = new Database(p);
19
+ db.pragma('journal_mode = WAL');
20
+ db.pragma('foreign_keys = ON');
21
+ return db;
22
+ }
23
+ export function initDb(force = false, dbPath) {
24
+ const dir = process.env['AGENTREM_DIR'] || path.join(os.homedir(), '.agentrem');
25
+ const p = dbPath || getDefaultDbPath();
26
+ fs.mkdirSync(dir, { recursive: true });
27
+ if (fs.existsSync(p)) {
28
+ if (force) {
29
+ const ts = new Date()
30
+ .toISOString()
31
+ .replace(/[:.]/g, '')
32
+ .slice(0, 15)
33
+ .replace('T', '-');
34
+ const backup = p.replace('reminders.db', `reminders.db.bak.${ts}`);
35
+ fs.copyFileSync(p, backup);
36
+ fs.unlinkSync(p);
37
+ const result = createDb(p);
38
+ return `Backed up existing DB to ${backup}\n${result}`;
39
+ }
40
+ else {
41
+ // Check schema version
42
+ try {
43
+ const db = new Database(p);
44
+ const row = db.prepare('SELECT MAX(version) as v FROM schema_version').get();
45
+ db.close();
46
+ if (row && row.v >= SCHEMA_VERSION) {
47
+ return `\u2705 Database already initialized at ${p} (schema v${row.v})`;
48
+ }
49
+ }
50
+ catch {
51
+ // Fall through to create
52
+ }
53
+ return createDb(p);
54
+ }
55
+ }
56
+ return createDb(p);
57
+ }
58
+ function createDb(p) {
59
+ const db = new Database(p);
60
+ db.pragma('journal_mode = WAL');
61
+ db.exec(`
62
+ CREATE TABLE IF NOT EXISTS reminders (
63
+ id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(8)))),
64
+ content TEXT NOT NULL,
65
+ context TEXT,
66
+ trigger_type TEXT NOT NULL DEFAULT 'time',
67
+ trigger_at TEXT,
68
+ trigger_config TEXT,
69
+ priority INTEGER NOT NULL DEFAULT 3,
70
+ tags TEXT,
71
+ category TEXT,
72
+ status TEXT NOT NULL DEFAULT 'active',
73
+ snoozed_until TEXT,
74
+ decay_at TEXT,
75
+ escalation TEXT,
76
+ fire_count INTEGER DEFAULT 0,
77
+ last_fired TEXT,
78
+ max_fires INTEGER,
79
+ recur_rule TEXT,
80
+ recur_parent_id TEXT,
81
+ depends_on TEXT,
82
+ related_ids TEXT,
83
+ source TEXT DEFAULT 'agent',
84
+ agent TEXT DEFAULT 'main',
85
+ created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%S', 'now', 'localtime')),
86
+ updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%S', 'now', 'localtime')),
87
+ completed_at TEXT,
88
+ notes TEXT
89
+ );
90
+
91
+ CREATE INDEX IF NOT EXISTS idx_rem_status ON reminders(status);
92
+ CREATE INDEX IF NOT EXISTS idx_rem_trigger ON reminders(trigger_type, status);
93
+ CREATE INDEX IF NOT EXISTS idx_rem_due ON reminders(trigger_at) WHERE trigger_type = 'time' AND status = 'active';
94
+ CREATE INDEX IF NOT EXISTS idx_rem_priority ON reminders(priority) WHERE status = 'active';
95
+ CREATE INDEX IF NOT EXISTS idx_rem_agent ON reminders(agent);
96
+ CREATE INDEX IF NOT EXISTS idx_rem_tags ON reminders(tags);
97
+
98
+ CREATE TABLE IF NOT EXISTS history (
99
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
100
+ reminder_id TEXT NOT NULL,
101
+ action TEXT NOT NULL,
102
+ old_data TEXT,
103
+ new_data TEXT,
104
+ timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%S', 'now', 'localtime')),
105
+ source TEXT
106
+ );
107
+
108
+ CREATE TABLE IF NOT EXISTS schema_version (version INTEGER PRIMARY KEY);
109
+ `);
110
+ // FTS5 table
111
+ try {
112
+ db.exec(`
113
+ CREATE VIRTUAL TABLE IF NOT EXISTS reminders_fts USING fts5(
114
+ content, context, tags, notes,
115
+ content=reminders, content_rowid=rowid
116
+ )
117
+ `);
118
+ }
119
+ catch {
120
+ // Already exists
121
+ }
122
+ // FTS sync triggers
123
+ db.exec(`
124
+ CREATE TRIGGER IF NOT EXISTS reminders_ai AFTER INSERT ON reminders BEGIN
125
+ INSERT INTO reminders_fts(rowid, content, context, tags, notes)
126
+ VALUES (new.rowid, new.content, new.context, new.tags, new.notes);
127
+ END;
128
+
129
+ CREATE TRIGGER IF NOT EXISTS reminders_ad AFTER DELETE ON reminders BEGIN
130
+ INSERT INTO reminders_fts(reminders_fts, rowid, content, context, tags, notes)
131
+ VALUES ('delete', old.rowid, old.content, old.context, old.tags, old.notes);
132
+ END;
133
+
134
+ CREATE TRIGGER IF NOT EXISTS reminders_au AFTER UPDATE ON reminders BEGIN
135
+ INSERT INTO reminders_fts(reminders_fts, rowid, content, context, tags, notes)
136
+ VALUES ('delete', old.rowid, old.content, old.context, old.tags, old.notes);
137
+ INSERT INTO reminders_fts(rowid, content, context, tags, notes)
138
+ VALUES (new.rowid, new.content, new.context, new.tags, new.notes);
139
+ END;
140
+ `);
141
+ db.prepare('INSERT OR REPLACE INTO schema_version(version) VALUES (?)').run(SCHEMA_VERSION);
142
+ db.close();
143
+ return `\u2705 Initialized agentrem database at ${p} (schema v${SCHEMA_VERSION})`;
144
+ }
145
+ // ── Helpers ──────────────────────────────────────────────────────────────
146
+ export function findReminder(db, rid) {
147
+ const row = db
148
+ .prepare('SELECT * FROM reminders WHERE id = ?')
149
+ .get(rid);
150
+ if (row)
151
+ return row;
152
+ // Try prefix match
153
+ const rows = db
154
+ .prepare('SELECT * FROM reminders WHERE id LIKE ?')
155
+ .all(rid + '%');
156
+ if (rows.length === 1)
157
+ return rows[0];
158
+ if (rows.length > 1) {
159
+ throw new Error(`Ambiguous ID prefix '${rid}' matches ${rows.length} reminders. Use more characters.`);
160
+ }
161
+ return null;
162
+ }
163
+ export function recordHistory(db, reminderId, action, oldData, newData, source) {
164
+ db.prepare('INSERT INTO history(reminder_id, action, old_data, new_data, source) VALUES (?, ?, ?, ?, ?)').run(reminderId, action, oldData ? JSON.stringify(oldData) : null, newData ? JSON.stringify(newData) : null, source || null);
165
+ }
166
+ export function getHistoryEntries(db, reminderId, limit = 20) {
167
+ if (reminderId) {
168
+ return db
169
+ .prepare('SELECT * FROM history WHERE reminder_id = ? OR reminder_id LIKE ? ORDER BY timestamp DESC LIMIT ?')
170
+ .all(reminderId, reminderId + '%', limit);
171
+ }
172
+ return db
173
+ .prepare('SELECT * FROM history ORDER BY timestamp DESC LIMIT ?')
174
+ .all(limit);
175
+ }
176
+ //# sourceMappingURL=db.js.map
package/dist/db.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}